![]() |
![]() |
![]() |
V_Sim API - Reference Manual | ![]() |
---|---|---|---|---|
Top | Description | Object Hierarchy | Properties | Signals |
#include <visu_nodes.h> #define VISU_DATA_TYPE #define VISU_DATA (obj) #define VISU_DATA_CLASS (klass) #define IS_VISU_DATA_TYPE (obj) #define IS_VISU_DATA_CLASS (klass) #define VISU_DATA_GET_CLASS (obj) VisuDataPrivate; VisuData; VisuDataClass; void (*VisuDataColorFunc) (VisuData *visuData
,float rgba[4]
,VisuElement *ele
,VisuNode *node
); float (*VisuDataScalingFunc) (VisuData *visuData
,VisuNode *node
); GType visu_data_get_type (void
); VisuData* visu_data_new (void
); VisuData* visu_data_newWithSize (guint w
,guint h
); VisuData* visu_data_newWithView (VisuOpenGLView *view
,gboolean autoAdjust
); int visu_data_getObjectList (VisuData *data
); #define EXT_VISU_DATA_ID enum VisuDataBoxBoundaries; int visu_data_setPopulation (VisuData *data
,unsigned int nbOfTypes
,unsigned int *nbOfNodesPerVisuElement
,VisuElement **visu_element_Used
); gboolean visu_data_allocatePopulation (VisuData *data
,GArray *nNodesPerElement
,GArray *elements
); gboolean visu_data_allocatePopulationByNames (VisuData *data
,GArray *nNodesPerElement
,GArray *elementNames
); void visu_data_freePopulation (VisuData *data
); void visu_data_addFile (VisuData *data
,gchar *file
,int kind
,ToolFileFormat *format
); void visu_data_removeAllFiles (VisuData *data
); gchar* visu_data_getFile (VisuData *data
,int kind
,ToolFileFormat **format
); gchar* visu_data_getFilesAsLabel (VisuData *data
); void visu_data_setFileCommentary (VisuData *data
,gchar *commentary
,gint iSet
); gchar* visu_data_getFileCommentary (VisuData *data
,gint iSet
); void visu_data_setNSubset (VisuData *data
,int nSet
); int visu_data_getNSubset (VisuData *data
); void visu_data_setISubset (VisuData *data
,int iSet
); int visu_data_getISubset (VisuData *data
); gboolean visu_data_compareElements (VisuData *data1
,VisuData *data2
); void visu_data_setChangeElementFlag (VisuData *data
,gboolean changeElement
); gboolean visu_data_getChangeElementFlag (VisuData *data
); float visu_data_getAllElementExtens (VisuData *dataObj
); VisuNode* visu_data_addNodeFromElement (VisuData *data
,VisuElement *ele
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
); VisuNode* visu_data_addNodeFromElementName (VisuData *data
,gchar *name
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
); VisuNode* visu_data_addNodeFromIndex (VisuData *data
,unsigned int position
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
); VisuNode* visu_data_getNodeFromNumber (VisuData *data
,unsigned int number
); VisuNodeArray* visu_data_getNodeArray (VisuData *data
); void visu_data_setColorFunc (VisuData *data
,VisuDataColorFunc func
); gboolean visu_data_hasUserColorFunc (VisuData *data
); gboolean visu_data_getUserColor (VisuData *data
,VisuElement *ele
,VisuNode *node
,float rgba[4]
); float* visu_data_getXYZtranslation (VisuData *data
); gboolean visu_data_setXYZtranslation (VisuData *data
,float xyz[3]
); void visu_data_convertXYZToReduced (VisuData *data
,GArray *xyz
,float *u
,float *v
,float *w
); void visu_data_convertReducedToXYZ (VisuData *data
,GArray *red
,float *x
,float *y
,float *z
); void visu_data_convertXYZtoBoxCoordinates (VisuData *data
,float boxCoord[3]
,float xyz[3]
); void visu_data_convertBoxCoordinatestoXYZ (VisuData *data
,float xyz[3]
,float boxCoord[3]
); void visu_data_convertFullCartesianToSpherical (VisuData *data
,float sph[3]
,float xyz[3]
); void visu_data_getBoxMatrix (VisuData *data
,float matrix[3][3]
); void visu_data_getBoxMatrixD0 (VisuData *data
,double matrix[3][3]
); void visu_data_setBoxGeometry (VisuData *data
,double geometry[6]
,VisuDataBoxBoundaries bc
); gboolean visu_data_setBoxGeometryFull (VisuData *data
,double geometry[3][3]
,VisuDataBoxBoundaries bc
); void visu_data_applyBoxGeometry (VisuData *data
); float visu_data_getBoxGeometry (VisuData *data
,int vector
); gboolean visu_data_getNodeBoxFromNumber (VisuData *data
,guint nodeId
,int nodeBox[3]
); gboolean visu_data_getNodeBoxFromCoord (VisuData *data
,float xcart[3]
,int nodeBox[3]
); void visu_data_getBoxVertices (VisuData *data
,float v[8][3]
,gboolean withExtension
); void visu_data_getBoxSpan (VisuData *data
,float span[2]
); ToolUnits visu_data_getUnit (VisuData *data
); gboolean visu_data_setUnit (VisuData *data
,ToolUnits unit
); VisuDataBoxBoundaries visu_data_getBoundaryConditions (VisuData *data
); void visu_data_setTightBox (VisuData *data
); gboolean visu_data_constrainedElementInTheBox (VisuData *data
,VisuElement *element
); gboolean visu_data_constrainedInTheBox (VisuData *data
); gboolean visu_data_constrainedFree (VisuData *data
); gboolean visu_data_getTranslationStatus (VisuData *data
); gboolean visu_data_replicate (VisuData *data
,float extension[3]
,gboolean *rebuild
); gboolean visu_data_restore (VisuData *data
); void visu_data_getExtension (VisuData *dataObj
,float extension[3]
); float* visu_data_getBoxExtens (VisuData *dataObj
); void visu_data_getBoxLengths (VisuData *dataObj
,float *ext1
,float *ext2
); void visu_data_getBoxCentre (VisuData *dataObj
,float centre[3]
); void visu_data_getNodeCoordinates (VisuData *data
,VisuNode *node
,float *x
,float *y
,float *z
); void visu_data_getNodePosition (VisuData *data
,VisuNode *node
,float coord[3]
); void visu_data_getReducedNodePosition (VisuData *data
,VisuNode *node
,float red[3]
); VisuNodeInfo* visu_data_getDistanceList (VisuData *data
,guint nodeId
,float *minVal
); gboolean visu_data_setNewBasisFromNodes (VisuData *data
,guint nO
,guint nA
,guint nB
,guint nC
); gboolean visu_data_setNewBasis (VisuData *data
,float matA[3][3]
,float O[3]
); gboolean visu_data_reorder (VisuData *data
,VisuData *dataRef
); void visu_data_createNodes (VisuData *data
,VisuElement *ele
); void visu_data_createNode (VisuData *data
,VisuNode *node
); void visu_data_createAllNodes (VisuData *data
); void visu_data_createAllElements (VisuData *data
); void visu_data_emitAskForShowHideNodes (VisuData *data
,gboolean *redraw
); void visu_data_emitNodePositionChanged (VisuData *data
); void visu_data_emitNodeRenderedChange (VisuData *data
); guint visu_data_addTimeout (VisuData *data
,guint time
,GSourceFunc func
,gpointer user_data
); gboolean visu_data_removeTimeout (VisuData *data
,guint timeoutId
); VisuOpenGLView* visu_data_getOpenGLView (VisuData *data
); gboolean visu_data_setAngleOfView (VisuData *data
,float valueTheta
,float valuePhi
,float valueOmega
,int mask
); gboolean visu_data_setPositionOfView (VisuData *data
,float valueX
,float valueY
,int mask
); gboolean visu_data_setZoomOfView (VisuData *data
,float value
); int visu_data_setPerspectiveOfView (VisuData *data
,float value
); int visu_data_setSizeOfView (VisuData *data
,guint width
,guint height
); void visu_data_emitFacettesChanged (VisuData *data
); void visu_data_setNodeScalingFunc (VisuData *data
,VisuDataScalingFunc scaling
); float visu_data_getNodeScalingFactor (VisuData *data
,VisuNode *node
); GList* visu_data_getAllObjects (void
); void visu_data_removeNodes (VisuData *data
,int *nodeNumbers
); enum VisuDataIterType; VisuDataIter; void visu_data_iterNew (VisuData *data
,VisuDataIter *iter
); void visu_data_iterStart (VisuData *data
,VisuDataIter *iter
); void visu_data_iterStartVisible (VisuData *data
,VisuDataIter *iter
); void visu_data_iterStartNumber (VisuData *data
,VisuDataIter *iter
); void visu_data_iterRestartNode (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNext (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNextNode (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNextNodeNumber (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNextNodeOriginal (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNextElement (VisuData *data
,VisuDataIter *iter
); void visu_data_iterNextVisible (VisuData *data
,VisuDataIter *iter
); gboolean visu_data_iter_next (VisuDataIter *dataIter
); gboolean visu_data_iter_next2 (VisuDataIter *iter1
,VisuDataIter *iter2
);
"BoxSizeChanged" : Run Last / No Recursion / No Hooks "NodeAskForShowHide" : Run Last / No Recursion / No Hooks "NodeMaterialChanged" : Run Last / No Recursion / No Hooks "NodePopulationDecrease" : Run Last / No Recursion / No Hooks "NodePopulationDefined" : Run Last / No Recursion / No Hooks "NodePopulationIncrease" : Run Last / No Recursion / No Hooks "NodePositionChanged" : Run Last / No Recursion / No Hooks "NodeRenderedChanged" : Run Last / No Recursion / No Hooks "OpenGLFacetteChanged" : Run Last / No Recursion / No Hooks "OpenGLGross" : Run Last / No Recursion / No Hooks "OpenGLNearFar" : Run Last / No Recursion / No Hooks "OpenGLPersp" : Run Last / No Recursion / No Hooks "OpenGLThetaPhiOmega" : Run Last / No Recursion / No Hooks "OpenGLWidthHeight" : Run Last / No Recursion / No Hooks "OpenGLXsYs" : Run Last / No Recursion / No Hooks "UnitChanged" : Run Last / No Recursion / No Hooks "objectFreed" : Run Last / No Recursion / No Hooks
The main goal of V_Sim is to draw lists of elements. For example, when used to render atoms, a box that contains 24 silicon atoms and 46 germanium atoms is a box with two elements (silicon and germanium) where the silicon element has 24 nodes and the germanium element has 46 nodes. This module gives then methods to create nodes (see VisuElement to create and managed elements).
All nodes are stored in a structure called VisuNodes and VisuNodes is encapsulated in a VisuData for all not-node related information. V_Sim uses one VisuData per input file(s). This structure contains a list of pointers on all the VisuElement used in this file.
To iterate on nodes, one should use the provided iterators
(see VisuDataIter) methods, like visu_data_iter_next()
.
#define VISU_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST(obj, VISU_DATA_TYPE, VisuData))
Cast the given obj
into VisuData type.
|
a GObject to cast. |
#define VISU_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST(klass, VISU_DATA_TYPE, VisuDataClass))
Cast the given klass
into VisuDataClass.
|
a GObjectClass to cast. |
#define IS_VISU_DATA_TYPE(obj) (G_TYPE_CHECK_INSTANCE_TYPE(obj, VISU_DATA_TYPE))
Test if the given ogj
is of the type of VisuData object.
|
a GObject to test. |
#define IS_VISU_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE(klass, VISU_DATA_TYPE))
Test if the given klass
is of the type of VisuDataClass class.
|
a GObjectClass to test. |
#define VISU_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS(obj, VISU_DATA_TYPE, VisuDataClass))
It returns the class of the given obj
.
|
a GObject to get the class of. |
typedef struct _VisuDataPrivate VisuDataPrivate;
Private fields for VisuData objects.
typedef struct _VisuDataClass VisuDataClass;
A short way to identify _VisuDataClass structure.
void (*VisuDataColorFunc) (VisuData *visuData
,float rgba[4]
,VisuElement *ele
,VisuNode *node
);
This prototype is used to specify an optional method to associate a color with external values to each node.
|
a pointer to the calling object ; |
|
a VisuElement ; |
|
a VisuNode ; |
|
an 4 allocated float area to store the return values.. in. array fixed-size=4. |
float (*VisuDataScalingFunc) (VisuData *visuData
,VisuNode *node
);
Interface for routine that need to rescale node
before drawing
them.
|
a pointer to the calling object ; |
|
a VisuNode ; |
Returns : |
the scaling factor. |
GType visu_data_get_type (void
);
This method returns the type of VisuData, use VISU_DATA_TYPE instead.
Returns : |
the type of VisuData. |
VisuData* visu_data_new (void
);
This creates an empty VisuData object.
Returns : |
a newly created VisuData object (its ref count is set to 1). |
VisuData* visu_data_newWithSize (guint w
,guint h
);
Create a new VisuData object with a given size for the view.
|
the width size ; |
|
the height size. |
Returns : |
a newly created object.. transfer full. |
VisuData* visu_data_newWithView (VisuOpenGLView *view
,gboolean autoAdjust
);
This creates an empty VisuData object with values for its view taken
from the given view
argument (the argument is indeed copied). If autoAdjust
is TRUE, the zoom level is automaticaly adjusted for the object to be
full size at zoom level 1.
|
an VisuOpenGLView object. |
|
a boolean. |
Returns : |
a newly created VisuData object (its ref count is set to 1).. transfer full. |
int visu_data_getObjectList (VisuData *data
);
All the drawned nodes are stored in an OpenGL list. The identifier of this list can be access with the present method.
|
a valid VisuObject ; |
Returns : |
an integer that identifies the OpenGL list of all drawn nodes. |
#define EXT_VISU_DATA_ID "AllElements"
The id used to identify this extension, see
visuExtensions_rebuildList()
for instance.
typedef enum { VISU_DATA_BOX_PERIODIC, VISU_DATA_BOX_SURFACE_XY, VISU_DATA_BOX_SURFACE_YZ, VISU_DATA_BOX_SURFACE_ZX, VISU_DATA_BOX_FREE } VisuDataBoxBoundaries;
This describes the periodicity of the bounding box in the three directions.
int visu_data_setPopulation (VisuData *data
,unsigned int nbOfTypes
,unsigned int *nbOfNodesPerVisuElement
,VisuElement **visu_element_Used
);
gboolean visu_data_allocatePopulation (VisuData *data
,GArray *nNodesPerElement
,GArray *elements
);
This method allocates the storing part of the given VisuData structure and store all the VisuNodes.
|
a VisuData object; |
|
number of VisuNode per VisuElement;. in. element-type guint. |
|
pointers to VisuElement in the same order that nNodesPerElement ;. in. element-type VisuElement*. |
Returns : |
TRUE if everything goes right. |
gboolean visu_data_allocatePopulationByNames (VisuData *data
,GArray *nNodesPerElement
,GArray *elementNames
);
This method allocates the storing part of the given VisuData structure and store all the VisuNodes.
void visu_data_freePopulation (VisuData *data
);
This method frees only the allocated memory that deals with the nodes (i.e. everything except the data of the files, the properties and the setColor method.
|
a VisuData to be freed. |
void visu_data_addFile (VisuData *data
,gchar *file
,int kind
,ToolFileFormat *format
);
This method is used to add files
of type kind
to the data
. The file
attribute is copied. The format
argument can be null.
|
a VisuData object ; |
|
a string that points to a file ; |
|
an integer to qualify the file to add ; |
|
a file format.. allow-none. |
void visu_data_removeAllFiles (VisuData *data
);
This method is used to empty the list of
known file from the given data
.
|
a VisuData object. |
gchar* visu_data_getFile (VisuData *data
,int kind
,ToolFileFormat **format
);
This prototype is used to retrieve stored
files identify by their kind
.
|
a VisuData object. |
|
an integer to qualify the required file ; |
|
a location for a file format (can be NULL). |
Returns : |
the name of a file (it should not be deleted). |
gchar* visu_data_getFilesAsLabel (VisuData *data
);
Creates a label using the list of files used to defined this data
separated by dashes.
|
a VisuData object. |
Returns : |
a newly created string with the filenames. If no filename
were used to defined data , the function returns NULL.
|
Since 3.6
void visu_data_setFileCommentary (VisuData *data
,gchar *commentary
,gint iSet
);
This method is used to store a description of the given data
. This
string is copied and commentary
can be freed. Before using this
method, the number of possible node sets must have been defined
using visu_data_setNSubset()
, if not, only iSet == 0 is allowed.
|
a VisuData object ; |
|
the message to be stored (null terminated) ; |
|
an integer. |
gchar* visu_data_getFileCommentary (VisuData *data
,gint iSet
);
Get the commentary associated to the given data
, for the given
node set.
|
a VisuData object ; |
|
an integer (>= 0). |
Returns : |
a string description (possibly empty). This string is own by V_Sim and should not be freed. |
void visu_data_setNSubset (VisuData *data
,int nSet
);
Change the number of available sets of nodes for this
VisuData. This has a side effect to delete all previously saved
file commentaries (see visu_data_setFileCommentary()
).
|
a VisuData object ; |
|
an integer. |
int visu_data_getNSubset (VisuData *data
);
Retrieve the number of available sets of nodes for this VisuData,
see visu_data_setNSubset()
.
|
a VisuData object. |
Returns : |
the number of set of nodes (1 is default). |
void visu_data_setISubset (VisuData *data
,int iSet
);
Change the current id of the set of data (ordered as in C, beginning at 0).
|
a VisuData object ; |
|
an integer. |
int visu_data_getISubset (VisuData *data
);
Retrieve the id of the current set of data (ordered as in C, beginning at 0).
|
a VisuData object. |
Returns : |
the id of the set of nodes currently loaded, -1 if none. |
gboolean visu_data_compareElements (VisuData *data1
,VisuData *data2
);
This method is used to compare the composition of the given two VisuData objects. The test is only done on VisuElement lists.
|
a VisuData object ; |
|
an other VisuData object. |
Returns : |
TRUE if the two objects contains exactly the same VisuElement objects (not one more or one less or one different), FALSE otherwise. |
void visu_data_setChangeElementFlag (VisuData *data
,gboolean changeElement
);
This method is mainly used by internal gears to set a flag. This flag control
if the data
object has the same VisuElement objects than the previously rendered one.
|
a VisuData object ; |
|
a boolean. |
gboolean visu_data_getChangeElementFlag (VisuData *data
);
V_Sim can use a flag set on data
object to know if data
has exactly the same
VisuElement list than the previously rendered one.
|
a VisuData object. |
Returns : |
TRUE if the previously rendered VisuData object has had the same VisuElement list than the given one, FALSE otherwise. |
float visu_data_getAllElementExtens (VisuData *dataObj
);
Calculate the maximum size of all VisuElement used in this
dataObj
.
|
a VisuData object. |
Returns : |
a positive size. |
VisuNode* visu_data_addNodeFromElement (VisuData *data
,VisuElement *ele
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
);
This method adds a new VisuNode to the specified VisuData. If
emitSignal
is TRUE, then NodePopulationIncrease signal is
triggered.
|
the VisuData where to add the new VisuNode ; |
|
the VisuElement kind of the new VisuNode ; |
|
its coordinates ;. in. array fixed-size=3. |
|
coordinates are in reduced coordinates ; |
|
a boolean. |
Returns : |
a pointer to the newly created node.. transfer none. |
VisuNode* visu_data_addNodeFromElementName (VisuData *data
,gchar *name
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
);
This method adds a new VisuNode to the specified VisuData. If
emitSignal
is TRUE, then NodePopulationIncrease signal is
triggered.
|
the VisuData where to add the new VisuNode ; |
|
the name of the element ; |
|
its coordinates ;. in. array fixed-size=3. |
|
coordinates are in reduced coordinates ; |
|
a boolean. |
Returns : |
a pointer to the newly created node. . transfer none. |
Since 3.6
VisuNode* visu_data_addNodeFromIndex (VisuData *data
,unsigned int position
,float xyz[3]
,gboolean reduced
,gboolean emitSignal
);
This method adds a new VisuNode to the specified VisuData. Position must be
chosen between 0 and (ntype - 1) and corresponds to the position of the array
of VisuNodes of a VisuElement. If emitSignal
is TRUE, then
NodePopulationIncrease signal is triggered.
|
the VisuData where to add the new VisuNode ; |
|
a integer corresponding to the position of a VisuElement in the array **nodes in the structure; |
|
its coordinates ;. in. array fixed-size=3. |
|
coordinates are in reduced coordinates ; |
|
a boolean. |
Returns : |
a pointer to the newly created node.. transfer none. |
VisuNode* visu_data_getNodeFromNumber (VisuData *data
,unsigned int number
);
This methods retrieves the VisuNode identified by the integer number
.
The number must be strictly positive. No eror is raised if no node corresponds
to the given number.
VisuNodeArray* visu_data_getNodeArray (VisuData *data
);
This method retrieve the VisuNodeArray associated to the given data
.
|
a VisuData object. |
Returns : |
the associated VisuNodeArray.. transfer none. |
void visu_data_setColorFunc (VisuData *data
,VisuDataColorFunc func
);
This is a little trick to colorized the nodes. It should not be used since it will probably be different in future release.
|
a VisuData object ; |
|
a method that colorize the nodes.. scope call |
gboolean visu_data_hasUserColorFunc (VisuData *data
);
Test the existence of a user defined colourisation function.
|
a VisuData object. |
Returns : |
TRUE if a user color function has been defined with
visu_data_setColorFunc() .
|
Since 3.6
gboolean visu_data_getUserColor (VisuData *data
,VisuElement *ele
,VisuNode *node
,float rgba[4]
);
If a user defined color has been set (see
visu_data_setColorFunc()
), then call this method to obtain a color
for the given node.
|
a VisuData object ; |
|
a VisuElement object ; |
|
a VisuNode object ; |
|
a location to store the color.. array fixed-size=4. |
Returns : |
TRUE if a user color has been defined. |
Since 3.6
float* visu_data_getXYZtranslation (VisuData *data
);
The nodes are rendered at thier coordinates plus a translation. This method allows to retrieve that translation.
|
a VisuData object. |
Returns : |
a newly allocated array of 3 floats. It should be freed with a call
to free() after use.. array fixed-size=3. |
gboolean visu_data_setXYZtranslation (VisuData *data
,float xyz[3]
);
This set the translations of the specified VisuData whatever previous values. The translation is done in the orthonormal referential, not the referential of the box.
|
a VisuData object ; |
|
an array of floating point values.. in. array fixed-size=3. |
Returns : |
if returns TRUE, visu_data_createAllNodes() should be called and
the 'NodePositionChanged' should be emitted.
|
void visu_data_convertXYZToReduced (VisuData *data
,GArray *xyz
,float *u
,float *v
,float *w
);
Use this method to transform cartesian into box coordinates.
|
a VisuData object ; |
|
floating point values that describes the cartesian coordinates.. in. array fixed-size=3. element-type gfloat. |
|
the x coordinate.. out caller-allocates. |
|
the y coordinate.. out caller-allocates. |
|
the z coordinate.. out caller-allocates. |
Since 3.6
void visu_data_convertReducedToXYZ (VisuData *data
,GArray *red
,float *x
,float *y
,float *z
);
Use this method to transform box coordinates into cartesian.
|
a VisuData object ; |
|
floating point values that describes the cartesian coordinates.. in. array fixed-size=3. element-type gfloat. |
|
the x coordinate.. out caller-allocates. |
|
the y coordinate.. out caller-allocates. |
|
the z coordinate.. out caller-allocates. |
Since 3.6
void visu_data_convertXYZtoBoxCoordinates (VisuData *data
,float boxCoord[3]
,float xyz[3]
);
void visu_data_convertBoxCoordinatestoXYZ (VisuData *data
,float xyz[3]
,float boxCoord[3]
);
Use this method to transform box coordinates into cartesian.
|
a VisuData object ; |
|
an array of floating point values to store the result ;. out caller-allocates. array fixed-size=3. |
|
an array of floating point values that describes the box coordinates.. in. array fixed-size=3. |
void visu_data_convertFullCartesianToSpherical (VisuData *data
,float sph[3]
,float xyz[3]
);
Convert given cartesian coordinates to spherical ones. If the box has been rotated
(see visu_data_setBoxGeometryFull()
), then the cartesian coordinates should
be the one before the rotation.
|
a VisuData object. |
|
. out caller-allocates. array fixed-size=3. |
|
. in. array fixed-size=3. |
Since 3.6
void visu_data_getBoxMatrix (VisuData *data
,float matrix[3][3]
);
This method is used when the box matrix is required. This matrix can transform
a vector given in box coordinates into a cartesian vector. If a simple vector
multication is required, then the use of visu_data_convertBoxCoordinatestoXYZ()
should be prefered.
|
a VisuData object ; |
|
an area to store the matrix.. inout. array fixed-size=3. transfer full fixed-size=3. |
void visu_data_getBoxMatrixD0 (VisuData *data
,double matrix[3][3]
);
Same as visu_data_getBoxMatrix()
but with a double precision
matrix.
|
a VisuData object ; |
|
an area to store the matrix.. inout. array fixed-size=3. transfer full fixed-size=3. |
void visu_data_setBoxGeometry (VisuData *data
,double geometry[6]
,VisuDataBoxBoundaries bc
);
This methods set the size of the box. The boundary conditions can
be specified thanks to bc
.
|
a VisuData object ; |
|
a 6 floating point array ;. in. array fixed-size=6. |
|
define the boundary conditions. |
gboolean visu_data_setBoxGeometryFull (VisuData *data
,double geometry[3][3]
,VisuDataBoxBoundaries bc
);
This methods set the size of the box. The boundary conditions can
be specified thanks to bc
. The basis set will be rotated by V_Sim
to align the given first axis with X, and put the second axis in
the XY plane. Further inclusion of nodes with visu_data_addNodeFromElement()
and friends will automatically apply the rotation if coordinates are
given in cartesian. This rotation will stop after any call to
visu_data_applyBoxGeometry()
.
|
a VisuData object ; |
|
a 9 floating point array ;. in. array fixed-size=9. |
|
define the boundary conditions. |
Returns : |
FALSE if the given box is planar. |
Since 3.6
void visu_data_applyBoxGeometry (VisuData *data
);
The box expansion is calculated. From this call, all cartesian coordinates are treated in V_Sim box definition and not a possible full definition.
|
a VisuData object. |
float visu_data_getBoxGeometry (VisuData *data
,int vector
);
Retrieve the value of a vector defining the bounding box. The vector is chosen with an int, see the visu_data_boxVector enum for more details.
|
a VisuData object ; |
|
an int corresponding to a vector of the box. |
Returns : |
the value of the required vector (always a positive value for vector = 0, 2 or 5 !). |
gboolean visu_data_getNodeBoxFromNumber (VisuData *data
,guint nodeId
,int nodeBox[3]
);
This method retrieves the value of the box associated to a node (with respect to the unit cell).
|
a VisuData object. |
|
the index of the node considered. |
|
the array to store the box of the node.. in. array fixed-size=3. |
Returns : |
TRUE if everything went well, FALSE otherwise. The box is stored in the nodeBox array. |
gboolean visu_data_getNodeBoxFromCoord (VisuData *data
,float xcart[3]
,int nodeBox[3]
);
This method retrieves the value of the box associated to the coordinates of the node (with respect to the unit cell).
|
a VisuData object. |
|
the coordinates of a node.. in. array fixed-size=3. |
|
the array to store the box of the node.. in. array fixed-size=3. |
Returns : |
TRUE if everything went well, FALSE otherwise. The box is stored in the nodeBox array. |
void visu_data_getBoxVertices (VisuData *data
,float v[8][3]
,gboolean withExtension
);
All nodes are rendered inside a bounding box, this method can be used to retrieve
it. This box is not the drawn box but the box containing all the
nodes, included possible extension. To get the box itself, use
visu_data_getBoxMatrix()
instead. One can also get the vertices of
the box itself using FALSE as withExtension
argument.
|
a VisuData object. |
|
the position of the eight vertices of the bounding box.. in. array. |
|
a boolean. |
void visu_data_getBoxSpan (VisuData *data
,float span[2]
);
Compute the two most far distance from origin in the box. The first is the negative one and the second, the positive one.
|
an VisuData object; |
|
a location to store two floats.. in. array fixed-size=2. |
ToolUnits visu_data_getUnit (VisuData *data
);
The lengths of data
may be given in a certain unit using
visu_data_setUnit()
.
|
a VisuData object. |
Returns : |
the ToolUnits of data or unit_undefined.
|
Since 3.5
gboolean visu_data_setUnit (VisuData *data
,ToolUnits unit
);
The lengths of data
may be given in a certain unit by calling this
routine. If the unit is different from the previously defined, the
coordinate are scaled accordingly.
Since 3.5
VisuDataBoxBoundaries visu_data_getBoundaryConditions (VisuData *data
);
Get the boundary conditions defined for data
.
|
a VisuData object. |
Returns : |
a VisuDataBoxBoundaries flag. |
Since 3.5
void visu_data_setTightBox (VisuData *data
);
Calculate the box geometry to have a tight box in directions that
are not periodic. If some directions are still periodic, the box
size in these directions should be setup first with
visu_data_setBoxGeometry()
.
|
a VisuData object. |
gboolean visu_data_constrainedElementInTheBox (VisuData *data
,VisuElement *element
);
Check all the nodes of the specified element
and change their coordinates if they are out
of the bounding box. The position of each node is the result of the
sum of their own position and of the box translation.
|
a VisuData object ; |
|
a VisuElement object. |
Returns : |
TRUE if visu_data_createAllNodes() should be called and
the 'NodePositionChanged' should be emitted.
|
gboolean visu_data_constrainedInTheBox (VisuData *data
);
It does the same things that visu_data_constrainedElementInTheBox()
but for all
the VisuElement of the given data
. I.e. it checks all the nodes and changes
their coordinates if they are out of the bounding box.
The position of each node is the result of the
sum of their own position and of the box translation.
|
a VisuData object. |
Returns : |
TRUE if visu_data_createAllNodes() should be called and
the 'NodePositionChanged' should be emitted.
|
gboolean visu_data_constrainedFree (VisuData *data
);
Return all the nodes to their original position, except for the global translation.
|
a VisuData object. |
Returns : |
TRUE if visu_data_createAllNodes() should be called and
the 'NodePositionChanged' should be emitted.
|
gboolean visu_data_getTranslationStatus (VisuData *data
);
When a translation is applied (even with a [0,0,0] vector), the nodes are shifted to be in the box. This routine returns the translation status of all nodes. If one of them is translated, then return value is TRUE.
|
a VisuData object. |
Returns : |
if one of the nodes is shifted. |
gboolean visu_data_replicate (VisuData *data
,float extension[3]
,gboolean *rebuild
);
This routine will create (or remove) nodes to expand the initial box to the required size. An extension of 0 means no extension, i.e. the initial box. The extension is done symmetrically in each direction toward negative and positive direction.
If the rebuild
argument is TRUE, the nodes should be rebuilt (with
visu_data_createAllNodes()
).
To remove added nodes, see visu_data_restore()
.
|
a VisuData object ; |
|
three floating point values ;. in. array fixed-size=3. |
|
a location to store a flag. |
Returns : |
TRUE if the redraw should be done. |
gboolean visu_data_restore (VisuData *data
);
Remove all nodes that have been added by a visu_data_replicate()
call.
|
a VisuData object. |
Returns : |
TRUE if some nodes has been indeed removed. |
void visu_data_getExtension (VisuData *dataObj
,float extension[3]
);
Using visu_data_replicate()
, it is possible to duplicate the primitive box
in each directions. Use this method to know the current extension. Returned
values are positive floating point values. An extension of 0. means that
only the primitive box exists, while a value of one means a duplication of
one box in each direction of the coordinate.
|
a VisuData object ; |
|
an allocated array to store the values.. in. array fixed-size=3. |
float* visu_data_getBoxExtens (VisuData *dataObj
);
This routines returns two float values giving the longest length of the bounding box, with or without extension applied.
|
a VisuData object. |
Returns : |
two floating point values. |
void visu_data_getBoxLengths (VisuData *dataObj
,float *ext1
,float *ext2
);
Equivalent function to visu_data_getBoxExtens()
.
|
a VisuData object ; |
|
the length scale ;. out caller-allocates. |
|
.... out caller-allocates. |
Since 3.6
void visu_data_getBoxCentre (VisuData *dataObj
,float centre[3]
);
centre
contains on output the cartesian coordinates of the centre
of the bounding box.
|
a VisuData object ; |
|
coordinates of the centre.. in. array fixed-size=3. |
void visu_data_getNodeCoordinates (VisuData *data
,VisuNode *node
,float *x
,float *y
,float *z
);
Wrapper for the function visu_data_getNodePosition()
in case of call
from python.
|
a VisuData object ; |
|
a VisuNode object ; |
|
the x coordinate.. out caller-allocates. |
|
the y coordinate.. out caller-allocates. |
|
the z coordinate.. out caller-allocates. |
Since 3.6
void visu_data_getNodePosition (VisuData *data
,VisuNode *node
,float coord[3]
);
void visu_data_getReducedNodePosition (VisuData *data
,VisuNode *node
,float red[3]
);
VisuNodeInfo* visu_data_getDistanceList (VisuData *data
,guint nodeId
,float *minVal
);
This routine creates an array of VisuNodeInfo, storing for each
node its node id and its distance to nodeId
. The periodicity is
NOT taken into account. The array is not distance sorted, but if
minVal
is provided, it will contain the minimal distance between
nodeId
and the other nodes.
|
a VisuData object ; |
|
a node id. |
|
a location for a float. |
Returns : |
an array of VisuNodeInfo of size the number of nodes. It
is terminated by nodeId value itself.
|
Since 3.5
gboolean visu_data_setNewBasisFromNodes (VisuData *data
,guint nO
,guint nA
,guint nB
,guint nC
);
Change the basis set by providing the new basis set from a list of
nodes. See also visu_data_setNewBasis()
. Nodes outside the new box
are killed.
|
a VisuData object. |
|
the index of node as origin. |
|
the index of node on X axis. |
|
the index of node as Y axis. |
|
the index of node as Z axis. |
Returns : |
TRUE if the new basis set is valid. |
Since 3.6
gboolean visu_data_setNewBasis (VisuData *data
,float matA[3][3]
,float O[3]
);
Change the basis set of data
according to the new definition given
by matA
and O
. Nodes outside the new box are killed. See also
visu_data_setNewBasisFromNodes()
for a convenient function using
nodes as basis set definition.
|
a VisuData object. |
|
a basis set definition. |
|
the origin cartesian coordinates. |
Returns : |
TRUE if the new basis set is valid. |
Since 3.6
gboolean visu_data_reorder (VisuData *data
,VisuData *dataRef
);
This routine modifies the node ordering of data
using the order in
dataRef
. The association is done by nearest neigbours conditions.
|
a VisuData object, to reorder. |
|
a VisuData object, to take the order from. |
Returns : |
TRUE is the reordering is successfull (i.e. all nodes of
data correspond to one of dataRef ).
|
Since 3.6
void visu_data_createNodes (VisuData *data
,VisuElement *ele
);
This creates the glObjectList that contains all the nodes of the given VisuElement.
|
a VisuData object ; |
|
a VisuElement object. |
void visu_data_createNode (VisuData *data
,VisuNode *node
);
This method call the createNode method of the current rendering method for the given node. It also calls the list of the material associated to the given node.
void visu_data_createAllNodes (VisuData *data
);
This create the glObjectList registered that contains all the nodes. This glObjectList is made of all nodes of all element whose attribute rendered is TRUE and translated to their own positions.
This method doesn't ask for redraw and VISU_ADD_REDRAW macro should be called by caller.
|
a VisuData object. |
void visu_data_createAllElements (VisuData *data
);
This method will call the createOpenGLElementFunc()
method of the current RenderingMethod
on all the nodes of the given VisuData.
|
a VisuData object. |
void visu_data_emitAskForShowHideNodes (VisuData *data
,gboolean *redraw
);
This methods is used to emit the 'NodeAskForShowHide' signal. This
signal asks all modules that may hide nodes to recompute their
hiding scheme and put in redraw
if they have changed something. Since
all listeners write in redraw
, they should modify it with an union.
redraw
is initialised at FALSE before the signal is emitted.
|
a valid VisuData object ; |
|
a pointer to a location to store if redraw
is needed after all listeners have modified the
nodes of the given data .
|
void visu_data_emitNodePositionChanged (VisuData *data
);
This method is used to emit the 'NodePositionChanged' signal. This signal asks all modules that are dependent of the nodes' positions to recompute their OpenGL lists.
|
a valid VisuData object. |
void visu_data_emitNodeRenderedChange (VisuData *data
);
This method is used to emit the 'NodeRenderedChanged' signal. This signal asks
all modules that are dependent of the nodes' visibility to recompute their
OpenGL lists. This signal is usualy emitted after a call to
visu_data_emitAskForShowHideNodes()
.
|
a valid VisuData object. |
guint visu_data_addTimeout (VisuData *data
,guint time
,GSourceFunc func
,gpointer user_data
);
This method is used to add the func
method to be called regularly at the period
time
. This methos calls in fact g_timeout_add()
with the given arguments. But
the source id is stored internaly and the timeout function is removed automatically
when the object data
is destroyed. It is convienient to add a method working
on the VisuData object that is called periodically during the life of te object.
|
a valid VisuData object ; |
|
the period of call in milliseconds ; |
|
the callback function to be called ;. scope call |
|
a pointer to some user defined informations.. closure |
Returns : |
the source id if the calling method need to work with it. To remove
the callback, don't use g_source_remove() but visu_data_removeTimeout()
to inform the VisuData object that this source has been removed and
not to remove it when the object will be destroyed.
|
gboolean visu_data_removeTimeout (VisuData *data
,guint timeoutId
);
This method is used to remove a timeout that has been associated to the given
data
(see visu_data_addTimeout()
).
|
a valid VisuData object ; |
|
a source id. |
Returns : |
TRUE if the source has been found and removed. |
VisuOpenGLView* visu_data_getOpenGLView (VisuData *data
);
Once the object data
has been initialised, an VisuOpenGLView object
is automattically attached and this method can be used to retrieve
it.
|
a VisuData object. |
Returns : |
the VisuOpenGLView attached to the given data .. transfer none. |
gboolean visu_data_setAngleOfView (VisuData *data
,float valueTheta
,float valuePhi
,float valueOmega
,int mask
);
This method is used to change the camera orientation for the given data
.
If necessary, this method will emit the 'OpenGLThetaPhiOmega' signal.
|
a VisuData object ; |
|
a floatinf point value in degrees ; |
|
a floating point value in degrees ; |
|
a floating point value in degrees ; |
|
to specified what values will be changed. |
Returns : |
1 if the 'OpenGLAskForReDraw' signal should be emitted. |
gboolean visu_data_setPositionOfView (VisuData *data
,float valueX
,float valueY
,int mask
);
This method is used to change the camera position for the given data
.
If necessary, this method will emit the 'OpenGLXsYs' signal.
|
a VisuData object ; |
|
a floatinf point value in the bounding box scale (1 is the size of the bounding box) ; |
|
a floating point value in bounding box scale ; |
|
to specified what values will be changed. |
Returns : |
1 if the 'OpenGLAskForReDraw' signal should be emitted. |
gboolean visu_data_setZoomOfView (VisuData *data
,float value
);
This method is used to change the camera zoom for the given data
.
If necessary, this method will emit the 'OpenGLGross' signal and
the 'OpenGLFacetteChanged' signal.
|
a VisuData object ; |
|
a positive floating point value. |
Returns : |
1 if the 'OpenGLAskForReDraw' signal should be emitted. |
int visu_data_setPerspectiveOfView (VisuData *data
,float value
);
This method is used to change the camera perspective for the given data
.
If necessary, this method will emit the 'OpenGLPersp' signal and
the 'OpenGLFacetteChanged' signal.
|
a VisuData object ; |
|
a positive floating point value (> 1.1). |
Returns : |
1 if the 'OpenGLAskForReDraw' signal should be emitted. |
int visu_data_setSizeOfView (VisuData *data
,guint width
,guint height
);
It changes the size of the OpenGl area and reccompute the OpenGL viewport. Warning : it doesn't change the size of the window.
|
a valid VisuData object ; |
|
the new horizontal size ; |
|
the new vertical size. |
Returns : |
1 if the 'OpenGLAskForReDraw' signal should be emitted. |
void visu_data_emitFacettesChanged (VisuData *data
);
Emit the 'OpenGLFacetteChanged' signal.
|
a valid VisuData object. |
void visu_data_setNodeScalingFunc (VisuData *data
,VisuDataScalingFunc scaling
);
Change the scaling routine when nodes are drawn.
|
a VisuData object ; |
|
a scaling routine.. scope call |
Since 3.5
float visu_data_getNodeScalingFactor (VisuData *data
,VisuNode *node
);
One can modify the size of a given node using a routine set by
visu_data_setNodeScalingFunc()
. By default the scaling is 1.
|
a VisuData object. |
|
a VisuNode object. |
Returns : |
the scaling factor to be applied to node node .
|
Since 3.5
GList* visu_data_getAllObjects (void
);
This methods is used to retrieve all VisuObject currently allocated in V_Sim. It is usefull to apply some changes on all objects (resources for example).
Returns : |
a list of V_Sim own VisuData objects.. transfer none. |
void visu_data_removeNodes (VisuData *data
,int *nodeNumbers
);
Delete some nodes using this method. The nodes are identified by their
number and have not to be of the same element. This routine raises
the "NodePopulationDecrease" signal. The nodeNumbers
argument must
be terminated with a negative value.
|
a VisuData object ; |
|
an allocated int array with number identifying nodes.. in. array. |
typedef enum { ITER_NODES_BY_TYPE, ITER_NODES_BY_NUMBER, ITER_NODES_VISIBLE, ITER_NODES_ORIGINAL, ITER_ELEMENTS } VisuDataIterType;
The kind of iterator to be used on VisuData objects.
run on nodes, as V_Sim internal storage, fastest. | |
run on nodes as entered in the input file. | |
run on visible nodes only (internal sort). | |
run on original nodes only (internal sort). | |
run on elements only. |
Since 3.6
typedef struct { VisuData *data; guint idMax; guint nAllStoredNodes; guint nElements; guint *nStoredNodes; guint iElement; VisuNode *node; VisuElement *element; VisuDataIterType type; gboolean init; } VisuDataIter;
This structure is an iterator over the nodes of a VisuData object.
Create it with visu_data_iterNew()
. Then the numbers are allocated and
correspond to the value of the VisuData object. Use visu_data_iterStart()
to initialise the iterator for a run over the nodes, visu_data_iterNext()
to associate node
and element
to the next node, or NULL if there is no
more node to run over.
VisuData * |
a pointer the iterator is associated to ; |
guint |
current higher id used to identified nodes. |
guint |
the total number of stored nodes for the associated VisuData ; |
guint |
the number of VisuElement for the associated VisuData ; |
guint * |
the number of stored nodes for each element ; |
guint |
the index corresponding to element (or -1 if no set);
|
VisuNode * |
a pointer on a current node ; |
VisuElement * |
a pointer on a current element. |
VisuDataIterType |
the kind of iterator, see VisuDataIterType. |
gboolean |
an internal flag. |
void visu_data_iterNew (VisuData *data
,VisuDataIter *iter
);
Set values to a VisuDataIter object to iterate over nodes. Its contain is initialised with the data size (number of elements, number of nodes per element...).
|
a VisuData object ; |
|
an alocated iterator.. out caller-allocates. transfer full caller-allocates. |
void visu_data_iterStart (VisuData *data
,VisuDataIter *iter
);
Initialise the node and element internal pointers for a run over the nodes.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterStartVisible (VisuData *data
,VisuDataIter *iter
);
Initialise the node and element internal pointers for a run over the visible nodes (see visu_data_iterNextVisible).
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterStartNumber (VisuData *data
,VisuDataIter *iter
);
Initialise the node and element internal pointers for a run following the node oder.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterRestartNode (VisuData *data
,VisuDataIter *iter
);
The element internal pointer must be associated. Then, it returns the node pointer to the first node for this element.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterNext (VisuData *data
,VisuDataIter *iter
);
Modify node and element internal pointers to the next node, or NULL if none remains.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterNextNode (VisuData *data
,VisuDataIter *iter
);
Modify node internal pointer to the next node, or NULL if
none remains. Contrary to visu_data_iterNext()
it does not go to the
next element if one exists.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterNextNodeNumber (VisuData *data
,VisuDataIter *iter
);
Modify node internal pointer to the next node, increasing the id of the current node. The element internal pointer is also updated accordingly. If no more nodes exist after the given one, node and element internal pointers are set to NULL.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterNextNodeOriginal (VisuData *data
,VisuDataIter *iter
);
Modify node internal pointer to the next original node, or NULL if
none remains. Contrary to visu_data_iterNext()
it does not go to the
next element if one exists.
|
a VisuData object ; |
|
a VisuDataIter object. |
Since 3.6
void visu_data_iterNextElement (VisuData *data
,VisuDataIter *iter
);
Modify element internal pointer to the next element and set node to the first one, or NULL if none remains.
|
a VisuData object ; |
|
a VisuDataIter object. |
void visu_data_iterNextVisible (VisuData *data
,VisuDataIter *iter
);
Go to the next rendered node (changing element if required).
|
a VisuData object ; |
|
a VisuDataIter object. |
gboolean visu_data_iter_next (VisuDataIter *dataIter
);
Run the iterator to go to next item.
|
a VisuDataIter object. |
Returns : |
TRUE if any item is found, FALSE otherwise. |
Since 3.6
gboolean visu_data_iter_next2 (VisuDataIter *iter1
,VisuDataIter *iter2
);
Iterator to run on a pair of different nodes.
|
a VisuDataIter object. |
|
a VisuDataIter object. |
Returns : |
TRUE if any item is found, FALSE otherwise. |
Since 3.6
"totalEnergy"
property"totalEnergy" gdouble : Read / Write / Construct
Total energy of the system (eV).
Allowed values: [-G_MAXFLOAT,G_MAXFLOAT]
Default value: 3.40282e+38
"BoxSizeChanged"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the box size is changed (because of box duplication for instance).
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.4
"NodeAskForShowHide"
signalvoid user_function (VisuData *dataObj, gpointer redraw, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when external modules should recompute their masking
effect on nodes. Location pointed by redraw
must be set to TRUE
if the visibility of at least one node is changed.
|
the object which received the signal ; |
|
a location on a boolean. |
|
user data set when the signal handler was connected. |
Since 3.2
"NodeMaterialChanged"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when one or more nodes have changed of color or material.
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.6
"NodePopulationDecrease"
signalvoid user_function (VisuData *dataObj, gpointer ids, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the number of nodes has changed,
decreasing. ids
contains all removed ids and is -1 terminated.
When emitted, nodes have already been removed, so no external
routines should keep pointers on these nodes.
|
the object which received the signal ; |
|
an array of VisuNode ids. |
|
user data set when the signal handler was connected. |
Since 3.4
"NodePopulationDefined"
signalvoid user_function (VisuData *dataObj, gpointer nodes, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the population of nodes is created or destroyed. It is possible then to associate new VisuNodeProperty for instance.
|
the object which received the signal ; |
|
a VisuNodeArray object or NULL. |
|
user data set when the signal handler was connected. |
Since 3.5
"NodePopulationIncrease"
signalvoid user_function (VisuData *dataObj, gpointer ids, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the number of nodes has changed,
increasing. ids
contains all new ids and is -1 terminated.
|
the object which received the signal ; |
|
an array of VisuNode ids. |
|
user data set when the signal handler was connected. |
Since 3.4
"NodePositionChanged"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when one or more nodes have moved, because of translations or because the user has moved them manually.
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.2
"NodeRenderedChanged"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when one or more nodes have changed of visibility. Some may have appeared, some may have disappeared.
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLFacetteChanged"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when precision of the drawn object has been changed.
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLGross"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the camera zoom factor has been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLNearFar"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the viewing field has been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLPersp"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the camera perspective factor has been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLThetaPhiOmega"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the camera angles have been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLWidthHeight"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the viewing frame has been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"OpenGLXsYs"
signalvoid user_function (VisuData *dataObj, gpointer view, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the camera position has been changed.
|
the object which received the signal ; |
|
the new VisuOpenGLView. |
|
user data set when the signal handler was connected. |
Since 3.2
"UnitChanged"
signalvoid user_function (VisuData *dataObj, gfloat factor, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the units are changed.
|
the object which received the signal ; |
|
the factor that has been applied. |
|
user data set when the signal handler was connected. |
Since 3.6
"objectFreed"
signalvoid user_function (VisuData *dataObj, gpointer user_data) : Run Last / No Recursion / No Hooks
Gets emitted when the object is been destroyed. All external objects having a reference on this VisuData should clean it.
|
the object which received the signal ; |
|
user data set when the signal handler was connected. |
Since 3.3