Open Reality Reference Guide
 
Loading...
Searching...
No Matches
fbgeometry.h File Reference

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...
 

Macros

#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 (K_DLLIMPORT, Geometry)
 
 FB_DEFINE_COMPONENT (K_DLLIMPORT, Mesh)
 
 __FB_FORWARD (FBGeometry)
 
 FB_DEFINE_ENUM (K_DLLIMPORT, GeometryMappingMode)
 
 FB_DEFINE_ENUM (K_DLLIMPORT, GeometryReferenceMode)
 
 __FB_FORWARD (FBMesh)
 
 __FB_FORWARD (FBSurface)
 
 FB_DEFINE_ENUM (K_DLLIMPORT, SurfaceMode)
 
 FB_DEFINE_ENUM (K_DLLIMPORT, SurfaceType)
 
 FB_DEFINE_ENUM (K_DLLIMPORT, NurbType)
 
 __FB_FORWARD (FBNurbs)
 
 __FB_FORWARD (FBPatch)
 

Detailed Description

Base class for Geometry.

Definition in file fbgeometry.h.

Macro Definition Documentation

◆ FBSDK_DLL

#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

◆ FBGeometryArrayElementType

Type of data when requesting an array.

Enumerator
kFBGeometryArrayElementType_Float3 

Each element is an array of 3 float.

kFBGeometryArrayElementType_Float4 

Each element is an array of 4 float.

Definition at line 86 of file fbgeometry.h.

◆ FBGeometryArrayID

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.

◆ FBGeometryMappingMode

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.

Definition at line 113 of file fbgeometry.h.

◆ FBGeometryPrimitiveType

enum FBGeometryPrimitiveType

Definition at line 61 of file fbgeometry.h.

◆ FBGeometryReferenceMode

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

Definition at line 134 of file fbgeometry.h.

◆ FBNurbType

enum FBNurbType

Surface types.

Enumerator
kFBNurbTypePeriodic 

Periodic Type Nurb.

kFBNurbTypeClosed 

Closed Type Nurb.

kFBNurbTypeOpen 

Open Type Nurb.

Definition at line 854 of file fbgeometry.h.

◆ FBSurfaceMode

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 759 of file fbgeometry.h.

◆ FBSurfaceType

Surface types.

Enumerator
kFBSurfaceTypeBezier 

Bezier surface.

kFBSurfaceTypeBezierQuadric 

Bezier Quadric surface.

kFBSurfaceTypeCardinal 

Cardinal surface.

kFBSurfaceTypeBspline 

BSpline surface.

kFBSurfaceTypeLinear 

Linear surface.

Definition at line 770 of file fbgeometry.h.

◆ kFBGeometryUpdateFlags

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 144 of file fbgeometry.h.