 |
PK_FACE_boolean_o_t |
|
struct PK_FACE_boolean_o_s
{
int o_t_version; --- version number
PK_boolean_function_t function; --- (PK_boolean_unite_c)
const PK_boolean_config_o_t
*configuration; --- (NULL)
const PK_boolean_region_select_o_t
*select_region; --- (NULL)
const PK_boolean_match_o_t
*matched_region; --- (NULL)
PK_LOGICAL_t extend_face_list; --- (PK_LOGICAL_false)
PK_LOGICAL_t stop_self_intersection; --- (PK_LOGICAL_false)
PK_LOGICAL_t tracking; --- (PK_LOGICAL_false)
PK_LOGICAL_t merge_imprinted; --- (PK_LOGICAL_false)
PK_boolean_fence_t fence; --- (PK_boolean_fence_none_c)
PK_LOGICAL_t allow_disjoint; --- (PK_LOGICAL_false)
PK_LOGICAL_t selective_merge; --- (PK_LOGICAL_false)
PK_boolean_check_fa_t check_fa; --- (PK_boolean_check_fa_yes_c)
double default_tol; --- (1.0E-5)
double max_tol; --- (0.0)
PK_LOGICAL_t merge_attributes; --- (PK_LOGICAL_false)
PK_LOGICAL_t keep_target_edges; --- (PK_LOGICAL_false)
};
typedef struct PK_FACE_boolean_o_s PK_FACE_boolean_o_t;
This option structure is supplied to a face boolean.
Description of fields:
function Indicates whether a intersect, unite or subtract
operation is to be performed, permitted values
are
PK_boolean_intersect_c
PK_boolean_subtract_c
PK_boolean_unite_c
configuration Describes the configuration of target and tool
bodies.
select_region Used to identify regions of the tool to include or
exclude in the result.
matched_region Describes matched regions between the target and tool
bodies.
extend_face_list A face boolean receives a subset of the faces of a
target body. If the imprinting phase of the boolean
results in incomplete loops of imprinted edges, then
additional target faces will be used.
stop_self_intersection Stop self intersection, after imprinting, tool faces
which will survive the boolean are then compared
against all faces of the target body.
tracking Request additional topological data on the result
of the boolean, this is specific to the function
being called.
merge_imprinted Merge all mergeable imprinted edges created and/or
located by the boolean operation. Note that an
existing edge can be considered an imprinted edge
if it forms part of the intersection between faces
from the target and tool.
fence To determine which resultant bodies are returned when
performing solid/sheet (trimming) or sheet/solid
(punching) boolean operations.
Permitted values are :
PK_boolean_fence_front_c
PK_boolean_fence_back_c
PK_boolean_fence_none_c
allow_disjoint If this option is set to PK_LOGICAL_true, the result
of the boolean will be a single body which may contain
disjoint manifold components.
This option is ignored when a solid target and sheet
tool body are specified for a subtract operation and
the fence option is specified with a value of
PK_boolean_fence_none_c.
selective_merge If this is set to PK_LOGICAL_true, the merge phase
will avoid mergeing imprinted edges that existed
and were mergeable before the start of the boolean.
This flag has no effect if merge_imprinted is not
set to PK_LOGICAL_true.
check_fa The value of this determines if face checking is
performed during the operation, permitted values
are :
PK_boolean_check_fa_no_c
PK_boolean_check_fa_yes_c
The default is set to PK_boolean_check_fa_yes_c
and it is strongly advised not to change this value.
If the face checking is switched off, the boolean
operation may produce an invalid body without
raising an error.
default_tol The default tolerance to which the boolean
operation, if it has to, may approximate entities
or assume that entities are coincident. This value
should be set to a value that is related to the
tolerance to which the application is creating
approximations.
If this field is set to zero (0.0), it is assumed
that the decision to set tolerances on entities is
being left to the modeller.
max_tol This value specifies the maximum tolerance which may
be applied to any entity involved in the boolean
operation.
If this field is set to zero (0.0), the default, then
it assumed that no upper limit has been set on the
tolerance of any entity.
If the field is not set to zero (0.0), then it must be
set to a value that is greater than the value of the
default_tol field.
merge_attributes If this is set to PK_LOGICAL_true, then any situation
in which two coincident faces are combined to result
in a face in a result body, will be treated as a
merge event from the point of view of attribute
processing and attribute callbacks. If it is set to
PK_LOGICAL_false, which is the default, then such a
situation will be treated as the deletion of one of
the faces. A subtract operation will never result in
merge events.
keep_target_edges This option controls which edge survives when a
target edge and a tool edge coincide in a boolean. If
both faces adjacent to the tool edge survive, then the
tool edge will also survive. Otherwise, the result
depends on the setting of the option:
PK_LOGICAL_true:
The target edge survives, unless the target edge
is a new edge imprinted during the boolean, and
the tool edge is an original edge - in this case,
the tool edge survives.
PK_LOGICAL_false (the default):
The older edge (i.e. the one with the smaller tag)
survives.
This option only has an effect if general topology
is disabled. If it is enabled, then the target edge
will always survive, even if it is a newly imprinted
edge.
Generated on: Fri, 15 Dec 2023 13:16:06 GMT