visu_pickMesure

visu_pickMesure — Some methods to treat a VisuPick informations.

Synopsis

enum                PickMesureType;
                    PickMesure;
void                initPick_module                     ();
gchar*              pickMesureGet_errors                (PickMesure *mesureData);
gchar*              pickMesureGet_infos                 (PickMesure *mesureData);
VisuNode*           pickMesureGet_firstReference        (PickMesure *mesureData);
gboolean            pickMesureGet_newsAvailable         (PickMesure *mesureData,
                                                         PickMesureType *type);
VisuNode*           pickMesureGet_selectedNode          (PickMesure *mesureData);
float*              pickMesureGet_drag                  (PickMesure *mesureData);
int                 pickMesureGet_regionNNodes          (PickMesure *mesureData);
GList*              pickMesureGet_regionNodes           (PickMesure *mesureData);
void                pickMesureSet_storeDistance         (PickMesure *mesureData,
                                                         gboolean storeDistance);
void                pickMesureSet_formatedOutput        (PickMesure *mesureData,
                                                         gboolean formatedOutput);
void                pickMesureSet_highlight             (PickMesure *mesureData,
                                                         int idNode,
                                                         gboolean status);
void                pickMesureSet_dragMove              (PickMesure *mesureData,
                                                         float dx,
                                                         float dy,
                                                         float dz);
void                pickMesureSet_dragStart             (PickMesure *mesureData,
                                                         int nodeId);
void                pickMesureSet_dragStop              (PickMesure *mesureData);
void                pickMesureSet_pickNode              (PickMesure *mesureData,
                                                         int nodeId,
                                                         PickMesureType type);
void                pickMesureSet_pickRegion            (PickMesure *mesureData,
                                                         GList *nodeIds);
void                pickMesureToggle_highlight          (PickMesure *mesureData,
                                                         GList *idNodes);
gboolean            pickMesureRemove_allDistanceMarks   (PickMesure *mesureData);
gboolean            pickMesureRemove_allMarks           (PickMesure *mesureData);
gboolean            pickMesureRemove_allHighlights      (PickMesure *mesureData);
void                pickMesureUpdate                    (VisuData *newData,
                                                         VisuData *oldData);

Description

The pick mesures work on static variables, thus only one pick session is possible at a time. Each time a node is selected, marksAndMesures() should be called. To retrieve then the results of the measurements, getPickMesureInfos() and getPickMesureErrors() are available.

Details

enum PickMesureType

typedef enum
  {
    PICK_SELECTED,
    PICK_REFERENCE_1,
    PICK_REFERENCE_2,
    PICK_REGION,
    PICK_DRAG_START,
    PICK_DRAG_MOVE,
    PICK_DRAG_STOP
  } PickMesureType;

These values are used with pickMesureSet_pickNode() to specify that the selected node is a simple one or a reference.

PICK_SELECTED

a node has been selected with simple clic ;

PICK_REFERENCE_1

a node has been selected has a first reference ;

PICK_REFERENCE_2

a node has been selected has a second reference ;

PICK_REGION

a list of nodes as been selected ;

PICK_DRAG_START

the selected node has been picked for a drag ;

PICK_DRAG_MOVE

the selected node is moving ;

PICK_DRAG_STOP

the selected node has just been released from a drag.

PickMesure

typedef struct _PickMesure PickMesure;

Short way to address PickMesure_struct objects.


initPick_module ()

void                initPick_module                     ();

Call by V_Sim on startup, don't use it.


pickMesureGet_errors ()

gchar*              pickMesureGet_errors                (PickMesure *mesureData);

When a pick session is running with the format flag (see pickMesureSet_formatedOutput() for deatils), calls to pickMesureSet_selection() creates strings that represent the values of the mesure. If error occurs, they are retrievable with this method.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

a string (own by V_Sim, should not be freed).

pickMesureGet_infos ()

gchar*              pickMesureGet_infos                 (PickMesure *mesureData);

When a pick session is running with the format flag (see pickMesureSet_formatedOutput() for deatils), calls to pickMesureSet_selection() creates strings that represent the values of the mesure. These values are retrievable with this method.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

a string (own by V_Sim, should not be freed).

pickMesureGet_firstReference ()

VisuNode*           pickMesureGet_firstReference        (PickMesure *mesureData);

The first reference is a store node.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

the node that has been picked as first reference, or NULL if none.

pickMesureGet_newsAvailable ()

gboolean            pickMesureGet_newsAvailable         (PickMesure *mesureData,
                                                         PickMesureType *type);

When a pick is done, maybe nothing interesting happen, get informed with this method.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

type :

if not NULL, contains on output the kind of news available.

Returns :

TRUE if values stored in the given mesureData have changed.

pickMesureGet_selectedNode ()

VisuNode*           pickMesureGet_selectedNode          (PickMesure *mesureData);

The selected node is a node selected by a normal pick, i.e. neither a first nor a second reference.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

the last selected node, or NULL if none.

pickMesureGet_drag ()

float*              pickMesureGet_drag                  (PickMesure *mesureData);

Retrieve the translation vector in a drag session.

mesureData :

a PickMesure structure.

Returns :

a three float vector owned by V_Sim.

pickMesureGet_regionNNodes ()

