## Overview

The **RoseMeshOptions** class holds parameters used by the
mesher to control the tradeoff between the accuracy of the mesh and
the cost of generating and storing it.

Each parameter has a **get** and a **set** function. Some
are absolute values, while others are relative values given as the
fraction of the estimated bounding box diagonal.

## AngUnit

RoseUnitgetAngUnit() const; voidsetAngUnit(RoseUnit u);

The **AngUnit**() value gives the unit to be used when the
mesher needs to evaluate an angle measure, such as the semi-angle of a
conical surface or the flange angle of an I-beam profile. This is
usually found in context information from the source CAD data. The
default value is degrees.

## LenUnit

RoseUnitgetLenUnit() const; voidsetLenUnit(RoseUnit u);

The **LenUnit**() value gives the length unit that describes
coordinate values in the mesh. This is usually found in context
information from the source CAD data. The default value is
millimeters.

## MinFaceAbsolute

doublegetMinFaceAbsolute() const; voidsetMinFaceAbsolute(double v);

The **MinFaceAbsolute** value is a length that controls the
minimal size of a face to facet. The default value is zero, which
means no faces will be filtered out.

If this is set to a positive value, any face with a bounding box diameter smaller than this length will be ignored. This may result in faster results and less data for visualization, but will the resulting mesh will have gaps. Do not use this if you need a watertight shell for geometric analysis.

## MinFaceFraction

doublegetMinFaceFraction() const; voidsetMinFaceFraction(double v);

The **getMinFaceFraction**() function is a ratio value that
controls the minimal size of a face to facet. The default value is
zero, which means no faces will be filtered out.

If this is set to a positive value, the diagonal of the estimated bounding box of the shell will be multiplied by this value to produce a length. This length will be used to filter faces in the same way as MinFaceAbsolute.

This is ratio value between zero and one. If you specify a value greater than one, all faces will be filtered.

## SaveFaceInfo

intgetSaveFaceInfo() const; voidsetSaveFaceInfo(int yn)

The **SaveFaceInfo**() value controls whether surface and the UV
polygon information created by the faceter is saved after the mesh is
complete. If true (non-zero), the structure returned
by RoseMesh::getFaceInfo()
will contain this information. If zero, it will be removed once mesh
generation is complete. The default value is true.

## SaveFaceSolver

intgetSaveFaceSolver() const; voidsetSaveFaceSolver(int yn);

The **SaveFaceSolver**() value controls whether the surface
solver created by the faceter is saved. The solver can contain a large
amount of data so it is treated separately than
the SaveFaceInfo value.

The solver will be preserved if both this value and SaveFaceInfo are true. The default value is false.

## ToleranceAbsolute

doublegetToleranceAbsolute() const; voidsetToleranceAbsolute(double v);

The **ToleranceAbsolute** value is the maximum distance that a
point in a facet or edge may deviate from the original CAD surface or
curve. A small value results in more facets, while larger value will
result in fewer facets and faster rendering. Setting the tolerance
too large may result in faces that cannot be faceted at all.

The default value of this parameter is zero. If it is zero when mesh creation begins, a value will be computed and assigned using the estimated bounding box and ToleranceFraction. The value will never be smaller than the Uncertainty.

After creating a mesh from CAD data, this will always contain the actual tolerance value used, whether pre-assigned or computed.

## ToleranceFraction

doublegetToleranceFraction() const; voidsetToleranceFraction(double v);

The **ToleranceFraction** is a ratio value that describes the
maximum distance that a point in a facet or edge may deviate from the
original CAD surface or curve. This is given as a fraction of the
estimated bounding box diagonal, so it will result in a consistent
quality for each shape regardless of its size.

This is used if ToleranceAbsolute is not set. The default value is 1/2000.

## Uncertainty

doublegetUncertainty() const; voidsetUncertainty(double v);

The **Uncertainty**() value is the maximum distance that
two points can differ by and still be considered the same. This is
usually found in context information from the source CAD data of
manifold boundary-rep solids. The default value
is **ROSE_MESH_UNCERTAINTY**, which is defined as 1 x
10^{-8}.