Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | Friends

FbxNurbs Class Reference

This reference page is linked to from the following overview topics: Supported Scene Elements, FBX Node Attributes.


Search for all occurrences

Detailed Description

A NURBS surface is a type of parametric geometry.

A NURBS surface is defined by the order, form, knot vector and control points in the U and V coordinates.

For more information on the meaning of form, knot vectors and control points, see the FbxNurbsCurve documentation. The same rules apply for the NURBS curves and NURBS surfaces, but NURBS surfaces have two dimensions (U and V).

Examples:

ExportScene02/main.cxx, and ImportScene/DisplayNurb.cxx.

Definition at line 34 of file fbxnurbs.h.

#include <fbxnurbs.h>

Inheritance diagram for FbxNurbs:
Inheritance graph
[legend]

List of all members.

Public Types

enum   EErrorCode {
  eNurbsTypeUnknown, eWrongNumberOfControlPoint, eWeightTooSmall, eUMultiplicityVectorError,
  eVMultiplicityVectorError, eUKnotVectorError, eVKnotVectorError, eErrorCount
}
 

Error identifiers.

More...

Public Member Functions

virtual FbxNodeAttribute::EType  GetAttributeType () const
  Returns the FbxNodeAttribute::EType::eNurbs node attribute type.
void  Reset ()
  Resets the NURBS surface its default values.
virtual FbxObject Copy (const FbxObject &pObject)
  Copy an object content into this object.

Protected Member Functions

  FbxNurbs (FbxManager &pManager, char const *pName)
virtual void  Destruct (bool pRecursive, bool pDependents)

Protected Attributes

FbxUInt  mUOrder
FbxUInt  mVOrder
int  mUCount
int  mVCount
int  mUStep
int  mVStep
EType  mUType
EType  mVType
double *  mUKnotVector
double *  mVKnotVector
int *  mUMultiplicityVector
int *  mVMultiplicityVector
ESurfaceMode  mSurfaceMode
bool  mApplyFlipUV
bool  mApplyFlipLinks

Friends

class  FbxGeometryConverter

NURBS surface Properties

enum   EType { ePeriodic, eClosed, eOpen }
 

Node attribute types.

More...
void  SetSurfaceMode (FbxGeometry::ESurfaceMode pMode)
  Sets the surface mode.
ESurfaceMode  GetSurfaceMode () const
  Returns the surface mode.
void  InitControlPoints (int pUCount, EType pUType, int pVCount, EType pVType)
  Allocates memory space for an array of control points as well as knot and multiplicity vectors.
int  GetUCount () const
  Returns the number of U-dimension control points.
int  GetVCount () const
  Returns the number of V-dimension control points.
EType  GetNurbsUType () const
  Returns the U-dimension NURBS type.
EType  GetNurbsVType () const
  Returns the V-dimension NURBS type.
int  GetUKnotCount () const
  Returns the number of elements in the U-dimension knot vector.
double *  GetUKnotVector () const
  Returns the U-dimension knot vector.
int  GetVKnotCount () const
  Returns the number of elements in the V-dimension knot vector.
double *  GetVKnotVector () const
  Returns the V-dimension knot vector.
int *  GetUMultiplicityVector () const
  Returns multiplicity of U-dimension control points.
int *  GetVMultiplicityVector () const
  Returns multiplicity of V-dimension control points.
void  SetOrder (FbxUInt pUOrder, FbxUInt pVOrder)
  Sets the order of the NURBS surface.
int  GetUOrder () const
  Returns the NURBS order in U dimension.
int  GetVOrder () const
  Returns the NURBS order in V dimension.
void  SetStep (int pUStep, int pVStep)
  Sets the NURBS step.
int  GetUStep () const
  Returns the number of divisions between adjacent control points in U dimension.
int  GetVStep () const
  Returns the number of divisions between adjacent control points in V dimension.
int  GetUSpanCount () const
  Calculates the number of surface spans in the U dimension.
int  GetVSpanCount () const
  Calculates the number of surface spans in the V dimension.

NURBS Export Flags

void  SetApplyFlipUV (bool pFlag)
  Sets the flag that induces UV flipping at export.
bool  GetApplyFlipUV () const
  Returns the flag that induces UV flipping at export.
void  SetApplyFlipLinks (bool pFlag)
  Sets the flag that induces link flipping at export.
bool  GetApplyFlipLinks () const
  Returns the flag that induces link flipping at export.
bool  GetApplyFlip () const
  Returns flip flags state.

Member Enumeration Documentation

enum EType

