diff --git a/inc/hgl/graph/SceneNode.h b/inc/hgl/graph/SceneNode.h index 85d30dd4..78ff1fbf 100644 --- a/inc/hgl/graph/SceneNode.h +++ b/inc/hgl/graph/SceneNode.h @@ -1,10 +1,10 @@ -#ifndef HGL_GRAPH_SCENE_NODE_INCLUDE -#define HGL_GRAPH_SCENE_NODE_INCLUDE +#pragma once #include #include #include #include + namespace hgl { namespace graph @@ -111,4 +111,3 @@ namespace hgl SceneNode *Duplication(SceneNode *); ///<复制一个场景节点 }//namespace graph }//namespace hgl -#endif//HGL_GRAPH_SCENE_NODE_INCLUDE diff --git a/inc/hgl/graph/SceneOrient.h b/inc/hgl/graph/SceneOrient.h index b59be7c6..9fcfde07 100644 --- a/inc/hgl/graph/SceneOrient.h +++ b/inc/hgl/graph/SceneOrient.h @@ -1,5 +1,4 @@ -#ifndef HGL_GRAPH_SCENE_ORIENT_INCLUDE -#define HGL_GRAPH_SCENE_ORIENT_INCLUDE +#pragma once #include #include @@ -51,4 +50,3 @@ namespace hgl };//class SceneOrient }//namespace graph }//namespace hgl -#endif//HGL_GRAPH_SCENE_ORIENT_INCLUDE diff --git a/inc/hgl/graph/SceneManager.h b/inc/hgl/graph/SceneWorld.h similarity index 54% rename from inc/hgl/graph/SceneManager.h rename to inc/hgl/graph/SceneWorld.h index 0517c610..092d2489 100644 --- a/inc/hgl/graph/SceneManager.h +++ b/inc/hgl/graph/SceneWorld.h @@ -9,23 +9,18 @@ namespace hgl * 场景管理器
* 管理一个场景中的所有资源与场景节点 */ - class SceneManager + class SceneWorld { SceneNode *root_node; - - public: - SceneNode *GetSceneRoot() {return root_node;} - const SceneNode *GetSceneRoot()const{return root_node;} - - const uint GetNodeCount()const { return node_list.GetCount(); } + public: - };//class SceneManager + };//class SceneWorld }//namespace graph }//namespace hgl diff --git a/src/SceneGraph/CMakeLists.txt b/src/SceneGraph/CMakeLists.txt index 8a8f10b3..d19fe778 100644 --- a/src/SceneGraph/CMakeLists.txt +++ b/src/SceneGraph/CMakeLists.txt @@ -31,7 +31,7 @@ SET(GEOMETRY_FILES ${SG_INCLUDE_PATH}/InlineGeometry.h #${SG_INCLUDE_PATH}/Mesh.h #${SG_INCLUDE_PATH}/Spline.h InlineGeometry.cpp - #Mesh.cpp + #Mesh.cpp ) SOURCE_GROUP("Geometry" FILES ${GEOMETRY_FILES}) @@ -69,28 +69,32 @@ SET(GRAPH_FRAMEWORK_FILES ${SG_INCLUDE_PATH}/RenderFramework.h source_group("Framework" FILES ${GRAPH_FRAMEWORK_FILES}) -SET(SCENE_GRAPH_HEADER ${SG_INCLUDE_PATH}/SceneManager.h - ${SG_INCLUDE_PATH}/SceneNodeAttributes.h - ${SG_INCLUDE_PATH}/SceneNode.h - ${SG_INCLUDE_PATH}/ShadowPolicy.h - ${SG_INCLUDE_PATH}/RenderNode.h - ${SG_INCLUDE_PATH}/SceneMatrix.h - ${SG_INCLUDE_PATH}/SceneOrient.h +SET(SG_SCENE_SOURCE ${SG_INCLUDE_PATH}/SceneWorld.h + ${SG_INCLUDE_PATH}/SceneNodeAttributes.h + ${SG_INCLUDE_PATH}/SceneNode.h + ${SG_INCLUDE_PATH}/SceneMatrix.h + ${SG_INCLUDE_PATH}/SceneOrient.h + Scene/SceneNode.cpp + Scene/SceneOrient.cpp + Scene/SceneMatrix.cpp + Scene/SceneWorld.cpp +) + +SET(SG_RENDER_SOURCE ${SG_INCLUDE_PATH}/RenderNode.h ${SG_INCLUDE_PATH}/RenderList.h ${SG_INCLUDE_PATH}/MaterialRenderList.h ${SG_INCLUDE_PATH}/MaterialRenderMap.h +# ${SG_INCLUDE_PATH}/ShadowPolicy.h + render/RenderList.cpp + render/MaterialRenderList.cpp + render/RenderAssignBuffer.h + render/RenderAssignBuffer.cpp ) -SET(SCENE_GRAPH_SOURCE RenderList.cpp - MaterialRenderList.cpp - RenderAssignBuffer.h - RenderAssignBuffer.cpp - SceneNode.cpp - SceneOrient.cpp - SceneMatrix.cpp -) +SOURCE_GROUP("Scene Graph\\Scene" FILES ${SG_SCENE_SOURCE}) +SOURCE_GROUP("Scene Graph\\Render" FILES ${SG_RENDER_SOURCE}) -SOURCE_GROUP("Scene Graph" FILES ${SCENE_GRAPH_HEADER} ${SCENE_GRAPH_SOURCE}) +SET(SCENE_GRAPH_FILES ${SG_SCENE_SOURCE} ${SG_RENDER_SOURCE}) SET(STATIC_MESH_HEADER_FILES ${SG_INCLUDE_PATH}/StaticMesh.h ${SG_INCLUDE_PATH}/StaticMeshLODPolicy.h) @@ -355,8 +359,7 @@ SET(VULKAN_RENDER_SOURCE ${VK_RR_SOURCE} ${VK_RENDERABLE_SOURCE} ${VK_RENDER_DEVICE_SOURCE}) -add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_HEADER} - ${SCENE_GRAPH_SOURCE} +add_cm_library(ULRE.SceneGraph "ULRE" ${SCENE_GRAPH_FILES} ${SG_PRIMITIVE_SOURCE} ${GEOMETRY_FILES} ${LIGHT_FILES} diff --git a/src/SceneGraph/MaterialRenderList.cpp b/src/SceneGraph/render/MaterialRenderList.cpp similarity index 100% rename from src/SceneGraph/MaterialRenderList.cpp rename to src/SceneGraph/render/MaterialRenderList.cpp diff --git a/src/SceneGraph/RenderAssignBuffer.cpp b/src/SceneGraph/render/RenderAssignBuffer.cpp similarity index 100% rename from src/SceneGraph/RenderAssignBuffer.cpp rename to src/SceneGraph/render/RenderAssignBuffer.cpp diff --git a/src/SceneGraph/RenderAssignBuffer.h b/src/SceneGraph/render/RenderAssignBuffer.h similarity index 100% rename from src/SceneGraph/RenderAssignBuffer.h rename to src/SceneGraph/render/RenderAssignBuffer.h diff --git a/src/SceneGraph/RenderList.cpp b/src/SceneGraph/render/RenderList.cpp similarity index 100% rename from src/SceneGraph/RenderList.cpp rename to src/SceneGraph/render/RenderList.cpp diff --git a/src/SceneGraph/SceneFile.cpp b/src/SceneGraph/scene/SceneFile.cpp similarity index 100% rename from src/SceneGraph/SceneFile.cpp rename to src/SceneGraph/scene/SceneFile.cpp diff --git a/src/SceneGraph/SceneMatrix.cpp b/src/SceneGraph/scene/SceneMatrix.cpp similarity index 100% rename from src/SceneGraph/SceneMatrix.cpp rename to src/SceneGraph/scene/SceneMatrix.cpp diff --git a/src/SceneGraph/SceneNode.cpp b/src/SceneGraph/scene/SceneNode.cpp similarity index 100% rename from src/SceneGraph/SceneNode.cpp rename to src/SceneGraph/scene/SceneNode.cpp diff --git a/src/SceneGraph/SceneOrient.cpp b/src/SceneGraph/scene/SceneOrient.cpp similarity index 100% rename from src/SceneGraph/SceneOrient.cpp rename to src/SceneGraph/scene/SceneOrient.cpp diff --git a/src/SceneGraph/scene/SceneWorld.cpp b/src/SceneGraph/scene/SceneWorld.cpp new file mode 100644 index 00000000..e69de29b