KFbxNurb Class Reference

#include <kfbxnurb.h>
Inheritance diagram for KFbxNurb:
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 the KFbxNurbsCurve. The same rules for the Nurbs curves apply to Nurbs surfaces. Nurbs surfaces simply have two dimensions (U and V).

Definition at line 62 of file kfbxnurb.h.


Nurb Properties

enum   ENurbType
  Nurb types. More...
void  SetSurfaceMode (KFbxGeometry::ESurfaceMode pMode)
  Set surface mode.
ESurfaceMode  GetSurfaceMode () const
  Get surface mode.
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.
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.
int *  GetUMultiplicityVector () const
  Get multiplicity control points in U direction.
int *  GetVMultiplicityVector () const
  Get multiplicity control points in V.
void  SetOrder (kUInt pUOrder, kUInt pVOrder)
  Set order.
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
  Calculates the number of spans in the surface in the U direction.
int  GetVSpanCount () const
  Calculates the number of spans in the surface in the V direction.

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.

Public Member Functions

virtual EAttributeType  GetAttributeType () const
  Return the type of node attribute which is EAttributeType::eNURB.
void  Reset ()
  Reset the nurb to default values.

Member Enumeration Documentation

enum ENurbType

Nurb types.

  • ePERIODIC
  • eCLOSED
  • eOPEN

Definition at line 92 of file kfbxnurb.h.


Member Function Documentation

virtual EAttributeType GetAttributeType (  )  const [virtual]

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

Reimplemented from KFbxGeometry.

void Reset (  ) 

Reset the nurb to default values.

void SetSurfaceMode ( KFbxGeometry::ESurfaceMode  pMode  ) 

Set surface mode.

Parameters:
pMode  Surface mode identifier (see class KfbxGeometry)

ESurfaceMode GetSurfaceMode (  )  const [inline]

Get surface mode.

Returns:
Currently set surface mode identifier.

Definition at line 85 of file kfbxnurb.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 after KFbxNurb::SetOrder().

int GetUCount (  )  const [inline]

Get number of control points in U direction.

Returns:
Number of control points in U.

Definition at line 112 of file kfbxnurb.h.

int GetVCount (  )  const [inline]

Get number of control points in V direction.

Returns:
Number of control points in V.

Definition at line 117 of file kfbxnurb.h.

ENurbType GetNurbUType (  )  const [inline]

Get nurb type in U direction.

Returns:
Nurb type identifier.

Definition at line 122 of file kfbxnurb.h.

ENurbType GetNurbVType (  )  const [inline]

Get nurb type in V direction.

Returns:
Nurb type identifier.

Definition at line 127 of file kfbxnurb.h.

int GetUKnotCount (  )  const

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

See KFbxNurbsCurve for 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.

See KFbxNurbsCurve for 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.

int* GetUMultiplicityVector (  )  const

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.

int* GetVMultiplicityVector (  )  const

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.

void SetOrder ( kUInt  pUOrder,
kUInt  pVOrder  
)

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 line 172 of file kfbxnurb.h.

int GetVOrder (  )  const [inline]

Get nurb order in V direction.

Returns:
V order value.

Definition at line 177 of file kfbxnurb.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 line 189 of file kfbxnurb.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 line 194 of file kfbxnurb.h.

int GetUSpanCount (  )  const

Calculates the number of spans in the surface in the U direction.

See KFbxNurbsCurve::GetSpanCount() for more information.

Returns:
The number of spans in U if the surface has been initialized, -1 otherwise.

int GetVSpanCount (  )  const

Calculates the number of spans in the surface in the V direction.

See KFbxNurbsCurve::GetSpanCount() for more information.

Returns:
The number of spans in V if the surface has been initialized, -1 otherwise.

void SetApplyFlipUV ( bool  pFlag  ) 

Set the flag inducing UV flipping at export time.

Parameters:
pFlag  If true UV 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  If true the 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:
true if we need to flip either the UV or the links.

Definition at line 238 of file kfbxnurb.h.

KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb
KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb KFbxNurb