fbgeometry.h File Reference

This reference page is linked to from the following overview topics: MotionBuilder 2014, Updated Objects.


Base class for Geometry. More...

#include <kaydaradef.h>
#include <fbsdk/fbcore.h>
#include <fbsdk/fbcomponent.h>

Go to the source code of this file.

Classes

class  FBGeometry
 Geometry class. More...
class  FBMesh
 Mesh class. More...
class  FBSurface
 Surface class. More...
class  FBNurbs
 Nurbs class. More...
class  FBPatch
 Patch class. More...

Defines

#define FBSDK_DLL   K_DLLIMPORT
 Be sure that FBSDK_DLL is defined only once...

Enumerations

enum  FBGeometryPrimitiveType {
  kFBGeometry_POINTS = 0x0000, kFBGeometry_LINES = 0x0001, kFBGeometry_LINE_LOOP = 0x0002, kFBGeometry_LINE_STRIP = 0x0003,
  kFBGeometry_TRIANGLES = 0x0004, kFBGeometry_TRIANGLE_STRIP = 0x0005, kFBGeometry_TRIANGLE_FAN = 0x0006, kFBGeometry_QUADS = 0x0007,
  kFBGeometry_QUADS_STRIP = 0x0008, kFBGeometry_POLYGON = 0x0009
}
enum  FBGeometryArrayID {
  kFBGeometryArrayID_Point = 1 << 0, kFBGeometryArrayID_Normal = 1 << 1, kFBGeometryArrayID_Tangent = 1 << 2, kFBGeometryArrayID_Binormal = 1 << 3,
  kFBGeometryArrayID_Color = 1 << 4
}
 

ID to use when requesting a specific array of data for a model.

More...
enum  FBGeometryArrayElementType {
  kFBGeometryArrayElementType_Unknown, kFBGeometryArrayElementType_Integer, kFBGeometryArrayElementType_Float, kFBGeometryArrayElementType_Float2,
  kFBGeometryArrayElementType_Float3, kFBGeometryArrayElementType_Float4, kFBGeometryArrayElementType_FloatMatrix4x4, kFBGeometryArrayElementType_IntegerArrayPointer
}
 

Type of data when requesting an array.

More...
enum  FBGeometryMappingMode {
  kFBGeometryMapping_NONE, kFBGeometryMapping_BY_CONTROL_POINT, kFBGeometryMapping_BY_POLYGON_VERTEX, kFBGeometryMapping_BY_POLYGON,
  kFBGeometryMapping_BY_EDGE, kFBGeometryMapping_ALL_SAME
}
 

Determine how the element is mapped on a surface.

More...
enum  FBGeometryReferenceMode { kFBGeometryReference_DIRECT, kFBGeometryReference_INDEX, kFBGeometryReference_INDEX_TO_DIRECT }
 

Determine how the mapping information is stored in the array of coordinate.

More...
enum  kFBGeometryUpdateFlags {
  kFBGeometryUpdateNone = 0, kFBGeometryUpdateAll = 1 << 0, kFBGeometryUpdatePositionAndNormal = 1 << 1, kFBGeometryUpdateSkinWeight = 1 << 2,
  kFBGeometryUpdateInverseNormal = 1 << 3, kFBGeometryUpdateMappingMode = 1 << 4
}
enum  FBSurfaceMode {
  kFBSurfaceModeRaw, kFBSurfaceModeLowNoNormals, kFBSurfaceModeLow, kFBSurfaceModeHighNoNormals,
  kFBSurfaceModeHigh
}
 

Surface modes.

More...
enum  FBSurfaceType {
  kFBSurfaceTypeBezier, kFBSurfaceTypeBezierQuadric, kFBSurfaceTypeCardinal, kFBSurfaceTypeBspline,
  kFBSurfaceTypeLinear
}
 

Surface types.

More...
enum  FBNurbType { kFBNurbTypePeriodic, kFBNurbTypeClosed, kFBNurbTypeOpen }
 

Surface types.

More...

Functions

 FB_DEFINE_COMPONENT (FBSDK_DLL, Geometry)
 FB_DEFINE_COMPONENT (FBSDK_DLL, Mesh)
 __FB_FORWARD (FBGeometry)
 FB_DEFINE_ENUM (FBSDK_DLL, GeometryMappingMode)
 FB_DEFINE_ENUM (FBSDK_DLL, GeometryReferenceMode)
 __FB_FORWARD (FBMesh)
 __FB_FORWARD (FBSurface)
 FB_DEFINE_ENUM (FBSDK_DLL, SurfaceMode)
 FB_DEFINE_ENUM (FBSDK_DLL, SurfaceType)
 FB_DEFINE_ENUM (FBSDK_DLL, NurbType)
 __FB_FORWARD (FBNurbs)
 __FB_FORWARD (FBPatch)

Variables

K_DEPRECATED_2014 const int kFBGeometryArrayID_NormalByPoint = kFBGeometryArrayID_Normal
K_DEPRECATED_2014 const int kFBGeometryArrayID_VertexColor = kFBGeometryArrayID_Color

Detailed Description

Base class for Geometry.

Definition in file fbgeometry.h.


Define Documentation

#define FBSDK_DLL   K_DLLIMPORT

Be sure that FBSDK_DLL is defined only once...

Definition at line 48 of file fbgeometry.h.


Enumeration Type Documentation

Enumerator:
kFBGeometry_POINTS 
kFBGeometry_LINES 
kFBGeometry_LINE_LOOP 
kFBGeometry_LINE_STRIP 
kFBGeometry_TRIANGLES 
kFBGeometry_TRIANGLE_STRIP 
kFBGeometry_TRIANGLE_FAN 
kFBGeometry_QUADS 
kFBGeometry_QUADS_STRIP 
kFBGeometry_POLYGON 

Definition at line 61 of file fbgeometry.h.

    {
        kFBGeometry_POINTS              = 0x0000, //GL_POINTS,
        kFBGeometry_LINES               = 0x0001, //GL_LINES,
        kFBGeometry_LINE_LOOP           = 0x0002, //GL_LINE_LOOP,
        kFBGeometry_LINE_STRIP          = 0x0003, //GL_LINE_STRIP,
        kFBGeometry_TRIANGLES           = 0x0004, //GL_TRIANGLES,
        kFBGeometry_TRIANGLE_STRIP      = 0x0005, //GL_TRIANGLE_STRIP,
        kFBGeometry_TRIANGLE_FAN        = 0x0006, //GL_TRIANGLE_FAN,
        kFBGeometry_QUADS               = 0x0007, //GL_QUADS,
        kFBGeometry_QUADS_STRIP         = 0x0008, //GL_QUAD_STRIP,
        kFBGeometry_POLYGON             = 0x0009, //GL_POLYGON,
    };

ID to use when requesting a specific array of data for a model.

Enumerator:
kFBGeometryArrayID_Point 

ID to the Point array.

kFBGeometryArrayID_Normal 

ID to the Normal by Point array.

kFBGeometryArrayID_Tangent 

ID to the Tangent array.

kFBGeometryArrayID_Binormal 

ID to the Binormal array.

kFBGeometryArrayID_Color 

ID to the Vertex Color Array.

Definition at line 76 of file fbgeometry.h.

Type of data when requesting an array.

Enumerator:
kFBGeometryArrayElementType_Unknown 
kFBGeometryArrayElementType_Integer 
kFBGeometryArrayElementType_Float 
kFBGeometryArrayElementType_Float2 
kFBGeometryArrayElementType_Float3 

Each element is an array of 3 float.

kFBGeometryArrayElementType_Float4 

Each element is an array of 4 float.

kFBGeometryArrayElementType_FloatMatrix4x4 
kFBGeometryArrayElementType_IntegerArrayPointer 

Definition at line 93 of file fbgeometry.h.

Determine how the element is mapped on a surface.

  • kFBGeometryMapping_NONE The mapping is undetermined.
  • kFBGeometryMapping_BY_CONTROL_POINT There will be one mapping coordinate for each surface control point/vertex.
  • kFBGeometryMapping_BY_POLYGON_VERTEX There will be one mapping coordinate for each vertex, for each polygon/strip it is part of. This means that a vertex will have as many mapping coordinates as polygons it is part of.
  • kFBGeometryMapping_BY_POLYGON There can be only one mapping coordinate for the whole polygon/strip.
  • kFBGeometryMapping_BY_EDGE There will be one mapping coordinate for each unique edge in the mesh. This is meant to be used with smoothing layer elements.
  • kFBGeometryMapping_ALL_SAME There can be only one mapping coordinate for the whole surface.
