2021-06-15 15:04:17 +08:00
|
|
|
|
#ifndef HGL_GRAPH_RENDER_NODE_INCLUDE
|
2021-06-10 18:56:23 +08:00
|
|
|
|
#define HGL_GRAPH_RENDER_NODE_INCLUDE
|
|
|
|
|
|
|
|
|
|
#include<hgl/math/Vector.h>
|
|
|
|
|
#include<hgl/type/List.h>
|
2021-06-15 15:04:17 +08:00
|
|
|
|
#include<hgl/graph/SceneInfo.h>
|
2021-06-10 18:56:23 +08:00
|
|
|
|
namespace hgl
|
|
|
|
|
{
|
|
|
|
|
namespace graph
|
|
|
|
|
{
|
2022-06-24 21:06:38 +08:00
|
|
|
|
class Renderable;
|
2021-06-10 18:56:23 +08:00
|
|
|
|
|
2023-04-25 18:08:26 +08:00
|
|
|
|
struct RenderNode
|
|
|
|
|
{
|
|
|
|
|
Renderable *render_obj;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
using RenderNodeList=List<RenderNode *>;
|
|
|
|
|
|
|
|
|
|
struct RenderNode2D:public RenderNode
|
|
|
|
|
{
|
|
|
|
|
Matrix3x4f local_to_world;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
using RenderNode2DList=List<RenderNode2D *>;
|
|
|
|
|
|
2023-03-23 21:43:10 +08:00
|
|
|
|
constexpr double RenderNode3DDistanceFactor=100.0;
|
|
|
|
|
|
2023-04-25 18:08:26 +08:00
|
|
|
|
struct RenderNode3D:public RenderNode
|
2021-06-10 18:56:23 +08:00
|
|
|
|
{
|
2021-06-15 15:04:17 +08:00
|
|
|
|
MVPMatrix matrix;
|
|
|
|
|
|
2022-01-18 12:10:02 +08:00
|
|
|
|
Vector3f WorldCenter;
|
2021-06-10 18:56:23 +08:00
|
|
|
|
|
2023-03-23 21:43:10 +08:00
|
|
|
|
double distance_to_camera_square;
|
|
|
|
|
|
|
|
|
|
double distance_to_camera;
|
2021-06-10 18:56:23 +08:00
|
|
|
|
|
|
|
|
|
};//struct RenderNode
|
|
|
|
|
|
2023-03-23 21:43:10 +08:00
|
|
|
|
using RenderNode3DList=List<RenderNode3D *>;
|
2021-06-10 18:56:23 +08:00
|
|
|
|
}//namespace graph
|
|
|
|
|
}//namespace hgl
|
2021-06-19 20:31:07 +08:00
|
|
|
|
|
2023-04-25 18:08:26 +08:00
|
|
|
|
using RenderNodePointer=hgl::graph::RenderNode *;
|
|
|
|
|
using RenderNodeComparator=Comparator<RenderNodePointer>;
|
|
|
|
|
|
|
|
|
|
using RenderNode2DPointer=hgl::graph::RenderNode2D *;
|
|
|
|
|
using RenderNode2DComparator=Comparator<RenderNode2DPointer>;
|
|
|
|
|
|
2023-03-23 21:43:10 +08:00
|
|
|
|
using RenderNode3DPointer=hgl::graph::RenderNode3D *;
|
|
|
|
|
using RenderNode3DComparator=Comparator<RenderNode3DPointer>;
|
2021-06-10 18:56:23 +08:00
|
|
|
|
#endif//HGL_GRAPH_RENDER_NODE_INCLUDE
|