<?xml version="1.0" encoding="utf-8"?>
<!--Detailed report on module ICollisionShape-->
<CCCC_Project>
<module_summary>
<lines_of_code value="711" level="1" />
<lines_of_code_per_member_function value="******" level="0" />
<McCabes_cyclomatic_complexity value="108" level="0" />
<McCabes_cyclomatic_complexity_per_member_function value="******" level="2" />
<lines_of_code value="227" level="0" />
<lines_of_code_per_member_function value="********" level="2" />
<lines_of_code_per_line_of_comment value="3.132" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.476" level="0" />
<weighted_methods_per_class_unity value="26" level="0" />
<weighted_methods_per_class_visibility value="0" level="0" />
<depth_of_inheritance_tree value="0" level="0" />
<number_of_children value="0" level="0" />
<coupling_between_objects value="12" level="0" />
<IF4 value="121" level="1" />
<IF4_per_member_function value="********" level="2" />
<IF4_visible value="121" level="2" />
<IF4_visible_per_member_function value="********" level="2" />
<IF4_concrete value="0" level="0" />
<IF4_concrete_per_member_function value="********" level="0" />
</module_summary>
<module_detail>
</module_detail>
<procedural_detail>
<member_function>
<name>ICollisionShape(const String &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="204" />
</extent>
<lines_of_code value="6" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="12" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>_prepareOpcodeCreateParams(OPCODECREATE &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1249" />
</extent>
<lines_of_code value="8" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="6" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>calculateSize()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="180" />
</extent>
<lines_of_code value="7" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="4" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>collide(CollisionType,Matrix4 &amp;,ICollisionShape *,Matrix4 &amp;,CollisionPair &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="299" />
</extent>
<lines_of_code value="76" level="1" />
<McCabes_cyclomatic_complexity value="10" level="0" />
<lines_of_comment value="23" level="0" />
<lines_of_code_per_line_of_comment value="3.304" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.435" level="0" />
</member_function>
<member_function>
<name>getCenter()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="140" />
</extent>
<lines_of_code value="7" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="2" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getFullTransform(void)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="262" />
</extent>
<lines_of_code value="9" level="0" />
<McCabes_cyclomatic_complexity value="2" level="0" />
<lines_of_comment value="0" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getLocalCenter()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="149" />
</extent>
<lines_of_code value="5" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="2" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getLocalMinMax(Vector3 &amp;,Vector3 &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="174" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="2" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getLocalTransform(void)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="272" />
</extent>
<lines_of_code value="8" level="0" />
<McCabes_cyclomatic_complexity value="2" level="0" />
<lines_of_comment value="0" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getLowestRoot(Real,Real,Real,Real,Real *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<lines_of_code value="20" level="0" />
<McCabes_cyclomatic_complexity value="10" level="0" />
<lines_of_comment value="9" level="0" />
<lines_of_code_per_line_of_comment value="2.222" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="1.111" level="0" />
</member_function>
<member_function>
<name>getMinMax(Vector3 &amp;,Vector3 &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="156" />
</extent>
<lines_of_code value="16" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="2" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getName()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="135" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="1" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>getRefitRate()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="252" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="0" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>rayCheck(CollisionType,const Matrix4 &amp;,const Ray &amp;,const Real,CollisionPair &amp;,bool)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="422" />
</extent>
<lines_of_code value="88" level="1" />
<McCabes_cyclomatic_complexity value="15" level="1" />
<lines_of_comment value="32" level="0" />
<lines_of_code_per_line_of_comment value="2.750" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.469" level="0" />
</member_function>
<member_function>
<name>setRefitRate(int)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="257" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="0" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>setTransform(const Matrix4)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="284" />
</extent>
<lines_of_code value="5" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="3" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>sphereCheck(CollisionType,const Matrix4 &amp;,const Sphere &amp;,CollisionPair &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="967" />
</extent>
<lines_of_code value="71" level="1" />
<McCabes_cyclomatic_complexity value="13" level="1" />
<lines_of_comment value="30" level="0" />
<lines_of_code_per_line_of_comment value="2.367" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.433" level="0" />
</member_function>
<member_function>
<name>sphereEdgeCheck(Vector3 &amp;,Vector3 &amp;,Vector3 &amp;,Real &amp;,bool &amp;,Vector3 &amp;,Vector3 &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="699" />
</extent>
<lines_of_code value="27" level="0" />
<McCabes_cyclomatic_complexity value="3" level="0" />
<lines_of_comment value="4" level="0" />
<lines_of_code_per_line_of_comment value="6.750" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>sweptSphereCheck(CollisionType,const Matrix4 &amp;,const Vector3 &amp;,const Vector3 &amp;,const Real &amp;,CollisionPair &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="556" />
</extent>
<lines_of_code value="65" level="1" />
<McCabes_cyclomatic_complexity value="12" level="1" />
<lines_of_comment value="30" level="0" />
<lines_of_code_per_line_of_comment value="2.167" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.400" level="0" />
</member_function>
<member_function>
<name>testTriangleIntersection(Vector3,Vector3,Real,Vector3,Vector3,Vector3,CollisionPair *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="736" />
</extent>
<lines_of_code value="132" level="2" />
<McCabes_cyclomatic_complexity value="26" level="1" />
<lines_of_comment value="39" level="0" />
<lines_of_code_per_line_of_comment value="3.385" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.667" level="0" />
</member_function>
<member_function>
<name>update(Real)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="239" />
</extent>
<lines_of_code value="12" level="0" />
<McCabes_cyclomatic_complexity value="2" level="0" />
<lines_of_comment value="0" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>visualize(OgreOpcodeDebugger *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1189" />
</extent>
<lines_of_code value="26" level="0" />
<McCabes_cyclomatic_complexity value="3" level="0" />
<lines_of_comment value="7" level="0" />
<lines_of_code_per_line_of_comment value="3.714" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>visualizeAABBCollisionNode(const AABBCollisionNode *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1071" />
</extent>
<lines_of_code value="44" level="1" />
<McCabes_cyclomatic_complexity value="3" level="0" />
<lines_of_comment value="6" level="0" />
<lines_of_code_per_line_of_comment value="7.333" level="1" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>visualizeAABBNoLeafNode(const AABBNoLeafNode *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1130" />
</extent>
<lines_of_code value="45" level="1" />
<McCabes_cyclomatic_complexity value="2" level="0" />
<lines_of_comment value="6" level="0" />
<lines_of_code_per_line_of_comment value="7.500" level="1" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>visualizeAABBs(OgreOpcodeDebugger *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1232" />
</extent>
<lines_of_code value="14" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="3" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
<member_function>
<name>~ICollisionShape()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="231" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="4" level="0" />
<lines_of_code_per_line_of_comment value="------" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="------" level="0" />
</member_function>
</procedural_detail>
<structural_detail>
<module>
<name>ICollisionShape</name>
<client_module>
<name>CollisionManager</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/OgreCollisionManager.cpp" line="265" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/OgreCollisionManager.cpp" line="287" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/OgreCollisionManager.cpp" line="302" />
</extent>
</client_module>
<supplier_module>
<name>AABBCollisionNode</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1071" />
</extent>
<name>AABBNoLeafNode</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1130" />
</extent>
<name>CollisionPair</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="299" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="426" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="561" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="740" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="970" />
</extent>
<name>Matrix4</name>
<visible>true</visible>
<concrete>true</concrete>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="284" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="299" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="299" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="423" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="557" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="968" />
</extent>
<name>OgreOpcodeDebugger</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1189" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="1232" />
</extent>
<name>Ray</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="424" />
</extent>
<name>Real</name>
<visible>true</visible>
<concrete>true</concrete>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="239" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="425" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="560" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="662" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="701" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="738" />
</extent>
<name>Sphere</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="969" />
</extent>
<name>String</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="204" />
</extent>
<name>Vector3</name>
<visible>true</visible>
<concrete>true</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="156" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="156" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="174" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="174" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="558" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="559" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="699" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="700" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="700" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="702" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="702" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="736" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="737" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="739" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="739" />
</extent>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="739" />
</extent>
<name>bool</name>
<visible>true</visible>
<concrete>true</concrete>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="426" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/IOgreCollisionShape.cpp" line="701" />
</extent>
</supplier_module>
</module>
</structural_detail>
</CCCC_Project>

