#include <fbxline.h>
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 FbxGeometryBase class. To initialize control point count, please use FbxLine::InitControlPoints(int pCount). To set a control point, please use FbxLine::SetControlPointAt(const FbxVector4 &pCtrlPoint , int pIndex). To get control point count, please use FbxLine::GetControlPointsCount(). To get a control point, please use FbxLine::GetControlPointAt(int pIndex). The pIndex could be returned by GetPointIndexAt(i).
Public Member Functions |
|
| virtual FbxNodeAttribute::EType | 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).
|
|
| FbxArray< 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). |
|
| FbxArray< 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. |
|
Public Attributes |
|
| FbxPropertyT< FbxBool > | Renderable |
| This property decide whether this line is
renderable in 3DSMax. |
|
| virtual FbxNodeAttribute::EType GetAttributeType | ( | ) | const [virtual] |
Return the type of node attribute.
Reimplemented from FbxGeometry.
| 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).
| pCount | Specify the size of mPointArray. |
| int GetIndexArraySize | ( | ) | const |
Return the size of index array(mPointArray).
| FbxArray<int>* GetIndexArray | ( | ) | [inline] |
| bool SetPointIndexAt | ( | int | pValue, |
| int | pIndex, | ||
| bool | pAsEndPoint =
false |
||
| ) |
Sets index array(mPointArray) at a specified index.
| 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. |
| int GetPointIndexAt | ( | int | pIndex | ) | const |
Gets the point index(i.e: an index to a control point) at the specified index.
| pIndex | The specified index to the point index array(mPointArray). Its range is from 0 to size of mPointArray. |
| bool AddPointIndex | ( | int | pValue, |
| bool | pAsEndPoint =
false |
||
| ) |
Adds a point to the index array (mPointArray).
| 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. |
| FbxArray<int>* GetEndPointArray | ( | ) | [inline] |
| 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.
| pPointIndex | The specified index to the point index array(mPointArray). Its range is from 0 to size of mPointArray. |
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.
| pIndex | The specified index to the end points array(mEndPointArray). Its range is from 0 to size of mEndPointArray. |
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.
This property decide whether this line is renderable in 3DSMax.
Lines from Maya are not renderable by default.