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, List of Python Fbx classes.


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).

Definition at line 31 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
}

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 FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object.

Protected Member Functions

virtual void Construct (const FbxNurbs *pFrom)
virtual void Destruct (bool pRecursive)
 Optional destructor override, automatically called by default destructor.

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 62 of file fbxnurbs.h.

enum EErrorCode

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:
pModeSurface mode identifier (see class FbxGeometry)
ESurfaceMode GetSurfaceMode ( ) const [inline]

Returns the surface mode.

Returns:
The surface mode identifier that is currently set.

Definition at line 55 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:
pUCountNumber of U-dimension control points.
pUTypeU-dimension NURBS type.
pVCountNumber of V-dimension control points.
pVTypeV-dimension NURBS type.
Remarks:
Always call this function after FbxNurbs::SetOrder().
int GetUCount ( ) const [inline]

Returns the number of U-dimension control points.

Returns:
Number of U-dimension control points.

Definition at line 82 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.

Definition at line 87 of file fbxnurbs.h.

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

Returns the U-dimension NURBS type.

Returns:
NURBS type identifier.

Definition at line 92 of file fbxnurbs.h.

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

Returns the V-dimension NURBS type.

Returns:
NURBS type identifier.

Definition at line 97 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.
double* GetUKnotVector ( ) const

Returns the U-dimension knot vector.

Returns:
Pointer to the U-dimension knot vector.
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.
double* GetVKnotVector ( ) const

Returns the V-dimension knot vector.

Returns:
Pointer to the V-dimension knot vector.
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.
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.
void SetOrder ( FbxUInt  pUOrder,
FbxUInt  pVOrder 
)

Sets the order of the NURBS surface.

Parameters:
pUOrderNURBS order in U dimension.
pVOrderNURBS order in V dimension.
int GetUOrder ( ) const [inline]

Returns the NURBS order in U dimension.

Returns:
NURBS order in U dimension.

Definition at line 142 of file fbxnurbs.h.

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

Returns the NURBS order in V dimension.

Returns:
NURBS order in V dimension.

Definition at line 147 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:
pUStepSteps in U dimension.
pVStepSteps in V dimension.
int GetUStep ( ) const [inline]

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

Returns:
Steps in U dimension.

Definition at line 159 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.

Definition at line 164 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:
pFlagIf 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:
pFlagIf 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 210 of file fbxnurbs.h.

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

Copy an object content into this object.

Parameters:
pObjectThe 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 Construct ( const FbxNurbs pFrom) [protected, virtual]
virtual void Destruct ( bool  pRecursive) [protected, virtual]

Optional destructor override, automatically called by default destructor.

Parameters:
pRecursiveIf true, children objects should be destroyed as well.
Remarks:
In case it is decided to override this function, do not forget to call ParentClass::Destruct(pResursive) at the end.

Reimplemented from FbxGeometry.


Friends And Related Function Documentation

friend class FbxGeometryConverter [friend]

Definition at line 254 of file fbxnurbs.h.


Member Data Documentation

FbxUInt mUOrder [protected]

Definition at line 237 of file fbxnurbs.h.

FbxUInt mVOrder [protected]

Definition at line 237 of file fbxnurbs.h.

int mUCount [protected]

Definition at line 238 of file fbxnurbs.h.

int mVCount [protected]

Definition at line 238 of file fbxnurbs.h.

int mUStep [protected]

Definition at line 239 of file fbxnurbs.h.

int mVStep [protected]

Definition at line 239 of file fbxnurbs.h.

EType mUType [protected]

Definition at line 240 of file fbxnurbs.h.

EType mVType [protected]

Definition at line 240 of file fbxnurbs.h.

double* mUKnotVector [protected]

Definition at line 242 of file fbxnurbs.h.

double* mVKnotVector [protected]

Definition at line 243 of file fbxnurbs.h.

int* mUMultiplicityVector [protected]

Definition at line 245 of file fbxnurbs.h.

int* mVMultiplicityVector [protected]

Definition at line 246 of file fbxnurbs.h.

Definition at line 248 of file fbxnurbs.h.

bool mApplyFlipUV [protected]

Definition at line 251 of file fbxnurbs.h.

bool mApplyFlipLinks [protected]

Definition at line 252 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