PeriDyno 1.2.1
Loading...
Searching...
No Matches
dyno::HierarchicalScene Class Reference

#include <HierarchicalModel.h>

Inheritance diagram for dyno::HierarchicalScene:
Collaboration diagram for dyno::HierarchicalScene:

Public Member Functions

 HierarchicalScene ()
 
 ~HierarchicalScene ()
 
void clear ()
 
int minMeshIndex ()
 
int findMeshIndexByName (std::string name)
 
int findObjectIndexByName (std::string name)
 
void pushBackBone (std::shared_ptr< Bone > bone)
 
void pushBackMesh (std::shared_ptr< MeshInfo > mesh)
 
std::shared_ptr< ModelObjectgetObjectByName (std::string name)
 
int getObjIndexByName (std::string name)
 
int getBoneIndexByName (std::string name)
 
void updateBoneWorldMatrix ()
 
void updateMeshWorldMatrix ()
 
void updateInverseBindMatrix ()
 
void updateWorldTransformByKeyFrame (Real time)
 
Real getVectorDataByTime (std::vector< Real > data, std::vector< Real > timeCode, Real time)
 
int findMaxSmallerIndex (const std::vector< float > &arr, float v)
 
std::vector< std::shared_ptr< Bone > > & getBones ()
 
void skinAnimation (DArray< Vec3f > &intialPosition, DArray< Vec3f > &worldPosition, DArray< Mat4f > &joint_inverseBindMatrix, DArray< Mat4f > &WorldMatrix, DArray< Vec4f > &bind_joints_0, DArray< Vec4f > &bind_joints_1, DArray< Vec4f > &bind_joints_2, DArray< Vec4f > &weights_0, DArray< Vec4f > &weights_1, DArray< Vec4f > &weights_2, Mat4f transform, bool isNormal, Vec2u range)
 
void skinVerticesAnimation (DArray< Vec3f > &intialVertices, DArray< Vec3f > &Vertices, DArray< Mat4f > &joint_inverseBindMatrix, DArray< Mat4f > &WorldMatrix, DArrayList< int > &point2Vertice, DArray< Vec4f > &bind_joints_0, DArray< Vec4f > &bind_joints_1, DArray< Vec4f > &bind_joints_2, DArray< Vec4f > &weights_0, DArray< Vec4f > &weights_1, DArray< Vec4f > &weights_2, Mat4f transform, bool isNormal, Vec2u range)
 
void c_skinVerticesAnimation (DArray< Vec3f > &intialVertices, DArray< Vec3f > &Vertices, DArray< Mat4f > &joint_inverseBindMatrix, DArray< Mat4f > &WorldMatrix, DArrayList< int > &point2Vertice, DArray< Vec4f > &bind_joints_0, DArray< Vec4f > &bind_joints_1, DArray< Vec4f > &bind_joints_2, DArray< Vec4f > &weights_0, DArray< Vec4f > &weights_1, DArray< Vec4f > &weights_2, Mat4f transform, bool isNormal, Vec2u range)
 
void getVerticesNormalInBindPose (DArray< Vec3f > &initialNormal, DArray< Mat4f > &joint_inverseBindMatrix, DArray< Mat4f > &WorldMatrix, DArrayList< int > &point2Vertice, DArray< Vec4f > &bind_joints_0, DArray< Vec4f > &bind_joints_1, DArray< Vec4f > &bind_joints_2, DArray< Vec4f > &weights_0, DArray< Vec4f > &weights_1, DArray< Vec4f > &weights_2, Vec2u range)
 
void updatePoint2Vertice (DArrayList< int > &d_p2v, DArray< int > &d_v2p)
 
void UpdateJointData ()
 
void coutBoneHierarchial ()
 
void updateSkinData (std::shared_ptr< TextureMesh > texMesh)
 
Mat4f createLocalTransform (std::shared_ptr< ModelObject > object)
 
void coutMatrix (int id, Mat4f c)
 
void showJointInfo ()
 
template<typename Vec3f, typename Mat4f>
void textureMeshTransform (DArray< Vec3f > &intialPosition, DArray< Vec3f > &worldPosition, DArray< Vec3f > &intialNormal, DArray< Vec3f > &Normal, Mat4f &WorldMatrix)
 
template<typename Vec3f, typename Mat4f>
void shapeTransform (DArray< Vec3f > &intialPosition, DArray< Vec3f > &worldPosition, DArray< Vec3f > &intialNormal, DArray< Vec3f > &Normal, DArray< Mat4f > &WorldMatrix, DArray< uint > &vertexId_shape, DArray< int > &shapeId_MeshId)
 
