| V_Sim API - Reference Manual | ||||
|---|---|---|---|---|
| Top | Description | ||||
surfaces_pointssurfaces_points — Define a structure to store a set of triangles defining a surface. |
#define VISU_SURFACES_POINTS_OFFSET_NORMAL #define VISU_SURFACES_POINTS_OFFSET_TRANSLATION #define VISU_SURFACES_POINTS_OFFSET_USER struct VisuSurfacesPoints; void visu_surfaces_points_allocate (VisuSurfacesPoints *points,int nsurf,int npolys,int npoints); void visu_surfaces_points_check (VisuSurfacesPoints *points); void visu_surfaces_points_free (VisuSurfacesPoints *points); void visu_surfaces_points_init (VisuSurfacesPoints *points,int bufferSize); void visu_surfaces_points_remove (VisuSurfacesPoints *points,guint pos); void visu_surfaces_points_transform (VisuSurfacesPoints *points,float trans[3][3]); void visu_surfaces_points_translate (VisuSurfacesPoints *points,float xyz[3]);
This structure is used to store and draw polyedges as a set of XYZ points and a set of link to them.
#define VISU_SURFACES_POINTS_OFFSET_NORMAL 3
The offset to read the normal values in poly_points.
#define VISU_SURFACES_POINTS_OFFSET_TRANSLATION 6
The offset to read the translation values in poly_points.
#define VISU_SURFACES_POINTS_OFFSET_USER 9
The offset to read the user values in poly_points.
struct VisuSurfacesPoints {
/* Number of different surfaces. */
guint nsurf;
/* This is the size of additional data on each points in addition to
(x,y,z) coordinates, normal and translation. Then poly_points is
allocated to (num_points * (9 + bufferSize)). */
guint bufferSize;
/* Number of polygons */
guint num_polys, num_points;
/* Number of polygons per surface. */
guint *num_polys_surf;
/* Give the number of the surface when the number of the
polygon is given. */
int *poly_surf_index;
/* Return the number of vertices when the id of
the polygon is given. */
guint *poly_num_vertices;
/* Return the id in poly_points_data of the vertice j of polygon i. */
guint **poly_vertices;
/* Vectors giving points and normal of the vertice i. */
float **poly_points_data;
};
This structure stores geometric description of surfaces. Several surfaces are stored in a single structure for improved performances.
guint |
number of surfaces encoded in this structure ; |
guint |
number of stored float in addition to coordinates and normals ; |
guint |
number of polygoins stored in this structure ; |
guint |
number of vertices stored in this structure ; |
guint * |
number of visible polygons stored in this structure per surface ; |
| gives the id of the surface for each polygon, this value ranges from - nsurf to + nsurf. abs(id - 1) gives the index of the surface the polygon is attached to. If values are negative, then the polygon is currently not used ; | |
guint * |
gives the number of vertices used by each polygons ; |
guint ** |
returns the id j of the vertices of polygon i ; |
| vectors giving additional data of vertex i. |
void visu_surfaces_points_allocate (VisuSurfacesPoints *points,int nsurf,int npolys,int npoints);
Allocate the arrays to store a set of points.
|
a pointer on a set of points (not allocated) ; |
|
the number of stored surfaces ; |
|
the number of stored polygons ; |
|
the corresponding number of points ; |
void visu_surfaces_points_check (VisuSurfacesPoints *points);
A debug routines to check that all pointers and size are relevant. It should not be used outside a debug area because it can be slow.
|
a set of points. |
void visu_surfaces_points_free (VisuSurfacesPoints *points);
Free all allocated arrays of the given set of points. The point structure itself is not freed.
|
a set of points. |
void visu_surfaces_points_init (VisuSurfacesPoints *points,int bufferSize);
Initialise a VisuSurfacesPoints structure. It must be done before any use.
|
a pointer on a set of points (not initialised) ; |
|
the number of additional data to coordinates and normals. |
void visu_surfaces_points_remove (VisuSurfacesPoints *points,guint pos);
Remove the points belonging to surface number pos.
|
a set of points ; |
|
an integer between 0 and points->nsurf. |
void visu_surfaces_points_transform (VisuSurfacesPoints *points,float trans[3][3]);
Apply trans matrix to all vertices coordinates stored by points.
|
a set of points. |
|
a matrix. |
Since 3.7
void visu_surfaces_points_translate (VisuSurfacesPoints *points,float xyz[3]);
In devel...
|
a set of points. |
|
a given translation in cartesian coordinates. |