Action:
|
Creates arrays of control points, weights, u knots, and v knots from a B-spline surface.
|
|
Prototype:
|
void bs3_surface_to_array (
|
|
|
bs3_surface srf,
|
// given surface
|
|
|
int& dim,
|
// returned dimension
|
|
|
logical& rational_u,
|
// returned rational in u
|
|
|
logical& rational_v,
|
// returned rational in v
|
|
|
int& form_u,
|
// returned form in u
|
|
|
int& form_v,
|
// returned form in v
|
|
|
int& pole_u,
|
// returned poles in u
|
|
|
int& pole_v,
|
// returned poles in v
|
|
|
int& num_u,
|
// returned number of
|
|
|
|
|
// control points in u
|
|
|
int& num_v,
|
// returned number of
|
|
|
|
|
// control points in v
|
|
|
SPAposition*& ctrlpts,
|
// returned control
|
|
|
|
|
// points in desired
|
|
|
|
|
// order
|
|
|
double*& weights,
|
// returned weights
|
|
|
int& degree_u,
|
// returned degree in u
|
|
|
int& num_uknots,
|
// returned number of
|
|
|
|
|
// knots in u
|
|
|
double*& uknots,
|
// returned knots in u
|
|
|
int& degree_v,
|
// returned degree in v
|
|
|
int& num_vknots,
|
// returned number of
|
|
|
|
|
// knots in v
|
|
|
double*& vknots
|
// returned knots in v
|
|
|
);
|
|
Includes:
|
#include "kernel/acis.hxx"
|
|
#include "baseutil/logical.h"
|
|
#include "baseutil/vector/position.hxx"
|
|
#include "kernel/spline/bs3_srf/bs3surf.hxx"
|
|
#include "kernel/spline/sg_bs3s/sps3srtn.hxx"
|
|
Description:
|
The surface is defined by an array of control points, weights, and knots in the u (v) parameter. The surface may be rational in either u or
v, it may be open, closed, or periodic in u or
v, and it may have parametric singularities at the minimum or maximum parameter values in either u or
v.
|
|
|
The control points are returned as an array of coordinates in the form (x,y,z) or (x,y,z).
|
|
|
The function creates arrays of control points, weights, u knots, and v knots. It is up to the application to delete these arrays.
|
|
|
rational_u and
rational_v specify if surface is rational (1) or not rational (0).
|
|
|
form_u and
form_v specify if the surface is open (0), closed (1), or periodic (2).
|
|
|
pole_u and
pole_v specify if the surface has poles at none (0), low
u/v (1), high
u/v, or both.
|
|
|
If the surface has multiple end knots, the knot arrays returned have same knots at start and end up to respective
degrees + 1.
|
|
Library:
|
kernel
|
|
Filename:
|
kern/kernel/spline/sg_bs3s/sps3srtn.hxx
|
|
Effect:
|
Changes model
|