Added Owner in SceneNode, and then have few other change.
This commit is contained in:
parent
0df9d64dcf
commit
83c1a067fe
@ -44,7 +44,7 @@ public:
|
||||
};//struct RenderPipelineIndex
|
||||
|
||||
/**
|
||||
* 同一材质的对象渲染列表
|
||||
* 同一材质与管线的渲染列表
|
||||
*/
|
||||
class MaterialRenderList
|
||||
{
|
||||
@ -113,15 +113,9 @@ public:
|
||||
|
||||
void Add(SceneNode *);
|
||||
|
||||
void SetCameraInfo(CameraInfo *ci)
|
||||
{
|
||||
camera_info=ci;
|
||||
}
|
||||
void SetCameraInfo(CameraInfo *ci){camera_info=ci;}
|
||||
|
||||
void Clear()
|
||||
{
|
||||
rn_list.Clear();
|
||||
}
|
||||
void Clear(){rn_list.Clear();}
|
||||
|
||||
void End();
|
||||
|
||||
|
@ -19,6 +19,8 @@ namespace hgl
|
||||
*/
|
||||
class SceneNode:public SceneOrient ///场景节点类
|
||||
{
|
||||
SceneNode *Owner; ///<上级节点
|
||||
|
||||
SceneNodeID NodeID; ///<节点ID
|
||||
SceneNodeName NodeName; ///<节点名称
|
||||
|
||||
@ -59,6 +61,8 @@ namespace hgl
|
||||
{
|
||||
SceneOrient::Clear();
|
||||
|
||||
Owner=nullptr;
|
||||
|
||||
BoundingBox.SetZero();
|
||||
LocalBoundingBox.SetZero();
|
||||
|
||||
@ -74,8 +78,13 @@ namespace hgl
|
||||
return(true);
|
||||
}
|
||||
|
||||
Renderable *GetRenderable(){return render_obj;}
|
||||
void SetRenderable(Renderable *);
|
||||
void SetOwner(SceneNode *sn) {Owner=sn;}
|
||||
SceneNode * GetOwner() noexcept{return Owner;}
|
||||
const SceneNode * GetOwner()const noexcept{return Owner;}
|
||||
|
||||
void SetRenderable(Renderable *);
|
||||
Renderable *GetRenderable() noexcept{return render_obj;}
|
||||
const Renderable *GetRenderable()const noexcept{return render_obj;}
|
||||
|
||||
SceneNode *Add(SceneNode *sn)
|
||||
{
|
||||
@ -83,6 +92,7 @@ namespace hgl
|
||||
return(nullptr);
|
||||
|
||||
ChildNode.Add(sn);
|
||||
sn->SetOwner(this);
|
||||
return sn;
|
||||
}
|
||||
|
||||
|
@ -1,39 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include<hgl/type/TypeInfo.h>
|
||||
#include<hgl/graph/VK.h>
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
class SceneNode;
|
||||
|
||||
class SceneComponentData
|
||||
{
|
||||
};//class SceneComponentData
|
||||
|
||||
class SceneComponentManager;
|
||||
|
||||
class SceneComponent
|
||||
{
|
||||
SceneComponentManager *manager;
|
||||
|
||||
SceneNode *owner;
|
||||
|
||||
public:
|
||||
|
||||
SceneComponentManager *GetManager()const{return manager;}
|
||||
|
||||
SceneNode *GetOwner()const{return owner;}
|
||||
|
||||
virtual const size_t GetTypeHash()=0;
|
||||
|
||||
public:
|
||||
|
||||
|
||||
};//class SceneComponent
|
||||
|
||||
class SceneComponentManager
|
||||
{
|
||||
};//class SceneComponentManager
|
||||
|
||||
VK_NAMESPACE_END
|
@ -64,13 +64,6 @@ SET(SCENE_GRAPH_SOURCE RenderList.cpp
|
||||
|
||||
SOURCE_GROUP("Scene Graph" FILES ${SCENE_GRAPH_HEADER} ${SCENE_GRAPH_SOURCE})
|
||||
|
||||
SET(SGC_HEADER_PATH ${SG_INCLUDE_PATH}/component)
|
||||
SET(SGC_SOURCE_PATH component)
|
||||
|
||||
SET(SG_COMPONENT_HEADER ${SGC_HEADER_PATH}/SceneComponent.h)
|
||||
|
||||
SOURCE_GROUP("Scene Graph\\Component" FILES ${SG_COMPONENT_HEADER})
|
||||
|
||||
SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/mesh/StaticMesh.h
|
||||
${SG_INCLUDE_PATH}/mesh/StaticMeshLODPolicy.h
|
||||
${SG_INCLUDE_PATH}/mesh/StaticMeshNode.h
|
||||
@ -268,6 +261,17 @@ SET(VK_RENDERABLE_SOURCE ${SG_INCLUDE_PATH}/VKRenderable.h
|
||||
|
||||
SOURCE_GROUP("Vulkan\\Renderable" FILES ${VK_RENDERABLE_SOURCE})
|
||||
|
||||
#-Component-------------------------------------------------------------
|
||||
|
||||
SET(SGC_HEADER_PATH ${SG_INCLUDE_PATH}/component)
|
||||
SET(SGC_SOURCE_PATH component)
|
||||
|
||||
SET(SG_COMPONENT_HEADER ${SG_INCLUDE_PATH}/Component.h)
|
||||
|
||||
SOURCE_GROUP("Scene Graph\\Component" FILES ${SG_COMPONENT_HEADER})
|
||||
|
||||
#-RenderModue,RenderFramework-------------------------------------------
|
||||
|
||||
SET(RENDER_MODULE_HEADER ${SG_INCLUDE_PATH}/RenderModule.h)
|
||||
SET(RENDER_MODULE_SOURCE RenderModule/RenderModule.cpp)
|
||||
|
||||
@ -300,10 +304,7 @@ IF(UNIX)
|
||||
ELSE()
|
||||
IF(APPLE)
|
||||
|
||||
|
||||
|
||||
ELSE()
|
||||
|
||||
SET(VULKAN_SURFACE_SOURCE Vulkan/Platform/XCBVulkan.cpp)
|
||||
ENDIF()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user