Action:
|
Evaluates a bs3_surface for position, first, and second derivatives at the given parameter value.
|
|
Prototype:
|
void bs3_surface_eval (
|
|
|
SPApar_pos const& uv,
|
// given parameter point
|
|
|
|
|
// uv
|
|
|
bs3_surface bs,
|
// given surface
|
|
|
SPAposition& pos,
|
// position returned
|
|
|
SPAvector* d1
|
// du and dv returned in
|
|
|
|
= NULL,
|
// an array of 2 vectors
|
|
|
SPAvector* d2
|
// duu, duv and dvv
|
|
|
|
= NULL
|
// returned in array
|
|
|
|
|
// of 3 vectors
|
|
|
);
|
|
Includes:
|
#include "kernel/acis.hxx"
|
|
#include "baseutil/logical.h"
|
|
#include "baseutil/vector/param.hxx"
|
|
#include "baseutil/vector/position.hxx"
|
|
#include "kernel/spline/bs3_srf/bs3surf.hxx"
|
|
#include "kernel/spline/bs3_srf/sp3srtn.hxx"
|
|
Description:
|
If pos is a non-null reference, it is set to the evaluated position of the surface at the given parameter values. If d1uv is not NULL, it must point to an array of vectors of length 2, and these are set to the surface derivatives with respect to the parameters u and v respectively. If d2uv is not NULL, it must point to an array of vectors of length 3, and these are set to the second derivatives of the surface, with respect to u twice, u and v, and v twice. (For all ordinary surfaces we may assume that the derivative with respect to v and u will be the same as that with respect to u and v.)
|
|
Limitations:
|
There is no provision to handle discontinuities of second derivative, so it is assumed that the second derivatives are continuous across the portion of the surface that is of interest. Also, it is assumed that the first derivatives are continuous everywhere. The direction of the surface normal is always required to be continuous throughout the interior of the portion of interest.
|
|
Library:
|
kernel
|
|
Filename:
|
kern/kernel/spline/bs3_srf/sp3srtn.hxx
|
|
Effect:
|
Read-only
|