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
|
};//struct RenderPipelineIndex
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同一材质的对象渲染列表
|
* 同一材质与管线的渲染列表
|
||||||
*/
|
*/
|
||||||
class MaterialRenderList
|
class MaterialRenderList
|
||||||
{
|
{
|
||||||
@ -113,15 +113,9 @@ public:
|
|||||||
|
|
||||||
void Add(SceneNode *);
|
void Add(SceneNode *);
|
||||||
|
|
||||||
void SetCameraInfo(CameraInfo *ci)
|
void SetCameraInfo(CameraInfo *ci){camera_info=ci;}
|
||||||
{
|
|
||||||
camera_info=ci;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Clear()
|
void Clear(){rn_list.Clear();}
|
||||||
{
|
|
||||||
rn_list.Clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
void End();
|
void End();
|
||||||
|
|
||||||
|
@ -19,6 +19,8 @@ namespace hgl
|
|||||||
*/
|
*/
|
||||||
class SceneNode:public SceneOrient ///场景节点类
|
class SceneNode:public SceneOrient ///场景节点类
|
||||||
{
|
{
|
||||||
|
SceneNode *Owner; ///<上级节点
|
||||||
|
|
||||||
SceneNodeID NodeID; ///<节点ID
|
SceneNodeID NodeID; ///<节点ID
|
||||||
SceneNodeName NodeName; ///<节点名称
|
SceneNodeName NodeName; ///<节点名称
|
||||||
|
|
||||||
@ -59,6 +61,8 @@ namespace hgl
|
|||||||
{
|
{
|
||||||
SceneOrient::Clear();
|
SceneOrient::Clear();
|
||||||
|
|
||||||
|
Owner=nullptr;
|
||||||
|
|
||||||
BoundingBox.SetZero();
|
BoundingBox.SetZero();
|
||||||
LocalBoundingBox.SetZero();
|
LocalBoundingBox.SetZero();
|
||||||
|
|
||||||
@ -74,8 +78,13 @@ namespace hgl
|
|||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
Renderable *GetRenderable(){return render_obj;}
|
void SetOwner(SceneNode *sn) {Owner=sn;}
|
||||||
void SetRenderable(Renderable *);
|
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)
|
SceneNode *Add(SceneNode *sn)
|
||||||
{
|
{
|
||||||
@ -83,6 +92,7 @@ namespace hgl
|
|||||||
return(nullptr);
|
return(nullptr);
|
||||||
|
|
||||||
ChildNode.Add(sn);
|
ChildNode.Add(sn);
|
||||||
|
sn->SetOwner(this);
|
||||||
return sn;
|
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})
|
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
|
SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/mesh/StaticMesh.h
|
||||||
${SG_INCLUDE_PATH}/mesh/StaticMeshLODPolicy.h
|
${SG_INCLUDE_PATH}/mesh/StaticMeshLODPolicy.h
|
||||||
${SG_INCLUDE_PATH}/mesh/StaticMeshNode.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})
|
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_HEADER ${SG_INCLUDE_PATH}/RenderModule.h)
|
||||||
SET(RENDER_MODULE_SOURCE RenderModule/RenderModule.cpp)
|
SET(RENDER_MODULE_SOURCE RenderModule/RenderModule.cpp)
|
||||||
|
|
||||||
@ -300,10 +304,7 @@ IF(UNIX)
|
|||||||
ELSE()
|
ELSE()
|
||||||
IF(APPLE)
|
IF(APPLE)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ELSE()
|
ELSE()
|
||||||
|
|
||||||
SET(VULKAN_SURFACE_SOURCE Vulkan/Platform/XCBVulkan.cpp)
|
SET(VULKAN_SURFACE_SOURCE Vulkan/Platform/XCBVulkan.cpp)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user