geometry

geometry — different routines to do high level geometry studies on a box or a set of boxes.

Synopsis

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                        ();

Description

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.

Details

VisuPathes

typedef struct VisuPathes_ VisuPathes;

An opaque structure to save a set of pathes.

Since 3.6


visu_pathes_new ()

VisuPathes*         visu_pathes_new                     (float translation[3]);

Create a new VisuPathes object.

translation :

the current box translation (cartesian).

Returns :

the newly create object VisuPathes, to be freed with visu_pathes_free().

Since 3.6


visu_pathes_free ()

void                visu_pathes_free                    (VisuPathes *pathes);

Free a set of pathes.

pathes :

a VisuPathes object.

Since 3.6


visu_pathes_empty ()

void                visu_pathes_empty                   (VisuPathes *pathes);

Reinitialise internal values of a given pathes.

pathes :

a VisuPathes object.

Since 3.6


visu_pathes_addFromDiff ()

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.

data :

a VisuData object with a geometry difference (see visu_geodiff_new()).

pathes :

the set of pathes to extend.

Returns :

TRUE if new pathes have been added.

Since 3.6


visu_pathes_addNodeStep ()

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.

pathes :

a set of pathes.

time :

the flag that give the number of expansion to update.

nodeId :

the node to expand the path of.

xyz :

the current position of the path.

dxyz :

the variation in the path.

energy :

the energy of the system.

Returns :

TRUE if a new path is started.

Since 3.6


visu_pathes_pinPositions ()

void                visu_pathes_pinPositions            (VisuPathes *pathes,
                                                         VisuData *data);

Use the current positions of data to extend pathes.

pathes :

a VisuPathes object.

data :

a VisuData object.

Since 3.6


visu_pathes_draw ()

void                visu_pathes_draw                    (VisuPathes *pathes);

OpenGL calls to create the pathes.

pathes :

a set of pathes.

Since 3.6


visu_pathes_constrainInBox ()

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).

pathes :

a VisuPathes object.

data :

a VisuData object.

Since 3.6


visu_pathes_exportToXML ()

gboolean            visu_pathes_exportToXML             (const VisuPathes *pathes,
                                                         const gchar *filename,
                                                         GError **error);

Write an XML file with the description of the given pathes.

pathes :

a VisuPathes object.

filename :

a location on disk.

error :

a pointer on an error.

Returns :

TRUE if no error.

Since 3.6


visu_pathes_parseFromXML ()

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().

filename :

a location on disk.

pathes :

a VisuPathes object.

error :

a pointer on an error.

Returns :

TRUE on success.

Since 3.6


visu_pathes_setTranslation ()

void                visu_pathes_setTranslation          (VisuPathes *pathes,
                                                         float cartCoord[3]);

Change the translation of the path, stored in cartesian coordinates.

pathes :

a VisuPathes object.

cartCoord :

three floats.

Since 3.6


visu_pathes_setShade ()

gboolean            visu_pathes_setShade                (VisuPathes *pathes,
                                                         Shade *shade);

Set the colourisation scheme for the path.

pathes :

a VisuPathes object.

shade :

a Shade object.

Returns :

TRUE is the scheme is changed.

Since 3.6


visu_pathes_getShade ()

Shade*              visu_pathes_getShade                (VisuPathes *pathes);

The pathes are drawn with a colourisation scheme.

pathes :

a VisuPathes object.

Returns :

the Shade used by the pathes.

Since 3.6


visu_pathes_getLength ()

guint               visu_pathes_getLength               (VisuPathes *pathes);

Get the number of steps stored in a VisuPathes.

pathes :

a VisuPathes object.

Returns :

the number of steps.

Since 3.6


visu_geodiff_new ()

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.

dataRef :

a VisuData object ;

data :

another VisuData object.

reorder :

a boolean.

Returns :

TRUE if a difference is possible (same number of nodes).

Since 3.5


visu_geodiff_setActive ()

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.

value :

a boolean.

Returns :

TRUE if the status of the geometry difference changed.

Since 3.5


visu_geodiff_rebuildList ()

void                visu_geodiff_rebuildList            (VisuData *dataObj);

Create the OpenGL list holding the representation of a geometry difference.

dataObj :

a VisuData containing a geometry diff.

Since 3.5


visu_geodiff_hasData ()

gboolean            visu_geodiff_hasData                (VisuData *data);

A set coordinate differences can be associated to a VisuData using visu_geodiff_new().

data :

a VisuData object.

Returns :

TRUE if the given data has a set of differences associated.

Since 3.6


visu_geodiff_export ()

gchar*              visu_geodiff_export                 (VisuData *data);

Create a string with differences of coordinates stored in data in cartesian coordinates.

data :

a VisuData object.

Returns :

a new string that should be freed after use.

Since 3.6


visu_geodiff_getPeriodicDistance ()

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.

diff :

a location to store the shift.

data :

a VisuData object.

node1 :

a VisuNode object.

node2 :

another VisuNode object.

Since 3.5


geometryInit ()

void                geometryInit                        ();