Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Referencia de la clase Actor

Representa una entidad gr醘ica con mallas, texturas y estados de renderizado. M谩s...

#include <Actor.h>

+ Diagrama de herencia de Actor
+ Diagrama de colaboraci贸n de Actor:

M茅todos p煤blicos

 Actor ()=default
 Constructor por defecto.
 
 Actor (Device &device)
 Constructor que inicializa el actor con un dispositivo.
 
template<typename T >
void addComponent (EU::TSharedPointer< T > component)
 Agrega un componente a la entidad.
 
void awake () override
 
bool canCastShadow () const
 Indica si el actor puede proyectar sombras.
 
void destroy ()
 Libera todos los recursos asociados al actor.
 
template<typename T >
EU::TSharedPointer< T > getComponent ()
 Obtiene un componente de la entidad por su tipo.
 
std::string getName ()
 Obtiene el nombre del actor.
 
void init () override
 Inicializa el actor.
 
void render (DeviceContext &deviceContext) override
 Renderiza el actor en la escena.
 
void renderForSkybox (DeviceContext &deviceContext)
 
void renderShadow (DeviceContext &deviceContext)
 Renderiza la sombra del actor.
 
void setCastShadow (bool v)
 Define si el actor proyecta sombras.
 
void setMesh (Device &device, std::vector< MeshComponent > meshes)
 Establece las mallas del actor.
 
void setName (const std::string &name)
 Establece el nombre del actor.
 
void setTextures (std::vector< Texture > textures)
 Establece las texturas del actor.
 
void update (float deltaTime, DeviceContext &deviceContext) override
 Actualiza el actor en cada frame.
 
virtual ~Actor ()=default
 Destructor virtual por defecto.
 

Atributos protegidos

std::vector< EU::TSharedPointer< Component > > m_components
 
int m_id
 
bool m_isActive
 

Atributos privados

bool castShadow = true
 Indica si el actor proyecta sombras.
 
CBChangesEveryFrame m_cbShadow
 Constant buffer espec韋ico de sombras.
 
std::vector< Bufferm_indexBuffers
 Buffers de 韓dices asociados a las mallas.
 
XMFLOAT4 m_LightPos
 Posici髇 de la luz usada para proyectar sombras.
 
std::vector< MeshComponentm_meshes
 Conjunto de componentes de malla del actor.
 
CBChangesEveryFrame m_model
 Constante de buffer para transformaciones por frame.
 
Buffer m_modelBuffer
 Constant buffer que contiene m_model.
 
std::string m_name = "Actor"
 Nombre identificador del actor.
 
SamplerState m_sampler
 Estado de muestreo de texturas.
 
Buffer m_shaderBuffer
 Buffer auxiliar para datos de sombras.
 
ShaderProgram m_shaderShadow
 Shader program usado para renderizar sombras.
 
DepthStencilState m_shadowDepthStencilState
 Estado de profundidad/est閚cil para sombras.
 
std::vector< Texturem_textures
 Texturas aplicadas al actor.
 
std::vector< Bufferm_vertexBuffers
 Buffers de v閞tices asociados a las mallas.
 

Descripci贸n detallada

Un Actor es una entidad del motor que contiene mallas, texturas y recursos de renderizado necesarios para dibujar un objeto en la escena. Administra buffers de v閞tices e 韓dices, estados de rasterizaci髇, blending y shaders, adem醩 de soportar renderizado de sombras.

Definici贸n en la l铆nea 31 del archivo Actor.h.

Documentaci贸n de constructores y destructores

◆ Actor() [1/2]

Actor::Actor ( )
default

◆ Actor() [2/2]

Actor::Actor ( Device device)
Par谩metros
deviceDispositivo usado para inicializar recursos del actor.

Definici贸n en la l铆nea 11 del archivo Actor.cpp.

Hace referencia a Entity::addComponent(), awake(), ERROR, SamplerState::init(), Buffer::init(), m_modelBuffer, m_name y m_sampler.

◆ ~Actor()

virtual Actor::~Actor ( )
virtualdefault

Documentaci贸n de funciones miembro

◆ addComponent()

template<typename T >
void Entity::addComponent ( EU::TSharedPointer< T >  component)
inlineinherited
Par谩metros de plantilla
TTipo del componente, debe derivar de Component.
Par谩metros
componentPuntero compartido al componente que se va a agregar.

