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()

double getMinFaceAbsolute();

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

getMinFaceFraction()

double getMinFaceFraction();

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()

double getSaveFaceInfo();

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

getSaveFaceSolver()

double getSaveFaceSolver();

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()

double getToleranceAbsolute();

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

getToleranceFraction()

double getToleranceFraction();

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

setMinFaceAbsolute()

void setMinFaceAbsolute(
        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()

void setMinFaceFraction(
        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()

double setSaveFaceInfo();

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()

double setSaveFaceSolver();

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()

void setToleranceAbsolute(
        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()

void setToleranceFraction(
        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.