# 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