3 #include <Engine/RaEngine.hpp>
8 #include <Core/Containers/VectorArray.hpp>
10 #include <Core/Utils/Color.hpp>
11 #include <Core/Utils/Singleton.hpp>
12 #include <Engine/Data/ShaderProgram.hpp>
17 class AttribArrayDisplayable;
35 void render(
const Core::Matrix4& view,
const Core::Matrix4& proj );
38 addLine(
const Core::Vector3& from,
const Core::Vector3& to,
const Core::Utils::Color& color );
41 void addPoints(
const Core::Vector3Array& p,
const Core::Vector4Array& colors );
42 void addMesh(
const std::shared_ptr<Data::AttribArrayDisplayable>& mesh,
43 const Core::Transform& transform = Core::Transform::Identity() );
46 void addCross(
const Core::Vector3& position, Scalar size,
const Core::Utils::Color& color );
48 void addSphere(
const Core::Vector3& center, Scalar radius,
const Core::Utils::Color& color );
50 void addCircle(
const Core::Vector3& center,
51 const Core::Vector3& normal,
55 void addFrame(
const Core::Transform& transform, Scalar size );
57 void addTriangle(
const Core::Vector3& p0,
58 const Core::Vector3& p1,
59 const Core::Vector3& p2,
64 void addOBB(
const Core::Aabb& box,
65 const Core::Transform& transform,
70 Line(
const Core::Vector3& la,
const Core::Vector3& lb,
const Core::Utils::Color& lcol ) :
71 a { la }, b { lb }, col { lcol } {}
83 std::shared_ptr<Data::AttribArrayDisplayable> mesh;
84 Core::Transform transform;
87 void renderLines(
const Core::Matrix4f& view,
const Core::Matrix4f& proj );
88 void renderPoints(
const Core::Matrix4f& view,
const Core::Matrix4f& proj );
89 void renderMeshes(
const Core::Matrix4f& view,
const Core::Matrix4f& proj );
98 std::vector<Line> m_lines;
99 std::vector<DbgMesh> m_meshes;
101 std::vector<Point> m_points;