- Main Page
- Classes
- Files
- Directories
- Examples

- Class List
- Class Hierarchy
- Class Members

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

# FbxGeometryConverter Class Reference

Search for all occurrences

## Detailed Description

This class provides the functionality to convert geometry nodes attributes (FbxMesh, FbxNurbs and FbxPatch) and mainly focuses on the two major categories: Triangulation and conversion between NURBS and Patches surfaces.

Examples:

  Normals/main.cxx, and ViewScene/SceneContext.cxx.

Definition at line 45 of file fbxgeometryconverter.h.

`#include <fbxgeometryconverter.h>`

List of all members.

## Public Member Functions
| FbxGeometryConverter (FbxManager *pManager)
| Constructor.
| ~FbxGeometryConverter ()
| Destructor.
void | ReplaceNodeAttribute (FbxNode *pNode, FbxNodeAttribute *pNewNodeAttr)
| Replace node attribute with new one.
bool | AddTriangulatedMeshGeometry (FbxNode *pNode, int pUVStepCoeff)
| Add a "triangulated mesh" geometry to the node.
bool | SplitMeshPerMaterial (FbxMesh *pMesh)
| Split Mesh Per Material.
bool | SplitMeshesPerMaterial (FbxScene *pScene)
| Split all the mesh in the scene.
bool | CreateAndCopyLayerElement (FbxMesh *pNewMesh, FbxMesh *pRefMesh)
| Create LayerElement, and copy settings from pRefMesh to pNewMesh.
bool | SetLayerElements (FbxMesh *pNewMesh, FbxMesh *pMesh, int pPolygonIndex, int pPolyPointIndex, int pLoopIndex, bool pIsSearched, bool pIsEndPolygon)
| Set Normals, UVs and Vertex Color, when building new mesh.
FbxMesh * | TriangulateMeshAdvance (FbxMesh const *pMesh, bool &pStatus)
| Triangulate a mesh(support without holes or with holes simple polygon)
FbxNode * | MergeMeshes (FbxArray< FbxNode * > &pMeshNodes, const char *pNodeName, FbxScene *pScene)
| Merge multiple meshes to one mesh.
## Static Public Member Functions
static void | FbxTriangulation (int *Index, int pNumSide)
| FbxTriangulation.
## Protected Member Functions
bool | ComputePatchToMeshControlPointsWeightedMapping (FbxPatch *pSrcPatch, FbxMesh *pDstMesh, FbxWeightedMapping *pMapping, bool pSwapUV=false)
bool | ComputeNurbsToMeshControlPointsWeightedMapping (FbxNurbsSurface *pSrcNurbs, FbxMesh *pDstMesh, FbxWeightedMapping *pMapping, bool pRescaleUVs=false, bool pSwapUV=false)
void | InitializeWeightInControlPoints (FbxGeometryBase *pGeometry)
void | InitializeWeightInNormals (FbxLayerContainer *pLayerContainer)
void | TriangulateContinuousSurface (FbxMesh *pMesh, FbxSurfaceEvaluator *pSurface, FbxUInt pPointCountX, FbxUInt pPointCountY, bool ClockWise=false)
void | CheckForZeroWeightInShape (FbxGeometry *pGeometry)
FbxMesh * | CreateMeshFromParametricSurface (FbxGeometry const *pGeometry)
FbxNurbs * | CreateNurbsFromPatch (FbxPatch *pPatch)
FbxNurbsSurface * | CreateNurbsSurfaceFromPatch (FbxPatch *pPatch)
void | ConvertShapes (FbxGeometry const *pSource, FbxGeometry *pDestination, FbxSurfaceEvaluator *pEvaluator, int pUCount, int pVCount)
void | ConvertShapes (FbxGeometry const *pSource, FbxGeometry *pDestination, FbxWeightedMapping *pSourceToDestinationMapping)
void | ConvertClusters (FbxGeometry const *pSource, FbxGeometry *pDestination, FbxWeightedMapping *pSourceToDestinationMapping)
void | ConvertClusters (FbxArray< FbxCluster * > const &pSourceClusters, int pSourceControlPointsCount, FbxArray< FbxCluster * > &pDestinationClusters, int pDestinationControlPointsCount, FbxWeightedMapping *pSourceToDestinationMapping)
void | BuildClusterToSourceMapping (FbxArray< FbxCluster * > const &pSourceClusters, FbxWeightedMapping *pClusterToSourceMapping)
void | CheckClusterToSourceMapping (FbxWeightedMapping *pClusterToSourceMapping)
void | ConvertCluster (int pSourceClusterIndex, FbxWeightedMapping *pClusterToSourceMapping, FbxWeightedMapping *pSourceToDestinationMapping, FbxCluster *pDestinationCluster)
void | DuplicateControlPoints (FbxArray< FbxVector4 > &pControlPoints, FbxArray< int > &pPolygonVertices)
void | UpdatePolygon (FbxMesh *pNewMesh, FbxMesh const *pRefMesh, int pPolygonIndex, int *pNewIndex, int &pVerticeIndexMeshTriangulated, int &pPolygonIndexMeshTriangulated)
void | UpdatePolygon (FbxMesh *pNewMesh, FbxMesh const *pRefMesh, int pPolygonIndex, int *pNewIndex, int &pVerticeIndexMeshTriangulated, int &pPolygonIndexMeshTriangulated, int pTriangleNum)
void | ResizePolygon (FbxMesh *pNewMesh, int pNewCountVertices=0, int pNewCountPolygons=0, bool pClearFlag=true)
template<class T1 , class T2 >
void | ConvertNurbs (T1 *pNewNurbs, T2 *pOldNurb)
bool | CopyAnimationCurves (FbxNode *pNode, FbxGeometry *pNewGeometry)
bool | FlipNurbsCurve (FbxNurbsCurve *pCurve) const
void | FlipControlPoints (FbxGeometryBase *pPoints, int pUCount, int pVCount) const
bool | ConvertMaterialReferenceMode (FbxMesh *pMeshRef) const
void | RevertMaterialReferenceModeConversion (FbxMesh *pMeshRef) const
## Protected Attributes
FbxManager * | mManager
## Triangulation
FbxMesh * | TriangulateMesh (FbxMesh const *pMesh)
| Triangulate a mesh.
FbxMesh * | TriangulatePatch (FbxPatch const *pPatch)
| Triangulate a patch.
FbxMesh * | TriangulateNurbs (FbxNurbs const *pNurbs)
| Triangulate a nurb.
bool | TriangulateInPlace (FbxNode *pNode)
| Triangulate a mesh, patch or nurb contained in a node and preserve the skins and shapes animation channels.
bool | AddAlternateGeometry (FbxNode *pNode, FbxGeometry *pSrcGeom, FbxGeometry *pAltGeom, FbxWeightedMapping *pSrcToAltWeightedMapping, bool pConvertDeformations)
| Add an "alternate" geometry to the node.
bool | ConvertGeometryAnimation (FbxNode *pNode, FbxGeometry *pSrcGeom, FbxGeometry *pDstGeom)
| Convert skins and shapes from source to destination geometry.
bool | ComputeGeometryControlPointsWeightedMapping (FbxGeometry *pSrcGeom, FbxGeometry *pDstGeom, FbxWeightedMapping *pSrcToDstWeightedMapping, bool pSwapUV=false)
| Compute a "vertex-correspondence" table that helps passing from source to destination geometry.
## Geometry Conversion
FbxNurbs * | ConvertPatchToNurbs (FbxPatch *pPatch)
| Convert from patch to nurb.
bool | ConvertPatchToNurbsInPlace (FbxNode *pNode)
| Convert a patch contained in a node to a nurb.
FbxNurbsSurface * | ConvertPatchToNurbsSurface (FbxPatch *pPatch)
| Convert a patch to nurb surface.
bool | ConvertPatchToNurbsSurfaceInPlace (FbxNode *pNode)
| Convert a patch contained in a node to a nurb surface.
FbxNurbsSurface * | ConvertNurbsToNurbsSurface (FbxNurbs *pNurbs)
| Convert a FbxNurbs to a FbxNurbsSurface.
FbxNurbs * | ConvertNurbsSurfaceToNurbs (FbxNurbsSurface *pNurbs)
| Convert a FbxNurbsSurface to a FbxNurbs.
bool | ConvertNurbsToNurbsSurfaceInPlace (FbxNode *pNode)
| Convert a nurb, contained in a node, to a nurbs surface.
bool | ConvertNurbsSurfaceToNurbsInPlace (FbxNode *pNode)
| Convert a nurb contained in a node to a nurbs surface.
## Nurb UV and Links Swapping
FbxNurbs * | FlipNurbs (FbxNurbs *pNurbs, bool pSwapUV, bool pSwapClusters)
| Flip UV and/or skin clusters of a nurb.
FbxNurbsSurface * | FlipNurbsSurface (FbxNurbsSurface *pNurbs, bool pSwapUV, bool pSwapClusters)
| Flip UV and/or skin clusters of a nurb surface.
## Normals By Polygon Vertex Emulation
bool | EmulateNormalsByPolygonVertex (FbxMesh *pMesh)
| Emulate normals by polygon vertex mode for a mesh.
bool | ComputeEdgeSmoothingFromNormals (FbxMesh *pMesh) const
| Create edge smoothing information from polygon-vertex mapped normals.
bool | ComputePolygonSmoothingFromEdgeSmoothing (FbxMesh *pMesh, int pIndex=0) const
| Convert edge smoothing to polygon smoothing group.
bool | ComputeEdgeSmoothingFromPolygonSmoothing (FbxMesh *pMesh, int pIndex=0) const
| Convert polygon smoothing group to edge smoothing.

