deck.gl
Conditional Complexity

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 2,026 units with 27,414 lines of code in units (71.1% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 46 medium complex units (2,289 lines of code)
    • 178 simple units (5,093 lines of code)
    • 1,802 very simple units (20,032 lines of code)
0% | 0% | 8% | 18% | 73%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
js0% | 0% | 8% | 18% | 73%
Legend:
51+
26-50
11-25
6-10
1-5
Conditional Complexity per Logical Component
primary logical decomposition
modules0% | 0% | 9% | 21% | 68%
showcases0% | 0% | 7% | 8% | 83%
website0% | 0% | 9% | 13% | 77%
examples0% | 0% | 3% | 10% | 86%
scripts0% | 0% | 0% | 0% | 100%
bindings0% | 0% | 0% | 0% | 100%
Legend:
51+
26-50
11-25
6-10
1-5
Most Complex Units
Top 50 most complex units
Unit# linesMcCabe index# params
export function propToParam()
in website/src/utils/layer-params.js
53 23 3
vec3 lineJoin()
in modules/layers/src/path-layer/path-layer-vertex.glsl.js
81 22 4
_setupFramebuffers()
in modules/aggregation-layers/src/utils/gpu-grid-aggregation/gpu-grid-aggregator.js
69 21 1
export function processPickInfo()
in modules/core/src/lib/picking/pick-info.js
74 18 9
renderLayers()
in modules/layers/src/geojson-layer/geojson-layer.js
185 17 0
function tesselateColumn()
in modules/layers/src/column-layer/column-geometry.js
61 16 1
export function getCode()
in modules/aggregation-layers/src/contour-layer/marching-squares.js
55 16 1
function pointsToGridHashing()
in modules/aggregation-layers/src/cpu-grid-layer/grid-aggregator.js
40 16 2
export function compareProps()
in modules/core/src/lifecycle/props.js
42 15 5
setData()
in modules/core/src/lib/attribute/data-column.js
52 15 1
updateState()
in modules/core/src/lib/layer.js
29 15 4
update()
in modules/mesh-layers/src/utils/matrix.js
63 15 3
void main()
in showcases/wind/src/layers/particle-layer/transform-feedback-vertex.glsl.js
51 14 1
_renderSetting()
in examples/layer-browser/src/components/layer-controls.js
45 14 5
constructor()
in modules/core/src/lib/attribute/data-column.js
41 14 2
_onKeyDown()
in modules/core/src/controllers/controller.js
61 14 1
updateState()
in modules/aggregation-layers/src/heatmap-layer/heatmap-layer.js
39 14 1
renderLayers()
in showcases/graph/graph-layer/graph-layer.js
75 13 0
_normalizeValue()
in modules/core/src/lib/attribute/data-column.js
28 13 3
_autoUpdater()
in modules/core/src/lib/attribute/attribute.js
46 13 6
_checkAttributeArray()
in modules/core/src/lib/attribute/attribute.js
23 13 0
setChangeFlags()
in modules/core/src/lib/layer.js
33 13 1
setProps()
in modules/core/src/controllers/controller.js
40 13 1
export function getOffsetOrigin()
in modules/core/src/shaderlib/project/viewport-uniforms.js
54 13 3
export function transformParagraph()
in modules/layers/src/text-layer/utils.js
38 13 5
_renderInteractionLayer()
in showcases/graph/app.js
54 12 3
export default function App()
in examples/website/scenegraph/app.js
71 12 3
export function generateLayerTests()
in modules/test-utils/src/generate-layer-tests.js
62 12 5
export function glArrayFromType()
in modules/core/src/lib/attribute/gl-utils.js
25 12 1
updateBuffer()
in modules/core/src/lib/attribute/attribute.js
41 12 4
function breakWord()
in modules/layers/src/text-layer/utils.js
46 12 3
void main()
in modules/layers/src/arc-layer/arc-layer-vertex.glsl.js
72 12 1
updateState()
in modules/layers/src/icon-layer/icon-layer.js
41 12 3
export function getOSMTileIndices()
in modules/geo-layers/src/tile-layer/tile-2d-traversal.js
35 12 3
_resizeCache()
in modules/geo-layers/src/tile-layer/tileset-2d.js
26 12 0
export function shallowEqualObjects()
in modules/json/src/utils/shallow-equal-objects.js
22 12 2
updateAggregationState()
in modules/aggregation-layers/src/screen-grid-layer/screen-grid-layer.js
53 12 1
updateAggregationState()
in modules/aggregation-layers/src/contour-layer/contour-layer.js
65 12 1
export default function()
in website/src/components/example.js
80 11 3
_initViewMatrix()
in modules/core/src/viewports/viewport.js
45 11 1
_drawLayersInViewport()
in modules/core/src/passes/layers-pass.js
53 11 6
function comparePropValues()
in modules/core/src/lifecycle/props.js
16 11 3
export function mergeShaders()
in modules/core/src/utils/shader.js
30 11 2
setProps()
in modules/layers/src/icon-layer/icon-manager.js
21 11 6
function dtypeToTypedArray()
in modules/jupyter-widget/src/lib/utils/deserialize-matrix.js
26 11 1
renderLayers()
in modules/geo-layers/src/tile-3d-layer/tile-3d-layer.js
27 11 0
updateState()
in examples/website/plot/plot-layer/axes-layer.js
35 10 3
export function layerIndexResolver()
in modules/core/src/passes/layers-pass.js
29 10 2
allocate()
in modules/core/src/utils/typed-array-manager.js
20 10 7
export function padBuffer()
in modules/core/src/lib/attribute/attribute-transition-utils.js
43 10 6