Definici贸n en la l铆nea 61 del archivo Entity.h.

Hace referencia a Entity::m_components.

Referenciado por Actor(), SceneGraph::addEntity() y BaseApp::init().

◆ awake()

void Actor::awake ( )
inlineoverridevirtual

Implementa Entity.

Definici贸n en la l铆nea 52 del archivo Actor.h.

Referenciado por Actor().

◆ canCastShadow()

bool Actor::canCastShadow ( ) const
inline
Devuelve
true si el actor proyecta sombras; false en caso contrario.

Definici贸n en la l铆nea 139 del archivo Actor.h.

Hace referencia a castShadow.

◆ destroy()

void Actor::destroy ( )
virtual

Incluye buffers, estados, shaders y texturas.

Implementa Entity.

Definici贸n en la l铆nea 132 del archivo Actor.cpp.

Hace referencia a Buffer::destroy(), SamplerState::destroy(), m_indexBuffers, m_modelBuffer, m_sampler, m_textures y m_vertexBuffers.

◆ getComponent()

template<typename T >
EU::TSharedPointer< T > Entity::getComponent ( )
inlineinherited
Par谩metros de plantilla
TTipo del componente a obtener.
Devuelve
Puntero compartido al componente si se encuentra, nullptr en caso contrario.

Definici贸n en la l铆nea 73 del archivo Entity.h.

Hace referencia a Entity::m_components.

Referenciado por SceneGraph::addEntity(), SceneGraph::attach(), SceneGraph::detach(), BaseApp::init(), SceneGraph::isAncestor(), SceneGraph::isRoot(), BaseApp::loadScene(), SceneGraph::removeEntity(), BaseApp::update() y SceneGraph::updateWorldRecursive().

◆ getName()

std::string Actor::getName ( )
inline
Devuelve
Nombre actual del actor.

Definici贸n en la l铆nea 111 del archivo Actor.h.

Hace referencia a m_name.

◆ init()

void Actor::init ( )
inlineoverridevirtual

M閠odo heredado de Entity. Puede usarse para inicializar recursos adicionales en clases derivadas.

Implementa Entity.

Definici贸n en la l铆nea 61 del archivo Actor.h.

◆ render()

void Actor::render ( DeviceContext deviceContext)
overridevirtual

Configura estados de render, buffers y shaders antes de dibujar las mallas asociadas al actor.

Par谩metros
deviceContextContexto del dispositivo para operaciones gr醘icas.

Implementa Entity.

Definici贸n en la l铆nea 92 del archivo Actor.cpp.

Hace referencia a DeviceContext::DrawIndexed(), DeviceContext::IASetPrimitiveTopology(), DeviceContext::m_deviceContext, m_indexBuffers, m_meshes, m_modelBuffer, m_sampler, m_textures, m_vertexBuffers, Buffer::render() y SamplerState::render().

◆ renderForSkybox()

void Actor::renderForSkybox ( DeviceContext deviceContext)

Definici贸n en la l铆nea 119 del archivo Actor.cpp.

Hace referencia a DeviceContext::DrawIndexed(), DeviceContext::IASetPrimitiveTopology(), m_indexBuffers, m_meshes y m_vertexBuffers.

Referenciado por Skybox::render().

◆ renderShadow()

void Actor::renderShadow ( DeviceContext deviceContext)

Usa shaders y estados espec韋icos de shadow mapping para dibujar la proyecci髇 del actor en el mapa de sombras.

Par谩metros
deviceContextContexto del dispositivo para operaciones gr醘icas.

◆ setCastShadow()

void Actor::setCastShadow ( bool  v)
inline
Par谩metros
vValor booleano que habilita o deshabilita las sombras.

Definici贸n en la l铆nea 132 del archivo Actor.h.

Hace referencia a castShadow.

◆ setMesh()

void Actor::setMesh ( Device device,
std::vector< MeshComponent meshes 
)

Inicializa buffers de v閞tices e 韓dices asociados a las mallas.

Par谩metros
deviceDispositivo con el cual se inicializan las mallas.
meshesVector de componentes de malla que se asignar醤 al actor.

Definici贸n en la l铆nea 152 del archivo Actor.cpp.

Hace referencia a ERROR, Buffer::init(), m_indexBuffers, m_meshes y m_vertexBuffers.

Referenciado por Skybox::init().

◆ setName()

