pnon_uniform_b_spline_curve3(3g) — Subroutines
Name
pnon_uniform_b_spline_curve3 − Specifies the 3D nonuniform B-spline curve primitive.
Operating States: PHOP, ∗, STOP, ∗
PHIGS PLUS function
Creates a structure element
Syntax
void pnon_uniform_b_spline_curve3 (
const Pcurve_geom_spline ∗geom_spline /∗ (I) Curve geometry
spline ∗/
)
Data Structures
typedef struct {
Pint order; /∗ spline order ∗/
Pfloat_list knots; /∗ list of knot values ∗/
Pfloat low_limit; /∗ lower parameter range limit ∗/
Pfloat high_limit; /∗ high parameter range limit ∗/
Pctrl_point3_list ctrl_points; /∗ list of control points ∗/
} Pcurve_geom_spline;
typedef struct {
Pint num_floats; /∗ number of floats in the list ∗/
Pfloat ∗floats; /∗ list of floats ∗/
} Pfloat_list;
typedef struct {
Prationality rationality; /∗ control point rationality ∗/
Pint num_points; /∗ number of control points ∗/
Ppoint3_ptr points; /∗ list of control points ∗/
} Pctrl_point3_list;
typedef enum {
PB_SPLINE_RATIONAL, /∗ rational (4D) points ∗/
PB_SPLINE_NON_RATIONAL /∗ nonrational (3D) points ∗/
} Prationality;
typedef union {
Ppoint3 ∗point3; /∗ pointer to 3D nonhomogeneous
points ∗/
Phomo_point4 ∗homo_point4; /∗ pointer to 4D homogeneous
points ∗/
} Ppoint3_ptr;
typedef struct {
Pfloat x; /∗ x coordinate ∗/
Pfloat y; /∗ y coordinate ∗/
Pfloat z; /∗ z coordinate ∗/
} Ppoint3;
typedef struct {
Pfloat wx; /∗ wx coordinate ∗/
Pfloat wy; /∗ wy coordinate ∗/
Pfloat wz; /∗ wz coordinate ∗/
Pfloat w; /∗ homogeneous coordinate ∗/
} Phomo_point4;
Description
pnon_uniform_b_spline_curve3 specifies the three-dimensional nonuniform B-spline curve primitive, a primitive consisting of a curve determined by connecting points.
Depending on the edit mode, this function either inserts the new structure element directly after the element indicated by the pointer or replaces the element indicated by the pointer. The pointer then points to the new nonuniform B-spline curve 3 element.
During structure traversal, the polyline set 3 with data primitive attributes provide additional data. Digital PHIGS computes the curve approximation criteria, and draws a nonuniform B-spline curve 3. The following are important considerations when using this function:
•The spline order must be a positive integer. The knots must form an increasing sequence of numbers.
•The type parameter may have the enumerated value PB_SPLINE_RATIONAL or PB_SPLINE_NON_RATIONAL. The number of control points must be at least as large as the spline order. The number of control points plus the spline order must equal the number of knots.
•The low_limit and high_limit fields specify over what range Digital PHIGS evaluates the B-spline curve. The field low_limit must be less than or equal to the high_limit value.
•At structure traversal, PHIGS draws a nonuniform B-spline curve primitive with the attributes used by polyline set 3 with data, and the current curve approximation criteria. It uses these for values ranging from low_limit to high_limit.
If Digital PHIGS is in immediate mode, it performs this function immediately, but the function does not create a structure element.
See Also
padd_names_set
pinq_curve_facs
pnon_uniform_b_spline_surf3
pset_curve_approx_crit
pset_depth_cue_ind
pset_hlhsr_id
pset_indiv_asf
pset_linetype
pset_linewidth
pset_pick_id
pset_line_colr
pset_line_colr_ind
pset_line_ind
pset_line_rep_plus
pset_line_shad_method
pset_view_ind