<!-- ##### SECTION Title ##### -->
visu_rendering

<!-- ##### SECTION Short_Description ##### -->
Methods to create and add new rendering methods.

<!-- ##### SECTION Long_Description ##### -->
<para>
The way visu renders its data is done by modules. They are called
   rendering methods and they describes how data are drawn on
   the screen. Many can be defined but only one is used at a
   time to render the data.
</para>
<para>
   One or more file type are associated with a rendering method. And
   a rendering method must specify the way to load the data it needs.
   Taking the example of a spin system representation, there are two kinds
   of file. The first kind describes the position the spin and the second
   contains their orientations.
</para>
<para>
To create a new rendering method, use renderingMethod_new(). The name is
mandatory and must be unique. The description is not compulsory. The number of file
kinds is also required. Use renderingMethodSet_fileType() to associated a #GList
of #FileFormat. In our example of spin system, the first kind of file is about
positions, and the associated file formats are *.ascii, *.d3 and *.xyz.
</para>
<para>
The #RenderingMethod_struct has to two pointers on methods that are important. The first,
createOpenGLElementFunc() is called when V_Sim needs to create an OpenGL list corresponding
to the #VisuElement given as argument. This list then can be used to render each node and
thus accelerating the rendering operations. The second method is createOpenGLNodeFunc()
and is called by V_Sim for each node of the system when the main OpenGL list (the one
 for the nodes) is created. Thus, in the contrary of the first method, thios one should
 not create an OpenGL list but directly call OpenGL routines to draw the node. This
method is also responsible to put the node at the right position. Use visuDataGet_nodePosition()
to retrieve the position and translate the node accordingly.
</para>

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

</para>

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


<!-- ##### STRUCT RenderingMethod_struct ##### -->
<para>

</para>

@name: 
@printName: 
@description: 
@icon: 
@nbFilesType: 
@fileType: 
@fileTypeLabel: 
@loadMethod: 
@createElement: 
@createNode: 
@getExtensForElement: 

<!-- ##### TYPEDEF RenderingMethod ##### -->
<para>

</para>


<!-- ##### STRUCT RenderingFormatLoad_struct ##### -->
<para>

</para>

@name: 
@fmt: 
@load: 
@priority: 

<!-- ##### TYPEDEF RenderingFormatLoad ##### -->
<para>

</para>


<!-- ##### USER_FUNCTION renderingFormatLoadFunc ##### -->
<para>

</para>

@data: 
@filename: 
@format: 
@error: 
@Returns: 


<!-- ##### ENUM RenderingErrorFlag ##### -->
<para>

</para>

@RENDERING_ERROR_METHOD: 
@RENDERING_ERROR_FILE: 
@RENDERING_ERROR_FORMAT: 

<!-- ##### FUNCTION renderingMethod_new ##### -->
<para>

</para>

@name: 
@printName: 
@description: 
@nbFileType: 
@loadMethod: 
@Returns: 


<!-- ##### FUNCTION renderingMethod_free ##### -->
<para>

</para>

@method: 


<!-- ##### FUNCTION renderingMethodSet_icon ##### -->
<para>

</para>

@method: 
@path: 


<!-- ##### FUNCTION renderingMethodSet_fileType ##### -->
<para>

</para>

@method: 
@fileTypeList: 
@fileType: 
@name: 


<!-- ##### FUNCTION renderingMethodGet_nbFileType ##### -->
<para>

</para>

@method: 
@Returns: 


<!-- ##### FUNCTION renderingMethodGet_fileType ##### -->
<para>

</para>

@method: 
@fileType: 
@Returns: 


<!-- ##### FUNCTION renderingMethodGet_fileTypeName ##### -->
<para>

</para>

@method: 
@fileType: 
@Returns: 


<!-- ##### FUNCTION renderingMethodGet_sizeOfElement ##### -->
<para>

</para>

@method: 
@ele: 
@Returns: 


<!-- ##### FUNCTION renderingMethodAdd_fileFormat ##### -->
<para>

</para>

@method: 
@fmt: 
@fileType: 


<!-- ##### FUNCTION renderingMethodCompare_priority ##### -->
<para>

</para>

@a: 
@b: 
@Returns: 


<!-- ##### FUNCTION registerRenderingMethod ##### -->
<para>

</para>

@method: 


<!-- ##### USER_FUNCTION renderingMethodLoadFunc ##### -->
<para>

</para>

@data: 
@format: 
@error: 
@Returns: 


<!-- ##### USER_FUNCTION createOpenGLElementFunc ##### -->
<para>

</para>

@visuData: 
@ele: 
@Returns: 


<!-- ##### USER_FUNCTION createOpenGLNodeFunc ##### -->
<para>

</para>

@visuData: 
@node: 
@ele: 


<!-- ##### USER_FUNCTION getExtensOfNodeFunc ##### -->
<para>

</para>

@ele: 
@Returns: 


<!-- ##### FUNCTION setOpenGLMethods ##### -->
<para>

</para>

@method: 
@createElement: 
@createNode: 
@getSize: 


<!-- ##### FUNCTION setRenderingMethodInUse ##### -->
<para>

</para>

@method: 


<!-- ##### FUNCTION setRenderingMethodByName ##### -->
<para>

</para>

@name: 
@Returns: 


<!-- ##### FUNCTION getRenderingMethodInUse ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION renderingMethodGet_AllMethods ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION initRenderingMethods ##### -->
<para>

</para>

@Returns: 


