![]() |
![]() |
![]() |
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. |