KFbxNurbsSurface
#include<kfbxnurbssurface.h>

Inheritance diagram for KFbxNurbsSurface:

Inheritance graph
[legend]

List of all members.

Detailed Description

A Nurbs surface is a type of parametric geometry.

A Nurbs surface is defined by the degree, 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 theKFbxNurbsCurve. The same concepts for Nurbs curves apply to Nurbs surfaces. Nurbs surfaces simply have two dimensions (U and V).

Definition at line62of filekfbxnurbssurface.h.


Nurb Properties

enum ENurbType
 Nurb types.More...
void SetSurfaceMode(KFbxGeometry::ESurfaceModepMode)
 Set surface mode.
ESurfaceMode GetSurfaceMode() const
 Get surface mode.
void InitControlPoints(int pUCount,ENurbTypepUType, int pVCount,ENurbTypepVType)
 Allocate memory space for the array of control points as well as the knot and multiplicity vectors.
int GetUCount() const
 Get number of control points in U direction.
int GetVCount() const
 Get number of control points in V direction.
ENurbType GetNurbUType() const
 Get nurb type in U direction.
ENurbType GetNurbVType() const
 Get nurb type in V direction.
int GetUKnotCount() const
 Get the number of elements in the knot vector in U direction.
double * GetUKnotVector() const
 Get knot vector in U direction.
int GetVKnotCount() const
 Get the number of elements in the knot vector in V direction.
double * GetVKnotVector() const
 Get knot vector in V direction.
void SetOrder(kUInt pUOrder, kUInt pVOrder)
 Get multiplicity control points in U direction.
int GetUOrder() const
 Get nurb order in U direction.
int GetVOrder() const
 Get nurb order in V direction.
void SetStep(int pUStep, int pVStep)
 Set step.
int GetUStep() const
 Get the number of divisions between adjacent control points in U direction.
int GetVStep() const
 Get the number of divisions between adjacent control points in V direction.
int GetUSpanCount() const
 Nurb types.
int GetVSpanCount() const
 Nurb types.

Nurb Export Flags

void SetApplyFlipUV(bool pFlag)
 Set the flag inducing UV flipping at export time.
bool GetApplyFlipUV() const
 Get the flag inducing UV flipping at export time.
void SetApplyFlipLinks(bool pFlag)
 Set the flag inducing link flipping at export time.
bool GetApplyFlipLinks() const
 Get the flag inducing link flipping at export time.
bool GetApplyFlip() const
 Get flip flags state.
void AddCurveOnSurface(KFbxNode*pCurve)
 Add curve on surface Adds a 2d, parameter space curve to this surface.
KFbxNodeGetCurveOnSurface(int pIndex)
 Retrieves a curve on this surface.
KFbxNodeconst * GetCurveOnSurface(int pIndex) const
 Retrieves a curve on this surface.
int GetCurveOnSurfaceCount() const
bool RemoveCurveOnSurface(KFbxNode*pCurve)
 Removes a curve from this surface.

Public Member Functions

virtualEAttributeType GetAttributeType() const
 Return the type of node attribute which is EAttributeType::eNURBS_SURFACE.
void Reset()
 Reset the nurb to default values.
bool IsRational()
 Check if the surface has all rational control points.

Member Enumeration Documentation

Nurb types.

  • ePERIODIC
  • eCLOSED
  • eOPEN

Definition at line92of filekfbxnurbssurface.h.

Member Function Documentation

virtualEAttributeTypeGetAttributeType( ) const[inline, virtual]

Return the type of node attribute which is EAttributeType::eNURBS_SURFACE.

Reimplemented fromKFbxGeometry.

Definition at line67of filekfbxnurbssurface.h.

void Reset( ) 

Reset the nurb to default values.

void SetSurfaceMode(KFbxGeometry::ESurfaceMode pMode ) 

Set surface mode.

Parameters:
pMode Surface mode identifier (see class KfbxGeometry)

ESurfaceModeGetSurfaceMode( ) const[inline]

Get surface mode.

Returns:
Currently set surface mode identifier.

Definition at line85of filekfbxnurbssurface.h.

void InitControlPoints(int pUCount,
ENurbType pUType,
int pVCount,
ENurbType pVType 
)

Allocate memory space for the array of control points as well as the knot and multiplicity vectors.

Parameters:
pUCount Number of control points in U direction.
pUType Nurb type in U direction.
pVCount Number of control points in V direction.
pVType Nurb type in V direction.
Remarks:
This function should always be called afterKFbxNurb::SetOrder().

int GetUCount( ) const[inline]

Get number of control points in U direction.

Returns:
Number of control points in U.

