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

FbxNurbsSurface 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 directions.

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

Definition at line 33 of file fbxnurbssurface.h.

#include <fbxnurbssurface.h>

Inheritance diagram for FbxNurbsSurface:
Inheritance graph
[legend]

List of all members.

Public Types

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

Public Member Functions

virtual FbxNodeAttribute::EType GetAttributeType () const
 Returns the FbxNodeAttribute::EType::eNurbsSurface node attribute type.
void Reset ()
 Resets the NURBS surface its default values.
bool IsRational () const
 Checks if the surface has all rational control points.
virtual FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object.
void SetFlipNormals (bool pFlipNormals)
bool GetFlipNormals () const
bool IsValidKnots () const

Protected Member Functions

virtual void Construct (const FbxNurbsSurface *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
ESurfaceMode mSurfaceMode
bool mApplyFlipUV
bool mApplyFlipLinks
bool mFlipNormals

Friends

class FbxGeometryConverter

NURBS surface Properties

enum  EType { ePeriodic, eClosed, eOpen }
 

NURBS 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.
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 surface 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.
void AddCurveOnSurface (FbxNode *pCurve)
 Adds a curve to the NURBS surface.
FbxNodeGetCurveOnSurface (int pIndex)
 Retrieves a curve from this surface.
FbxNode const * GetCurveOnSurface (int pIndex) const
 Retrieves a curve from this surface.
int GetCurveOnSurfaceCount () const
 Returns the number of curves on this surface.
bool RemoveCurveOnSurface (FbxNode *pCurve)
 Removes a curve from this surface.

Member Enumeration Documentation

enum EType

NURBS types.

  • ePeriodic
  • eClosed
  • eOpen
Enumerator:
ePeriodic 
eClosed 
eOpen 

Reimplemented from FbxNodeAttribute.

Definition at line 64 of file fbxnurbssurface.h.

enum EErrorCode

Member Function Documentation

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

Returns the FbxNodeAttribute::EType::eNurbsSurface 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 57 of file fbxnurbssurface.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 FbxNurbsSurface::SetOrder().
int GetUCount ( ) const [inline]

Returns the number of U-dimension control points.

Returns:
Number of U-dimension control points.

Definition at line 84 of file fbxnurbssurface.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 89 of file fbxnurbssurface.h.

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

Returns the U-dimension NURBS type.

Returns:
NURBS type identifier.

Definition at line 94 of file fbxnurbssurface.h.

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

Returns the V-dimension NURBS type.

Returns:
NURBS type identifier.

Definition at line 99 of file fbxnurbssurface.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.
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 130 of file fbxnurbssurface.h.

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

Returns the NURBS order in V dimension.

Returns:
NURBS order in V dimension.

Definition at line 135 of file fbxnurbssurface.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 147 of file fbxnurbssurface.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 152 of file fbxnurbssurface.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 198 of file fbxnurbssurface.h.

{ return GetApplyFlipUV() || GetApplyFlipLinks(); }
void AddCurveOnSurface ( FbxNode pCurve)

Adds a curve to the NURBS surface.

Adds a 2D, parametric space curve to this surface

Parameters:
pCurveThe curve to be added to the surface.
FbxNode* GetCurveOnSurface ( int  pIndex)

Retrieves a curve from this surface.

Parameters:
pIndexIndex of the curve to retrieve (Valid range is 0 to GetCurveOnSurfaceCount() - 1).
Returns:
The curve at the specified index, or returns NULL if pIndex is out of range.
FbxNode const* GetCurveOnSurface ( int  pIndex) const

Retrieves a curve from this surface.

Parameters:
pIndexIndex of the curve to retrieve (Valid range is 0 to GetCurveOnSurfaceCount() - 1).
Returns:
The curve at the specified index, or returns NULL if pIndex is out of range.
int GetCurveOnSurfaceCount ( ) const

Returns the number of curves on this surface.

Returns:
The number of curves on this surface.
bool RemoveCurveOnSurface ( FbxNode pCurve)

Removes a curve from this surface.

Parameters:
pCurveThe curve to be removed.
Returns:
True if the curve is removed successfully, if unsuccessful, returns false.
bool IsRational ( ) const

Checks if the surface has all rational control points.

Returns:
True if rational, false otherwise
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.

void SetFlipNormals ( bool  pFlipNormals)
bool GetFlipNormals ( ) const
bool IsValidKnots ( ) const
virtual void Construct ( const FbxNurbsSurface 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 275 of file fbxnurbssurface.h.


Member Data Documentation

FbxUInt mUOrder [protected]

Definition at line 261 of file fbxnurbssurface.h.

FbxUInt mVOrder [protected]

Definition at line 261 of file fbxnurbssurface.h.

int mUCount [protected]

Definition at line 262 of file fbxnurbssurface.h.

int mVCount [protected]

Definition at line 262 of file fbxnurbssurface.h.

int mUStep [protected]

Definition at line 263 of file fbxnurbssurface.h.

int mVStep [protected]

Definition at line 263 of file fbxnurbssurface.h.

EType mUType [protected]

Definition at line 264 of file fbxnurbssurface.h.

EType mVType [protected]

Definition at line 264 of file fbxnurbssurface.h.

double* mUKnotVector [protected]

Definition at line 266 of file fbxnurbssurface.h.

double* mVKnotVector [protected]

Definition at line 267 of file fbxnurbssurface.h.

Definition at line 269 of file fbxnurbssurface.h.

bool mApplyFlipUV [protected]

Definition at line 271 of file fbxnurbssurface.h.

bool mApplyFlipLinks [protected]

Definition at line 272 of file fbxnurbssurface.h.

bool mFlipNormals [protected]

Definition at line 273 of file fbxnurbssurface.h.


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

FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface
FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface FbxNurbsSurface