 |
PK_SURF_make_bsurf_array_o_t |
|
struct PK_SURF_make_bsurf_array_o_s
{
int o_t_version;
double tolerance; --- tolerance for
--- approximate result
--- (1.0e-5)
PK_LOGICAL_t have_u_degree;
--- whether u degree
--- is specified
--- (PK_LOGICAL_false)
int u_degree; --- degree in u direction (0)
PK_LOGICAL_t have_v_degree;
--- whether v degree
--- is specified
--- (PK_LOGICAL_false)
int v_degree; --- degree in v direction (0)
PK_LOGICAL_t force_non_rational;
--- force non-rational
--- B-surface
--- (PK_LOGICAL_false)
PK_force_continuity_t force_continuity;
--- controls whether to
--- force a certain level of
--- continuity
--- (PK_force_continuity_no_c)
PK_continuity_t continuity;
--- level of continuity
--- (PK_continuity_c1_c)
PK_ITEM_t destination;
--- destination for B-surfaces
--- (PK_ITEM_null)
};
typedef struct PK_SURF_make_bsurf_array_o_s PK_SURF_make_bsurf_array_o_t;
This structure holds optional controls on converting an array of surfaces into
B-surfaces.
Used in:
PK_SURF_make_bsurf_array
The option structure has the following fields :
'tolerance' If the function is unable to make an exact B-surface, this
specifies the maximum deviation between the resultant
B-surface and the input surface. The function will usually
achieve this condition but this is not guaranteed.
(1.0e-5)
'have_u_degree' Whether degree required of resultant B-surface in u
direction is specified. If this is set to PK_LOGICAL_true,
'u_degree' must be set to 3, 'have_v_degree' set to
PK_LOGICAL_true and 'v_degree' to 3. Other values for
u/v degree are not supported. If this is set to
PK_LOGICAL_false, the degree in the u direction will
depend upon the input surface. (PK_LOGICAL_false)
'u_degree' degree of the resultant B-surface in the u direction. (0)
'have_v_degree' Whether degree required of resultant B-surface in v
direction is specified. If this is set to PK_LOGICAL_true,
'v_degree' must be set to 3, 'have_u_degree' set to
PK_LOGICAL_true and 'u_degree' to 3. Other values for
u/v degree are not supported. If this is set to
PK_LOGICAL_false, the degree in the v direction will
depend upon the input surface. (PK_LOGICAL_false)
'v_degree' degree of the resultant B-surface in the v direction. (0)
'force_non_rational' If set to PK_LOGICAL_true, the resultant surface will be
non-rational. Otherwise, the surface may or may not be
rational, depending on the input surface.
(PK_LOGICAL_false)
'force_continuity' This option allows a minimum level of continuity for the
resultant surface to be supplied through the 'continuity'
option, and also controls how discontinuities of the input
surface will be handled. It has the possible values:
o PK_force_continuity_yes_c
All discontinuities will be eliminated up to the
level specified by the 'continuity' option. Closed,
non-periodic surfaces will be made periodic.
o PK_force_continuity_prefer_c
If possible, the resulting B-surface will be
continuous up to the level specified by the
'continuity' option.
Large G1 discontinuities will be preserved and
reported in a PK_REPORT_3_discontinuities_c record.
Closed, non-periodic surfaces will be made periodic
unless there is a large G1 discontinuity across the
seam.
o PK_force_continuity_no_c (default)
No attempt will be made to remove discontinuities.
This is the default value. Periodicity of closed
surfaces will not be enforced.
'continuity' The desired continuity of the resulting B-surface.
This is ignored if 'force_continuity' is set to
PK_force_continuity_no_c. The possible values are:
PK_continuity_c1_c (default)
PK_continuity_c2_c
PK_continuity_g1_c
PK_continuity_g2_c
'destination' This option specifies the destination for the resulting
B-surfaces.
It can be a partition, PK_PARTITION_t, or a part,
PK_PART_t, but no other PK_ITEM_t. Alternatively it
may be set to PK_ITEM_null (default).
o If 'destination' is a partition, the B-surfaces will
be orphan geometry in that partition.
o If 'destination' is a part, the B-surfaces will be
construction geometry in that part.
o If 'destination' is PK_ITEM_null, the B-surfaces
will be orphan geometry in the current partition.