Assimp  v3.1.1 (June 2014)
Assimp::SplitByBoneCountProcess Class Reference

Postprocessing filter to split meshes with many bones into submeshes so that each submesh has a certain max bone count. More...

Inherits Assimp::BaseProcess.

Public Member Functions

bool IsActive (unsigned int pFlags) const
 Returns whether the processing step is present in the given flag. More...
 
virtual void SetupProperties (const Importer *pImp)
 Called prior to ExecuteOnScene(). More...
 
 SplitByBoneCountProcess ()
 
 ~SplitByBoneCountProcess ()
 
- Public Member Functions inherited from Assimp::BaseProcess
 BaseProcess ()
 Constructor to be privately used by Importer. More...
 
void ExecuteOnScene (Importer *pImp)
 Executes the post processing step on the given imported data. More...
 
SharedPostProcessInfoGetSharedData ()
 Get the shared data that is assigned to the step. More...
 
virtual bool RequireVerboseFormat () const
 Check whether this step expects its input vertex data to be in verbose format. More...
 
void SetSharedData (SharedPostProcessInfo *sh)
 Assign a new SharedPostProcessInfo to the step. More...
 
virtual ~BaseProcess ()
 Destructor, private as well. More...
 

Public Attributes

size_t mMaxBoneCount
 Max bone count. Splitting occurs if a mesh has more than that number of bones. More...
 
std::vector< std::vector< unsigned int > > mSubMeshIndices
 Per mesh index: Array of indices of the new submeshes. More...
 

Protected Member Functions

void Execute (aiScene *pScene)
 Executes the post processing step on the given imported data. More...
 
void SplitMesh (const aiMesh *pMesh, std::vector< aiMesh * > &poNewMeshes) const
 Splits the given mesh by bone count. More...
 
void UpdateNode (aiNode *pNode) const
 Recursively updates the node's mesh list to account for the changed mesh list. More...
 

Additional Inherited Members

- Protected Attributes inherited from Assimp::BaseProcess
ProgressHandlerprogress
 Currently active progress handler. More...
 
SharedPostProcessInfoshared
 See the doc of #SharedPostProcessInfo for more details. More...
 

Detailed Description

Postprocessing filter to split meshes with many bones into submeshes so that each submesh has a certain max bone count.

Applied BEFORE the JoinVertices-Step occurs. Returns NON-UNIQUE vertices, splits by bone count.

Constructor & Destructor Documentation

◆ SplitByBoneCountProcess()

SplitByBoneCountProcess::SplitByBoneCountProcess ( )

◆ ~SplitByBoneCountProcess()

SplitByBoneCountProcess::~SplitByBoneCountProcess ( )

Member Function Documentation

◆ Execute()

void SplitByBoneCountProcess::Execute ( aiScene pScene)
protectedvirtual

Executes the post processing step on the given imported data.

At the moment a process is not supposed to fail.

Parameters
pSceneThe imported data to work at.

Implements Assimp::BaseProcess.

◆ IsActive()

bool SplitByBoneCountProcess::IsActive ( unsigned int  pFlags) const
virtual

Returns whether the processing step is present in the given flag.

Parameters
pFlagsThe processing flags the importer was called with. A bitwise combination of aiPostProcessSteps.
Returns
true if the process is present in this flag fields, false if not.

Implements Assimp::BaseProcess.

◆ SetupProperties()

void SplitByBoneCountProcess::SetupProperties ( const Importer pImp)
virtual

Called prior to ExecuteOnScene().

The function is a request to the process to update its configuration basing on the Importer's configuration property list.

Reimplemented from Assimp::BaseProcess.

◆ SplitMesh()

void SplitByBoneCountProcess::SplitMesh ( const aiMesh pMesh,
std::vector< aiMesh * > &  poNewMeshes 
) const
protected

Splits the given mesh by bone count.

Parameters
pMeshthe Mesh to split. Is not changed at all, but might be superfluous in case it was split.
poNewMeshesArray of submeshes created in the process. Empty if splitting was not necessary.

◆ UpdateNode()

void SplitByBoneCountProcess::UpdateNode ( aiNode pNode) const
protected

Recursively updates the node's mesh list to account for the changed mesh list.

Member Data Documentation

◆ mMaxBoneCount

size_t Assimp::SplitByBoneCountProcess::mMaxBoneCount

Max bone count. Splitting occurs if a mesh has more than that number of bones.

◆ mSubMeshIndices

std::vector< std::vector<unsigned int> > Assimp::SplitByBoneCountProcess::mSubMeshIndices

Per mesh index: Array of indices of the new submeshes.


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