## Constructor & Destructor Documentation

FbxGeometryConverter | ( | FbxManager * | pManager | ) |

Constructor.

Parameters:

  pManager | SDK object manager.

~FbxGeometryConverter | ( |  | ) |

Destructor.

## Member Function Documentation

FbxMesh* TriangulateMesh | ( | FbxMesh const * | pMesh | ) |

Search for all occurrences

Triangulate a mesh.

Parameters:

  pMesh | Pointer to the mesh to triangulate.

Returns:
  Pointer to the new triangulated mesh.

Remarks:
  This method creates a new mesh, leaving the source mesh unchanged.

FbxMesh* TriangulatePatch | ( | FbxPatch const * | pPatch | ) |

Search for all occurrences

Triangulate a patch.

Parameters:

  pPatch | Pointer to the patch to triangulate.

Returns:
  Pointer to the new triangulated mesh.

Remarks:
  The current deformations (skins & shapes) on the patch are also converted and applied to the resulting mesh.

FbxMesh* TriangulateNurbs | ( | FbxNurbs const * | pNurbs | ) |

Search for all occurrences

Triangulate a nurb.

Parameters:

  pNurbs | Pointer to the nurb to triangulate.

Returns:
  Pointer to the new triangulated mesh.

Remarks:
  The current deformations (skins and shapes) on the nurb are also converted and applied to the resulting mesh.