Node attribute types.

  • eUnknown
  • eNull
  • eMarker
  • eSkeleton
  • eMesh
  • eNurbs
  • ePatch
  • eCamera
  • eCameraStereo,
  • eCameraSwitcher
  • eLight
  • eOpticalReference
  • eOpticalMarker
  • eNurbsCurve
  • eTrimNurbsSurface
  • eBoundary
  • eNurbsSurface
  • eShape
  • eLODGroup
  • eSubDiv
  • eCachedEffect
  • eLine
Enumerator:
ePeriodic 
eClosed 
eOpen 

Reimplemented from FbxNodeAttribute.

Definition at line 65 of file fbxnurbs.h.

enum EErrorCode

Error identifiers.

Enumerator:
eNurbsTypeUnknown 
eWrongNumberOfControlPoint 
eWeightTooSmall 
eUMultiplicityVectorError 
eVMultiplicityVectorError 
eUKnotVectorError 
eVKnotVectorError 
eErrorCount 

Reimplemented from FbxGeometry.

Definition at line 254 of file fbxnurbs.h.


Constructor & Destructor Documentation

FbxNurbs ( FbxManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

virtual FbxNodeAttribute::EType GetAttributeType ( ) const [virtual]

Returns the FbxNodeAttribute::EType::eNurbs node attribute type.

Reimplemented from FbxGeometry.

void Reset ( )

Resets the NURBS surface its default values.

void SetSurfaceMode ( FbxGeometry::ESurfaceMode  pMode )

Sets the surface mode.

Parameters:
pMode Surface mode identifier (see class FbxGeometry)
ESurfaceMode GetSurfaceMode ( ) const [inline]

Returns the surface mode.

Returns:
The surface mode identifier that is currently set.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 58 of file fbxnurbs.h.

{return mSurfaceMode;}
void InitControlPoints ( int  pUCount,
EType  pUType,
int  pVCount,
EType  pVType 
)

Allocates memory space for an array of control points as well as knot and multiplicity vectors.

Parameters:
pUCount Number of U-dimension control points.
pUType U-dimension NURBS type.
pVCount Number of V-dimension control points.
pVType V-dimension NURBS type.
Remarks:
Always call this function after FbxNurbs::SetOrder().
Examples:
ExportScene02/main.cxx.
int GetUCount ( ) const [inline]

Returns the number of U-dimension control points.

Returns:
Number of U-dimension control points.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 85 of file fbxnurbs.h.

{return mUCount;}
int GetVCount ( ) const [inline]

Returns the number of V-dimension control points.

Returns:
Number of V-dimension control points.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 90 of file fbxnurbs.h.

{return mVCount;}
EType GetNurbsUType ( ) const [inline]

Returns the U-dimension NURBS type.

Returns:
NURBS type identifier.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 95 of file fbxnurbs.h.

{return mUType;}
EType GetNurbsVType ( ) const [inline]

Returns the V-dimension NURBS type.

Returns:
NURBS type identifier.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 100 of file fbxnurbs.h.

{return mVType;}
int GetUKnotCount ( ) const

Returns the number of elements in the U-dimension knot vector.

See FbxNurbsCurve for more information.

Returns:
The number of elements in the U-dimension knot vector.
Examples:
ExportScene02/main.cxx, and ImportScene/DisplayNurb.cxx.
double* GetUKnotVector ( ) const

Returns the U-dimension knot vector.

Returns:
Pointer to the U-dimension knot vector.
Examples:
ExportScene02/main.cxx, and ImportScene/DisplayNurb.cxx.
int GetVKnotCount ( ) const

Returns the number of elements in the V-dimension knot vector.

See FbxNurbsCurve for more information.

Returns:
The number of elements in the V-dimension knot vector.
Examples:
ExportScene02/main.cxx, and ImportScene/DisplayNurb.cxx.
double* GetVKnotVector ( ) const

Returns the V-dimension knot vector.

Returns:
Pointer to the V-dimension knot vector.
Examples:
ExportScene02/main.cxx, and ImportScene/DisplayNurb.cxx.
int* GetUMultiplicityVector ( ) const

Returns multiplicity of U-dimension control points.

Returns:
Pointer to the array of multiplicity values.
Remarks:
The length of this vector is equal to the U count. Its elements are set to 1 by default.
Examples:
ImportScene/DisplayNurb.cxx.
int* GetVMultiplicityVector ( ) const

Returns multiplicity of V-dimension control points.

Returns:
Pointer to the array of multiplicity values.
Remarks:
The length of this vector is equal to the V count. Its elements are set to 1 by default.
Examples:
ImportScene/DisplayNurb.cxx.
void SetOrder ( FbxUInt  pUOrder,
FbxUInt  pVOrder 
)

Sets the order of the NURBS surface.

Parameters:
pUOrder NURBS order in U dimension.
pVOrder NURBS order in V dimension.
Examples:
ExportScene02/main.cxx.
int GetUOrder ( ) const [inline]

Returns the NURBS order in U dimension.

Returns:
NURBS order in U dimension.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 145 of file fbxnurbs.h.

{return mUOrder;}
int GetVOrder ( ) const [inline]

Returns the NURBS order in V dimension.

Returns:
NURBS order in V dimension.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 150 of file fbxnurbs.h.

{return mVOrder;}
void SetStep ( int  pUStep,
int  pVStep 
)

Sets the NURBS step.

The step value is the number of divisions between adjacent control points.

Parameters:
pUStep Steps in U dimension.
pVStep Steps in V dimension.
Examples:
ExportScene02/main.cxx.
int GetUStep ( ) const [inline]

Returns the number of divisions between adjacent control points in U dimension.

Returns:
Steps in U dimension.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 162 of file fbxnurbs.h.

{return mUStep;}
int GetVStep ( ) const [inline]

Returns the number of divisions between adjacent control points in V dimension.

Returns:
Steps in V dimension.
Examples:
ImportScene/DisplayNurb.cxx.

Definition at line 167 of file fbxnurbs.h.

{return mVStep;}
int GetUSpanCount ( ) const

Calculates the number of surface spans in the U dimension.

See FbxNurbsCurve::GetSpanCount() for more information.

Returns:
The number of spans in the U dimension if the surface has been initialized. If the spans have not been initialized, returns -1.
int GetVSpanCount ( ) const

Calculates the number of surface spans in the V dimension.

See FbxNurbsCurve::GetSpanCount() for more information.

Returns:
The number of spans in the V dimension if the surface has been initialized. If the spans have not been initialized, returns -1.
void SetApplyFlipUV ( bool  pFlag )

Sets the flag that induces UV flipping at export.

Parameters:
pFlag If true, UV flipping occurs.
bool GetApplyFlipUV ( ) const

Returns the flag that induces UV flipping at export.

Returns:
The current state of the UV flip flag.
void SetApplyFlipLinks ( bool  pFlag )

Sets the flag that induces link flipping at export.

Parameters:
pFlag If true, the links control points indices are flipped.
bool GetApplyFlipLinks ( ) const

Returns the flag that induces link flipping at export.

Returns:
The current state of the link flip flag.
bool GetApplyFlip ( ) const [inline]

Returns flip flags state.

Returns:
True if we need to flip either the UV or the links.

Definition at line 213 of file fbxnurbs.h.

{ return GetApplyFlipUV() || GetApplyFlipLinks(); }
virtual FbxObject& Copy ( const FbxObject pObject ) [virtual]

Copy an object content into this object.

Parameters:
pObject The source object to copy data from.
Returns:
Returns the destination object being modified by the source.
Remarks:
This function replace the assignment operator (operator=). It will copy all property values and the name. Connections are NOT copied.

Reimplemented from FbxGeometry.

virtual void Destruct ( bool  pRecursive,
bool  pDependents 
) [protected, virtual]

Friends And Related Function Documentation

friend class FbxGeometryConverter [friend]

Reimplemented from FbxGeometryBase.

Definition at line 267 of file fbxnurbs.h.


Member Data Documentation

FbxUInt mUOrder [protected]

Definition at line 235 of file fbxnurbs.h.

FbxUInt mVOrder [protected]

Definition at line 235 of file fbxnurbs.h.

int mUCount [protected]

Definition at line 236 of file fbxnurbs.h.

int mVCount [protected]

Definition at line 236 of file fbxnurbs.h.

int mUStep [protected]

Definition at line 237 of file fbxnurbs.h.

int mVStep [protected]

Definition at line 237 of file fbxnurbs.h.

EType mUType [protected]

Definition at line 238 of file fbxnurbs.h.

EType mVType [protected]

Definition at line 238 of file fbxnurbs.h.

double* mUKnotVector [protected]

Definition at line 240 of file fbxnurbs.h.

double* mVKnotVector [protected]

Definition at line 241 of file fbxnurbs.h.

int* mUMultiplicityVector [protected]

Definition at line 243 of file fbxnurbs.h.

int* mVMultiplicityVector [protected]

Definition at line 244 of file fbxnurbs.h.

Definition at line 246 of file fbxnurbs.h.

bool mApplyFlipUV [protected]

Definition at line 249 of file fbxnurbs.h.

bool mApplyFlipLinks [protected]

Definition at line 250 of file fbxnurbs.h.


The documentation for this class was generated from the following file:

FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs
FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs FbxNurbs