MRPT  2.0.3
CSetOfTexturedTriangles.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | https://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2020, Individual contributors, see AUTHORS file |
6  | See: https://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See: https://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #pragma once
10 
12 
13 namespace mrpt::opengl
14 {
15 /** A set of textured triangles.
16  * This class can be used to draw any solid, arbitrarily complex object with
17  * textures.
18  * \sa opengl::COpenGLScene
19  * \ingroup mrpt_opengl_grp
20  */
22 {
24 
25  public:
28 
29  CSetOfTexturedTriangles() = default;
30  virtual ~CSetOfTexturedTriangles() override = default;
31 
32  void onUpdateBuffers_TexturedTriangles() override;
33 
34  /** Evaluates the bounding box of this object (including possible children)
35  * in the coordinate frame of the object parent. */
36  void getBoundingBox(
38  mrpt::math::TPoint3D& bb_max) const override;
39 
41  {
42  m_triangles.clear();
44  }
45  size_t getTrianglesCount() const { return m_triangles.size(); }
46  const TTriangle& getTriangle(size_t idx) const
47  {
48  ASSERT_BELOW_(idx, m_triangles.size());
49  return m_triangles[idx];
50  }
51  void getTriangle(size_t idx, TTriangle& t) const
52  {
53  ASSERT_BELOW_(idx, m_triangles.size());
54  t = m_triangles[idx];
56  }
57  void insertTriangle(const TTriangle& t)
58  {
59  m_triangles.push_back(t);
61  }
62 
63  bool traceRay(const mrpt::poses::CPose3D& o, double& dist) const override;
64 };
65 
66 } // namespace mrpt::opengl
mrpt::opengl::CRenderizableShaderTexturedTriangles
Renderizable generic renderer for objects using the triangles-with-a-texture shader.
Definition: CRenderizableShaderTexturedTriangles.h:25
mrpt::opengl::CRenderizable::notifyChange
void notifyChange() const
Call to enable calling renderUpdateBuffers() before the next render() rendering iteration.
Definition: CRenderizable.h:315
mrpt::opengl::CSetOfTexturedTriangles::CSetOfTexturedTriangles
CSetOfTexturedTriangles()=default
mrpt::math::TPoint3D_< double >
DEFINE_SERIALIZABLE
#define DEFINE_SERIALIZABLE(class_name, NS)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
Definition: CSerializable.h:152
mrpt::opengl::CSetOfTexturedTriangles::getTrianglesCount
size_t getTrianglesCount() const
Definition: CSetOfTexturedTriangles.h:45
mrpt::opengl::CSetOfTexturedTriangles::getBoundingBox
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...
Definition: CSetOfTexturedTriangles.cpp:85
mrpt::opengl::CSetOfTexturedTriangles::~CSetOfTexturedTriangles
virtual ~CSetOfTexturedTriangles() override=default
bb_max
const auto bb_max
Definition: CPose3DPDFGrid_unittest.cpp:25
ASSERT_BELOW_
#define ASSERT_BELOW_(__A, __B)
Definition: exceptions.h:149
bb_min
const auto bb_min
Definition: CPose3DPDFGrid_unittest.cpp:23
mrpt::poses::CPose3D
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:85
mrpt::opengl::CSetOfTexturedTriangles::getTriangle
void getTriangle(size_t idx, TTriangle &t) const
Definition: CSetOfTexturedTriangles.h:51
mrpt::opengl::CSetOfTexturedTriangles::insertTriangle
void insertTriangle(const TTriangle &t)
Definition: CSetOfTexturedTriangles.h:57
mrpt::opengl::CSetOfTexturedTriangles::getTriangle
const TTriangle & getTriangle(size_t idx) const
Definition: CSetOfTexturedTriangles.h:46
mrpt::opengl::CRenderizableShaderTexturedTriangles::m_triangles
std::vector< mrpt::opengl::TTriangle > m_triangles
List of triangles.
Definition: CRenderizableShaderTexturedTriangles.h:100
mrpt::opengl::TTriangle::Vertex
Definition: TTriangle.h:37
mrpt::opengl::TTriangle
A triangle (float coordinates) with RGBA colors (u8) and UV (texture coordinates) for each vertex.
Definition: TTriangle.h:35
mrpt::opengl::CSetOfTexturedTriangles::onUpdateBuffers_TexturedTriangles
void onUpdateBuffers_TexturedTriangles() override
Must be implemented in derived classes to update the geometric entities to be drawn in "m_*_buffer" f...
Definition: CSetOfTexturedTriangles.cpp:24
mrpt::opengl::CSetOfTexturedTriangles::traceRay
bool traceRay(const mrpt::poses::CPose3D &o, double &dist) const override
Simulation of ray-trace, given a pose.
Definition: CSetOfTexturedTriangles.cpp:77
mrpt::opengl::CSetOfTexturedTriangles::clearTriangles
void clearTriangles()
Definition: CSetOfTexturedTriangles.h:40
mrpt::opengl::CSetOfTexturedTriangles
A set of textured triangles.
Definition: CSetOfTexturedTriangles.h:21
CRenderizableShaderTexturedTriangles.h
mrpt::opengl
The namespace for 3D scene representation and rendering.
Definition: CGlCanvasBase.h:13



Page generated by Doxygen 1.8.17 for MRPT 2.0.3 at Fri May 29 13:06:46 UTC 2020