9 #ifndef opengl_CSetOfTriangles_H 10 #define opengl_CSetOfTriangles_H 37 for (
size_t i = 0; i < 3; i++)
39 r[i] =
g[i] =
b[i] =
a[i] = 1.0f;
45 for (
size_t i = 0; i < 3; i++)
50 r[i] =
g[i] =
b[i] =
a[i] = 1.0f;
53 float x[3],
y[3],
z[3];
54 float r[3],
g[3],
b[3],
a[3];
63 typedef std::vector<TTriangle>::const_reverse_iterator
83 mutable std::vector<mrpt::math::TPolygonWithPlane>
tmpPolygons;
124 template <
class InputIterator>
126 const InputIterator&
begin,
const InputIterator&
end)
171 void getPolygons(std::vector<mrpt::math::TPolygon3D>& polys)
const;
178 template <
class CONTAINER>
231 s->insertTriangles(
t.begin(),
t.end());
241 s->insertTriangle(
t);
void getTriangle(size_t idx, TTriangle &t) const
Gets the triangle in a given position.
const_reverse_iterator rend() const
Gets the reverse ending iterator to this object, which points to the beginning of the actual set...
mrpt::utils::CStream & operator<<(mrpt::utils::CStream &out, const mrpt::opengl::CLight &o)
CRenderizable & setColorG_u8(const uint8_t g) override
Color components in the range [0,255].
bool traceRay(const mrpt::poses::CPose3D &o, double &dist) const override
Ray tracing.
void getPolygons(std::vector< mrpt::math::TPolygon3D > &polys) const
Gets the polygon cache.
const_iterator end() const
Gets the ending iterator to this object.
The base class of 3D objects that can be directly rendered through OpenGL.
std::vector< mrpt::math::TPolygonWithPlane > tmpPolygons
Polygon cache.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
const Scalar * const_iterator
std::shared_ptr< CSetOfTriangles > Ptr
size_t getTrianglesCount() const
Get triangle count.
const_iterator begin() const
Gets the beginning iterator to this object.
CRenderizable & setColorR_u8(const uint8_t r) override
Color components in the range [0,255].
TTriangle(const mrpt::math::TPolygon3D &p)
A renderizable object suitable for rendering with OpenGL's display lists.
std::vector< TTriangle >::const_iterator const_iterator
Const iterator type.
void insertTriangle(const TTriangle &t)
Inserts a triangle into the set.
void render_dl() const override
Render.
CRenderizable & setColor_u8(const mrpt::utils::TColor &c) override
Changes the default object color.
CSetOfTriangles(bool enableTransparency=false)
Constructor.
void getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max) const override
Evaluates the bounding box of this object (including possible children) in the coordinate frame of th...
std::vector< TTriangle > m_triangles
List of triangles.
void enableTransparency(bool v)
Enables or disables transparency.
void updatePolygons() const
Polygon cache updating.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
const_reverse_iterator rbegin() const
Gets the reverse beginning iterator to this object, which points to the last triangle.
GLdouble GLdouble GLdouble r
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
void reserve(size_t t)
Reserves memory for certain number of triangles, avoiding multiple memory allocation calls...
std::vector< TTriangle >::const_reverse_iterator const_reverse_iterator
Const reverse iterator type.
virtual ~CSetOfTriangles()
Private, virtual destructor: only can be deleted from smart pointers.
A set of colored triangles.
void clearTriangles()
Clear this object.
void insertTriangles(const CONTAINER &c)
Inserts a set of triangles, given in a container of either TTriangle's or TPolygon3D.
bool polygonsUpToDate
Mutable variable used to check whether polygons need to be recalculated.
CRenderizable & setColorB_u8(const uint8_t b) override
Color components in the range [0,255].
GLubyte GLubyte GLubyte a
bool m_enableTransparency
Transparency enabling.
CRenderizable & setColorA_u8(const uint8_t a) override
Color components in the range [0,255].
void insertTriangles(const InputIterator &begin, const InputIterator &end)
Inserts a set of triangles, bounded by iterators, into this set.
3D polygon, inheriting from std::vector<TPoint3D>