formZ SDK | 5.0 API Reference | Project | Modeling | Objects | Analysis

# fz_objt_alys_get_face_spln_parm

Description

Gets the parameters of a face's underlying surface geometry, if the geometry of the face is of type spline ( FZ_OBJT_FACE_GEOM_TYPE_SPLN).
Call fz_objt_alys_get_face_geom_type to determine the geometry of the face.
The control points and weights arrays must be preallocated to hold nu x nv values. knots_u and knots_v must be preallocated to hold nu + degree_u + 1 and nv + degree_v + 1 respectively.
This can be done by calling this function first with all the optional return parameters set to NULL except nu, nv, degree_u, and degree_v.
Use those values to preallocate cpts, weights, knots_u, and knots_v.
Here is an example of how the control points are ordered :
cpts[u 0 v 0]
cpts[u 0 v 1]
...
cpts[u 0 v nv-1]
cpts[u 1 v 0]
cpts[u 1 v 1]
...
cpts[u 1 v nv-1]
...
...
...
cpts[u nu-1 v 0]
cpts[u nu-1 v 1]
...
cpts[u nu-1 v nv-1]
The values in the weights array are ordered in the same way.
A spline surface is rational if any of the weights in a given direction are not equal.
If a surface is not rational in both directions, the weights array does not need to be retrieved (i.e. all weights can be considered 1.0).

Plugin Prototype

fzrt_error_td fz_objt_alys_get_face_spln_parm(

fzrt_int | windex,
fz_objt_ptr | obj,
fzrt_int | findx,
fzrt_int * | nu,
fzrt_int * | nv,
fzrt_int * | degree_u,
fzrt_int * | degree_v,
double * | knots_u,
double * | knots_v,
fzrt_boolean * | rational_u,
fzrt_boolean * | rational_v,
fz_xyz_td * | cpts,
double * | weights )

Parameters

windex [Input]

project window index

obj [Input]

object

findx [Input]

face index

nu [Result, Optional]

number of control points in U

nv [Result, Optional]

number of control points in V

degree_u [Result, Optional]

degree of the surface in U

degree_v [Result, Optional]

degree of the surface in V

knots_u [Result, Optional]

knot values in U array
must be preallocated to store nu + degree_u + 1 values

knots_v [Result, Optional]

knot values in V array
must be preallocated to store nv + degree_v + 1 values

rational_u [Result, Optional]

is the surface rational in U

rational_v [Result, Optional]

is the surface rational in U

cpts [Result, Optional]

spline surface control points array
must be preallocated to hold nu x nv values.

weights [Result, Optional]

weights of the spline surface
must be preallocated to store nu x nv values

Returns

Error codes
MODEL_ERR_INVALID_FACE - invalid face type

Availability

5.0.0.0

Example Files

util_objt_alys_face.fsl

See Also

, fz_objt_alys_get_face_geom_type, fz_objt_alys_get_face_pnt_parm, fz_objt_alys_get_face_plne_parm, fz_objt_alys_get_face_sphr_parm, fz_objt_alys_get_face_cyln_parm, , fz_objt_alys_get_face_tors_parm, fz_objt_alys_get_face_area, fz_objt_alys_get_face_circumference, fz_objt_alys_get_face_cog,

Function Set

fz_model_fset

Defined in

fz_objt_alys_api.h