Detailed Description
The
NurbsSurface object gives access to the X3DObject's nurbs
surface
Geometry.
- See also:
- PolygonMesh::GetPolygons,
CPolygonFaceArray
- Example:
using namespace XSI;
Application app;
Model root = app.GetActiveSceneRoot();
X3DObject mySphere;
root.AddGeometry( L"Sphere", L"NurbsSurface", L"", mySphere );
NurbsSurfaceMesh mySurfaceMesh(mySphere.GetActivePrimitive().GetGeometry());
CNurbsSurfaceDataArray surfaces(2);
NurbsSurface(mySurfaceMesh.GetSurfaces().GetItem(0)).Get(siSINurbs,surfaces[0]);
X3DObject myCone;
root.AddGeometry( L"Cone",L"NurbsSurface",L"", myCone );
mySurfaceMesh = myCone.GetActivePrimitive().GetGeometry();
NurbsSurface(mySurfaceMesh.GetSurfaces().GetItem(0)).Get(siSINurbs,surfaces[1]);
X3DObject myMultiSurfaceMesh;
root.AddNurbsSurfaceMesh(surfaces,siSINurbs,L"",myMultiSurfaceMesh);
#include <xsi_nurbssurface.h>
List of all
members.
Public Member Functions
|
|
NurbsSurface
() |
|
~NurbsSurface
() |
|
NurbsSurface
(const CRef
&in_ref) |
|
NurbsSurface
(const NurbsSurface &in_obj) |
bool |
IsA
(siClassID
in_ClassID) const |
siClassID |
GetClassID
() const |
NurbsSurface
& |
operator=
(const NurbsSurface &in_obj) |
NurbsSurface
& |
operator=
(const CRef
&in_ref) |
CKnotArray |
GetKnots
(siNurbsDirection
in_siNurbsDirection) const |
CControlPointRefArray |
GetControlPoints
() const |
CNurbsSampleRefArray |
GetNurbsSamples
() const |
CStatus |
Get
(siNurbsFormat
in_siNurbsFormat, CNurbsSurfaceData
&out_surface) const |
CStatus |
Set
(const CNurbsSurfaceData
&in_surface, siNurbsFormat
in_siNurbsFormat=siSINurbs) |
CStatus |
EvaluatePosition
(double in_dUValue, double in_dVValue, MATH::CVector3
&out_vPosition, MATH::CVector3
&out_vUTangent, MATH::CVector3
&out_vVTangent, MATH::CVector3
&out_vNormal) const |
CStatus |
EvaluateNormalizedPosition
(double in_dUNormalizedValue, double in_dVNormalizedValue,
MATH::CVector3
&out_vPosition, MATH::CVector3
&out_vUTangent, MATH::CVector3
&out_vVTangent, MATH::CVector3
&out_vNormal) const |
CStatus |
GetNormalizedUVFromUV
(double in_dUValue, double in_dVValue, double
&out_dNormalizedUValue, double &out_dNormalizedVValue)
const |
CStatus |
GetUVFromNormalizedUV
(double in_dNormalizedUValue, double in_dNormalizedVValue, double
&out_dUValue, double &out_dVValue) const |
LONG |
GetTrimCount
() const |
CStatus |
GetTrim
(LONG in_lTrimIndex, siNurbsFormat
in_siNurbsFormat, CTrimCurveData
&out_trimcurve) const |
Constructor & Destructor Documentation
Constructor.
- Parameters:
-
in_ref |
constant reference object. |
Copy constructor.
- Parameters:
-
in_obj |
constant class object. |
Member Function Documentation
bool IsA |
( |
siClassID |
in_ClassID |
) |
const [virtual] |
Returns true if a given class type is compatible with this API
class.
- Parameters:
-
- Returns:
- true if the class is compatible, false otherwise.
Reimplemented from Facet.
Returns the type of the API class.
- Returns:
- The class type.
Reimplemented from Facet.
Creates an object from another object. The newly created object
is set to empty if the input object is not compatible.
- Parameters:
-
in_obj |
constant class object. |
- Returns:
- The new
PolygonFace object.
Creates an object from a reference object. The newly created
object is set to empty if the input reference object is not
compatible.
- Parameters:
-
in_ref |
constant class object. |
- Returns:
- The new
PolygonFace object.
Reimplemented from Facet.
Returns an array of all Knot values on this
NurbsSurface object in a given direction.
- Parameters:
-
in_siNurbsDirection |
Direction in which we want the knot values. |
- Returns:
- Array of all knots.
Returns a complete data description of a nurbs surface.
- Parameters:
-
in_siNurbsFormat |
Specifies how the data is formatted. |
- Return values:
-
out_surface |
The entire surface data description. |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
Creates a new geometry for this
NurbsSurface from a complete data description of a nurbs
surface. This is only available from compiled operators.
- Note:
- If you use it on a object with some clusters and you change the
topology the burden of updating the clusters is on the user.
- Warning:
- UV ordering is different for the C++ API than it is for
scripting. In scripting, a control point array is ordered U-V like
so:
(0,0)...(0,cntV-1),
(1,0)....(1,cntV-1),(cntU-1,0)...(cntU-1,cntV-1)
However, the order for the C++ API is V-U:
(0,0)...(cntU-1,0),
(0,1)....(cntU-1,1)...(0,cntV-1)...(cntU-1,cntV-1)
Since NurbsSurface::Set
expects the U-V order, you must reorder the array before passing it
via the in_siNurbsFormat
argument. See
cpp_understand_UV_Ordering UV Ordering for a sample conversion
function.
- Parameters:
-
in_surface |
Specify the new data description for this
NurbsSurface. |
in_siNurbsFormat |
Specifies how the data is formatted. |
- Returns:
-
CStatus::OK success
-
CStatus::AccessDenied function used outside of a plug-in
operator context.
Returns the Position , U tangent, V Tangent, and Normal at a
given UV value.
- Parameters:
-
in_dUValue |
The U Value at which we want to evaluate the surface. |
in_dVValue |
The V Value at which we want to evaluate the surface. |
- Return values:
-
out_vPosition |
Position at the given UV. |
out_vUTangent |
Tangent in U at the given UV. |
out_vVTangent |
Tangent in V at the given UV. |
out_vNormal |
Normal at the given UV. |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
Returns the Position, U tangent, V Tangent,Normal at a given
normalized UV value.
- Parameters:
-
in_dUNormalizedValue |
The normalized U Value(0.0 to 1.0) at which we want to evaluate
the surface. |
in_dVNormalizedValue |
The normalized V Value(0.0 to 1.0) at which we want to evaluate
the surface. |
- Return values:
-
out_vPosition |
Position at the given UV. |
out_vUTangent |
Tangent in U at the given UV. |
out_vVTangent |
Tangent in V at the given UV. |
out_vNormal |
Normal at the given UV. |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
CStatus GetNormalizedUVFromUV |
( |
double |
in_dUValue, |
|
|
double |
in_dVValue, |
|
|
double & |
out_dNormalizedUValue, |
|
|
double & |
out_dNormalizedVValue |
|
) |
|
const |
Returns the Normalized equivalent of UV values.
- Parameters:
-
in_dUValue |
The U Value from which we want the normalized U Value. |
in_dVValue |
The V Value from which we want the normalized V Value. |
- Return values:
-
out_dNormalizedUValue |
The normalized U Value(0.0 to 1.0). |
out_dNormalizedVValue |
The normalized V Value(0.0 to 1.0). |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
CStatus GetUVFromNormalizedUV |
( |
double |
in_dNormalizedUValue, |
|
|
double |
in_dNormalizedVValue, |
|
|
double & |
out_dUValue, |
|
|
double & |
out_dVValue |
|
) |
|
const |
Returns the UV value equivalent to the specified normalized UV
values.
- Parameters:
-
in_dNormalizedUValue |
The normalized UValue(0.0 to 1.0) from which we want the actual
U Value. |
in_dNormalizedVValue |
The normalized VValue(0.0 to 1.0) from which we want the actual
V Value. |
- Return values:
-
out_dUValue |
The actual U value. |
out_dVValue |
The actual V value. |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
LONG GetTrimCount |
( |
|
) |
const |
Returns the number of trim curves on this nurbs surface.
- Returns:
- The number of trim curves.
Returns a complete data description of a nurbs surface trim. A
trim is a
NurbsCurveList that is projected on a nurbs surface.
- Parameters:
-
in_lTrimIndex |
The index of the trim curve for which we want the
description. |
in_siNurbsFormat |
Specifies how the data is formatted. |
- Return values:
-
out_trimcurve |
The entire data description of the trim curve. |
- Returns:
-
CStatus::OK success
-
CStatus::Fail other failure
The documentation for this class was generated from the following
file: