|
Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
|
Administra la jerarquia de entidades y su actualizacion espacial. Más...
#include <SceneGraph.h>
Diagrama de colaboración de SceneGraph:Métodos públicos | |
| void | addEntity (Entity *e) |
| Registra una entidad dentro del grafo. | |
| bool | attach (Entity *child, Entity *parent) |
| void | destroy () |
| bool | detach (Entity *child) |
| void | gatherRenderScene (RenderScene &outScene, const Camera &camera) |
| void | init () |
| bool | isAncestor (Entity *possibleAncestor, Entity *node) const |
| void | removeEntity (Entity *e) |
| Elimina una entidad del grafo si esta registrada. | |
| void | render (DeviceContext &deviceContext) |
| SceneGraph ()=default | |
| void | update (float deltaTime, DeviceContext &deviceContext) |
| ~SceneGraph ()=default | |
Atributos públicos | |
| std::vector< Entity * > | m_entities |
| Entidades registradas en el grafo. | |
Métodos privados | |
| bool | isRegistered (Entity *e) const |
| bool | isRoot (Entity *e) const |
| void | updateWorldRecursive (Entity *node, const XMMATRIX &parentWorld) |
El SceneGraph registra entidades, resuelve relaciones padre-hijo y actualiza las matrices de mundo antes de generar la informacion necesaria para render.
Definición en la línea 21 del archivo SceneGraph.h.
|
default |
|
default |
| void SceneGraph::addEntity | ( | Entity * | e | ) |
| e | Entidad a registrar. |
Definición en la línea 38 del archivo SceneGraph.cpp.
Hace referencia a Entity::addComponent(), Entity::getComponent(), init(), isRegistered() y m_entities.
Referenciado por attach() y BaseApp::init().
Definición en la línea 129 del archivo SceneGraph.cpp.
Hace referencia a HierarchyComponent::addChild(), addEntity(), detach(), Entity::getComponent(), isAncestor() y HierarchyComponent::m_parent.
| void SceneGraph::destroy | ( | ) |
Definición en la línea 22 del archivo SceneGraph.cpp.
Hace referencia a m_entities y HierarchyComponent::m_parent.
Referenciado por BaseApp::destroy().
| bool SceneGraph::detach | ( | Entity * | child | ) |
Definición en la línea 156 del archivo SceneGraph.cpp.
Hace referencia a Entity::getComponent() y HierarchyComponent::removeChild().
Referenciado por attach() y removeEntity().
| void SceneGraph::gatherRenderScene | ( | RenderScene & | outScene, |
| const Camera & | camera | ||
| ) |
Definición en la línea 223 del archivo SceneGraph.cpp.
Hace referencia a MeshRendererComponent::canCastShadow(), RenderScene::directionalLights, Camera::getPosition(), MeshRendererComponent::isVisible(), m_entities, RenderObject::mesh, Opaque, RenderScene::opaqueObjects, Transparent, RenderScene::transparentObjects, EU::Vector3::x, EU::Vector3::y y EU::Vector3::z.
Referenciado por BaseApp::render().
| void SceneGraph::init | ( | ) |
Definición en la línea 18 del archivo SceneGraph.cpp.
Hace referencia a m_entities.
Referenciado por addEntity() y BaseApp::awake().
Definición en la línea 98 del archivo SceneGraph.cpp.
Hace referencia a Entity::getComponent().
Referenciado por attach().
|
private |
Definición en la línea 124 del archivo SceneGraph.cpp.
Hace referencia a m_entities.
Referenciado por addEntity() y removeEntity().
|
private |
Definición en la línea 116 del archivo SceneGraph.cpp.
Hace referencia a Entity::getComponent().
Referenciado por update().
| void SceneGraph::removeEntity | ( | Entity * | e | ) |
| e | Entidad a retirar. |
Definición en la línea 60 del archivo SceneGraph.cpp.
Hace referencia a detach(), Entity::getComponent(), isRegistered(), HierarchyComponent::m_children, m_entities y HierarchyComponent::m_parent.
| void SceneGraph::render | ( | DeviceContext & | deviceContext | ) |
Definición en la línea 213 del archivo SceneGraph.cpp.
Hace referencia a m_entities.
| void SceneGraph::update | ( | float | deltaTime, |
| DeviceContext & | deviceContext | ||
| ) |
Definición en la línea 175 del archivo SceneGraph.cpp.
Hace referencia a isRoot(), m_entities y updateWorldRecursive().
Referenciado por BaseApp::update().
|
private |
Definición en la línea 195 del archivo SceneGraph.cpp.
Hace referencia a Entity::getComponent() y updateWorldRecursive().
Referenciado por update() y updateWorldRecursive().
| std::vector<Entity*> SceneGraph::m_entities |
Definición en la línea 77 del archivo SceneGraph.h.
Referenciado por addEntity(), destroy(), gatherRenderScene(), init(), isRegistered(), removeEntity(), render() y update().