![]() |
PK_offset_method_t |
typedef int PK_offset_method_t;
PK_BODY_hollow_o_t
PK_BODY_offset_o_t
PK_BODY_thicken_o_t
PK_FACE_change_offset_o_t
PK_FACE_hollow_o_t
PK_FACE_offset_o_t
When the underlying surface is tightly curved with respect to the offset
distance, the offset surface can contain self-intersections.
If an offset surface is to be self-intersecting, it is divided along
constant parameter lines into regions that contain self-intersections,
and regions that don't. Good regions that don't contain self-intersections
are offset from the corresponding divided underlying surface regions.
This datatype specifies the different methods available for removing and
healing regions that contain self-intersections.
It has the following values:
PK_offset_method_sx_trim_c Self-intersections are removed by
trimming only. Regions containing
self-intersections become holes.
The success of overall operation
relies on any holes left being healed
completely by extending and intersecting
neighbouring surfaces.
PK_offset_method_sx_repair_1_c Self-intersections are removed using
the following procedures.
1. Clean Trimming: A region containing
self-intersections is simply discarded
if the area can be trimmed cleanly by
surrounding offset surface regions without
leaving a hole on the offset model.
2. B-surface Patching: Otherwise, the
region of surface area is replaced by
an approximate b-surface patch that
joins the neighbouring good regions
according to the given offset tolerance.
3. Hole Healing: Otherwise, the region
of self-intersection is trimmed to a
hole for healing in a way similar to
PK_offset_method_sx_trim_c.
PK_offset_method_sx_repair_2_c Self-intersections are removed as by
PK_offset_method_sx_repair_1_c, but
with an extended B-surface Patching
procedure for regions at surface corners
or boundary sides.
Values other than PK_offset_method_sx_trim_c offer more capabilities of
removing and healing self-intersections of offset surfaces. They are also
based on a superior method for detecting self-intersections. The value
PK_offset_method_sx_trim_c should be avoided wherever possible. See
Removing self-intersections for more information.