 |
PK_blend_constraint_t |
|
struct PK_blend_constraint_s
{
PK_EDGE_array_t cliff_edges; --- cliff edges
PK_EDGE_array_t tangent_edges; --- tangent holdline edges
PK_EDGE_array_t conic_edges; --- conic holdline edges
PK_EDGE_array_t inv_tangent_edges; --- inverse tangent holdline edges
PK_EDGE_array_t inv_conic_edges; --- inverse conic holdline edges
PK_PLANE_t limit_1; --- first limit plane
--- (PK_ENTITY_null)
PK_PLANE_t limit_2; --- second limit plane
--- (PK_ENTITY_null)
int n_caps; --- number of caps (0)
const PK_ENTITY_t *caps; --- entities for capping
--- blend (NULL)
const PK_LOGICAL_t *reverse_cap; --- whether cap orientation
--- should be reversed (NULL)
PK_LOGICAL_t localise_limit_planes;
--- whether limit planes should
--- trim blend only once
--- (PK_LOGICAL_false)
PK_TOPOL_array_t limit_topols; --- limit faces/fins
};
typedef struct PK_blend_constraint_s PK_blend_constraint_t;
This structure records a set of blend constraints.
Used in:
PK_FACE_make_blend_o_t
Blend Constraint Options:
'cliff_edges' Blend is constrained by cliff edges.
An array of edge tags is given.
The blend will be constrained to be cliffedge blend in the
region of the given edges.
'tangent_edges' Blend is constrained by tangent hold lines.
An array of edge tags is given.
The blend will be constrained to be a tangent
hold line blend in the region of the given edges.
For constant and variable radius rolling ball blends
the blend need not be constrained by these edges. If the
blend is a variable radius rolling ball blend, the left
and right ranges of the law curve must be equal.
'conic_edges' Blend is constrained by conic hold lines.
An array of edge tags is given.
The blend will be constrained to be a conic hold line
blend in the region of the given edges.
For constant and variable radius rolling ball blends
blend need not be constrained by these edges. If the
blend is a curvature continuous blend then 'cliff_edges'
and 'tangent_edges' must not be set, and the number of edge
tags in the array must be at least two.
'inv_tangent_edges'
Blend is constrained by inverted tangent hold lines.
An array of edge tags is given.
The blend will be constrained to be a tangent
hold line blend in the region of the given edges.
For constant and variable radius rolling ball blends
the blend need not be constrained by these edges. If the
blend is a variable radius rolling ball blend, the left
and right ranges of the law curve must be equal.
'inv_conic_edges'
Blend is constrained by inverted conic hold lines.
An array of edge tags is given.
The blend will be constrained to be a conic hold line
blend in the region of the given edges.
For constant and variable radius rolling ball blends
blend need not be constrained by these edges. If the
blend is a curvature continuous blend then 'cliff_edges'
and 'tangent_edges' must not be set, and the number of edge
tags in the array must be at least two.
'limit_1'
'limit_2' Limit Planes.
One or two planes may be specified.
The blend will be trimmed to end in a constant parameter
line determined by a plane. The blend will lie on the
positive side of the plane.
'n_caps' The number of capping entities.
'caps' A list of entities which will be used to stop and cap
the blend.
Currently, Parasolid will handle entities of class
PK_CLASS_face and PK_CLASS_plane. If the entity is a
PK_FACE_t, then it must belong to one of the bodies
to which the walls belong.
'reverse_cap' A list of flags which specify which side of each cap will be
the exterior of the cap. If `reverse_cap[j]' is
PK_LOGICAL_false, then the algorithm will trim away the
portion of the blend on the side of `cap[j]' towards which
the cap's normal points.
'localise_limit_planes'
A logical which determines the behaviour of limit planes
used to trim the blend in case the limit plane intersects
the blend in more than one location. If the value is
PK_LOGICAL_true, a limit plane will trim the blend in only
one location, the one that is closest to the limit plane's
location vector (i.e. `basis_set.location' in PK_PLANE_sf_t).
If the value is PK_LOGICAL_false, all intersections between a
limit plane and the blend will be considered, and the face
blend algorithm will determine the most appropriate result.
'limit_topols' An array of faces and/or fins which will be used to stop the
blend. If the blend encounters a face or fin from this array,
it will stop and be trimmed to end in a constant parameter
line at that point.
This structure contains the topology which will constrain the blend.
All of the PK_EDGE_array_t fields will have their lengths set to zero
by the options structure macro. These options are turned on by setting
the length non-zero.
For further details on the use of these options please refer to the Face-Face
Blending Chapter of the Parasolid Functional Description.