![]() |
![]() |
![]() |
V_Sim API - Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
surfaces_pointssurfaces_points — Define a structure to store a set of triangles defining a surface. |
#define SurfacesPoints_normalOffset #define SurfacesPoints_translationOffset #define SurfacesPoints_userOffset SurfacesPoints; void isosurfacesPointsInit (SurfacesPoints *points
,int bufferSize
); void isosurfacesPointsAllocate (SurfacesPoints *points
,int nsurf
,int npolys
,int npoints
); void isosurfacesPointsFree (SurfacesPoints *points
); void isosurfacesPointsRemove (SurfacesPoints *points
,int pos
); void isosurfacesPointsTranslate (SurfacesPoints *points
,float xyz[3]
); void isosurfacesPointsCheck (SurfacesPoints *points
);
This structure is used to store and draw polyedges as a set of XYZ points and a set of link to them.
#define SurfacesPoints_normalOffset 3
The offset to read the normal values in poly_points.
#define SurfacesPoints_translationOffset 6
The offset to read the translation values in poly_points.
#define SurfacesPoints_userOffset 9
The offset to read the user values in poly_points.
typedef struct { /* Number of different surfaces. */ int 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)). */ int bufferSize; /* Number of polygons */ int num_polys, num_points; /* Number of polygons per surface. */ int *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. */ int *poly_num_vertices; /* Return the id in poly_points_data of the vertice j of polygon i. */ int **poly_vertices; /* Vectors giving points and normal of the vertice i. */ float **poly_points_data; } SurfacesPoints;
This structure stores geometric description of surfaces. Several surfaces are stored in a single structure for improved performances.
number of surfaces encoded in this structure ; | |
number of stored float in addition to coordinates and normals ; | |
number of polygoins stored in this structure ; | |
number of vertices stored in this structure ; | |
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 ; | |
gives the number of vertices used by each polygons ; | |
returns the id j of the vertices of polygon i ; | |
vectors giving additional data of vertex i. |
void isosurfacesPointsInit (SurfacesPoints *points
,int bufferSize
);
Initialise a SurfacesPoints 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 isosurfacesPointsAllocate (SurfacesPoints *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 isosurfacesPointsFree (SurfacesPoints *points
);
Free all allocated arrays of the given set of points. The point structure itself is not freed.
|
a set of points. |
void isosurfacesPointsRemove (SurfacesPoints *points
,int pos
);
Remove the points belonging to surface number pos
.
|
a set of points ; |
|
an integer between 0 and points->nsurf. |
void isosurfacesPointsTranslate (SurfacesPoints *points
,float xyz[3]
);
In devel...
|
a set of points. |
|
a given translation in cartesian coordinates. |
void isosurfacesPointsCheck (SurfacesPoints *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. |