int                 pickMesureGet_regionNNodes          (PickMesure *mesureData);

Return only the number of selected nodes in a region, without actually creating the list. See pickMesureGet_regionNodes() to get this list.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

the number of selected nodes in a region.

pickMesureGet_regionNodes ()

GList*              pickMesureGet_regionNodes           (PickMesure *mesureData);

Create a list of VisuNode from a selected region. There should be a selected region, see pickMesureGet_newsAvailable().

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

a newly created list of selected nodes. Should be freed with g_list_free() after use.

pickMesureSet_storeDistance ()

void                pickMesureSet_storeDistance         (PickMesure *mesureData,
                                                         gboolean storeDistance);

If this flag is TRUE, distance marks are used. If FALSE, only future distance marks are disable. Previously stored distance marks are kept, use pickMesureRemove_allDistanceMarks() to remove them all.

mesureData :

a PickMesure structure that contains the informations about picked nodes ;

storeDistance :

a boolean.

pickMesureSet_formatedOutput ()

void                pickMesureSet_formatedOutput        (PickMesure *mesureData,
                                                         gboolean formatedOutput);

If this flag is TRUE, one can retrieve some formatted output using the getPickMesureInfos() and getPickMesureErrors() methods.

mesureData :

a PickMesure structure that contains the informations about picked nodes ;

formatedOutput :

a boolean.

pickMesureSet_highlight ()

void                pickMesureSet_highlight             (PickMesure *mesureData,
                                                         int idNode,
                                                         gboolean status);

Put an highlight (or remove it) on a given node. The OpenGL area should be redraw after the call.

mesureData :

a PickMesure structure ;

idNode :

the node to highlight ;

status :

switch on or off the highlight.

pickMesureSet_dragMove ()

void                pickMesureSet_dragMove              (PickMesure *mesureData,
                                                         float dx,
                                                         float dy,
                                                         float dz);

Update the information of measurement when drag is done with the given translation vector.

mesureData :

a PickMesure structure ;

dx :

a variation in cartesian coordinates ;

dy :

a variation in cartesian coordinates ;

dz :

a variation in cartesian coordinates.

pickMesureSet_dragStart ()

void                pickMesureSet_dragStart             (PickMesure *mesureData,
                                                         int nodeId);

Update the information of measurement when drag is begun on node nodeId.

mesureData :

a PickMesure structure ;

nodeId :

a node id.

pickMesureSet_dragStop ()

void                pickMesureSet_dragStop              (PickMesure *mesureData);

Update the information of measurement when drag is stopped.

mesureData :

a PickMesure structure.

pickMesureSet_pickNode ()

void                pickMesureSet_pickNode              (PickMesure *mesureData,
                                                         int nodeId,
                                                         PickMesureType type);

Update the information of measurement when the nodeId is selected. See PickMesureType for further information on the different kind of possible selection. For this method, only PICK_SELECTED, PICK_REFERENCE_1 and PICK_REFERENCE_2 are possible. See pickMesureGet_newsAvailable() to catch possible changes in a callback.

Strings are created to represent the return of the mesure (if this has been activated using pickMesureSet_formatedOutput()). These strings are available with a call to pickMesureGet_infos() and pickMesureGet_errors().

mesureData :

a PickMesure structure ;

nodeId :

a node id ;

type :

a value in PickMesureType.

pickMesureSet_pickRegion ()

void                pickMesureSet_pickRegion            (PickMesure *mesureData,
                                                         GList *nodeIds);

Update the information of measurement when a region containing nodeIds is selected. See pickMesureGet_newsAvailable() to catch possible changes in a callback.

mesureData :

a PickMesure structure ;

nodeIds :

a list of node ids.

pickMesureToggle_highlight ()

void                pickMesureToggle_highlight          (PickMesure *mesureData,
                                                         GList *idNodes);

Toggle the highlight for the given nodes.

mesureData :

a PickMesure structure ;

idNodes :

a list of node ids (use GPOINTER_TO_INT() to read them).

pickMesureRemove_allDistanceMarks ()

gboolean            pickMesureRemove_allDistanceMarks   (PickMesure *mesureData);

Call this method to erase all previously marked distances.

mesureData :

a PickMesure structure that contains the informations about picked nodes.

Returns :

TRUE if the "OpenGLAskForReDraw" signal show be emitted.

pickMesureRemove_allMarks ()

gboolean            pickMesureRemove_allMarks           (PickMesure *mesureData);

Erase all marks corresponding to given object.

mesureData :

a PickMesure structure that contains the informations about Nodes with marks that need to be erased.

Returns :

TRUE if the "OpenGLAskForReDraw" signal show be emitted.

pickMesureRemove_allHighlights ()

gboolean            pickMesureRemove_allHighlights      (PickMesure *mesureData);

It empties the list of all highlights.

mesureData :

a PickMesure structure.

Returns :

TRUE if the redraw signal should be emitted.

pickMesureUpdate ()

void                pickMesureUpdate                    (VisuData *newData,
                                                         VisuData *oldData);

This method try to retrieve a PickMesure object associated to each given VisuData object and to update the marks and distances on the new from the values of the old.

newData :

a VisuData object (can be NULL) ;

oldData :

a VisuData object (can be NULL).