void Actor::setName ( const std::string &  name)
inline
Par谩metros
nameNuevo nombre para el actor.

Definici贸n en la l铆nea 118 del archivo Actor.h.

Hace referencia a m_name.

Referenciado por BaseApp::init() y Skybox::init().

◆ setTextures()

void Actor::setTextures ( std::vector< Texture textures)
inline
Par谩metros
texturesVector de texturas a asignar al actor.

Definici贸n en la l铆nea 125 del archivo Actor.h.

Hace referencia a m_textures.

◆ update()

void Actor::update ( float  deltaTime,
DeviceContext deviceContext 
)
overridevirtual
Par谩metros
deltaTimeTiempo transcurrido desde la 鷏tima actualizaci髇.
deviceContextContexto del dispositivo para operaciones gr醘icas.
Nota
Este m閠odo puede actualizar animaciones, transformaciones u otros recursos dependientes del tiempo.

Implementa Entity.

Definici贸n en la l铆nea 76 del archivo Actor.cpp.

Hace referencia a Entity::m_components, m_model, m_modelBuffer, CBChangesEveryFrame::mWorld, Buffer::update() y CBChangesEveryFrame::vMeshColor.

Documentaci贸n de datos miembro

◆ castShadow

bool Actor::castShadow = true
private

Definici贸n en la l铆nea 172 del archivo Actor.h.

Referenciado por canCastShadow() y setCastShadow().

◆ m_cbShadow

CBChangesEveryFrame Actor::m_cbShadow
private

Definici贸n en la l铆nea 168 del archivo Actor.h.

◆ m_components

std::vector<EU::TSharedPointer<Component> > Entity::m_components
protectedinherited

Definici贸n en la l铆nea 86 del archivo Entity.h.

Referenciado por Entity::addComponent(), Entity::getComponent() y update().

◆ m_id

int Entity::m_id
protectedinherited

Definici贸n en la l铆nea 85 del archivo Entity.h.

◆ m_indexBuffers

std::vector<Buffer> Actor::m_indexBuffers
private

Definici贸n en la l铆nea 155 del archivo Actor.h.

Referenciado por destroy(), render(), renderForSkybox() y setMesh().

◆ m_isActive

bool Entity::m_isActive
protectedinherited

Definici贸n en la l铆nea 84 del archivo Entity.h.

◆ m_LightPos

XMFLOAT4 Actor::m_LightPos
private

Definici贸n en la l铆nea 170 del archivo Actor.h.

◆ m_meshes

std::vector<MeshComponent> Actor::m_meshes
private

Definici贸n en la l铆nea 152 del archivo Actor.h.

Referenciado por render(), renderForSkybox() y setMesh().

◆ m_model

CBChangesEveryFrame Actor::m_model
private

Definici贸n en la l铆nea 160 del archivo Actor.h.

Referenciado por update().

◆ m_modelBuffer

Buffer Actor::m_modelBuffer
private

Definici贸n en la l铆nea 161 del archivo Actor.h.

Referenciado por Actor(), destroy(), render() y update().

◆ m_name

std::string Actor::m_name = "Actor"
private

Definici贸n en la l铆nea 171 del archivo Actor.h.

Referenciado por Actor(), getName() y setName().

◆ m_sampler

SamplerState Actor::m_sampler
private

Definici贸n en la l铆nea 159 del archivo Actor.h.

Referenciado por Actor(), destroy() y render().

◆ m_shaderBuffer

Buffer Actor::m_shaderBuffer
private

Definici贸n en la l铆nea 165 del archivo Actor.h.

◆ m_shaderShadow

ShaderProgram Actor::m_shaderShadow
private

Definici贸n en la l铆nea 164 del archivo Actor.h.

◆ m_shadowDepthStencilState

DepthStencilState Actor::m_shadowDepthStencilState
private

Definici贸n en la l铆nea 167 del archivo Actor.h.

◆ m_textures

std::vector<Texture> Actor::m_textures
private

Definici贸n en la l铆nea 153 del archivo Actor.h.

Referenciado por destroy(), render() y setTextures().

◆ m_vertexBuffers

std::vector<Buffer> Actor::m_vertexBuffers
private

Definici贸n en la l铆nea 154 del archivo Actor.h.

Referenciado por destroy(), render(), renderForSkybox() y setMesh().


La documentaci贸n de esta clase est谩 generada de los siguientes archivos: