3#include <Engine/RaEngine.hpp>
5#include <Core/Geometry/Obb.hpp>
6#include <Core/Geometry/Spline.hpp>
8#include <Core/Utils/Color.hpp>
25class AttribArrayDisplayable;
31namespace DrawPrimitives {
41 const AttribArrayDisplayablePtr& mesh );
45RA_ENGINE_API LineMeshPtr
Point(
const Core::Vector3& point,
47 Scalar scale = 0.1f );
50RA_ENGINE_API LineMeshPtr
Line(
const Core::Vector3& a,
51 const Core::Vector3& b,
55RA_ENGINE_API LineMeshPtr
Vector(
const Core::Vector3& start,
56 const Core::Vector3& v,
60RA_ENGINE_API LineMeshPtr Ray(
const Core::Ray& ray,
62 Scalar len = 1000_ra );
66RA_ENGINE_API AttribArrayDisplayablePtr
Triangle(
const Core::Vector3& a,
67 const Core::Vector3& b,
68 const Core::Vector3& c,
73RA_ENGINE_API MeshPtr
QuadStrip(
const Core::Vector3& a,
74 const Core::Vector3& x,
75 const Core::Vector3& y,
82RA_ENGINE_API LineMeshPtr
Circle(
const Core::Vector3& center,
83 const Core::Vector3& normal,
91RA_ENGINE_API LineMeshPtr
CircleArc(
const Core::Vector3& center,
92 const Core::Vector3& normal,
99RA_ENGINE_API MeshPtr
Sphere(
const Core::Vector3& center,
108 bool generateTexCoord =
false );
111RA_ENGINE_API MeshPtr
Capsule(
const Core::Vector3& p1,
112 const Core::Vector3& p2,
119RA_ENGINE_API MeshPtr
Disk(
const Core::Vector3& center,
120 const Core::Vector3& normal,
127RA_ENGINE_API LineMeshPtr
Normal(
const Core::Vector3& point,
128 const Core::Vector3& normal,
130 Scalar scale = 0.1f );
137RA_ENGINE_API MeshPtr
Frame(
const Core::Transform& frameFromEntity, Scalar scale = 0.1f );
141RA_ENGINE_API MeshPtr
Grid(
const Core::Vector3& center,
142 const Core::Vector3& x,
143 const Core::Vector3& y,
145 Scalar cellSize = 1.f,
157 Scalar scale = 1.0f );
160RA_ENGINE_API MeshPtr
LineStrip(
const Core::Vector3Array& vertices,
161 const Core::Vector4Array& colors );
An oriented bounding box.
Handling spline curves of arbitrary dimensions.
A component is an element that can be updated by a system. It is also linked to some other components...
MeshPtr Capsule(const Core::Vector3 &p1, const Core::Vector3 &p2, Scalar radius, const Core::Utils::Color &color)
Displays a capsule computed with given endpoints and radius.
LineMeshPtr Line(const Core::Vector3 &a, const Core::Vector3 &b, const Core::Utils::Color &color)
Displays given line.
LineMeshPtr CircleArc(const Core::Vector3 ¢er, const Core::Vector3 &normal, Scalar radius, Scalar angle, uint segments, const Core::Utils::Color &color)
MeshPtr ParametricSphere(const Core::Vector3 ¢er, Scalar radius, const Core::Utils::Color &color, bool generateTexCoord)
MeshPtr Disk(const Core::Vector3 ¢er, const Core::Vector3 &normal, Scalar radius, uint segments, const Core::Utils::Color &color)
AttribArrayDisplayablePtr Triangle(const Core::Vector3 &a, const Core::Vector3 &b, const Core::Vector3 &c, const Core::Utils::Color &color, bool fill)
MeshPtr AABB(const Core::Aabb &aabb, const Core::Utils::Color &color)
Display a wireframe AABB.
MeshPtr Frame(const Core::Transform &frameFromEntity, Scalar scale)
LineMeshPtr Vector(const Core::Vector3 &start, const Core::Vector3 &v, const Core::Utils::Color &color)
Displays given vector shown as an arrow originating from 'start'.
MeshPtr Grid(const Core::Vector3 ¢er, const Core::Vector3 &x, const Core::Vector3 &y, const Core::Utils::Color &color, Scalar cellSize, uint res)
MeshPtr LineStrip(const Core::Vector3Array &vertices, const Core::Vector4Array &colors)
Display a line strip.
LineMeshPtr Normal(const Core::Vector3 &point, const Core::Vector3 &normal, const Core::Utils::Color &color, Scalar scale)
MeshPtr Sphere(const Core::Vector3 ¢er, Scalar radius, const Core::Utils::Color &color)
Displays geodesic sphere computed with given center and radius.
LineMeshPtr Circle(const Core::Vector3 ¢er, const Core::Vector3 &normal, Scalar radius, uint segments, const Core::Utils::Color &color)
LineMeshPtr Point(const Core::Vector3 &point, const Core::Utils::Color &color, Scalar scale)
Displays given point shown as the crossing of 3 lines of length 'scale'.
Rendering::RenderObject * Primitive(Scene::Component *component, const MeshPtr &mesh)
MeshPtr OBB(const Obb &obb, const Core::Utils::Color &color)
Display a wireframe OBB.
MeshPtr QuadStrip(const Core::Vector3 &a, const Core::Vector3 &x, const Core::Vector3 &y, uint quads, const Core::Utils::Color &color)
Displays a strip of n quads, starting at A and with directions X and Y.
hepler function to manage enum as underlying types in VariableSet