<?xml version="1.0" encoding="utf-8"?>
<!--Detailed report on module TerrainShader-->
<CCCC_Project>
<module_summary>
<lines_of_code value="59" level="0" />
<lines_of_code_per_member_function value="******" level="0" />
<McCabes_cyclomatic_complexity value="7" level="0" />
<McCabes_cyclomatic_complexity_per_member_function value="******" level="2" />
<lines_of_code value="188" level="0" />
<lines_of_code_per_member_function value="********" level="2" />
<lines_of_code_per_line_of_comment value="0.314" level="0" />
<McCabes_cyclomatic_complexity_per_line_of_comment value="0.037" level="0" />
<weighted_methods_per_class_unity value="11" 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="9" level="0" />
<IF4 value="196" level="1" />
<IF4_per_member_function value="********" level="2" />
<IF4_visible value="196" 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>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="33" />
<lines_of_code value="8" 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" />
</module_detail>
<procedural_detail>
<member_function>
<name>TerrainShader(Terrain *,int,const TerrainLayerDefinition *,Shader *)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="36" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="25" />
</extent>
<lines_of_code value="9" 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>addMaterialToTechnique(Technique *,const String &amp;)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="59" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="177" />
</extent>
<lines_of_code value="3" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="53" 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>addPassToTechnique(Technique *,const String &amp;)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="55" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="132" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="1" level="0" />
<lines_of_comment value="44" 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>addSplatToTechnique(Technique *,const String &amp;)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="60" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="234" />
</extent>
<lines_of_code value="3" level="0" />
<McCabes_cyclomatic_complexity value="0" 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>addTextureUnitsToPass(Pass *,const String &amp;)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="47" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="77" />
</extent>
<lines_of_code value="3" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="52" 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>getLayerDefinition()</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="73" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="71" />
</extent>
<lines_of_code value="5" level="0" />
<McCabes_cyclomatic_complexity value="1" 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>getMaxTextureUnits()</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="83" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="56" />
</extent>
<lines_of_code value="5" 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>getShader()</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="40" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="61" />
</extent>
<lines_of_code value="5" 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>getSurfaceForSegment(Segment *)</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="68" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="246" />
</extent>
<lines_of_code value="9" level="0" />
<McCabes_cyclomatic_complexity value="2" level="0" />
<lines_of_comment value="5" 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>getTerrainIndex()</name>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="57" />
</extent>
<lines_of_code value="1" 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>~TerrainShader()</name>
<extent>
<description>declaration</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="38" />
</extent>
<extent>
<description>definition</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="50" />
</extent>
<lines_of_code value="4" level="0" />
<McCabes_cyclomatic_complexity value="0" level="0" />
<lines_of_comment value="14" 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>TerrainShader</name>
<client_module>
<name>TerrainGenerator</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainGenerator.cpp" line="250" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainGenerator.cpp" line="709" />
</extent>
<name>TerrainPage</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainPage.cpp" line="621" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainPage.cpp" line="1068" />
</extent>
</client_module>
<supplier_module>
<name>Pass</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="47" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="77" />
</extent>
<name>Segment</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="68" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="246" />
</extent>
<name>Shader</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="36" />
</extent>
<extent>
<description>has by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="78" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="25" />
</extent>
<name>String</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="47" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="55" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="59" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="60" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="77" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="132" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="177" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="234" />
</extent>
<name>Technique</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="55" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="59" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="60" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="132" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="177" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="234" />
</extent>
<name>Terrain</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="36" />
</extent>
<extent>
<description>has by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="79" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="25" />
</extent>
<name>TerrainLayerDefinition</name>
<visible>true</visible>
<concrete>false</concrete>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="36" />
</extent>
<extent>
<description>has by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.h" line="76" />
</extent>
<extent>
<description>pass by reference</description>
<source_reference file="./components/ogre/terrain/TerrainShader.cpp" line="25" />
</extent>
</supplier_module>
</module>
</structural_detail>
</CCCC_Project>