template<typename Vec3f, typename uint>
void shapeToCenter (DArray< Vec3f > &iniPos, DArray< Vec3f > &finalPos, DArray< uint > &shapeId, DArray< Vec3f > &t)
 
std::vector< std::shared_ptr< MeshInfo > > & getMeshes ()
 
std::vector< Mat4fgetObjectWorldMatrix ()
 
void computeTexMeshVerticesNormal (std::vector< std::shared_ptr< Shape > > &shapes, DArray< Vec3f > &Position, DArray< Vec3f > &Normal, DArray< int > *vertices2Point=nullptr)
 
void flipNormal (DArray< Vec3f > &Normal)
 
std::shared_ptr< JointAnimationInfo > & getJointAnimation ()
 
- Public Member Functions inherited from dyno::Object
 Object ()
 
virtual ~Object ()
 
ObjectId objectId ()
 

Public Attributes

std::vector< std::shared_ptr< ModelObject > > mModelObjects
 
std::vector< std::shared_ptr< MeshInfo > > mMeshes
 
std::vector< std::shared_ptr< Bone > > mBones
 
std::vector< Vec3fmBoneRotations
 
std::vector< Vec3fmBoneTranslations
 
std::vector< Vec3fmBoneScales
 
std::vector< Mat4fmBoneWorldMatrix
 
std::vector< Mat4fmBoneInverseBindMatrix
 
std::vector< Mat4fmBoneLocalMatrix
 
std::shared_ptr< JointInfomJointData
 
std::shared_ptr< SkinInfomSkinData
 
std::shared_ptr< JointAnimationInfomJointAnimationData
 
float mTimeStart = -1
 
float mTimeEnd = -1
 

Private Member Functions

void buildTree (std::string &str, const std::vector< std::shared_ptr< ModelObject > > &child, uint level)
 
Real lerp (Real v0, Real v1, float weight)
 

Private Attributes

Real currentTime = ERRORTIME
 

Additional Inherited Members

- Static Public Member Functions inherited from dyno::Object
static bool registerClass (ClassInfo *ci)
 
static ObjectcreateObject (std::string name)
 
static std::map< std::string, ClassInfo * > * getClassMap ()
 
static ObjectId baseId ()
 Base Id.
 

Detailed Description

Definition at line 99 of file HierarchicalModel.h.

Constructor & Destructor Documentation

◆ HierarchicalScene()

dyno::HierarchicalScene::HierarchicalScene ( )

◆ ~HierarchicalScene()

dyno::HierarchicalScene::~HierarchicalScene ( )

Member Function Documentation

◆ buildTree()

void dyno::HierarchicalScene::buildTree ( std::string & str,
const std::vector< std::shared_ptr< ModelObject > > & child,
uint level )
inlineprivate

Definition at line 280 of file HierarchicalModel.h.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ c_skinVerticesAnimation()

void dyno::HierarchicalScene::c_skinVerticesAnimation ( DArray< Vec3f > & intialVertices,
DArray< Vec3f > & Vertices,
DArray< Mat4f > & joint_inverseBindMatrix,
DArray< Mat4f > & WorldMatrix,
DArrayList< int > & point2Vertice,
DArray< Vec4f > & bind_joints_0,
DArray< Vec4f > & bind_joints_1,
DArray< Vec4f > & bind_joints_2,
DArray< Vec4f > & weights_0,
DArray< Vec4f > & weights_1,
DArray< Vec4f > & weights_2,
Mat4f transform,
bool isNormal,
Vec2u range )

◆ clear()

void dyno::HierarchicalScene::clear ( )

◆ computeTexMeshVerticesNormal()

void dyno::HierarchicalScene::computeTexMeshVerticesNormal ( std::vector< std::shared_ptr< Shape > > & shapes,
DArray< Vec3f > & Position,
DArray< Vec3f > & Normal,
DArray< int > * vertices2Point = nullptr )

◆ coutBoneHierarchial()

void dyno::HierarchicalScene::coutBoneHierarchial ( )

◆ coutMatrix()

void dyno::HierarchicalScene::coutMatrix ( int id,
Mat4f c )
inline

Definition at line 205 of file HierarchicalModel.h.

◆ createLocalTransform()

Mat4f dyno::HierarchicalScene::createLocalTransform ( std::shared_ptr< ModelObject > object)