Enumerator:
kFBGeometryMapping_NONE 
kFBGeometryMapping_BY_CONTROL_POINT 
kFBGeometryMapping_BY_POLYGON_VERTEX 
kFBGeometryMapping_BY_POLYGON 
kFBGeometryMapping_BY_EDGE 
kFBGeometryMapping_ALL_SAME 

Definition at line 120 of file fbgeometry.h.

Determine how the mapping information is stored in the array of coordinate.

  • kFBGeometryReference_DIRECT This indicates that the mapping information for the n'th element is found in the n'th place of DirectArray.
  • kFBGeometryReference_INDEX, This indicates that the mapping information for the n'th element is found in the n'th place of IndexArray.
  • kFBGeometryReference_INDEX_TO_DIRECT This indicates that the KLayerElementTemplate::mIndexArray contains, for the n'th element, an index in the KLayerElementTemplate::mDirectArray array of mapping elements. eINDEX_TO_DIRECT is usually useful to store coordinates for eBY_POLYGON_VERTEX mapping mode elements. Since the same coordinates are usually repeated a large number of times, it saves spaces to store the coordinate only one time and refer to them with an index. Materials and Textures are also referenced with this mode and the actual Material/Texture can be accessed via the KLayerElementTemplate::mDirectArray
Enumerator:
kFBGeometryReference_DIRECT 
kFBGeometryReference_INDEX 
kFBGeometryReference_INDEX_TO_DIRECT 

Definition at line 141 of file fbgeometry.h.

Enumerator:
kFBGeometryUpdateNone 

no update done

kFBGeometryUpdateAll 

control point add/remove, topology change, cluster/shape change and such events requiring regenerate optimized strip.

kFBGeometryUpdatePositionAndNormal 

only control point's position & normal change, so only update those values in the strip.

kFBGeometryUpdateSkinWeight 

update skin weight

kFBGeometryUpdateInverseNormal 

inverse normal request.

kFBGeometryUpdateMappingMode 

mapping mode request from associated shading network change.

Definition at line 151 of file fbgeometry.h.

Surface modes.

Enumerator:
kFBSurfaceModeRaw 

Raw data.

kFBSurfaceModeLowNoNormals 

Low quality, no normals.

kFBSurfaceModeLow 

Low quality.

kFBSurfaceModeHighNoNormals 

High quality, no normals.

kFBSurfaceModeHigh 

High quality.

Definition at line 766 of file fbgeometry.h.

Surface types.

Enumerator:
kFBSurfaceTypeBezier 

Bezier surface.

kFBSurfaceTypeBezierQuadric 

Bezier Quadric surface.

kFBSurfaceTypeCardinal 

Cardinal surface.

kFBSurfaceTypeBspline 

BSpline surface.

kFBSurfaceTypeLinear 

Linear surface.

Definition at line 777 of file fbgeometry.h.

enum FBNurbType

Surface types.

Enumerator:
kFBNurbTypePeriodic 

Periodic Type Nurb.

kFBNurbTypeClosed 

Closed Type Nurb.

kFBNurbTypeOpen 

Open Type Nurb.

Definition at line 861 of file fbgeometry.h.


Function Documentation

FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Geometry   
)
FB_DEFINE_COMPONENT ( FBSDK_DLL  ,
Mesh   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
GeometryMappingMode   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
GeometryReferenceMode   
)
__FB_FORWARD ( FBMesh  )
FB_DEFINE_ENUM ( FBSDK_DLL  ,
SurfaceMode   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
SurfaceType   
)
FB_DEFINE_ENUM ( FBSDK_DLL  ,
NurbType   
)
__FB_FORWARD ( FBNurbs  )
__FB_FORWARD ( FBPatch  )

Variable Documentation

K_DEPRECATED_2014 const int kFBGeometryArrayID_NormalByPoint = kFBGeometryArrayID_Normal
Deprecated:
Use kFBGeometryArrayID_Normal instead.

Definition at line 86 of file fbgeometry.h.

K_DEPRECATED_2014 const int kFBGeometryArrayID_VertexColor = kFBGeometryArrayID_Color
Deprecated:
Use kFBGeometryArrayID_Color instead.

Definition at line 89 of file fbgeometry.h.