Previous Next Up Title Contents Index Functions Index Top Library

NON-UNIFORM B-SPLINE SURFACE 3 WITH DATA

PNON_UNIFORM_B_SPLINE_SURF3_DATA


CALL SEQUENCE

void pnon_uniform_b_spline_surf3_data (
)

TYPES

typedef struct {
	Pint	u_order;	/* u spline order	*/
	Pint	v_order;	/* v spline order	*/
	Pfloat_list	u_knots;	/* list of u knot values	*/
	Pfloat_list	v_knots;	/* list of v knot values	*/
	Pctrl_point3_array	ctrl_points;	/* array of control points	*/
} Psurf_geom_spline;

typedef enum {
	PB_SPLINE_RATIONAL,
	PB_SPLINE_NON_RATIONAL
} Prationality;

typedef struct {
	Prationality	rationality;	/* control point format: [NON] RATIONAL	*/
	Pint_size	dims;	/* control point array u,v dimensions	*/
	Ppoint3_ptr	points;	/* array of control points	*/
} Pctrl_point3_array;

typedef union {
	Ppoint3	*point3;	/* pointer to 3D points	*/
	Phomo_point4	*homo_point4;	/* pointer to 4D homogeneous points	*/
} Ppoint3_ptr;

typedef struct {
	Pint	num_trim_loops;	/* number of trimming curve loops	*/
	Ptrim_curve_loop	*trim_loops;	/* array of trimming curve loops	*/
} Ptrim_curve_loop_list;

typedef struct {
	Pint	num_trim_curves;	/* number of trimming curves	*/
	Ptrim_curve	*trim_curves;	/* list of trimming curves forming a closed loop	*/
} Ptrim_curve_loop;

typedef struct {
	Pcurve_approx_crit	approx_crit;	/* trimming curve approximation data record	*/
	Pvis_flag	visibility_flag;	/* curve visibility flag	*/
	Pint	order;	/* curve order	*/
	Pfloat_list	knots;	/* curve knot vector	*/
	Pfloat	low_limit;	/* curve parameter range lower limit	*/
	Pfloat	high_limit;	/* curve parameter range upper limit	*/
	Pctrl_point_list	ctrl_points;	/* curve control points	*/
} Ptrim_curve;
typedef struct {
	Pint	u_order;	/* u spline order	*/
	Pint	v_order;	/* v spline order	*/
	Pfloat_list	u_knots;	/* list of u knot values	*/
	Pfloat_list	v_knots;	/* list of v knot values	*/
	Pint	colr_type;	/* colour type	*/
	Pcolr_ctrl_point_array	colrs;	/* array of colour control points	*/
} Psurf_colr_spline;

typedef struct {
	Prationality	rationality;	/* control point rationality	*/
	Pint_size	dims;	/* dimensions of control point array	*/
	Pcolr_ctrl_point_ptr	colr_points;	/* array of colour control points	*/
} Pcolr_ctrl_point_array;

typedef union {
	Pcolr_rep_ptr	points;	/* pointer to colour points	*/
	Phomo_colr_rep_ptr	homo_points;	/* pointer to homogeneous colour points	*/
} Pcolr_ctrl_point_ptr;

typedef struct {
	Pint	num_data_splines;	/* number of data splines	*/
	Psurf_data_spline	*data_splines;	/* lists of data splines	*/
} Psurf_data_spline_list;

typedef struct {
	Pint	u_order;	/* u spline order	*/
	Pint	v_order;	/* v spline order	*/
	Pfloat_list	u_knots;	/* list of u knot values	*/
	Pfloat_list	v_knots;	/* list of v knot values	*/
	Pdata_ctrl_point_array	data_points;	/* array of data control points	*/
} Psurf_data_spline;

typedef struct {
	Prationality	rationality;	/* control point rationality	*/
	Pint_size	dims;	/* control point array u,v dimensions	*/
	Pint	points_dims;	/* control points dimensionality	*/
	Pfloat	*ctrl_points;	/* array of control points	*/
} Pdata_ctrl_point_array;

PHIGS STATE

(PHOP,*,STOP,*)

EFFECT

This function specifies the non-uniform B-spline surface with data primitive.

The NON-UNIFORM B-SPLINE SURFACE 3 WITH DATA element is inserted in the open structure after element pointer or replaces the element indicated by element pointer, depending on the edit mode value. Element pointer is updated and points to the NON-UNIFORM B-SPLINE SURFACE 3 WITH DATA structure element. The values specified in the function are associated with the element.

A NULL value for the trim_loops ,colr_spline and data_splines parameter indicates the corresponding optional data is not supplied.

Attributes associated with Non-Uniform B-Spline Surface 3 With Data :

INTERIOR STYLE

INTERIOR STYLE INDEX

INTERIOR COLOUR

EDGE FLAG

EDGE TYPE

EDGE WIDTH SCALE FACTOR

EDGE COLOUR

SURFACE APPROXIMATION CRITERIA

PARAMETRIC SURFACE CHARACTERISTICS

DATA MAPPING METHOD

EXTENSION TO THE PHIGS STANDARD

If used in one of the two GPHIGS specific modes NRS or NDDS, the effect of this function is different from the effect described in the standard.

In NRS mode, (see OPEN PIPE), the element is not stored in a structure. It is sent to the workstation on which the pipe is opened.

In NDDS mode, (see BEGIN NON DUPLICATE DATA STORE), the element is stored in the structure but its content is not copied into the CSS. GPHIGS stores only the pointer to the user's data.

See GPHIGS user guide for more details on NRS and NDDS modes.

ERRORS

5
Ignoring function, function requires state (PHOP,*, STOP,*)
500
Ignoring function, the specified order is less than one
501
Ignoring function, not enough control points for the specified order
502
Ignoring function, the specified order is inconsistent with number of knots and control points
503
Ignoring function, the knot sequence is not non-decreasing
507
Ignoring function, the fourth coordinate of a rational control point is less than or equal to zero
508
Ignoring function, a trimming curve order is less than 2
509
Ignoring function, a trimming curve does not contain enough control points for its specified order
510
Ignoring function, a trimming curve's order is inconsistent with its number of knots and control points
511
Ignoring function, a trimming curve's knot sequence is not non-decreasing
512
Ignoring function, a trimming curve's parameter range is inconsistent with its knots
138
Ignoring function, one or more of the fields in the specified data record is inconsistent with the specified type

SEE ALSO

open structure, open pipe (ext), begin non duplicate data storage (ext), non-uniform b-spline surface 3, fill area set, set surface approximation criteria, set parametric surface characteristics, inquire current element content, inquire current element type and size


Previous Next Up Title Contents Index Functions Index Top Library