◆ findMaxSmallerIndex()

int dyno::HierarchicalScene::findMaxSmallerIndex ( const std::vector< float > & arr,
float v )

◆ findMeshIndexByName()

int dyno::HierarchicalScene::findMeshIndexByName ( std::string name)

◆ findObjectIndexByName()

int dyno::HierarchicalScene::findObjectIndexByName ( std::string name)

◆ flipNormal()

void dyno::HierarchicalScene::flipNormal ( DArray< Vec3f > & Normal)

◆ getBoneIndexByName()

int dyno::HierarchicalScene::getBoneIndexByName ( std::string name)

◆ getBones()

std::vector< std::shared_ptr< Bone > > & dyno::HierarchicalScene::getBones ( )
inline

Definition at line 122 of file HierarchicalModel.h.

◆ getJointAnimation()

std::shared_ptr< JointAnimationInfo > & dyno::HierarchicalScene::getJointAnimation ( )
inline

Definition at line 275 of file HierarchicalModel.h.

◆ getMeshes()

std::vector< std::shared_ptr< MeshInfo > > & dyno::HierarchicalScene::getMeshes ( )
inline

Definition at line 246 of file HierarchicalModel.h.

◆ getObjectByName()

std::shared_ptr< ModelObject > dyno::HierarchicalScene::getObjectByName ( std::string name)

◆ getObjectWorldMatrix()

std::vector< Mat4f > dyno::HierarchicalScene::getObjectWorldMatrix ( )
inline

Definition at line 248 of file HierarchicalModel.h.

Here is the call graph for this function:

◆ getObjIndexByName()

int dyno::HierarchicalScene::getObjIndexByName ( std::string name)

◆ getVectorDataByTime()

Real dyno::HierarchicalScene::getVectorDataByTime ( std::vector< Real > data,
std::vector< Real > timeCode,
Real time )

◆ getVerticesNormalInBindPose()

void dyno::HierarchicalScene::getVerticesNormalInBindPose ( DArray< Vec3f > & initialNormal,
DArray< Mat4f > & joint_inverseBindMatrix,
DArray< Mat4f > & WorldMatrix,
DArrayList< int > & point2Vertice,
DArray< Vec4f > & bind_joints_0,
DArray< Vec4f > & bind_joints_1,
DArray< Vec4f > & bind_joints_2,
DArray< Vec4f > & weights_0,
DArray< Vec4f > & weights_1,
DArray< Vec4f > & weights_2,
Vec2u range )

◆ lerp()

Real dyno::HierarchicalScene::lerp ( Real v0,
Real v1,
float weight )
private

◆ minMeshIndex()

int dyno::HierarchicalScene::minMeshIndex ( )

◆ pushBackBone()

void dyno::HierarchicalScene::pushBackBone ( std::shared_ptr< Bone > bone)

◆ pushBackMesh()

void dyno::HierarchicalScene::pushBackMesh ( std::shared_ptr< MeshInfo > mesh)

◆ shapeToCenter()

template<typename Vec3f, typename uint>
void dyno::HierarchicalScene::shapeToCenter ( DArray< Vec3f > & iniPos,
DArray< Vec3f > & finalPos,
DArray< uint > & shapeId,
DArray< Vec3f > & t )

◆ shapeTransform()

template<typename Vec3f, typename Mat4f>
void dyno::HierarchicalScene::shapeTransform ( DArray< Vec3f > & intialPosition,
DArray< Vec3f > & worldPosition,
DArray< Vec3f > & intialNormal,
DArray< Vec3f > & Normal,
DArray< Mat4f > & WorldMatrix,
DArray< uint > & vertexId_shape,
DArray< int > & shapeId_MeshId )

◆ showJointInfo()

void dyno::HierarchicalScene::showJointInfo ( )

◆ skinAnimation()

void dyno::HierarchicalScene::skinAnimation ( DArray< Vec3f > & intialPosition,
DArray< Vec3f > & worldPosition,
DArray< Mat4f > & joint_inverseBindMatrix,
DArray< Mat4f > & WorldMatrix,
DArray< Vec4f > & bind_joints_0,
DArray< Vec4f > & bind_joints_1,
DArray< Vec4f > & bind_joints_2,
DArray< Vec4f > & weights_0,
DArray< Vec4f > & weights_1,
DArray< Vec4f > & weights_2,
Mat4f transform,
bool isNormal,
Vec2u range )

◆ skinVerticesAnimation()

