added Component.cpp/StaticMeshComponent.h/.cpp
This commit is contained in:
@@ -15,25 +15,47 @@ class ComponentManager;
|
||||
|
||||
class Component
|
||||
{
|
||||
ComponentData *data;
|
||||
|
||||
SceneNode *owner_node;
|
||||
|
||||
ComponentManager *manager;
|
||||
|
||||
SceneNode *owner;
|
||||
|
||||
public:
|
||||
|
||||
ComponentManager *GetManager()const{return manager;}
|
||||
|
||||
SceneNode *GetOwner()const{return owner;}
|
||||
|
||||
virtual const size_t GetTypeHash()=0;
|
||||
public:
|
||||
|
||||
virtual const size_t GetTypeHash()=0; ///<取得当前组件类型
|
||||
|
||||
SceneNode *GetOwnerNode()const{return owner_node;} ///<取得当前组件所属节点
|
||||
|
||||
ComponentManager *GetManager()const{return manager;} ///<取得当前组件所属管理器
|
||||
|
||||
public:
|
||||
|
||||
Component()
|
||||
{
|
||||
data=nullptr;
|
||||
owner_node=nullptr;
|
||||
manager=nullptr;
|
||||
}
|
||||
Component(SceneNode *sn,ComponentData *cd,ComponentManager *cm);
|
||||
virtual ~Component()=default;
|
||||
|
||||
virtual void Update(const double delta_time){}; ///<更新组件
|
||||
};//class Component
|
||||
|
||||
class ComponentManager
|
||||
{
|
||||
ObjectList<Component> component_list;
|
||||
|
||||
public:
|
||||
|
||||
virtual void Update(const double delta_time)
|
||||
{
|
||||
for(Component *c:component_list)
|
||||
{
|
||||
c->Update(delta_time);
|
||||
}
|
||||
}
|
||||
};//class ComponentManager
|
||||
|
||||
VK_NAMESPACE_END
|
||||
|
19
inc/hgl/graph/component/StaticMeshComponent.h
Normal file
19
inc/hgl/graph/component/StaticMeshComponent.h
Normal file
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/graph/Component.h>
|
||||
#include<hgl/graph/mesh/StaticMesh.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
class StaticMeshComponentData:public ComponentData
|
||||
{
|
||||
StaticMesh *static_mesh;
|
||||
};//class StaticMeshComponentData:public ComponentData
|
||||
|
||||
class StaticMeshComponent:public Component
|
||||
{
|
||||
|
||||
|
||||
};//class StaticMeshComponent:public Component
|
||||
|
||||
VK_NAMESPACE_END
|
Reference in New Issue
Block a user