## Overview

The **StixMeshOptions** class holds options that control the
operation of the faceter. These options include the render tolerance
and a minimal size of face to facet. They control the tradeoff
between the quality of the mesh and the cost of generating and storing
it. Meshes generated at low tolerance values will have more polygons,
and will take longer to generate.

Several parameters are fractions, so they can apply regardless of the size of the parts. These fractions are based in the diagonal of the estimated bounding box of the shell being faceted.

## getMinFaceAbsolute()

doublegetMinFaceAbsolute();

The **getMinFaceAbsolute**() function returns the minimal size of
the faces to facet. Set the value with
the setMinFaceAbsolute() function.

## getMinFaceFraction()

doublegetMinFaceFraction();

The **getMinFaceFraction**() function returns the minimal
fraction a face represents of the shell for the face to be faceted.
If the face is smaller than this value, it will not be faceted. Set
the value using
the setMinFaceFraction() function.

## getSaveFaceInfo()

doublegetSaveFaceInfo();

The **getSaveFaceInfo()** function determines if the internal information
created by the faceter is saved. This information includes the surface and
the UV polygon.

## getSaveFaceSolver()

doublegetSaveFaceSolver();

The **getSaveFaceSolver()** function determines if surface solver
created by the faceter is saved. The solver can become a large object, so
it is not included in the FaceInfo flag.

## getToleranceAbsolute()

doublegetToleranceAbsolute();

The **getToleranceAbsolute**() function returns the tolerance value
that a face is faceted at. Set the value with
the setToleranceAbsolute()
function.

## getToleranceFraction()

doublegetToleranceFraction();

The **getToleranceFraction**() function returns the fraction of the
shell's diagonal that defines the tolerance. Set the value using
the setToleranceFraction()
function.

## setMinFaceAbsolute()

voidsetMinFaceAbsolute( double v );

The **setMinFaceAbsolute**() function sets the minimal estimated size for a
face to be faceted, which is returned by
getMinFaceAbsolute(). If a face is
smaller than this value, it will not be faceted. This can be used to
simplify the generated meshed for visualiziation.

If this is set to a positive value, faces may be omitted be the faceter, possible resulting in a shell gaps. This may be OK for quickly generating visualization data, but should not be used for geometric analysis.

The default value is 0., meaning that no faces will be filtered out.

## setMinFaceFraction()

voidsetMinFaceFraction( double v );

The **setMinFaceFraction**() function sets the minimal fraction for
a face to be faceted, which is returned
by getMinFaceFraction(). If the
estimated bounding box of the shell times this value is less than the
extimated bounds of the face, the face will not be rendered. This can
be used to simplify generated meshes for visualization. Since this
value is a fraction, it must be between 0 and 1 for it to have any
meaning. If the value is greater than 1, no face will be faceted.

If this is set to a positive value, faces may be omitted be the faceter, possible resulting in a shell gaps. This may be useful for quickly generating visualization data, but should not be used for geometric analysis.

The default value is 0., meaning that no faces will be filtered out.

## setSaveFaceInfo()

doublesetSaveFaceInfo();

The **setSaveFaceInfo()** function sets a flag that determines if the
internal information created by the faceter is saved.
This information includes the surface and the UV polygon.

If this flag is true, then the surface can be retrieved by the StixMeshStpFace::getSurface() method and the trim polygon can be retrived by StixMeshStpFace::getTrimUVPolygon(). The default value of this flag is 1 (true).

## setSaveFaceSolver()

doublesetSaveFaceSolver();

The **setSaveFaceSolver()** function sets a flag that determines if surface
solver created by the faceter is saved. The solver can become a large object,
(in the case of NURBS surfaces) so it is not included in the FaceInfo flag.

If this flag is true, then the solver can be retrieved by the
**StixMeshStpFace::getSurfaceSolver()** method. The default value of this
flag is 0 (false).

## setToleranceAbsolute()

voidsetToleranceAbsolute( double v );

The **setToleranceAbsolute**() function sets the rendering tolerance at which
a face will be rendered. This value gives the maximum distance from the
surface or curve that a point in an facet or edge may exist. A smaller value
will result in smaller, higher quality, facets; while a larger value will
result in smaller facets and faster rendering. Setting the tolerance too
large may result in faces that cannot be faceted at all.

If the tolerance value is less than the shapes global uncertainty, the actual tolerance will be the uncertainty.

If this parameter is 0., then the tolerance is determined by the tolerance fraction

The default value of this parameter is 0. (Thus, the tolerance to be determined be the fractional tolerance value.)

## setToleranceFraction()

voidsetToleranceFraction( double v );

The **setToleranceFraction**() function sets the fractional
tolerance at which a shell is faceted, which is returned
by getToleranceFraction(). This
value is interpreted as a fraction of the estimated bounding box of
the entire shell getting faceted. This parameter is only used when an
absolute tolerance is not set. This value must be between 0 and 1,
and should generally not be bigger than 0.1, or else the tolerance is
likely to be too large for the faceter to function.

Since the parameter is specified as a fraction, it will be scalable no matter how beg the shell is. The actual tolerance value will be different to each shell faceted. This will result in a consistent quality for each shape regardless of its size.

The default value is 1/500.