SceneComponent增加了SceneOrient父类,所有SceneComponent增加变换属性

This commit is contained in:
2025-06-14 23:42:50 +08:00
parent f9675fc1e5
commit c1420e257d
14 changed files with 182 additions and 70 deletions

View File

@@ -23,14 +23,15 @@
*
* Component是组件的基类所有组件都从这里派生。
*
*
* RenderComponent是可渲染组件的基类所有可渲染组件都从这里派生。它继承于Component。
*
* PrimitiveComponent是图元组件的基类所有图元组件都从这里派生。它继承于RenderComponent。
* SceneComponent是场景组件基类只要是放在场景中的都从它派生
*
* PrimitiveComponent是图元组件的基类所有图元组件都从这里派生。
* 它再度派生出的任何Component都必须是一个有3D空间的几何图元。
* 引擎中的空间、物理、等都由PrimitiveComponent提供数据进行计算。
* RenderComponent是可渲染组件的基类所有可渲染组件都从这里派生。
*
* StaticMeshComponent是静态网格组件它是一个具体的PrimitiveComponent实现。
* StaticMeshComponent是静态网格组件它是一个具体的RenderComponent实现。
*
*/
@@ -89,6 +90,7 @@ public: //事件
};//class Component
using ComponentSet=SortedSet<Component *>;
using ComponentList=ArrayList<Component *>;
class ComponentManager
{

View File

@@ -1,6 +1,7 @@
#pragma once
#include<hgl/component/Component.h>
#include<hgl/graph/SceneOrient.h>
COMPONENT_NAMESPACE_BEGIN
@@ -8,12 +9,11 @@ COMPONENT_NAMESPACE_BEGIN
* 场景组件<br>
* 场景组件中的元素必须是针对场景起作用的,并不一定需要自己绘出来,但也对场景产生影响。比如太阳光、全局风场
*/
class SceneComponent:public Component
class SceneComponent:public Component,public SceneOrient
{
public:
using Component::Component;
virtual ~SceneComponent()=default;
};//class SceneComponent

View File

@@ -63,11 +63,7 @@ class StaticMeshComponent:public RenderComponent
public:
StaticMeshComponent(StaticMeshComponentData *cd,StaticMeshComponentManager *cm)
:RenderComponent(cd,cm)
{
sm_data=cd;
}
StaticMeshComponent(StaticMeshComponentData *cd,StaticMeshComponentManager *cm):RenderComponent(cd,cm){sm_data=cd;}
virtual ~StaticMeshComponent()=default;