Public Member Functions | Public Attributes | Protected Member Functions

KFbxLine Class Reference

This reference page is linked to from the following overview topics: FBX SDK 2012, Geometry, Meshes.


Search for all occurrences

Detailed Description

A line is a geometry made of points.

To be different from curves(nurbs, etc), line is linear. The class can define a line with as many points as needed. The line can also represent line segments, which means there will be gaps among points. To denote line segments and these gaps, certain points could be marked as end points. That's why we supply an index array(mPointArray) and an end point array(mEndPointArray). To mark a point as end point, we add its index(of mPointArray) to mEndPointArray.

Methods to initialize, set and access control points are provided in the KFbxGeometryBase class. To initialize control point count, please use KFbxLine::InitControlPoints(int pCount). To set a control point, please use KFbxLine::SetControlPointAt(const KFbxVector4 &pCtrlPoint , int pIndex). To get control point count, please use KFbxLine::GetControlPointsCount(). To get a control point, please use KFbxLine::GetControlPointAt(int pIndex). The pIndex could be returned by GetPointIndexAt(i).

Definition at line 66 of file kfbxline.h.

#include <kfbxline.h>

Inheritance diagram for KFbxLine:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual EAttributeType  GetAttributeType () const
  Return the type of node attribute.
void  Reset ()
  Reset the line to default values.
void  SetIndexArraySize (int pCount)
  Sets the size of index array(mPointArray).
int  GetIndexArraySize () const
  Return the size of index array(mPointArray).
KArrayTemplate< int > *  GetIndexArray ()
  Get the pointer to the index array.
bool  SetPointIndexAt (int pValue, int pIndex, bool pAsEndPoint=false)
  Sets index array(mPointArray) at a specified index.
int  GetPointIndexAt (int pIndex) const
  Gets the point index(i.e: an index to a control point) at the specified index.
bool  AddPointIndex (int pValue, bool pAsEndPoint=false)
  Adds a point to the index array (mPointArray).
KArrayTemplate< int > *  GetEndPointArray ()
  Get the pointer to the end point array.
bool  AddEndPoint (int pPointIndex)
  Adds a point index to the end point array (mEndPointArray).
int  GetEndPointAt (int pEndPointIndex) const
  Gets the point index(an index to the point index array) at the specified index.
int  GetEndPointCount () const
  Query the number of end points.
virtual KFbxObject Copy (const KFbxObject &pObject)
  Copy an object content into this object.

Public Attributes

KFbxTypedProperty< fbxBool1 Renderable
  This property decide whether this line is renderable in 3DSMax.

Protected Member Functions

  KFbxLine (KFbxSdkManager &pManager, char const *pName)
virtual bool  ConstructProperties (bool pForceSet)
virtual void  Destruct (bool pRecursive, bool pDependents)

Constructor & Destructor Documentation

KFbxLine ( KFbxSdkManager pManager,
char const *  pName 
) [protected]

Member Function Documentation

virtual EAttributeType GetAttributeType ( ) const [virtual]

Return the type of node attribute.

Returns:
Return the type of this node attribute which is EAttributeType::eLINE.

Reimplemented from KFbxGeometry.

void Reset ( )

Reset the line to default values.

Frees and set to NULL all layers and clear the control point array, the index array and end points array.

void SetIndexArraySize ( int  pCount )

Sets the size of index array(mPointArray).

Parameters:
pCount Specify the size of mPointArray.
int GetIndexArraySize ( ) const

Return the size of index array(mPointArray).

Returns:
The number of points defined for this line.
KArrayTemplate<int>* GetIndexArray ( ) [inline]

Get the pointer to the index array.

Returns:
the pointer to the index array(mPointArray).

Definition at line 94 of file kfbxline.h.

{ return &mPointArray;}
bool SetPointIndexAt ( int  pValue,
int  pIndex,
bool  pAsEndPoint = false 
)

Sets index array(mPointArray) at a specified index.

Parameters:
pValue An index to a control point. Its range is from 0 to count of control point.
pIndex The specified index to mPointArray. Its range is from 0 to size of mPointArray.
pAsEndPoint Mark current point as end point or not. If pAsEndPoint is true, pIndex will be automatically added to mEndPointArray.
Returns:
True on success, false on failure if pIndex is out of range.
int GetPointIndexAt ( int  pIndex ) const

Gets the point index(i.e: an index to a control point) at the specified index.

Parameters:
pIndex The specified index to the point index array(mPointArray). Its range is from 0 to size of mPointArray.
Returns:
Return the index to the table of the control points. If pIndex is out of range, it will return -1.
bool AddPointIndex ( int  pValue,
bool  pAsEndPoint = false 
)

Adds a point to the index array (mPointArray).

Parameters:
pValue The index to a control point. Its range is from 0 to count of control point.
pAsEndPoint Mark current point as end point or not. If pAsEndPoint is true, current point index will be automatically added to mEndPointArray.
Returns:
True on success, false on failure if pValue is out of range.
KArrayTemplate<int>* GetEndPointArray ( ) [inline]

Get the pointer to the end point array.

Returns:
the pointer to the end points array(mEndPointArray).

Definition at line 120 of file kfbxline.h.

{ return &mEndPointArray;}
bool AddEndPoint ( int  pPointIndex )

Adds a point index to the end point array (mEndPointArray).

To mark it as end point, its index to mPointArray will be added to mEndPointArray.

Parameters:
pPointIndex The specified index to the point index array(mPointArray). Its range is from 0 to size of mPointArray.
Returns:
True on success, false on failure if pPointIndex is out of range.
Remarks:
The point index in mEndPointArray should be incremental, otherwise, it will return false. To add pPointIndex, mEndPointArray will be automatically appended and resized. You never have to set count or resize for mEndPointArray. Below is the code sample:
 int lIndexCount = lLine->GetIndexArraySize();
 for(int i = 0; i < lIndexCount; i++)
 {
     if(i%2 == 1)
     {
         lLine->AddEndPoint(i);
     }
 }
int GetEndPointAt ( int  pEndPointIndex ) const

Gets the point index(an index to the point index array) at the specified index.

Parameters:
pIndex The specified index to the end points array(mEndPointArray). Its range is from 0 to size of mEndPointArray.
Returns:
Return the index to the point index array(mPointArray). If pIndex is out of range, it will return -1.
Remarks:
Below is the code sample:
 int lEndPointsCount = lLine->GetEndPointCount();
 for (int j = 0; j < lEndPointsCount; j++)
 {
     //Get the index to the index array. 
     int lEndIndex = lLine->GetEndPointAt(j);
     // to get the control point index of the end point
     int lControlPointIndex = lLine->GetPointIndexAt(lEndIndex);
 }
int GetEndPointCount ( ) const

Query the number of end points.

Returns:
Return the size of end point array(mEndPointArray).
virtual KFbxObject& Copy ( const KFbxObject 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 KFbxGeometry.

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

Member Data Documentation

This property decide whether this line is renderable in 3DSMax.

Lines from Maya are not renderable by default.

Definition at line 167 of file kfbxline.h.


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

KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine
KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine KFbxLine