microsoft / MixedRealityToolkit-Unity
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

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 5,476 units with 85,562 lines of code in units (13.9% of code).
    • 2 very complex units (470 lines of code)
    • 22 complex units (2,994 lines of code)
    • 253 medium complex units (16,027 lines of code)
    • 577 simple units (18,499 lines of code)
    • 4,622 very simple units (47,572 lines of code)
<1% | 3% | 18% | 21% | 55%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
cs<1% | 3% | 18% | 21% | 55%
py0% | 0% | 0% | 12% | 87%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
Assets/MRTK<1% | 3% | 18% | 21% | 55%
scripts/ci0% | 0% | 0% | 21% | 78%
scripts/tools0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private void RenderInteractionList()
in Assets/MRTK/Core/Inspectors/ControllerPopupWindow.cs
374 79 2
private void Update()
in Assets/MRTK/Tools/RuntimeTools/Tools/MixedRealityInteractionTool/MixedRealityInteractionTool.cs
96 51 0
public void UpdateHandJoints()
in Assets/MRTK/Providers/OpenXR/Scripts/OpenXRHandJointProvider.cs
98 49 2
public override void DrawInspectorGUI()
in Assets/MRTK/Core/Inspectors/ServiceInspectors/HandJointServiceInspector.cs
142 48 1
private void RenderControllerList()
in Assets/MRTK/Core/Inspectors/Profiles/MixedRealityControllerMappingProfileInspector.cs
207 43 1
private void CheckForGestures()
in Assets/MRTK/Providers/OpenXR/Scripts/OpenXRDeviceManager.cs
141 41 0
public void LoadInfo()
in Assets/MRTK/SDK/Features/UX/Scripts/Controllers/MixedRealityControllerInfo.cs
127 38 2
private void ManageVisibility()
in Assets/MRTK/SDK/Features/UX/Scripts/ScrollingObjectCollection/ScrollingObjectCollection.cs
122 38 1
protected void ResolveGridLayout()
in Assets/MRTK/SDK/Features/UX/Scripts/Collections/GridObjectCollection.cs
110 36 2
private void FindPlacementPlane()
in Assets/MRTK/SDK/Features/Utilities/Solvers/SurfaceMagnetism.cs
148 36 11
private void InitializeServiceLocator()
in Assets/MRTK/Core/Services/MixedRealityToolkit.cs
136 33 0
public static void DrawProperty()
in Assets/MRTK/Core/Inspectors/PropertyDrawers/SceneInfoDrawer.cs
169 31 5
private void RenderAppxBuildView()
in Assets/MRTK/Tools/BuildWindow/BuildDeployWindow.cs
184 31 0
public override void OnInspectorGUI()
in Assets/MRTK/SDK/Editor/Inspectors/UX/Interactable/ButtonConfigHelperInspector.cs
187 29 0
private static void UpdateMetaFiles()
in Assets/MRTK/Tools/MSBuild/Scripts/AssetScriptReferenceRetargeter.cs
103 29 1
private void Update()
in Assets/MRTK/Tools/RuntimeTools/Tools/InputFeatureUsageTool/ListInputFeatureUsages.cs
118 28 0
protected override void OnEnable()
in Assets/MRTK/Core/Inspectors/Profiles/MixedRealityToolkitConfigurationProfileInspector.cs
276 27 0
private TrackedHandJoint ConvertHandJointKindToTrackedHandJoint()
in Assets/MRTK/Providers/WindowsMixedReality/XR2018/Controllers/WindowsMixedRealityArticulatedHand.cs
33 27 1
private void TransformTarget()
in Assets/MRTK/SDK/Features/UX/Scripts/BoundsControl/BoundsControl.cs
103 27 1
public virtual void UpdatePointers()
in Assets/MRTK/SDK/Features/UX/Scripts/Pointers/DefaultPointerMediator.cs
107 27 0