void dyno::HierarchicalScene::skinVerticesAnimation ( DArray< Vec3f > & intialVertices,
DArray< Vec3f > & Vertices,
DArray< Mat4f > & joint_inverseBindMatrix,
DArray< Mat4f > & WorldMatrix,
DArrayList< int > & point2Vertice,
DArray< Vec4f > & bind_joints_0,
DArray< Vec4f > & bind_joints_1,
DArray< Vec4f > & bind_joints_2,
DArray< Vec4f > & weights_0,
DArray< Vec4f > & weights_1,
DArray< Vec4f > & weights_2,
Mat4f transform,
bool isNormal,
Vec2u range )

◆ textureMeshTransform()

template<typename Vec3f, typename Mat4f>
void dyno::HierarchicalScene::textureMeshTransform ( DArray< Vec3f > & intialPosition,
DArray< Vec3f > & worldPosition,
DArray< Vec3f > & intialNormal,
DArray< Vec3f > & Normal,
Mat4f & WorldMatrix )

◆ updateBoneWorldMatrix()

void dyno::HierarchicalScene::updateBoneWorldMatrix ( )

◆ updateInverseBindMatrix()

void dyno::HierarchicalScene::updateInverseBindMatrix ( )

◆ UpdateJointData()

void dyno::HierarchicalScene::UpdateJointData ( )

◆ updateMeshWorldMatrix()

void dyno::HierarchicalScene::updateMeshWorldMatrix ( )
Here is the caller graph for this function:

◆ updatePoint2Vertice()

void dyno::HierarchicalScene::updatePoint2Vertice ( DArrayList< int > & d_p2v,
DArray< int > & d_v2p )

◆ updateSkinData()

void dyno::HierarchicalScene::updateSkinData ( std::shared_ptr< TextureMesh > texMesh)

◆ updateWorldTransformByKeyFrame()

void dyno::HierarchicalScene::updateWorldTransformByKeyFrame ( Real time)

Member Data Documentation

◆ currentTime

Real dyno::HierarchicalScene::currentTime = ERRORTIME
private

Definition at line 320 of file HierarchicalModel.h.

◆ mBoneInverseBindMatrix

std::vector<Mat4f> dyno::HierarchicalScene::mBoneInverseBindMatrix

Definition at line 307 of file HierarchicalModel.h.

◆ mBoneLocalMatrix

std::vector<Mat4f> dyno::HierarchicalScene::mBoneLocalMatrix

Definition at line 308 of file HierarchicalModel.h.

◆ mBoneRotations

std::vector<Vec3f> dyno::HierarchicalScene::mBoneRotations

Definition at line 303 of file HierarchicalModel.h.

◆ mBones

std::vector<std::shared_ptr<Bone> > dyno::HierarchicalScene::mBones

Definition at line 302 of file HierarchicalModel.h.

◆ mBoneScales

std::vector<Vec3f> dyno::HierarchicalScene::mBoneScales

Definition at line 305 of file HierarchicalModel.h.

◆ mBoneTranslations

std::vector<Vec3f> dyno::HierarchicalScene::mBoneTranslations

Definition at line 304 of file HierarchicalModel.h.

◆ mBoneWorldMatrix

std::vector<Mat4f> dyno::HierarchicalScene::mBoneWorldMatrix

Definition at line 306 of file HierarchicalModel.h.

◆ mJointAnimationData

std::shared_ptr<JointAnimationInfo> dyno::HierarchicalScene::mJointAnimationData

Definition at line 312 of file HierarchicalModel.h.

◆ mJointData

std::shared_ptr<JointInfo> dyno::HierarchicalScene::mJointData

Definition at line 310 of file HierarchicalModel.h.

◆ mMeshes

std::vector<std::shared_ptr<MeshInfo> > dyno::HierarchicalScene::mMeshes

Definition at line 301 of file HierarchicalModel.h.

◆ mModelObjects

std::vector<std::shared_ptr<ModelObject> > dyno::HierarchicalScene::mModelObjects

Definition at line 300 of file HierarchicalModel.h.

◆ mSkinData

std::shared_ptr<SkinInfo> dyno::HierarchicalScene::mSkinData

Definition at line 311 of file HierarchicalModel.h.

◆ mTimeEnd

float dyno::HierarchicalScene::mTimeEnd = -1

Definition at line 315 of file HierarchicalModel.h.

◆ mTimeStart

float dyno::HierarchicalScene::mTimeStart = -1

Definition at line 314 of file HierarchicalModel.h.


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