## isoline

isoline — handle the drawing and the computation of isolines.

## Synopsis

                        VisuLine;
    void                visu_line_draw                      (VisuLine *line,
                                                             float rgb[3]);
    float*              visu_line_project                   (VisuLine *line,
                                                             Plane *plane,
                                                             guint *nSeg);
    VisuLine*           visu_line_newFromTriangles          (float **data,
                                                             guint nTriangles,
                                                             double isoValue);
    void                visu_line_free                      (VisuLine *line);
    double              visu_line_getValue                  (VisuLine *line);

## Description

TODO

## Details

### VisuLine

    typedef struct _VisuLine VisuLine;

Structure representing a curved line in 3D, opaque structure.

### visu_line_draw ()

    void                visu_line_draw                      (VisuLine *line,
                                                             float rgb[3]);

Call the OpenGL routine that will draw this line.

`line` : | a set of points forming a line.
`rgb` : | a colour.

Since 3.4

### visu_line_project ()

    float*              visu_line_project                   (VisuLine *line,
                                                             Plane *plane,
                                                             guint *nSeg);

Calculate the projection of each `line` vertex on `plane`.

`line` : | a VisuLine object.
`plane` : | a Plane object.
`nSeg` : | a location to store the size of projection.
Returns : | a newly allocated array of line segments. The size of this array is 4 * `nSeg`, holding the two plane coordiantes of the two vertices of a line.

Since 3.6

### visu_line_newFromTriangles ()

    VisuLine*           visu_line_newFromTriangles          (float **data,
                                                             guint nTriangles,
                                                             double isoValue);

Create on the fly an isoline from a given set of triangles. If the lines are created, `isoline` will be allocated and should be freed with `visu_line_free()` after use.

`data` : | the lines to be computed ;
`nTriangles` : | the surface to compute isoline from ;
`isoValue` : | the value of the computed isoline.
Returns : | the newly allocated VisuLine or NULL.

Since 3.6

### visu_line_free ()

    void                visu_line_free                      (VisuLine *line);

Free the line object.

`line` : | a set of lines.

Since 3.4

### visu_line_getValue ()

    double              visu_line_getValue                  (VisuLine *line);

Lines are usually created as iso-values line in a mesh.

`line` : | a VisuLine object.
Returns : | the value associated to the line.

Since 3.6