## surfacesPoints surfacesPoints |

## Synopsis

    #define             SurfacesPoints_normalOffset
    #define             SurfacesPoints_translationOffset
    #define             SurfacesPoints_userOffset

    void                isosurfacesPointsAllocate           (SurfacesPoints *points,
                                                             int nsurf,
                                                             int npolys,
                                                             int npoints);
    void                isosurfacesPointsCheck              (SurfacesPoints *points);
    void                isosurfacesPointsFree               (SurfacesPoints *points);
    void                isosurfacesPointsInit               (SurfacesPoints *points,
                                                             int bufferSize);
    void                isosurfacesPointsRemove             (SurfacesPoints *points,
                                                             int pos);
    void                isosurfacesPointsTranslate          (SurfacesPoints *points,
                                                             float xyz[3]);

## Description

## Details

### SurfacesPoints_normalOffset

    #define SurfacesPoints_normalOffset 3

The offset to read the normal values in poly_points.

### SurfacesPoints_translationOffset

    #define SurfacesPoints_translationOffset 6

The offset to read the translation values in poly_points.

### SurfacesPoints_userOffset

    #define SurfacesPoints_userOffset 9

The offset to read the user values in poly_points.

### isosurfacesPointsAllocate ()

    void                isosurfacesPointsAllocate           (SurfacesPoints *points,
                                                             int nsurf,
                                                             int npolys,
                                                             int npoints);

Allocate the arrays to store a set of points.

`points` : | a pointer on a set of points (not allocated) ;
`nsurf` : | the number of stored surfaces ;
`npolys` : | the number of stored polygons ;
`npoints` : | the corresponding number of points ;

### isosurfacesPointsCheck ()

    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.

`points` : | a set of points.

### isosurfacesPointsFree ()

    void                isosurfacesPointsFree               (SurfacesPoints *points);

Free all allocated arrays of the given set of points. The point structure itself is not freed.

`points` : | a set of points.

### isosurfacesPointsInit ()

    void                isosurfacesPointsInit               (SurfacesPoints *points,
                                                             int bufferSize);

Initialise a SurfacesPoints structure. It must be done before any use.

`points` : | a pointer on a set of points (not initialised) ;
`bufferSize` : | the number of additional data to coordinates and normals.

### isosurfacesPointsRemove ()

    void                isosurfacesPointsRemove             (SurfacesPoints *points,
                                                             int pos);

Remove the points belonging to surface number `pos`.

`points` : | a set of points ;
`pos` : | an integer between 0 and points->nsurf.

### isosurfacesPointsTranslate ()

    void                isosurfacesPointsTranslate          (SurfacesPoints *points,
                                                             float xyz[3]);

In devel...

`points` : | a set of points.
`xyz` : | a given translation in cartesian coordinates.