PK_TOPOL_make_facet_topol_o_t   

struct PK_TOPOL_make_facet_topol_o_s
    {
    int                o_t_version;             --- Version of option
                                                --- structure.
    PK_LOGICAL_t       have_angular_tolerance;  --- Whether angular_tolerance
                                                --- is set.
                                                --- (PK_LOGICAL_false)
    double             angular_tolerance;       --- Angular tolerance between
                                                --- new and existing geometry.
    PK_LOGICAL_t       have_max_chord_length;   --- Whether max_chord_length is
                                                --- set.
                                                --- (PK_LOGICAL_false)
    double             max_chord_length;        --- Controls the maximum length
                                                --- of polyline chords.
    PK_LOGICAL_t       have_max_facet_width;    --- Whether max_facet_width
                                                --- is set.
                                                --- (PK_LOGICAL_false)
    double             max_facet_width;         --- Controls the maximum length
                                                --- of a facet edge.
    PK_LOGICAL_t       store_normals;           --- Whether to store the
                                                --- normals of classic surfaces
                                                --- as vertex normals in the
                                                --- meshes which replace them.
                                                --- (PK_LOGICAL_false)
    PK_LOGICAL_t       track_faces;             --- Whether to return tracking
                                                --- information for any faces
                                                --- which were created or
                                                --- destroyed by the operation.
                                                --- (PK_LOGICAL_false)
    PK_track_edges_t   track_edges;             --- Options for tracking edges.
                                                --- (PK_track_edges_no_c).
    PK_LOGICAL_t       return_redundant;        --- Whether to return tracking
                                                --- information for any
                                                --- topological entities which
                                                --- were deleted in order
                                                --- to accommodate the new
                                                --- geometry.
                                                --- (PK_LOGICAL_false)
    PK_LOGICAL_t       return_modified;         --- Whether to return an array
                                                --- of all topological entities
                                                --- modified by the operation.
                                                --- (PK_LOGICAL_false)
    };

typedef struct PK_TOPOL_make_facet_topol_o_s
               PK_TOPOL_make_facet_topol_o_t;



This structure holds optional controls for facet geometry creation, together
with controls governing the amount of tracking information returned.


Specific Errors:
    PK_ERROR_bad_tolerance      'have_max_chord_length' is PK_LOGICAL_true
                                and `max_chord_length is less than the value
                                returned by PK_SESSION_ask_precision
                                OR
                                'have_max_facet_width' is PK_LOGICAL_true
                                and 'max_facet_width' is less than the value
                                returned by PK_SESSION_ask_precision
                                OR
                                'have_angular_tolerance' is PK_LOGICAL_true
                                and 'angular_tolerance' is less than the value
                                returned by PK_SESSION_ask_angle_precision
                                (MILD)

Used in:

PK_TOPOL_make_facet_topol



This structure contains:


 Geometry creation controls

'have_angular_tolerance'  : This field controls whether the associated
                            'angular_tolerance' is used.

'angular_tolerance'       : If 'have_angular_tolerance' is PK_LOGICAL_true
                            and this field is set to a positive value
                            then this value is used to control the sum
                            of the angles formed between a facet edge
                            and the curve/surface tangents at each end.
                            In particular, facets for classic surfaces
                            will usually be created in such a way that the
                            surface normals corresponding to points in a
                            portion of surface represented by the same
                            facet will not differ by more than this value.
                            This rule is usually observed, but this is not
                            guaranteed.

'have_max_chord_length'   : This field controls whether the associated
                            'max_chord_length' is used.

'max_chord_length'        : If 'have_max_chord_length' is PK_LOGICAL_true
                            and this field is set to a positive value
                            then this value is used to control the chord
                            length of all polylines created for edges and
                            halfedges. This value may also influence the
                            size and aspect ratio of facets near the
                            boundaries of new meshes.

'have_max_facet_width'    : This field controls whether the associated
                            'max_facet_width' is used.

'max_facet_width'         : If 'have_max_facet_width' is PK_LOGICAL_true
                            and this field is set to a positive value then this
                            value is used to control the maximum length of
                            the mfins in the meshes created for any supplied
                            faces. It does not provide any control over the
                            widths of facets in faces with existing facet
                            geometry unless these are explicitly handed in
                            for conversion.

'store_normals'           : If this field is PK_LOGICAL_true then the
                            meshes created for any supplied faces will
                            inherit normals from the existing surfaces
                            on these faces. When this field is
                            PK_LOGICAL_true, the meshes created for faces
                            which initially have classic geometry will have
                            unique stored mvertex normals consistent with
                            the geometry of the original surfaces. If the
                            input array contains faces with facet geometry
                            which do not need subdividing, the new meshes
                            for these faces will be the same as the original
                            meshes would be after calling
                            PK_MESH_store_normals with the 'replace' field
                            in the option structure set to
                            PK_MESH_replace_normal_all_c.

                            Note: mfins whose mvertices correspond to points
                            on the existing surfaces for which
                            PK_SURF_eval_with_normal returns an error
                            code different from PK_ERROR_no_errors will
                            still all share a single normal, but this will be
                            calculated using the local geometry of the new
                            meshes, rather than that of the classic surfaces
                            they replace.

 Tracking controls

'track_faces'             : If this field is PK_LOGICAL_true then tracking
                            records will be returned for all topological
                            changes to faces made as part of the conversion
                            operation.

'track_edges'             : If this field is set to PK_track_edges_yes_c or
                            PK_track_edges_laminar_wire_c then tracking
                            records will be returned for all topological
                            changes mades to edges of the indicated type.

'return_redundant'        : If this field is PK_LOGICAL_true then tracking
                            records will be returned containing all
                            topological entities which were merged out or
                            made redundant by the conversion operation.

'return_modified'         : If this field is PK_LOGICAL_true then an array
                            will be returned containing all topological
                            entities which were in any way modified by the
                            conversion operation. This will include any
                            entities which have had their geometry replaced,
                            any edges and vertices which have undergone
                            tolerance adjustments, as well as any newly
                            created edges and vertices.