bool TriangulateInPlace | ( | FbxNode * | pNode | ) |

Search for all occurrences

Triangulate a mesh, patch or nurb contained in a node and preserve the skins and shapes animation channels.

Parameters:

  pNode | Pointer to the node containing the geometry to triangulate.

Returns:
  `true` on success, or `false` if the node attribute is not a mesh, a patch or a nurb.

Remarks:
  See the remarks for functions TriangulateMesh(), TriangulatePatch() and TriangulateNurbs().

Examples:
  ViewScene/SceneContext.cxx.

bool AddAlternateGeometry | ( | FbxNode * | pNode,
|  | FbxGeometry * | pSrcGeom,
|  | FbxGeometry * | pAltGeom,
|  | FbxWeightedMapping * | pSrcToAltWeightedMapping,
|  | bool | pConvertDeformations
| ) |  |

Search for all occurrences

Add an "alternate" geometry to the node.

Parameters:

  pNode | Pointer to the node containing the geometry.
  pSrcGeom | Pointer to the source geometry.
  pAltGeom | Pointer to the alternate geometry.
  pSrcToAltWeightedMapping | Pointer to the weighted mapping table (optional).
  pConvertDeformations | Flag used only if parameter pSrcToAltWeightedMapping is a valid pointer to a weighted mapping table. Set to `true` to convert deformations using the weighted mapping table.