Definition at line112of filekfbxnurbssurface.h.

int GetVCount( ) const[inline]

Get number of control points in V direction.

Returns:
Number of control points in V.

Definition at line117of filekfbxnurbssurface.h.

ENurbTypeGetNurbUType( ) const[inline]

Get nurb type in U direction.

Returns:
Nurb type identifier.

Definition at line122of filekfbxnurbssurface.h.

ENurbTypeGetNurbVType( ) const[inline]

Get nurb type in V direction.

Returns:
Nurb type identifier.

Definition at line127of filekfbxnurbssurface.h.

int GetUKnotCount( ) const

Get the number of elements in the knot vector in U direction.

SeeKFbxNurbsCurvefor more information.

Returns:
The number of control points in U direction.

double* GetUKnotVector( ) const

Get knot vector in U direction.

Returns:
Pointer to the array of knots.

int GetVKnotCount( ) const

Get the number of elements in the knot vector in V direction.

SeeKFbxNurbsCurvefor more information.

Returns:
The number of control points in V direction. Nurb order in V

double* GetVKnotVector( ) const

Get knot vector in V direction.

Returns:
Pointer to the array of knots.

void SetOrder(kUInt pUOrder,
kUInt pVOrder 
)

Get multiplicity control points in U direction.

Returns:
Pointer to the array of multiplicity values.
Remarks:
The length of this vector is equal to U count and its elements are set to 1 by default. Get multiplicity control points in V.
Returns:
Pointer to the array of multiplicity values.
Remarks:
The length of this vector is equal to V count and its elements are set to 1 by default. Set order.
Parameters:
pUOrder Nurb order in U direction.
pVOrder Nurb order in V direction.

int GetUOrder( ) const[inline]

Get nurb order in U direction.

Returns:
U order value.

Definition at line172of filekfbxnurbssurface.h.

int GetVOrder( ) const[inline]

Get nurb order in V direction.

Returns:
V order value.

Definition at line177of filekfbxnurbssurface.h.

void SetStep(int pUStep,
int pVStep 
)

Set step.

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

Parameters:
pUStep Steps in U direction.
pVStep Steps in V direction.

int GetUStep( ) const[inline]

Get the number of divisions between adjacent control points in U direction.

Returns:
Step value in U direction.

Definition at line189of filekfbxnurbssurface.h.

int GetVStep( ) const[inline]

Get the number of divisions between adjacent control points in V direction.

Returns:
Step value in V direction.

Definition at line194of filekfbxnurbssurface.h.

int GetUSpanCount( ) const

Nurb types.

  • ePERIODIC
  • eCLOSED
  • eOPEN

int GetVSpanCount( ) const

Nurb types.

  • ePERIODIC
  • eCLOSED
  • eOPEN

void SetApplyFlipUV(bool pFlag ) 

Set the flag inducing UV flipping at export time.

Parameters:
pFlag IftrueUV flipping will occur.

bool GetApplyFlipUV( ) const

Get the flag inducing UV flipping at export time.

Returns:
Current state of the UV flip flag.

void SetApplyFlipLinks(bool pFlag ) 

Set the flag inducing link flipping at export time.

Parameters:
pFlag Iftruethe links control points indices will be flipped.

bool GetApplyFlipLinks( ) const

Get the flag inducing link flipping at export time.

Returns:
Current state of the link flip flag.

bool GetApplyFlip( ) const[inline]

Get flip flags state.

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

Definition at line238of filekfbxnurbssurface.h.

void AddCurveOnSurface(KFbxNodepCurve ) 

Add curve on surface Adds a 2d, parameter space curve to this surface.

Parameters:
pCurve The curve to add to the surface

KFbxNode* GetCurveOnSurface(int pIndex ) 

Retrieves a curve on this surface.

Parameters:
pIndex Index of the curve to retrieve. Valid range is 0 toGetCurveOnSurfaceCount()- 1
Returns:
The curve at the specified index, or NULL if pIndex is out of range.

KFbxNodeconst* GetCurveOnSurface(int pIndex ) const

Retrieves a curve on this surface.

Parameters:
pIndex Index of the curve to retrieve. Valid range is 0 toGetCurveOnSurfaceCount()- 1
Returns:
The curve at the specified index, or NULL if pIndex is out of range.

int GetCurveOnSurfaceCount( ) const

Returns:
The number of curves on this surface

bool RemoveCurveOnSurface(KFbxNodepCurve ) 

Removes a curve from this surface.

Parameters:
pCurve The curve to remove
Returns:
True if the curve was removed, false otherwise.

bool IsRational( ) 

Check if the surface has all rational control points.

Returns:
true if rational, false otherwise