<?xml version="1.0" encoding="utf-8"?>
<!--Detailed report on module Opcode-->
<CCCC_Project>
<module_summary>
<lines_of_code value="124" level="0" />
<lines_of_code_per_member_function value="******" level="0" />
<McCabes_cyclomatic_complexity value="20" level="0" />
<McCabes_cyclomatic_complexity_per_member_function value="******" level="2" />
<lines_of_code value="24" level="0" />
<lines_of_code_per_member_function value="********" level="2" />
<lines_of_code_per_line_of_comment value="5.167" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.833" level="0" />
<weighted_methods_per_class_unity value="7" 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="8" level="0" />
<IF4 value="0" level="0" />
<IF4_per_member_function value="********" level="0" />
<IF4_visible value="0" level="0" />
<IF4_visible_per_member_function value="********" level="0" />
<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>CloseOpcode()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/Opcode.cpp" line="78" />
</extent>
<lines_of_code value="6" 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>InitOpcode()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/Opcode.cpp" line="69" />
</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>Picking(CollisionFace &amp;,const Ray &amp;,const Model &amp;,const Matrix4x4 *,float,float,const Point &amp;,CullModeCallback,void *)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="85" />
</extent>
<lines_of_code value="70" level="1" />
<McCabes_cyclomatic_complexity value="13" level="1" />
<lines_of_comment value="13" level="0" />
<lines_of_code_per_line_of_comment value="5.385" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="1.000" level="0" />
</member_function>
<member_function>
<name>SetupAllHits(RayCollider &amp;,CollisionFaces &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="35" />
</extent>
<lines_of_code value="15" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="8" 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>SetupClosestHit(RayCollider &amp;,CollisionFace &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="52" />
</extent>
<lines_of_code value="16" 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>SetupInOutTest(RayCollider &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="77" />
</extent>
<lines_of_code value="6" 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>SetupShadowFeeler(RayCollider &amp;)</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="70" />
</extent>
<lines_of_code value="6" 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>
</procedural_detail>
<structural_detail>
<module>
<name>Opcode</name>
<client_module>
</client_module>
<supplier_module>
<name>CollisionFace</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="52" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="86" />
</extent>
<name>CollisionFaces</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="35" />
</extent>
<name>CullModeCallback</name>
<visible>true</visible>
<concrete>true</concrete>
<extent>
<description>pass by value</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="88" />
</extent>
<name>Matrix4x4</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="87" />
</extent>
<name>Model</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="87" />
</extent>
<name>Point</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="88" />
</extent>
<name>Ray</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="87" />
</extent>
<name>RayCollider</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="35" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="52" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="70" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/ogreopcode/src/Opcode/OPC_Picking.cpp" line="77" />
</extent>
</supplier_module>
</module>
</structural_detail>
</CCCC_Project>

