# 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