Returns:
  `true` on success, or `false` if the node attribute is not a mesh, a patch or a nurb.

Remarks:
  Although this method is publicly available, its only use in the FBX SDK is internal to some of the conversion routines declared in this class.

bool ConvertGeometryAnimation | ( | FbxNode * | pNode,
|  | FbxGeometry * | pSrcGeom,
|  | FbxGeometry * | pDstGeom
| ) |  |

Search for all occurrences

Convert skins and shapes from source to destination geometry.

Parameters:

  pNode | Pointer to the node containing the geometry.
  pSrcGeom | Pointer to the source geometry.
  pDstGeom | Pointer to the destination geometry.

Returns:
  `true` on success, `false` otherwise.

Remarks:
  Source and destination geometry must belong to the same node and must be linked by a geometry weighted map.
  Although this method is publicly available, its only use in the FBX SDK is internal to some of the conversion routines declared in this class.

bool ComputeGeometryControlPointsWeightedMapping | ( | FbxGeometry * | pSrcGeom,
|  | FbxGeometry * | pDstGeom,
|  | FbxWeightedMapping * | pSrcToDstWeightedMapping,
|  | bool | pSwapUV = `false`
| ) |  |

Search for all occurrences

Compute a "vertex-correspondence" table that helps passing from source to destination geometry.

Parameters:

  pSrcGeom | Pointer to the source geometry.
  pDstGeom | Pointer to the destination geometry.
  pSrcToDstWeightedMapping | Pointer to the weighted mapping table.
  pSwapUV | Set to `true` to swap UVs.

Returns:
  `true` on success, `false` if the function fails to compute the correspondence.

Remarks:
  Skins and shapes are also converted to fit the alternate geometry.

FbxNurbs* ConvertPatchToNurbs | ( | FbxPatch * | pPatch | ) |

Search for all occurrences

Convert from patch to nurb.

Parameters:

  pPatch | Pointer to the patch to convert.

Returns:
  Created nurb or `NULL` if the conversion fails.

Remarks:
  The patch must be of type eBSpline, eBezier or eLinear.

bool ConvertPatchToNurbsInPlace | ( | FbxNode * | pNode | ) |

Search for all occurrences

Convert a patch contained in a node to a nurb.

Use this function to preserve the patch's skins and shapes animation channels.

Parameters:

  pNode | Pointer to the node containing the patch.

Returns:
  `true` on success, `false` if the node attribute is not a patch.

Remarks:
  The patch must be of type eBSpline, eBezier or eLinear.

FbxNurbsSurface* ConvertPatchToNurbsSurface | ( | FbxPatch * | pPatch | ) |

Search for all occurrences

Convert a patch to nurb surface.

Parameters:

  pPatch | Pointer to the patch to convert.

Returns:
  Created nurb surface or `NULL` if conversion fails.

Remarks:
  The patch must be of type eBSpline, eBezier or eLinear.

bool ConvertPatchToNurbsSurfaceInPlace | ( | FbxNode * | pNode | ) |

Search for all occurrences

Convert a patch contained in a node to a nurb surface.

Use this function to preserve the patch's skins and shapes animation channels.

Parameters:

  pNode | Pointer to the node containing the patch.

Returns:
  `true` on success, `false` if the node attribute is not a patch.

Remarks:
  The patch must be of type eBSpline, eBezier or eLinear.

FbxNurbsSurface* ConvertNurbsToNurbsSurface | ( | FbxNurbs * | pNurbs | ) |

Search for all occurrences

Convert a FbxNurbs to a FbxNurbsSurface.

Parameters:

  pNurbs | Pointer to the original nurb

Returns:
  A FbxNurbsSurface that is equivalent to the original nurb.

FbxNurbs* ConvertNurbsSurfaceToNurbs | ( | FbxNurbsSurface * | pNurbs | ) |

Search for all occurrences

Convert a FbxNurbsSurface to a FbxNurbs.

Parameters:

  pNurbs | Pointer to the original nurbs surface

Returns:
  A FbxNurbs that is equivalent to the original nurbs surface.

bool ConvertNurbsToNurbsSurfaceInPlace | ( | FbxNode * | pNode | ) |

Search for all occurrences

Convert a nurb, contained in a node, to a nurbs surface.

Use this function to preserve the nurb's skins and shapes animation channels.

Parameters:

  pNode | Pointer to the node containing the nurb.

Returns:
  `true` on success, `false` otherwise

bool ConvertNurbsSurfaceToNurbsInPlace | ( | FbxNode * | pNode | ) |

Search for all occurrences

Convert a nurb contained in a node to a nurbs surface.

Use this function to preserve the nurb's skins and shapes animation channels.

Parameters:

  pNode | Pointer to the node containing the nurbs surface.

Returns:
  `true` on success, `false` otherwise

FbxNurbs* FlipNurbs | ( | FbxNurbs * | pNurbs,
|  | bool | pSwapUV,
|  | bool | pSwapClusters
| ) |  |

Search for all occurrences

Flip UV and/or skin clusters of a nurb.

Parameters:

  pNurbs | Pointer to the Source nurb.
  pSwapUV | Set to `true` to swap the UVs.
  pSwapClusters | Set to `true` to swap the control point indices of clusters.

Returns:
  A flipped FbxNurbs, or `NULL` if the function fails.

FbxNurbsSurface* FlipNurbsSurface | ( | FbxNurbsSurface * | pNurbs,
|  | bool | pSwapUV,
|  | bool | pSwapClusters
| ) |  |

Search for all occurrences

Flip UV and/or skin clusters of a nurb surface.

Parameters:

  pNurbs | Pointer to the Source nurb surface.
  pSwapUV | Set to `true` to swap the UVs.
  pSwapClusters | Set to `true` to swap the control point indices of clusters.

Returns:
  A flipped FbxNurbsSurface, or `NULL` if the function fails.

bool EmulateNormalsByPolygonVertex | ( | FbxMesh * | pMesh | ) |

Search for all occurrences

Emulate normals by polygon vertex mode for a mesh.

Parameters:

  pMesh | Pointer to the mesh object.

Returns:
  `true` on success, `false` if the number of normals in the mesh and in its associated shapes don't match the number of polygon vertices.

Remarks:
  For applications that only supports normals by control points, this function duplicates control points to equal the number of polygon vertices. skins and shapes are also converted. As preconditions:
  1. polygons must have been created
  2. the number of normals in the mesh and in its associated shapes must match the number of polygon vertices.

bool ComputeEdgeSmoothingFromNormals | ( | FbxMesh * | pMesh | ) | const

Search for all occurrences

Create edge smoothing information from polygon-vertex mapped normals.

Existing smoothing information is removed and edge data is created if none exists on the mesh.

Parameters:

  pMesh | The mesh used to generate edge smoothing.

Returns:
  `true` on success, `false` otherwise.

Remarks:
  The edge smoothing data is placed on Layer 0 of the mesh. Normals do not need to be on Layer 0, since the first layer with per polygon vertex normals is used.

bool ComputePolygonSmoothingFromEdgeSmoothing | ( | FbxMesh * | pMesh,
|  | int | pIndex = `0`
| ) |  | const

Search for all occurrences

Convert edge smoothing to polygon smoothing group.

Existing smoothing information is replaced.

Parameters:

  pMesh | The mesh that contains the smoothing to be converted.
  pIndex | The index of the layer smoothing to be converted.

Returns:
  `true` on success, `false` otherwise.

Remarks:
  The smoothing group is bitwise. Each bit of the integer represents one smoothing group. Therefore, there is a maximum of 32 smoothing groups.

bool ComputeEdgeSmoothingFromPolygonSmoothing | ( | FbxMesh * | pMesh,
|  | int | pIndex = `0`
| ) |  | const

