<!-- ##### SECTION Title ##### -->
visu_elements

<!-- ##### SECTION Short_Description ##### -->
defines methods to create and acccess to #VisuElement

<!-- ##### SECTION Long_Description ##### -->
<para>
V_Sim is used to rendered at given position several object of the same kind. The #VisuElement
object is used to control that kind. Typically, it corresponds to chemical element. It
can represent the silicon, the iron...
</para>
<para>
#VisuElement are defined by their name and have some characteristic like their color or if
they are rendered or not. The color characteristic is defined by an RGBA array and different value for the behavior of the light, as defined in OpenGL : diffusivity, shiningness, emissivity, specular and ambient. These values can be controlled with the following methods :
visuElementSet_allColorValues(), visuElementSet_allRGBValues(), visuElementSet_RGBValue(),
visuElementSet_allMaterialValues() and visuElementSet_materialValue().
</para>
<para>
Moreover, the user can add new properties to one element using visuElementSet_property() and
visuElementGet_property(). The values stored with these functions are not copied and
should be reachable until being remove or until the end of the program.
</para>
<para>
If the OpenGL representation of one element is not dependent of its position, it is recommended
to use the OpenGL list associated to each #VisuElement that can be accessed by a call to
visuElementGet_identifierMaterial().
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### MACRO NMAX_TP ##### -->
<para>

</para>



<!-- ##### MACRO VISU_ELEMENT_MAX_REACHED ##### -->
<para>

</para>



<!-- ##### MACRO VISU_ELEMENT_EMPTY_LINE ##### -->
<para>

</para>



<!-- ##### MACRO VISU_ELEMENT_BAD_NAME ##### -->
<para>

</para>



<!-- ##### MACRO VISU_ELEMENT_CREATE_ERROR ##### -->
<para>

</para>



<!-- ##### STRUCT Element_struct ##### -->
<para>

</para>

@name: 
@typeNumber: 
@rgb: 
@material: 
@openGLIdentifier: 
@materialIsUpToDate: 
@rendered: 
@properties: 

<!-- ##### TYPEDEF VisuElement ##### -->
<para>

</para>


<!-- ##### FUNCTION visuElementNewWithName ##### -->
<para>

</para>

@key: 
@Returns: 


<!-- ##### FUNCTION visuElementAdd ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION visuElementGet_allElements ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION visuElementGet_fromValueLine ##### -->
<para>

</para>

@line: 
@sizeMax: 
@errorFlag: 
@Returns: 


<!-- ##### FUNCTION visuElementGet_fromName ##### -->
<para>

</para>

@name: 
@Returns: 


<!-- ##### FUNCTION visuElementGet_identifierMaterial ##### -->
<para>

</para>

@ele: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_allColorValues ##### -->
<para>

</para>

@ele: 
@rgb: 
@material: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_allRGBValues ##### -->
<para>

</para>

@ele: 
@rgb: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_RGBValue ##### -->
<para>

</para>

@ele: 
@rgb: 
@value: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_allMaterialValues ##### -->
<para>

</para>

@ele: 
@material: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_materialValue ##### -->
<para>

</para>

@ele: 
@material: 
@value: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_property ##### -->
<para>

</para>

@element: 
@key: 
@value: 


<!-- ##### FUNCTION visuElementGet_property ##### -->
<para>

</para>

@element: 
@key: 
@Returns: 


<!-- ##### FUNCTION visuElementRemove_property ##### -->
<para>

</para>

@element: 
@key: 


<!-- ##### FUNCTION visuElementGet_rendered ##### -->
<para>

</para>

@element: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_rendered ##### -->
<para>

</para>

@element: 
@rendered: 
@Returns: 


<!-- ##### FUNCTION visuElementSet_updateNodesOnMaterialChange ##### -->
<para>

</para>



<!-- ##### FUNCTION visuElementUnset_updateNodesOnMaterialChange ##### -->
<para>

</para>



<!-- ##### FUNCTION visuElementPrint_errorFromValueLine ##### -->
<para>

</para>

@dest: 
@line: 
@flag: 


<!-- ##### FUNCTION visuElement_createMaterial ##### -->
<para>

</para>

@ele: 
<!-- # Unused Parameters # -->
@name: 
@data: 


<!-- ##### FUNCTION initVisuElements ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION debug_AllVisuElements ##### -->
<para>

</para>



<!-- ##### FUNCTION debug_VisuElement ##### -->
<para>

</para>

@key: 
@value: 
@data: 


