Analysed by SourceGraph (version 0.7.0.5) using Graphalyze (version 0.14.0.1)
Wednesday 20 November, 2013
Please note that the source-code analysis in this document is not necessarily perfect: SourceGraph is not a refactoring tool, and it's usage of Classes is still premature.
Implicitly exported entities refer to class methods that are instantiated but defined elsewhere, or entities whose names start with an underscore . Note that even for Main modules, these implicit exports are included.
All graph visualisations link to larger SVG versions of the same graph.
Here is the current module grouping of functions:
Here is a proposed alternate module grouping:
Using the Chinese Whispers algorithm:
Visualises how far away from the exported root entities an entity is.
The overall cyclomatic complexity is: 69
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
These functions are those that are inaccessible:
DNA.DNA, DNA.genDNA, DNA.newDNA, DNA.renderDNA, DNA.updateModel, Display.animate, Display.display, Display.handleReshape, DoubleHelix.extractHeight, DoubleHelix.genDHelix, DoubleHelix.renderDHelix, Helix.Helix, Helix.extractHeight, Helix.genHelix, Helix.newHelix, Helix.renderHelix, Input.input, Input.update, Main.init, Main.parseArgs, Math.distanceBetween, Math.fromTo, Math.phi, Misc.colour, Misc.evenScale, Misc.vec3f, Misc.ver3d, ProgramState.extractDNARef, ProgramState.extractInteractiveRef, ProgramState.extractLevelRef, ProgramState.extractModeRef, ProgramState.extractRXRef, ProgramState.extractRYRef, ProgramState.extractRZRef, ProgramState.extractTXRef, ProgramState.extractTYRef, ProgramState.extractUpdateRef, ProgramState.extractZoomRef, ProgramState.newProgramState
The functions are split up into 4 components. You may wish to consider splitting the code up into multiple libraries.
The code has the following cross-module chains:
DoubleHelix.genDHelix -> Helix.genHelix
DoubleHelix.renderDHelix -> Helix.renderHelix
These chains can all be compressed down to a single function.
The cyclomatic complexity of the imports is: 9
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of DNA is: 6.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module DNA has 2 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Display is: 3.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module Display has 3 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of DoubleHelix is: 3.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
These functions are those that are inaccessible:
extractHeight
The module DoubleHelix has 3 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Helix is: 2.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module Helix has 2 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Input is: 17.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module Input has the following chains:
input -> update
These chains can all be compressed down to a single function.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Main is: 2.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
These functions are those that are inaccessible:
init, parseArgs
The module Main has 2 components. You may wish to consider splitting it up.
The module Main has the following chains:
init -> parseArgs
These chains can all be compressed down to a single function.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Math is: 4.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module Math has 3 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of Misc is: 4.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module Misc has 4 components. You may wish to consider splitting it up.
Visualises how far away from the exported root entities an entity is.
The cyclomatic complexity of ProgramState is: 12.
For more information on cyclomatic complexity, please see: Wikipedia: Cyclomatic Complexity
The module ProgramState has 12 components. You may wish to consider splitting it up.