Search for all occurrences

Convert polygon smoothing group to edge smoothing.

Existing smoothing information is replaced.

Parameters:

  pMesh | The mesh that contains the smoothing to be converted.
  pIndex | The index of the layer smoothing to be converted

Returns:
  `true` on success, `false` otherwise.

void ReplaceNodeAttribute | ( | FbxNode * | pNode,
|  | FbxNodeAttribute * | pNewNodeAttr
| ) |  |

Search for all occurrences

Replace node attribute with new one.

Parameters:

  pNode | Pointer to the node which node attribute will be replaced.
  pNewNodeAttr | new node attribute.

Remarks:
  a)node attribute of all instance object will also be replaced; b)the old node attribute will be destroyed.

bool AddTriangulatedMeshGeometry | ( | FbxNode * | pNode,
|  | int | pUVStepCoeff
| ) |  |

Search for all occurrences

Add a "triangulated mesh" geometry to the node.

Parameters:

  pNode | Pointer to the node containing the geometry.
  pUVStepCoeff | Coefficient factor for the U/V steps. Must be >= 1.

Returns:
  `true` on success, `false` if the node attribute is not a mesh, a patch or a nurb.

Remarks:
  The remarks relative to functions TriangulateMesh(), TriangulatePatch() , TriangulateNurbs() and TriangulateInPlace() are applicable.

bool SplitMeshPerMaterial | ( | FbxMesh * | pMesh | ) |

Search for all occurrences

Split Mesh Per Material.

Each split mesh only has a single material on it.

Parameters:

  pMesh | The mesh that contains the smoothing to be converted.

Returns:
  `true` on success, `false` otherwise.

Remarks:
  It will work only on mesh that have material mapped "per-face" (Mapping Mode is FbxLayerElement::eByPolygon). It does NOT work on meshes with material mapped per-vertex/per-edge/etc. It will create as many meshes on output that there are materials applied to it. If one mesh have some polygons with material A, some polygons with material B, and some polygons with NO material, it should create 3 meshes after calling this function. The newly created meshes should be attached to the same FbxNode that hold the original FbxMesh. The original FbxMesh STAY UNCHANGED. Now, the new mesh will have Normals, UVs, vertex color, material and textures.

bool SplitMeshesPerMaterial | ( | FbxScene * | pScene | ) |

Search for all occurrences

Split all the mesh in the scene.

Parameters:

  pScene | each mesh in the scene will be split.

Returns:
  `true` on success, `false` otherwise.

bool CreateAndCopyLayerElement | ( | FbxMesh * | pNewMesh,
|  | FbxMesh * | pRefMesh
| ) |  |

Search for all occurrences

Create LayerElement, and copy settings from pRefMesh to pNewMesh.

Parameters:

  pNewMesh | new mesh to create layerElement.
  pRefMesh | reference mesh, to copy layerElement settings from it.

Returns:
  `true` on success, `false` otherwise.

bool SetLayerElements | ( | FbxMesh * | pNewMesh,
|  | FbxMesh * | pMesh,
|  | int | pPolygonIndex,
|  | int | pPolyPointIndex,
|  | int | pLoopIndex,
|  | bool | pIsSearched,
|  | bool | pIsEndPolygon
| ) |  |

Search for all occurrences

Set Normals, UVs and Vertex Color, when building new mesh.

Remarks:
  If MappingMode is FbxLayerElement::eByPolygon, only pIsEndPolygon/pPolygonIndex are meaningful here, pIsSearched/pPolyPointIndex/pLoopIndex are not used here.

FbxMesh* TriangulateMeshAdvance | ( | FbxMesh const * | pMesh,
|  | bool & | pStatus
| ) |  |

Search for all occurrences

Triangulate a mesh(support without holes or with holes simple polygon)

Parameters:

  pMesh | Pointer to the mesh to triangulate.
  pStatus | The status is `true` if the triangulation is successful for the whole mesh.

Returns:
  Pointer to the new triangulated mesh.

Remarks:
  This method creates a new mesh, leaving the source mesh unchanged.

FbxNode* MergeMeshes | ( | FbxArray< FbxNode * > & | pMeshNodes,
|  | const char * | pNodeName,
|  | FbxScene * | pScene
| ) |  |

Search for all occurrences

Merge multiple meshes to one mesh.

The method will merge: a) mesh vertex; b) mesh polygon; c) mesh edge; d) all mesh elements; only the layer 0 elements is merged. e) if there are skins for old mesh, merge these skins. The new skin clusters link to old skeletons.

Parameters:

  pMeshNodes | FBX nodes that hold multiple meshes. These meshes will be merged.
  pNodeName | Name of new mesh node.
  pScene | The scene that will contain the new mesh node.

Returns:
  The new mesh node if merge successfully, otherwise NULL is returned.

Remarks:
  This method creates a new mesh, leaving the source mesh unchanged. The transform of new mesh node is: translate (0, 0, 0), rotation (0, 0, 0), scale (1, 1, 1). For layer element material, normal, smoothing, UV set, vertex color, binormal, tangent and polygon group, if any mesh misses these element, the merge for this kind of element is skipped. For layer element crease, hole, visibility and user data, if any mesh has such element, the kind of element will be merged. The missing element will be filled with default values. For meshes with skin binding, if the pose of frame 0 is different with bind pose, the new mesh will be distorted.

static void FbxTriangulation | ( | int * | Index,
|  | int | pNumSide
| ) |  | `[static]`

Search for all occurrences

FbxTriangulation.

Parameters:

  Index | Output array of triangle indices
  pNumSide | Input number of sides of the polygon to triangulate -- Triangulation algorithm is strip, Sorting vertex index for strip in clockwise.

2 3 4 0----------0---------0 / ` / ` 5 1 / 0 0 / ` / ` / 0 0-----0-------------0 6 7 The result of this one will be [{0,1,2},{2,3,0},{0,3,7},{3,4,7},{7,4,6},{4,5,6}]

bool ComputePatchToMeshControlPointsWeightedMapping | ( | FbxPatch * | pSrcPatch,
|  | FbxMesh * | pDstMesh,
|  | FbxWeightedMapping * | pMapping,
|  | bool | pSwapUV = `false`
| ) |  | `[protected]`

Search for all occurrences

bool ComputeNurbsToMeshControlPointsWeightedMapping | ( | FbxNurbsSurface * | pSrcNurbs,
|  | FbxMesh * | pDstMesh,
|  | FbxWeightedMapping * | pMapping,
|  | bool | pRescaleUVs = `false`,
|  | bool | pSwapUV = `false`
| ) |  | `[protected]`

Search for all occurrences

void InitializeWeightInControlPoints | ( | FbxGeometryBase * | pGeometry | ) | `[protected]`

Search for all occurrences

void InitializeWeightInNormals | ( | FbxLayerContainer * | pLayerContainer | ) | `[protected]`

Search for all occurrences

void TriangulateContinuousSurface | ( | FbxMesh * | pMesh,
|  | FbxSurfaceEvaluator * | pSurface,
|  | FbxUInt | pPointCountX,
|  | FbxUInt | pPointCountY,
|  | bool | ClockWise = `false`
| ) |  | `[protected]`

Search for all occurrences

void CheckForZeroWeightInShape | ( | FbxGeometry * | pGeometry | ) | `[protected]`

Search for all occurrences

FbxMesh* CreateMeshFromParametricSurface | ( | FbxGeometry const * | pGeometry | ) | `[protected]`

Search for all occurrences

FbxNurbs* CreateNurbsFromPatch | ( | FbxPatch * | pPatch | ) | `[protected]`

Search for all occurrences

FbxNurbsSurface* CreateNurbsSurfaceFromPatch | ( | FbxPatch * | pPatch | ) | `[protected]`

Search for all occurrences

void ConvertShapes | ( | FbxGeometry const * | pSource,
|  | FbxGeometry * | pDestination,
|  | FbxSurfaceEvaluator * | pEvaluator,
|  | int | pUCount,
|  | int | pVCount
| ) |  | `[protected]`

