Open Reality Reference Guide
 
Loading...
Searching...
No Matches
fbgeometry.h
Go to the documentation of this file.
1#ifndef __FBGEOMETRY_H__
2#define __FBGEOMETRY_H__
3/**************************************************************************
4Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5All Rights Reserved.
6
7The coded instructions, statements, computer programs, and/or related
8material (collectively the "Data") in these files contain unpublished
9information proprietary to Autodesk, Inc. and/or its licensors, which is
10protected by Canada and United States of America federal copyright law
11and by international treaties.
12
13The Data may not be disclosed or distributed to third parties, in whole
14or in part, without the prior written consent of Autodesk, Inc.
15("Autodesk").
16
17THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24FREE.
25
26IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36
37**************************************************************************/
38
43#include <kaydaradef.h>
44#ifndef FBSDK_DLL
48#define FBSDK_DLL K_DLLIMPORT
49#endif
50
51#include <fbsdk/fbcore.h>
52#include <fbsdk/fbcomponent.h>
53
54#ifdef FBSDKUseNamespace
55namespace FBSDKNamespace {
56#endif
57
58 FB_DEFINE_COMPONENT( FBSDK_DLL, Geometry );
60
61 enum FBGeometryPrimitiveType
62 {
63 kFBGeometry_POINTS = 0x0000, //GL_POINTS,
64 kFBGeometry_LINES = 0x0001, //GL_LINES,
65 kFBGeometry_LINE_LOOP = 0x0002, //GL_LINE_LOOP,
66 kFBGeometry_LINE_STRIP = 0x0003, //GL_LINE_STRIP,
67 kFBGeometry_TRIANGLES = 0x0004, //GL_TRIANGLES,
68 kFBGeometry_TRIANGLE_STRIP = 0x0005, //GL_TRIANGLE_STRIP,
69 kFBGeometry_TRIANGLE_FAN = 0x0006, //GL_TRIANGLE_FAN,
70 kFBGeometry_QUADS = 0x0007, //GL_QUADS,
71 kFBGeometry_QUADS_STRIP = 0x0008, //GL_QUAD_STRIP,
72 kFBGeometry_POLYGON = 0x0009, //GL_POLYGON,
73 };
74
77 {
83 };
84
87 kFBGeometryArrayElementType_Unknown,
88 kFBGeometryArrayElementType_Integer,
89 kFBGeometryArrayElementType_Float,
90 kFBGeometryArrayElementType_Float2,
93 kFBGeometryArrayElementType_FloatMatrix4x4,
94 kFBGeometryArrayElementType_IntegerArrayPointer
95 };
96
98 // FBGeometry
101
102
114 {
115 kFBGeometryMapping_NONE,
116 kFBGeometryMapping_BY_CONTROL_POINT,
117 kFBGeometryMapping_BY_POLYGON_VERTEX,
118 kFBGeometryMapping_BY_POLYGON,
119 kFBGeometryMapping_BY_EDGE,
120 kFBGeometryMapping_ALL_SAME
121 } ;
122
135 {
136 kFBGeometryReference_DIRECT,
137 kFBGeometryReference_INDEX,
138 kFBGeometryReference_INDEX_TO_DIRECT
139 };
140
141 FB_DEFINE_ENUM( FBSDK_DLL, GeometryMappingMode );
142 FB_DEFINE_ENUM( FBSDK_DLL, GeometryReferenceMode );
143
145 {
152 };
153
170
171 protected:
176 FBGeometry(const char* pName, HIObject pObject=NULL);
177
178 public:
187
192
197
201 bool IsEditingEnabled() const;
203
213 void VertexInit (int pSize, bool pResize, bool pInitUV = true, bool pInitVertexColor = false);
214
220 bool VertexClear ();
221
227 int VertexAdd (FBVertex pVertex);
228
234 int VertexAdd (FBVertex pVertex, FBNormal pNormal);
235
242 int VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV);
243
251 int VertexAdd (FBVertex pVertex, FBNormal pNormal, FBUV pUV, FBColorF pVertexColor);
252
260 int VertexAdd (double px, double py, double pz);
261 int VertexAdd (double px, double py, double pz, double nx, double ny, double nz);
262 int VertexAdd (double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv);
263 int VertexAdd (double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv, double pRed, double pGreen, double pBlue, double pAlpha);
264
270 bool VertexSet (FBVertex pVertex,int pIndex=-1);
271
279 bool VertexSet (double px, double py, double pz,int pIndex=-1);
280
286 bool VertexNormalSet(FBNormal pVertex,int pIndex=-1);
287
295 bool VertexNormalSet(double px, double py, double pz,int pIndex=-1);
296
297
303 bool VertexUVSet(FBUV pUV, int pIndex=-1);
304
311 bool VertexUVSet(float pU, float pV, int pIndex=-1);
312
318 bool VertexColorSet(FBColorF pColor, int pIndex=-1);
319
328 bool VertexColorSet(float pRed, float pGreen, float pBlue, float pAlpha, int pIndex=-1);
329
331
336
340 int VertexCount () const;
341
346 FBVertex VertexGet (int pIndex) const;
347
352
357 FBNormal VertexNormalGet(int pIndex=-1) const;
358
363 FBUV VertexUVGet(int pIndex=-1) const;
364
369 FBColorF VertexColorGet(int pIndex=-1) const;
370
372
373
378
389 bool VertexArrayInit (int pVertexcount, bool pUniqueMaterial, unsigned int pFBGeometryArrayIDs = 0);
390
397
403 FBVertex* GetPositionsArray(int& pOutArrayCount) const;
404
405 FBPropertyGeometryMappingMode NormalMappingMode;
406 FBPropertyGeometryReferenceMode NormalReferenceMode;
407
413 int* GetNormalsIndexArray(int& pOutArrayCount) const;
414
420 FBNormal* GetNormalsDirectArray(int& pOutArrayCount) const;
421
422 FBPropertyGeometryMappingMode TangentMappingMode;
423 FBPropertyGeometryReferenceMode TangentReferenceMode;
424
430 int* GetTangentsIndexArray(int& pOutArrayCount) const;
431
437 FBNormal* GetTangentsDirectArray(int& pOutArrayCount) const;
438
439 FBPropertyGeometryMappingMode BinormalMappingMode;
440 FBPropertyGeometryReferenceMode BinormalReferenceMode;
441
447 int* GetBinormalsIndexArray(int& pOutArrayCount) const;
448
454 FBNormal* GetBinormalsDirectArray(int& pOutArrayCount) const;
455
456 FBPropertyGeometryMappingMode VertexColorMappingMode;
457 FBPropertyGeometryReferenceMode VertexColorReferenceMode;
458
464 int* GetVertexColorsIndexArray(int& pOutArrayCount) const;
465
471 FBColorF* GetVertexColorsDirectArray(int& pOutArrayCount) const;
472
477
482 FBGeometryMappingMode GetUVSetMappingMode(const char* pUVSetName = NULL) const;
483
488 FBGeometryReferenceMode GetUVSetReferenceMode(const char* pUVSetName = NULL) const;
489
496 int* GetUVSetIndexArray(int& pOutArrayCount, const char* pUVSetName = NULL) const;
497
504 FBUV* GetUVSetDirectArray(int& pOutArrayCount, const char* pUVSetName = NULL) const;
505
506 FBPropertyGeometryMappingMode MaterialMappingMode;
507
513 int* GetMaterialIndexArray(int& pOutArrayCount) const;
515
516
521
526 bool VertexGetSelected(int pIndex);
527
533 bool VertexSetSelected(int pIndex,bool pState);
534
539 bool VertexGetVisible(int pIndex);
540
546 bool VertexSetVisible(int pIndex,bool pState);
547
552 bool VertexGetTransformable(int pIndex);
554
559
561 int ShapeGetCount() const;
562
564 const char* ShapeGetName(int pShapeIdx) const;
565
570 int ShapeAdd(const char* pName);
571
574
580 void ShapeInit(int pShapeIdx, int pDiffSize, bool pWithNormal = false);
581
585 int ShapeGetDiffPointCount(int pShapeIdx) const;
586
593 bool ShapeSetDiffPoint(int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex& pPosDiff);
594
602 bool ShapeSetDiffPoint(int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex& pPosDiff, const FBNormal& pNormalDiff);
603
610 bool ShapeGetDiffPoint(int pShapeIdx, int pDiffIndex, int& pOriIndex, FBVertex& pPosDiff) const;
611
619 bool ShapeGetDiffPoint(int pShapeIdx, int pDiffIndex, int& pOriIndex, FBVertex& pPosDiff, FBNormal& pNormalDiff) const;
620
622
627
633 void ModifyNotify( kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1 );
634
636 };
637
639 // FBMesh
642
644 class FBSDK_DLL FBMesh : public FBGeometry {
646
647 public:
652 FBMesh(const char* pName, HIObject pObject=NULL);
653
662 bool TriangleListAdd(int pIndexArraySize, int* pIndexArray, int pMaterialId=0);
663
672 bool TriangleStripAdd(int pIndexArraySize, int* pIndexArray, int pMaterialId=0);
673
683 bool PolygonListAdd(int pPolygonSize, int pIndexArraySize, int* pIndexArray, int pMaterialId=0);
684
689 int PolygonBegin(int pMaterialId=0);
690
695 bool PolygonVertexAdd(int pVertex);
696
703
708 int PolygonVertexCount(int pPolygonIndex) const;
709
715 int PolygonVertexIndex(int pPolygonIndex, int pVertexPolygonIndex) const;
716
720 int PolygonCount() const;
721
731 const int* PolygonVertexArrayGet(int& pArraySize) const;
732
736 bool IsTriangleMesh() const;
737
742 int PolygonMaterialIdGet(int pIndex=-1) const;
743
747 void ComputeVertexNormals(bool pCW = false);
748
751 };
752
754 // FBSurface
757
760 {
766 };
767 FB_DEFINE_ENUM( FBSDK_DLL, SurfaceMode );
768
771 {
777 };
778 FB_DEFINE_ENUM( FBSDK_DLL, SurfaceType );
779
780
783 {
785
786 public:
791 FBSurface(const char* pName, HIObject pObject=NULL);
792
793 virtual void SurfaceBegin();
794 virtual void SurfaceEnd();
795 virtual void SurfaceEditBegin();
796 virtual void SurfaceEditEnd();
797 virtual bool GetSurfaceCapped( int pUorV, int pDirection );
798 virtual int GetVertexCount( int pUorVorGlobal = -1 );
799 virtual void ControlPointsBegin() = 0;
800 virtual void SetControlPoint( int pIndex, double pX, double pY, double pZ, double pW );
801 virtual void GetControlPoint( int pIndex, double &pX, double &pY, double &pZ, double &pW );
802 virtual void ControlPointsEnd();
803
809 bool VertexGetSelected(int pU,int pV);
816 bool VertexSetSelected(int pU,int pV,bool pState);
817
823 bool VertexGetVisible(int pU,int pV);
824
831 bool VertexSetVisible(int pU,int pV,bool pState);
832
838 bool VertexGetTransformable(int pU,int pV);
839
840
847 FBPropertySurfaceMode SurfaceMode;
848
849 private:
850 void FBSurfaceInitProperties();
851 };
852
855 {
859 };
860 FB_DEFINE_ENUM( FBSDK_DLL, NurbType );
861
862
864 // FBNurbs
867
870 {
872
873 public:
878 FBNurbs(const char* pName, HIObject pObject=NULL);
879
882 virtual void SurfaceBegin() override;
883
886 virtual void SurfaceEnd() override;
887
890 virtual void SurfaceEditBegin() override;
893 virtual void SurfaceEditEnd() override;
896 virtual void ControlPointsBegin() override;
899 virtual void ControlPointsEnd() override;
904 virtual void SetControlWeight( int pIndex, double pWeight );
909 virtual double GetControlWeight( int pIndex );
915 virtual void SetControlMultiplicity( int pUorV, int pIndex, int pMultiplicity );
920 virtual int GetControlMultiplicity( int pUorV, int pIndex );
926 virtual void SetControlKnotValue( int pUorV, int pIndex, double pKnotValue );
931 virtual double GetControlKnotValue( int pUorV, int pIndex );
936 virtual int GetKnotCount( int pUorV );
937
940 FBPropertyNurbType UNurbType;
941 FBPropertyNurbType VNurbType;
942
943 private:
944 void FBNurbsInitProperties();
945 };
946
948 // FBPatch
951
954 {
956
957 public:
962 FBPatch(const char* pName, HIObject pObject=NULL);
963
966 virtual void SurfaceBegin() override;
967
970 virtual void SurfaceEnd() override;
971
974 virtual void SurfaceEditBegin() override;
975
978 virtual void SurfaceEditEnd() override;
979
982 virtual void ControlPointsBegin() override;
985 virtual void ControlPointsEnd() override;
986
987
988 FBPropertySurfaceType USurfaceType;
989 FBPropertySurfaceType VSurfaceType;
990
991 private:
992 void FBPatchInitProperties();
993
994 };
995
996#ifdef FBSDKUseNamespace
997}
998#endif
999#endif
MotionBuilder SDK base class.
Geometry class.
Definition fbgeometry.h:168
int * GetMaterialIndexArray(int &pOutArrayCount) const
Get a pointer to the index array of Material.
bool GeometryEnd()
End geometry editing.
bool VertexGetSelected(int pIndex)
Get the selected state of a vertex.
bool GeometryBegin()
Begin geometry editing.
FBPropertyGeometryReferenceMode BinormalReferenceMode
Read Only Property: Binormal reference mode.
Definition fbgeometry.h:440
bool VertexSet(double px, double py, double pz, int pIndex=-1)
Set a vertex.
FBPropertyGeometryMappingMode BinormalMappingMode
Read Only Property: Binormal mapping mode.
Definition fbgeometry.h:439
int VertexAdd(double px, double py, double pz, double nx, double ny, double nz)
Begin geometry editing.
FBPropertyGeometryMappingMode NormalMappingMode
Read Only Property: Normal mapping mode.
Definition fbgeometry.h:405
bool VertexSet(FBVertex pVertex, int pIndex=-1)
Set a vertex.
bool VertexColorSet(FBColorF pColor, int pIndex=-1)
Set a Vertex Color.
int * GetBinormalsIndexArray(int &pOutArrayCount) const
Get a pointer to the index array of binormals.
FBColorF * GetVertexColorsDirectArray(int &pOutArrayCount) const
Get a pointer to the direct array of vertex color.
FBPropertyGeometryMappingMode TangentMappingMode
Read Only Property: Tangent mapping mode.
Definition fbgeometry.h:422
bool VertexNormalSet(FBNormal pVertex, int pIndex=-1)
Set a normal at a vertex.
int VertexAdd(FBVertex pVertex, FBNormal pNormal)
Add a vertex.
FBUV * GetUVSetDirectArray(int &pOutArrayCount, const char *pUVSetName=NULL) const
Get a pointer to the direct array of UVset Modify array value will be only effective when geometry ed...
int ShapeGetDiffPointCount(int pShapeIdx) const
Return the shape's total diff points count.
void ShapeInit(int pShapeIdx, int pDiffSize, bool pWithNormal=false)
Init the shape.
int VertexAdd(FBVertex pVertex)
Add a vertex.
int ShapeAdd(const char *pName)
Add new shape.
int * GetNormalsIndexArray(int &pOutArrayCount) const
Get a pointer to the index array of normals.
bool VertexSetSelected(int pIndex, bool pState)
Set the selected state of a vertex.
int ShapeGetCount() const
Get Shape Count.
FBPropertyGeometryReferenceMode TangentReferenceMode
Read Only Property: Tangent reference mode.
Definition fbgeometry.h:423
void VertexInit(int pSize, bool pResize, bool pInitUV=true, bool pInitVertexColor=false)
Resize or Reserve vertex, normal and UV array for performance.
bool VertexClear()
Clear all Vertex arrays.
void ModifyNotify(kFBGeometryUpdateFlags pFlags=kFBGeometryUpdateAll, int pFirstIndex=-1, int pLastIndex=-1)
The geometry has change, update the necessary flags.
int * GetTangentsIndexArray(int &pOutArrayCount) const
Get a pointer to the index array of tangents.
FBNormal * GetTangentsDirectArray(int &pOutArrayCount) const
Get a pointer to the direct array of tangents.
bool ShapeSetDiffPoint(int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff)
Set the differentiate point.
int VertexAdd(double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv)
Begin geometry editing.
bool VertexArrayInit(int pVertexcount, bool pUniqueMaterial, unsigned int pFBGeometryArrayIDs=0)
Init geometry vertex arrays.
bool VertexGetVisible(int pIndex)
Get the visible state of a vertex.
FBPropertyGeometryMappingMode MaterialMappingMode
Read Property: Material mapping mode.
Definition fbgeometry.h:506
FBGeometryMappingMode GetUVSetMappingMode(const char *pUVSetName=NULL) const
Get UVSet mapping mode.
FBGeometryReferenceMode GetUVSetReferenceMode(const char *pUVSetName=NULL) const
Get UVSet reference mode.
int VertexAdd(double px, double py, double pz)
Add a vertex.
bool VertexSetVisible(int pIndex, bool pState)
Set the visible state of a vertex.
bool ShapeGetDiffPoint(int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff) const
Get the differentiate point.
bool VertexGetTransformable(int pIndex)
Get the Transformable state of a vertex.
bool VertexUVSet(FBUV pUV, int pIndex=-1)
Set a UV coordinate.
FBVertex * GetPositionsArray(int &pOutArrayCount) const
Get a pointer to the position array.
bool IsEditingEnabled() const
Is geometry editing enabled.
int VertexAdd(FBVertex pVertex, FBNormal pNormal, FBUV pUV, FBColorF pVertexColor)
Add a vertex.
bool ShapeGetDiffPoint(int pShapeIdx, int pDiffIndex, int &pOriIndex, FBVertex &pPosDiff, FBNormal &pNormalDiff) const
Get the differentiate point.
FBGeometry(const char *pName, HIObject pObject=NULL)
Constructor.
FBVertex * GetVertexes() const
Get a pointer to the array of vertexes.
FBColorF VertexColorGet(int pIndex=-1) const
Get a Vertex Color.
bool VertexArrayClear()
Clear all geometry vertex arrays.
FBNormal * GetNormalsDirectArray(int &pOutArrayCount) const
Get a pointer to the direct array of normals.
void ShapeClearAll()
Clears all the shapes.
const char * ShapeGetName(int pShapeIdx) const
Return the shape Name.
FBUV VertexUVGet(int pIndex=-1) const
Get a UV coordinate.
bool VertexNormalSet(double px, double py, double pz, int pIndex=-1)
Set a normal at a vertex.
FBPropertyGeometryReferenceMode VertexColorReferenceMode
Read Only Property: Vertex Color reference mode.
Definition fbgeometry.h:457
int * GetUVSetIndexArray(int &pOutArrayCount, const char *pUVSetName=NULL) const
Get a pointer to the index array of UVset.
int VertexAdd(double px, double py, double pz, double nx, double ny, double nz, double UVu, double UVv, double pRed, double pGreen, double pBlue, double pAlpha)
Begin geometry editing.
FBNormal * GetBinormalsDirectArray(int &pOutArrayCount) const
Get a pointer to the direct array of binormals.
FBPropertyGeometryReferenceMode NormalReferenceMode
Read Only Property: Normal reference mode.
Definition fbgeometry.h:406
bool VertexColorSet(float pRed, float pGreen, float pBlue, float pAlpha, int pIndex=-1)
Set a UV coordinate.
int VertexCount() const
Get the number of vertices in the geometry.
FBStringList GetUVSets() const
Get available UVSet name.
FBPropertyGeometryMappingMode VertexColorMappingMode
Read Only Property: Vertex Color mapping mode.
Definition fbgeometry.h:456
bool VertexUVSet(float pU, float pV, int pIndex=-1)
Set a UV coordinate.
FBNormal VertexNormalGet(int pIndex=-1) const
Get a normal at a vertex.
int VertexAdd(FBVertex pVertex, FBNormal pNormal, FBUV pUV)
Add a vertex.
bool ShapeSetDiffPoint(int pShapeIdx, int pDiffIndex, int pOriIndex, const FBVertex &pPosDiff, const FBNormal &pNormalDiff)
Set the differentiate point.
FBVertex VertexGet(int pIndex) const
Get a vertex.
int * GetVertexColorsIndexArray(int &pOutArrayCount) const
Get a pointer to the index array of vertex color.
Mesh class.
Definition fbgeometry.h:644
bool TriangleStripAdd(int pIndexArraySize, int *pIndexArray, int pMaterialId=0)
Add Triangle Strip Must be called in-between FBGeometry::GeometryBegin() / GeometryEnd() It's user's ...
int PolygonVertexCount(int pPolygonIndex) const
Get Polygon vertex count.
int PolygonCount() const
Get number of polygons in mesh.
bool PolygonVertexAdd(int pVertex)
Add a vertex.
int PolygonVertexIndex(int pPolygonIndex, int pVertexPolygonIndex) const
Get global (for the mesh) index of a vertex from a polygon.
bool TriangleListAdd(int pIndexArraySize, int *pIndexArray, int pMaterialId=0)
Add Triangle List, Must be called in-between FBGeometry::GeometryBegin() / GeometryEnd() It's user's ...
void ComputeVertexNormals(bool pCW=false)
Compute Mesh Vertex Normal.
int PolygonEnd()
End Polygon definition.
const int * PolygonVertexArrayGet(int &pArraySize) const
Get the array of polygon vertex (i.e.
FBMesh(const char *pName, HIObject pObject=NULL)
Constructor.
bool PolygonListAdd(int pPolygonSize, int pIndexArraySize, int *pIndexArray, int pMaterialId=0)
Add Polygon List Must be called in-between FBGeometry::GeometryBegin() / GeometryEnd() It's user's re...
bool IsTriangleMesh() const
Determines if the mesh is composed entirely of triangles.
int PolygonBegin(int pMaterialId=0)
Begin Polygon definition.
void InverseNormal()
Inverse Normal.
int PolygonMaterialIdGet(int pIndex=-1) const
Get a Material ID for the given Polygon index.
Nurbs class.
Definition fbgeometry.h:870
virtual void SetControlWeight(int pIndex, double pWeight)
Set weight of control point.
virtual int GetKnotCount(int pUorV)
Number of knot vectors.
FBPropertyInt UOrder
Read Write Property: Nurbs U order.
Definition fbgeometry.h:938
virtual void SurfaceEnd() override
End NURBS definition.
virtual void SurfaceEditEnd() override
End NURBS surface edition.
FBNurbs(const char *pName, HIObject pObject=NULL)
Constructor.
virtual void SurfaceBegin() override
Begin NURBS definition.
virtual void SetControlMultiplicity(int pUorV, int pIndex, int pMultiplicity)
Set multiplicity (number of "instances") of control point.
virtual void SurfaceEditBegin() override
Begin NURBS surface edition.
virtual double GetControlWeight(int pIndex)
Get weight of control point.
FBPropertyNurbType VNurbType
Read Write Property: Nurbs Type for V direction.
Definition fbgeometry.h:941
virtual void ControlPointsEnd() override
End NURBS control points edition.
virtual double GetControlKnotValue(int pUorV, int pIndex)
Get knot vector value of control point.
virtual void SetControlKnotValue(int pUorV, int pIndex, double pKnotValue)
Set knot vector value of control point.
FBPropertyInt VOrder
Read Write Property: Nurbs V order.
Definition fbgeometry.h:939
FBPropertyNurbType UNurbType
Read Write Property: Nurbs Type for U direction.
Definition fbgeometry.h:940
virtual int GetControlMultiplicity(int pUorV, int pIndex)
Get multiplicity (number of "instances") of control point.
virtual void ControlPointsBegin() override
Begin NURBS control points edition.
Patch class.
Definition fbgeometry.h:954
FBPatch(const char *pName, HIObject pObject=NULL)
Constructor.
virtual void SurfaceEnd() override
End Patch definition.
virtual void SurfaceEditEnd() override
End patch surface edit.
virtual void SurfaceBegin() override
Begin Patch definition.
FBPropertySurfaceType USurfaceType
Read Write Property: Patch mode for U direction.
Definition fbgeometry.h:988
virtual void SurfaceEditBegin() override
Begin patch surface edit.
virtual void ControlPointsEnd() override
End control points edition.
FBPropertySurfaceType VSurfaceType
Read Write Property: Patch mode for V direction.
Definition fbgeometry.h:989
virtual void ControlPointsBegin() override
Begin control points edition.
String list.
Definition fbstring.h:208
Surface class.
Definition fbgeometry.h:783
FBSurface(const char *pName, HIObject pObject=NULL)
Constructor.
bool VertexGetTransformable(int pU, int pV)
Get the Transformable state of a vertex.
FBPropertyBool UClosed
Read Write Property: U Closed.
Definition fbgeometry.h:845
FBPropertyInt UStep
Read Write Property: Step in U directions.
Definition fbgeometry.h:843
FBPropertyInt VSize
Read Write Property: Size in V directions.
Definition fbgeometry.h:842
FBPropertyInt USize
Read Write Property: Size in U directions.
Definition fbgeometry.h:841
FBPropertyBool VClosed
Read Write Property: V Closed
Definition fbgeometry.h:846
bool VertexGetVisible(int pU, int pV)
Get the visible state of a vertex.
bool VertexSetSelected(int pU, int pV, bool pState)
Set the selected state of a vertex.
FBPropertyInt VStep
Read Write Property: Step in V directions.
Definition fbgeometry.h:844
FBPropertySurfaceMode SurfaceMode
Read Write Property: Surface mode.
Definition fbgeometry.h:847
bool VertexGetSelected(int pU, int pV)
Get the selected state of a vertex.
bool VertexSetVisible(int pU, int pV, bool pState)
Set the visible state of a vertex.
Basic class definitions.
#define __FBClassDeclare(Name, Parent)
For internal use only.
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Contains definitions for devices, boxes and models.
FBGeometryArrayID
ID to use when requesting a specific array of data for a model.
Definition fbgeometry.h:77
@ kFBGeometryArrayID_Point
ID to the Point array.
Definition fbgeometry.h:78
@ kFBGeometryArrayID_Normal
ID to the Normal by Point array.
Definition fbgeometry.h:79
@ kFBGeometryArrayID_Tangent
ID to the Tangent array.
Definition fbgeometry.h:80
@ kFBGeometryArrayID_Color
ID to the Vertex Color Array.
Definition fbgeometry.h:82
@ kFBGeometryArrayID_Binormal
ID to the Binormal array.
Definition fbgeometry.h:81
FBNurbType
Surface types.
Definition fbgeometry.h:855
@ kFBNurbTypePeriodic
Periodic Type Nurb.
Definition fbgeometry.h:856
@ kFBNurbTypeOpen
Open Type Nurb.
Definition fbgeometry.h:858
@ kFBNurbTypeClosed
Closed Type Nurb.
Definition fbgeometry.h:857
FBSurfaceType
Surface types.
Definition fbgeometry.h:771
@ kFBSurfaceTypeCardinal
Cardinal surface.
Definition fbgeometry.h:774
@ kFBSurfaceTypeBezierQuadric
Bezier Quadric surface.
Definition fbgeometry.h:773
@ kFBSurfaceTypeLinear
Linear surface.
Definition fbgeometry.h:776
@ kFBSurfaceTypeBspline
BSpline surface.
Definition fbgeometry.h:775
@ kFBSurfaceTypeBezier
Bezier surface.
Definition fbgeometry.h:772
FBSurfaceMode
Surface modes.
Definition fbgeometry.h:760
@ kFBSurfaceModeHigh
High quality.
Definition fbgeometry.h:765
@ kFBSurfaceModeHighNoNormals
High quality, no normals.
Definition fbgeometry.h:764
@ kFBSurfaceModeRaw
Raw data.
Definition fbgeometry.h:761
@ kFBSurfaceModeLowNoNormals
Low quality, no normals.
Definition fbgeometry.h:762
@ kFBSurfaceModeLow
Low quality.
Definition fbgeometry.h:763
FBGeometryMappingMode
Determine how the element is mapped on a surface.
Definition fbgeometry.h:114
FBGeometryArrayElementType
Type of data when requesting an array.
Definition fbgeometry.h:86
@ kFBGeometryArrayElementType_Float3
Each element is an array of 3 float.
Definition fbgeometry.h:91
@ kFBGeometryArrayElementType_Float4
Each element is an array of 4 float.
Definition fbgeometry.h:92
FBGeometryReferenceMode
Determine how the mapping information is stored in the array of coordinate.
Definition fbgeometry.h:135
kFBGeometryUpdateFlags
Definition fbgeometry.h:145
@ kFBGeometryUpdatePositionAndNormal
only control point's position & normal change, so only update those values in the strip.
Definition fbgeometry.h:148
@ kFBGeometryUpdateNone
no update done
Definition fbgeometry.h:146
@ kFBGeometryUpdateSkinWeight
update skin weight
Definition fbgeometry.h:149
@ kFBGeometryUpdateMappingMode
mapping mode request from associated shading network change.
Definition fbgeometry.h:151
@ kFBGeometryUpdateAll
control point add/remove, topology change, cluster/shape change and such events requiring regenerate ...
Definition fbgeometry.h:147
@ kFBGeometryUpdateInverseNormal
inverse normal request.
Definition fbgeometry.h:150
class K_DLLIMPORT FBPropertyBase< int, kFBPT_int > FBPropertyInt
Property: int
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
#define FB_DEFINE_COMPONENT(DllTag, Type)
Define a component and give it the ability to be a property.
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
class K_DLLIMPORT FBVector4< float > FBVertex
Vertex.
Definition fbtypes.h:597
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition fbtypes.h:68
class K_DLLIMPORT FBVector4< float > FBColorF
Color float.
Definition fbtypes.h:444
class K_DLLIMPORT FBVector2< float > FBUV
Represents a UV coordinate as a FBVector2 of floats in the range of 0.0f to 1.0f; value 0 is the U va...
Definition fbtypes.h:595
class K_DLLIMPORT FBVector4< float > FBNormal
Normal.
Definition fbtypes.h:599