ULRE/inc/hgl/graph/mesh/StaticMesh.h

47 lines
1.5 KiB
C
Raw Normal View History

#pragma once
2024-10-10 01:59:24 +08:00
#include<hgl/graph/VKNamespace.h>
2024-10-19 13:08:05 +08:00
#include<hgl/graph/mesh/StaticMeshLODPolicy.h>
2024-10-10 01:59:24 +08:00
#include<hgl/graph/ShadowPolicy.h>
2024-07-17 01:39:13 +08:00
VK_NAMESPACE_BEGIN
2024-10-10 01:59:24 +08:00
class SceneNode;
class StaticMesh
{
2024-07-28 23:34:04 +08:00
protected:
2024-10-10 01:59:24 +08:00
2024-10-13 00:15:45 +08:00
StaticMeshLODPolicy lod_policy; ///<LOD策略
2024-07-28 23:34:04 +08:00
SceneNode *root_node;
2024-10-10 01:59:24 +08:00
StaticMesh *shadow_proxy_static_mesh; ///<阴影代理静态网格
StaticMesh *physic_proxy_static_mesh; ///<物理代理静态网格
protected:
bool two_side; ///<双面渲染
2024-10-13 00:15:45 +08:00
ObjectDynamicShadowPolicy recommend_dynamic_shadow_policy; ///<动态阴影策略(推荐项,最终可被取代)
public:
const StaticMeshLODPolicy GetLODPolicy()const { return lod_policy; } ///<取得LOD策略
const ObjectDynamicShadowPolicy GetRecommendDynamicShadowPolicy()const { return recommend_dynamic_shadow_policy; } ///<取得推荐的动态阴影策略
2024-10-10 01:59:24 +08:00
public:
StaticMesh(SceneNode *);
2024-07-28 23:34:04 +08:00
virtual ~StaticMesh();
public:
SceneNode *GetScene(){return root_node;}
2024-10-10 01:59:24 +08:00
SceneNode *GetShadowNode() { return shadow_proxy_static_mesh?shadow_proxy_static_mesh->GetScene():root_node; } ///<取得阴影渲染节点
SceneNode *GetPhysicNode() { return physic_proxy_static_mesh?physic_proxy_static_mesh->GetScene():root_node; } ///<取得物理渲染节点
2024-10-13 00:15:45 +08:00
2024-07-28 23:34:04 +08:00
};//class StaticMesh
VK_NAMESPACE_END