Search for all occurrences

void ConvertShapes | ( | FbxGeometry const * | pSource,
|  | FbxGeometry * | pDestination,
|  | FbxWeightedMapping * | pSourceToDestinationMapping
| ) |  | `[protected]`

Search for all occurrences

void ConvertClusters | ( | FbxGeometry const * | pSource,
|  | FbxGeometry * | pDestination,
|  | FbxWeightedMapping * | pSourceToDestinationMapping
| ) |  | `[protected]`

Search for all occurrences

void ConvertClusters | ( | FbxArray< FbxCluster * > const & | pSourceClusters,
|  | int | pSourceControlPointsCount,
|  | FbxArray< FbxCluster * > & | pDestinationClusters,
|  | int | pDestinationControlPointsCount,
|  | FbxWeightedMapping * | pSourceToDestinationMapping
| ) |  | `[protected]`

Search for all occurrences

void BuildClusterToSourceMapping | ( | FbxArray< FbxCluster * > const & | pSourceClusters,
|  | FbxWeightedMapping * | pClusterToSourceMapping
| ) |  | `[protected]`

Search for all occurrences

void CheckClusterToSourceMapping | ( | FbxWeightedMapping * | pClusterToSourceMapping | ) | `[protected]`

Search for all occurrences

void ConvertCluster | ( | int | pSourceClusterIndex,
|  | FbxWeightedMapping * | pClusterToSourceMapping,
|  | FbxWeightedMapping * | pSourceToDestinationMapping,
|  | FbxCluster * | pDestinationCluster
| ) |  | `[protected]`

Search for all occurrences

void DuplicateControlPoints | ( | FbxArray< FbxVector4 > & | pControlPoints,
|  | FbxArray< int > & | pPolygonVertices
| ) |  | `[protected]`

Search for all occurrences

void UpdatePolygon | ( | FbxMesh * | pNewMesh,
|  | FbxMesh const * | pRefMesh,
|  | int | pPolygonIndex,
|  | int * | pNewIndex,
|  | int & | pVerticeIndexMeshTriangulated,
|  | int & | pPolygonIndexMeshTriangulated
| ) |  | `[protected]`

Search for all occurrences

void UpdatePolygon | ( | FbxMesh * | pNewMesh,
|  | FbxMesh const * | pRefMesh,
|  | int | pPolygonIndex,
|  | int * | pNewIndex,
|  | int & | pVerticeIndexMeshTriangulated,
|  | int & | pPolygonIndexMeshTriangulated,
|  | int | pTriangleNum
| ) |  | `[protected]`

Search for all occurrences

void ResizePolygon | ( | FbxMesh * | pNewMesh,
|  | int | pNewCountVertices = `0`,
|  | int | pNewCountPolygons = `0`,
|  | bool | pClearFlag = `true`
| ) |  | `[protected]`

Search for all occurrences

void ConvertNurbs | ( | T1 * | pNewNurbs,
|  | T2 * | pOldNurb
| ) |  | `[protected]`

Search for all occurrences

bool CopyAnimationCurves | ( | FbxNode * | pNode,
|  | FbxGeometry * | pNewGeometry
| ) |  | `[protected]`

Search for all occurrences

bool FlipNurbsCurve | ( | FbxNurbsCurve * | pCurve | ) | const `[protected]`

Search for all occurrences

void FlipControlPoints | ( | FbxGeometryBase * | pPoints,
|  | int | pUCount,
|  | int | pVCount
| ) |  | const `[protected]`

Search for all occurrences

bool ConvertMaterialReferenceMode | ( | FbxMesh * | pMeshRef | ) | const `[protected]`

Search for all occurrences

void RevertMaterialReferenceModeConversion | ( | FbxMesh * | pMeshRef | ) | const `[protected]`

Search for all occurrences

## Member Data Documentation

FbxManager* mManager `[protected]`

Search for all occurrences

Definition at line 405 of file fbxgeometryconverter.h.

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

- fbxsdk/utils/fbxgeometryconverter.h

FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter
FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter FbxGeometryConverter