TDME2 1.9.121
Private Member Functions | Private Attributes | Friends | List of all members
Object3DNodeMesh Class Referencefinal

Object 3D node mesh specifically for rendering. More...

#include <tdme/engine/subsystems/rendering/Object3DNodeMesh.h>

Collaboration diagram for Object3DNodeMesh:
Collaboration graph

Private Member Functions

 Object3DNodeMesh (Object3DNodeRenderer *object3DNodeRenderer, Engine::AnimationProcessingTarget animationProcessingTarget, Node *node, const vector< map< string, Matrix4x4 * > * > &transformationMatrices, const vector< map< string, Matrix4x4 * > * > &skinningMatrices, int instances)
 Creates a object3d node mesh from node. More...
 
void computeTransformations (int contextIdx, Object3DBase *object3DBase)
 Computes mesh transformations. More...
 
void recreateBuffers ()
 Recreates node float buffers. More...
 
bool hasRecreatedBuffers ()
 
bool getRecreatedBuffers ()
 
void setupVertexIndicesBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up vertex indices buffer. More...
 
void setupTextureCoordinatesBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up texture coordinates buffer. More...
 
void setupVerticesBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up vertices buffer. More...
 
void setupNormalsBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up normals buffer. More...
 
void setupTangentsBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up tangents buffer. More...
 
void setupBitangentsBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up bitangents buffer. More...
 
void setupOriginsBuffer (Renderer *renderer, int contextIdx, int32_t vboId)
 Set up render node object origins data buffer. More...
 
void setupLodBuffer (Renderer *renderer, int contextIdx, int32_t vboId, int lodLevel)
 Set up render node object lod data buffer. More...
 

Private Attributes

int instances
 
Object3DNodeRendererobject3DNodeRenderer { nullptr }
 
Nodenode { nullptr }
 
int32_t faceCount
 
const vector< Vector3 > * vertices { nullptr }
 
const vector< Vector3 > * normals { nullptr }
 
const vector< Vector3 > * tangents { nullptr }
 
const vector< Vector3 > * bitangents { nullptr }
 
const vector< TextureCoordinate > * textureCoordinates { nullptr }
 
vector< int32_t > indices
 
vector< Vector3transformedVertices
 
vector< Vector3transformedNormals
 
vector< Vector3transformedTangents
 
vector< Vector3transformedBitangents
 
vector< TextureCoordinatetransformedTextureCoordinates
 
vector< map< string, Matrix4x4 * > * > skinningMatrices
 
vector< vector< Matrix4x4 * > > jointsSkinningMatrices
 
Engine::AnimationProcessingTarget animationProcessingTarget
 
int32_t cSkinningMaxVertexWeights
 
vector< vector< float > > cSkinningJointWeight
 
Matrix4x4cNodeTransformationsMatrix { nullptr }
 
vector< vector< vector< Matrix4x4 * > > > cSkinningJointTransformationsMatrices
 
bool skinning
 
int32_t skinningJoints
 
bool recreatedBuffers
 

Friends

class ModelUtilitiesInternal
 
class Object3DBase
 
class Object3DBase_TransformedFacesIterator
 
class Object3DNode
 
class Object3DNodeRenderer
 
class EntityRenderer
 
class TransparentRenderFacesPool
 
class tdme::engine::subsystems::skinning::SkinningShader
 

Detailed Description

Object 3D node mesh specifically for rendering.

Author
Andreas Drewke

Definition at line 37 of file Object3DNodeMesh.h.

Constructor & Destructor Documentation

◆ Object3DNodeMesh()

Object3DNodeMesh ( Object3DNodeRenderer object3DNodeRenderer,
Engine::AnimationProcessingTarget  animationProcessingTarget,
Node node,
const vector< map< string, Matrix4x4 * > * > &  transformationMatrices,
const vector< map< string, Matrix4x4 * > * > &  skinningMatrices,
int  instances 
)
private

Creates a object3d node mesh from node.

Parameters
object3DNodeRendererobject 3D node renderer
animationProcessingTargetanimation processing target
nodenode
transformationMatricesinstances transformationm matrices
skinningMatricesinstances skinning matrices
instancesinstances

Definition at line 53 of file Object3DNodeMesh.cpp.

Member Function Documentation

◆ computeTransformations()

void computeTransformations ( int  contextIdx,
Object3DBase object3DBase 
)
private

Computes mesh transformations.

Parameters
contextIdxcontext index
object3DBaseobject 3d base

Definition at line 225 of file Object3DNodeMesh.cpp.

◆ getRecreatedBuffers()

bool getRecreatedBuffers ( )
private
Returns
if buffers has been recreated and unsets state

Definition at line 336 of file Object3DNodeMesh.cpp.

◆ hasRecreatedBuffers()

bool hasRecreatedBuffers ( )
inlineprivate
Returns
has recreated buffers

Definition at line 106 of file Object3DNodeMesh.h.

◆ recreateBuffers()

void recreateBuffers ( )
private

Recreates node float buffers.

Definition at line 331 of file Object3DNodeMesh.cpp.

◆ setupBitangentsBuffer()

void setupBitangentsBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up bitangents buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 427 of file Object3DNodeMesh.cpp.

◆ setupLodBuffer()

void setupLodBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId,
int  lodLevel 
)
private

Set up render node object lod data buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id
lodLevelLOD level

Definition at line 454 of file Object3DNodeMesh.cpp.

◆ setupNormalsBuffer()

void setupNormalsBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up normals buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 403 of file Object3DNodeMesh.cpp.

◆ setupOriginsBuffer()

void setupOriginsBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up render node object origins data buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 440 of file Object3DNodeMesh.cpp.

◆ setupTangentsBuffer()

void setupTangentsBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up tangents buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 414 of file Object3DNodeMesh.cpp.

◆ setupTextureCoordinatesBuffer()

void setupTextureCoordinatesBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up texture coordinates buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 379 of file Object3DNodeMesh.cpp.

◆ setupVertexIndicesBuffer()

void setupVertexIndicesBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up vertex indices buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 346 of file Object3DNodeMesh.cpp.

◆ setupVerticesBuffer()

void setupVerticesBuffer ( Renderer renderer,
int  contextIdx,
int32_t  vboId 
)
private

Set up vertices buffer.

Parameters
rendererrenderer
contextIdxcontext index
vboIdvbo id

Definition at line 392 of file Object3DNodeMesh.cpp.

Friends And Related Function Documentation

◆ EntityRenderer

friend class EntityRenderer
friend

Definition at line 44 of file Object3DNodeMesh.h.

◆ ModelUtilitiesInternal

friend class ModelUtilitiesInternal
friend

Definition at line 39 of file Object3DNodeMesh.h.

◆ Object3DBase

friend class Object3DBase
friend

Definition at line 40 of file Object3DNodeMesh.h.

◆ Object3DBase_TransformedFacesIterator

Definition at line 41 of file Object3DNodeMesh.h.

◆ Object3DNode

friend class Object3DNode
friend

Definition at line 42 of file Object3DNodeMesh.h.

◆ Object3DNodeRenderer

friend class Object3DNodeRenderer
friend

Definition at line 43 of file Object3DNodeMesh.h.

◆ tdme::engine::subsystems::skinning::SkinningShader

Definition at line 46 of file Object3DNodeMesh.h.

◆ TransparentRenderFacesPool

friend class TransparentRenderFacesPool
friend

Definition at line 45 of file Object3DNodeMesh.h.

Member Data Documentation

◆ animationProcessingTarget

Engine::AnimationProcessingTarget animationProcessingTarget
private

Definition at line 66 of file Object3DNodeMesh.h.

◆ bitangents

const vector<Vector3>* bitangents { nullptr }
private

Definition at line 56 of file Object3DNodeMesh.h.

◆ cNodeTransformationsMatrix

Matrix4x4* cNodeTransformationsMatrix { nullptr }
private

Definition at line 71 of file Object3DNodeMesh.h.

◆ cSkinningJointTransformationsMatrices

vector<vector<vector<Matrix4x4*> > > cSkinningJointTransformationsMatrices
private

Definition at line 73 of file Object3DNodeMesh.h.

◆ cSkinningJointWeight

vector<vector<float> > cSkinningJointWeight
private

Definition at line 69 of file Object3DNodeMesh.h.

◆ cSkinningMaxVertexWeights

int32_t cSkinningMaxVertexWeights
private

Definition at line 68 of file Object3DNodeMesh.h.

◆ faceCount

int32_t faceCount
private

Definition at line 52 of file Object3DNodeMesh.h.

◆ indices

vector<int32_t> indices
private

Definition at line 58 of file Object3DNodeMesh.h.

◆ instances

int instances
private

Definition at line 49 of file Object3DNodeMesh.h.

◆ jointsSkinningMatrices

vector<vector<Matrix4x4*> > jointsSkinningMatrices
private

Definition at line 65 of file Object3DNodeMesh.h.

◆ node

Node* node { nullptr }
private

Definition at line 51 of file Object3DNodeMesh.h.

◆ normals

const vector<Vector3>* normals { nullptr }
private

Definition at line 54 of file Object3DNodeMesh.h.

◆ object3DNodeRenderer

Object3DNodeRenderer* object3DNodeRenderer { nullptr }
private

Definition at line 50 of file Object3DNodeMesh.h.

◆ recreatedBuffers

bool recreatedBuffers
private

Definition at line 78 of file Object3DNodeMesh.h.

◆ skinning

bool skinning
private

Definition at line 75 of file Object3DNodeMesh.h.

◆ skinningJoints

int32_t skinningJoints
private

Definition at line 76 of file Object3DNodeMesh.h.

◆ skinningMatrices

vector<map<string, Matrix4x4*>*> skinningMatrices
private

Definition at line 64 of file Object3DNodeMesh.h.

◆ tangents

const vector<Vector3>* tangents { nullptr }
private

Definition at line 55 of file Object3DNodeMesh.h.

◆ textureCoordinates

const vector<TextureCoordinate>* textureCoordinates { nullptr }
private

Definition at line 57 of file Object3DNodeMesh.h.

◆ transformedBitangents

vector<Vector3> transformedBitangents
private

Definition at line 62 of file Object3DNodeMesh.h.

◆ transformedNormals

vector<Vector3> transformedNormals
private

Definition at line 60 of file Object3DNodeMesh.h.

◆ transformedTangents

vector<Vector3> transformedTangents
private

Definition at line 61 of file Object3DNodeMesh.h.

◆ transformedTextureCoordinates

vector<TextureCoordinate> transformedTextureCoordinates
private

Definition at line 63 of file Object3DNodeMesh.h.

◆ transformedVertices

vector<Vector3> transformedVertices
private

Definition at line 59 of file Object3DNodeMesh.h.

◆ vertices

const vector<Vector3>* vertices { nullptr }
private

Definition at line 53 of file Object3DNodeMesh.h.


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