![]() |
![]() |
![]() |
V_Sim API - Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
geometrygeometry — different routines to do high level geometry studies on a box or a set of boxes. |
typedef VisuPathes; VisuPathes* visu_pathes_new (float translation[3]
); void visu_pathes_free (VisuPathes *pathes
); void visu_pathes_empty (VisuPathes *pathes
); gboolean visu_pathes_addFromDiff (VisuPathes *pathes
,VisuData *data
); gboolean visu_pathes_addNodeStep (VisuPathes *pathes
,guint time
,guint nodeId
,float xyz[3]
,float dxyz[3]
,float energy
); void visu_pathes_pinPositions (VisuPathes *pathes
,VisuData *data
); void visu_pathes_draw (VisuPathes *pathes
); void visu_pathes_constrainInBox (VisuPathes *pathes
,VisuData *data
); gboolean visu_pathes_exportToXML (const VisuPathes *pathes
,const gchar *filename
,GError **error
); gboolean visu_pathes_parseFromXML (const gchar *filename
,VisuPathes *pathes
,GError **error
); void visu_pathes_setTranslation (VisuPathes *pathes
,float cartCoord[3]
); gboolean visu_pathes_setShade (VisuPathes *pathes
,Shade *shade
); Shade* visu_pathes_getShade (VisuPathes *pathes
); guint visu_pathes_getLength (VisuPathes *pathes
); gboolean visu_geodiff_new (VisuData *dataRef
,VisuData *data
,gboolean reorder
); gboolean visu_geodiff_setActive (gboolean value
); void visu_geodiff_rebuildList (VisuData *dataObj
); gboolean visu_geodiff_hasData (VisuData *data
); gchar* visu_geodiff_export (VisuData *data
); void visu_geodiff_getPeriodicDistance (float diff[3]
,VisuData *data
,VisuNode *node1
,VisuNode *node2
); void geometryInit ();
The first possibility of the geometry section is to make a two by two difference node position difference between two VisuData objects. The VisuNode positions are compared (number to number and not closed equivalent to closed equivalent) and stored for visualisation. The visualisation is done through small arrows position on the currently visualised file.
typedef struct VisuPathes_ VisuPathes;
An opaque structure to save a set of pathes.
Since 3.6
VisuPathes* visu_pathes_new (float translation[3]
);
Create a new VisuPathes object.
|
the current box translation (cartesian). |
Returns : |
the newly create object VisuPathes, to be freed with
visu_pathes_free() .
|
Since 3.6
void visu_pathes_free (VisuPathes *pathes
);
Free a set of pathes.
|
a VisuPathes object. |
Since 3.6
void visu_pathes_empty (VisuPathes *pathes
);
Reinitialise internal values of a given pathes
.
|
a VisuPathes object. |
Since 3.6
gboolean visu_pathes_addFromDiff (VisuPathes *pathes
,VisuData *data
);
This routine read the geometry difference hold in data
and add a
new step in the set of pathes. If new pathes are created, one
should call visu_pathes_setTranslation()
to be sure that all
pathes are moved inside the box.
|
a VisuData object with a geometry difference (see
visu_geodiff_new() ).
|
|
the set of pathes to extend. |
Returns : |
TRUE if new pathes have been added. |
Since 3.6
gboolean visu_pathes_addNodeStep (VisuPathes *pathes
,guint time
,guint nodeId
,float xyz[3]
,float dxyz[3]
,float energy
);
This routine expand the path for the given nodeId
at position xyz
of dxyz
. The energy
value will be used only if
visu_pathes_setShade()
is used with a non NULL Shade. In that
case the energy
value will be used to colourise the provided path.
|
a set of pathes. |
|
the flag that give the number of expansion to update. |
|
the node to expand the path of. |
|
the current position of the path. |
|
the variation in the path. |
|
the energy of the system. |
Returns : |
TRUE if a new path is started. |
Since 3.6
void visu_pathes_pinPositions (VisuPathes *pathes
,VisuData *data
);
Use the current positions of data
to extend pathes
.
|
a VisuPathes object. |
|
a VisuData object. |
Since 3.6
void visu_pathes_draw (VisuPathes *pathes
);
OpenGL calls to create the pathes.
|
a set of pathes. |
Since 3.6
void visu_pathes_constrainInBox (VisuPathes *pathes
,VisuData *data
);
Modify the corrdinates of the path nodes to contraint them in a box (when applying translations for instance).
|
a VisuPathes object. |
|
a VisuData object. |
Since 3.6
gboolean visu_pathes_exportToXML (const VisuPathes *pathes
,const gchar *filename
,GError **error
);
Write an XML file with the description of the given pathes
.
|
a VisuPathes object. |
|
a location on disk. |
|
a pointer on an error. |
Returns : |
TRUE if no error. |
Since 3.6
gboolean visu_pathes_parseFromXML (const gchar *filename
,VisuPathes *pathes
,GError **error
);
Read an XML containing a description of pathes
. pathes
is newly
created on success and should be freed with visu_pathes_free()
.
|
a location on disk. |
|
a VisuPathes object. |
|
a pointer on an error. |
Returns : |
TRUE on success. |
Since 3.6
void visu_pathes_setTranslation (VisuPathes *pathes
,float cartCoord[3]
);
Change the translation of the path, stored in cartesian coordinates.
|
a VisuPathes object. |
|
three floats. |
Since 3.6
gboolean visu_pathes_setShade (VisuPathes *pathes
,Shade *shade
);
Set the colourisation scheme for the path.
|
a VisuPathes object. |
|
a Shade object. |
Returns : |
TRUE is the scheme is changed. |
Since 3.6
Shade* visu_pathes_getShade (VisuPathes *pathes
);
The pathes are drawn with a colourisation scheme.
|
a VisuPathes object. |
Returns : |
the Shade used by the pathes .
|
Since 3.6
guint visu_pathes_getLength (VisuPathes *pathes
);
Get the number of steps stored in a VisuPathes.
|
a VisuPathes object. |
Returns : |
the number of steps. |
Since 3.6
gboolean visu_geodiff_new (VisuData *dataRef
,VisuData *data
,gboolean reorder
);
Compare the position of each VisuNode of dataRef
and data
,
the result is store as a property of data
and can be visualise
using visu_geodiff_setActive()
. If reorder
is TRUE, the nodes in
data
will be modified to follow the ordering of dataRef
.
|
a VisuData object ; |
|
another VisuData object. |
|
a boolean. |
Returns : |
TRUE if a difference is possible (same number of nodes). |
Since 3.5
gboolean visu_geodiff_setActive (gboolean value
);
Visualise or not a geometry difference that has been previously
obtained using visu_geodiff_new()
. The representation is done via
arrows positioned on nodes.
|
a boolean. |
Returns : |
TRUE if the status of the geometry difference changed. |
Since 3.5
void visu_geodiff_rebuildList (VisuData *dataObj
);
Create the OpenGL list holding the representation of a geometry difference.
|
a VisuData containing a geometry diff. |
Since 3.5
gboolean visu_geodiff_hasData (VisuData *data
);
A set coordinate differences can be associated to a VisuData using visu_geodiff_new()
.
|
a VisuData object. |
Returns : |
TRUE if the given data has a set of differences associated.
|
Since 3.6
gchar* visu_geodiff_export (VisuData *data
);
Create a string with differences of coordinates stored in data
in
cartesian coordinates.
|
a VisuData object. |
Returns : |
a new string that should be freed after use. |
Since 3.6
void visu_geodiff_getPeriodicDistance (float diff[3]
,VisuData *data
,VisuNode *node1
,VisuNode *node2
);
Compute the shortest distance between node1
and node2
of data
taking into account the periodic boundary conditions.
|
a location to store the shift. |
|
a VisuData object. |
|
a VisuNode object. |
|
another VisuNode object. |
Since 3.5