Synopsis

PDX_MSGT picr_BCurve(long option, int model, MDA_PTR orig_db_ptr, int tag, int identifier, MDA_PTR params, int degree, int n_vertices, int vertex_dim, PINT_BOOL is_rational, double *vertex, int form, int n_knots, int *knot_mult, double *knot, int knot_type, PINT_BOOL is_periodic, PINT_BOOL is_closed, PINT_BOOL self_intersecting, MDA_PTR *bcurve_ptr)

Purpose

Create the PINT model BCurve entity.

Description

This function creates a PINT BCurve 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

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 bcurve

params

MDA_NULL_PTR

No parm values

degree

Degree of the bcurve

n_vertices

Number of vertices in the curve

vertex_dim

dimension of the vertex (2, 3, 4)

is_rational

PINT_TRUE

The curve is periodic

PINT_FALSE

The curve is not periodic

vertex

The curve vertices

form

PINT_BCURVE_UNSET

The curve shape has not been evaluated

PINT_BCURVE_ARBITRARY

The curve shape is not special

PINT_BCURVE_POLYLINE

The curve shape is piecewise linear

PINT_BCURVE_CIRCULAR

The curve shape is a circular arc

PINT_BCURVE_ELLIPTIC

The curve shape is a elliptical arc

PINT_BCURVE_PARABOLIC

The curve shape is a parabolic arc

PINT_BCURVE_HYPERBOLIC

The curve shape is a hyperbolic arc

n_knots

Number of knots for the curve

knot_mult

The number of times each knot value is repeated

knot

The knot values

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_periodic

PINT_TRUE

The curve is periodic

PINT_FALSE

The curve is not periodic

is_closed

PINT_TRUE

The curve is closed

PINT_FALSE

The curve is not closed

self_intersecting

PINT_TRUE

The curve is self_intersecting

PINT_FALSE

The curve is not self_intersecting

PINT_UNSET

The curve has not been tested

identifier

Parasolid's identifier

Output

bcurve_ptr

The PINT model pointer

Return

      Low level error return
      .fi