Synopsis

PDX_MSGT picr_BSurface(long option, int model, MDA_PTR orig_db_ptr, int tag, int identifier, MDA_PTR u_params, MDA_PTR v_params, int u_degree, int v_degree, int n_u_vertices, int n_v_vertices, int vertex_dim, PINT_BOOL is_rational, double *vertex, int form, int n_u_knots, int n_v_knots, int *u_knot_mult, int *v_knot_mult, double *u_knot, double *v_knot, int u_knot_type, int v_knot_type, PINT_BOOL is_u_periodic, PINT_BOOL is_v_periodic, PINT_BOOL is_u_closed, PINT_BOOL is_v_closed, PINT_BOOL self_intersecting, int convexity, MDA_PTR *bsurface_ptr)

Purpose

Create the PINT model BSurface entity.

Description

This function creates a PINT BSurface entity for the given input data. The data provided must result in a valid definition. The orig_db_ptr argument should contain the database pointer of the entity that the new entity was created from (usually this should be obtained by the calling routine via mda_GetOrigDbptr) or MDA_NULL_PTR. See the mda_intro man page for more information about predecessor entities.

Input

option

PICR_VALIDATE

Validate the entity fields

PICR_NOVALIDATE

Do not validate the entity fields

identifier

Parasolid's identifier

model

PINT model for entity creation

orig_db_ptr

The original entities orig_db_ptr as obtained from the mda_GetOrigDbptr call, or MDA_NULL_PTR

tag

Parasolid tag for this entity

basis_set

MDA_PTR to basis_set entity defining bsurface

u_params

MDA_NULL_PTR

No parm values

v_params

MDA_NULL_PTR

No parm values

u_degree

U degree of the bsurface

v_degree

V degree of the bsurface

n_u_vertices

Number of u vertices in the surface

n_v_vertices

Number of v vertices in the surface

vertex_dim

dimension of the vertex (2, 3, 4)

is_rational

PINT_TRUE

The surface is rational

PINT_FALSE

The surface is not rational

vertex

The surface vertices

form

PINT_BSURFACE_UNSET

The surface shape has not been evaluated

PINT_BSURFACE_ARBITRARY

The surface shape is not special

PINT_BSURFACE_PLANAR

The surface is a piece of a plane

PINT_BSURFACE_CYLINDRICAL

The surface is a piece of a cylinder

PINT_BSURFACE_CONICAL

The surface is a piece of a cone

PINT_BSURFACE_SPHERICAL

The surface is a piece of a sphere

PINT_BSURFACE_TOROIDAL

The surface is a piece of a torus

PINT_BSURFACE_REVOLVED

The surface is a b-spline curve revolved

PINT_BSURFACE_RULED

The surface is a ruled

PINT_BSURFACE_GEN_CONE

The surface is a generalized cone

PINT_BSURFACE_QUADRATIC

The surface is quadratic

PINT_BSURFACE_SWEPT

The surface is a b-spline curve swept

n_u_knots

Number of u knots for the surface

n_v_knots

Number of v knots for the surface

u_knot_mult

The number of times each u knot value is repeated

v_knot_mult

The number of times each v knot value is repeated

u_knot

The u knot values

v_knot

The v knot values

u_knot_type

PINT_KNOT_UNSET

The type has not been calculated

PINT_KNOT_NON_UNIFORM

The knot is general non-uniform

PINT_KNOT_UNIFORM

The knot are uniformly spaced

PINT_KNOT_QUASI_UNIFORM

The first and last knots have multiplicity degree+1, and the remainder have multiplicity 1, with equal spacing

PINT_KNOT_PIECEWISE_BEZIER

The first and last knots have multiplicity degree+1, and the remainder have multiplicity degree, with equal spacing

PINT_KNOT_BEZIER_ENDS

The the first and last knots have multiplicity degree+1. In other respects, the knot set is non-uniform

v_knot_type

PINT_KNOT_UNSET

The type has not been calculated

PINT_KNOT_NON_UNIFORM

The knot is general non-uniform

PINT_KNOT_UNIFORM

The knot are uniformly spaced

PINT_KNOT_QUASI_UNIFORM

The first and last knots have multiplicity degree+1, and the remainder have multiplicity 1, with equal spacing

PINT_KNOT_PIECEWISE_BEZIER

The first and last knots have multiplicity degree+1, and the remainder have multiplicity degree, with equal spacing

PINT_KNOT_BEZIER_ENDS

The the first and last knots have multiplicity degree+1. In other respects, the knot set is non-uniform

is_u_periodic

PINT_TRUE

The surface is periodic in the u direction

PINT_FALSE

The surface is not periodic in the u direction

is_v_periodic

PINT_TRUE

The surface is periodic in the v direction

PINT_FALSE

The surface is not periodic in the v direction

is_u_closed

PINT_TRUE

The surface is closed in the u direction

PINT_FALSE

The surface is not closed in the u direction

is_v_closed

PINT_TRUE

The surface is closed in the v direction

PINT_FALSE

The surface is not closed in the v direction

self_intersecting

PINT_TRUE

The surface is self_intersecting

PINT_FALSE

The surface is not self_intersecting

PINT_UNSET

The surface has not been tested

convexity

PINT_CONVEXITY_UNSET

The surface convexity has not been tested

PINT_CONVEXITY_ARBITRARY

The surface is neither convex nor concave

PINT_CONVEXITY_CONVEX

The surface is convex

PINT_CONVEXITY_CONCAVE

The surface is concave

Output

bsurface_ptr

The PINT model pointer

Return

      Low level error return
      .fi