class mrpt::opengl::CSetOfObjects
Overview
A set of object, which are referenced to the coordinates framework established in this object.
It can be established a hierarchy of “CSetOfObjects”, where the coordinates framework of each one will be referenced to the parent’s one. The list of child objects is accessed directly as in the class Scene
See also:
#include <mrpt/opengl/CSetOfObjects.h> class CSetOfObjects: public mrpt::opengl::CRenderizable { public: // typedefs typedef CListOpenGLObjects::const_iterator const_iterator; typedef CListOpenGLObjects::iterator iterator; // construction CSetOfObjects(); // methods static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPosePDF& o); static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPointPDF& o); static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPose3DPDF& o); static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPose3DQuatPDF& o); const_iterator begin() const; const_iterator end() const; iterator begin(); iterator end(); template <class T> void insertCollection(const T& objs); void insert(const CRenderizable::Ptr& newObject); template <class T_it> void insert(const T_it& begin, const T_it& end); virtual shader_list_t requiredShaders() const; virtual void render(const RenderContext& rc) const; virtual void renderUpdateBuffers() const; void enqueueForRenderRecursive( const mrpt::opengl::TRenderMatrices& state, RenderQueue& rq, bool wholeInView, bool is1stShadowMapPass ) const; virtual bool isCompositeObject() const; virtual void freeOpenGLResources(); virtual void initializeTextures() const; void clear(); size_t size(); bool empty() const; CRenderizable::Ptr getByName(const std::string& str); template <typename T> T::Ptr getByClass(size_t ith = 0) const; void removeObject(const CRenderizable::Ptr& obj); void dumpListOfObjects(std::vector<std::string>& lst) const; mrpt::containers::yaml asYAML() const; virtual bool traceRay(const mrpt::poses::CPose3D& o, double& dist) const; virtual CRenderizable& setColor_u8(const mrpt::img::TColor& c); virtual CRenderizable& setColorA_u8(const uint8_t a); bool contains(const CRenderizable::Ptr& obj) const; virtual mrpt::math::TBoundingBoxf internalBoundingBoxLocal() const; };
Inherited Members
public: // structs struct OutdatedState; struct RenderContext; struct State; // methods virtual void render(const RenderContext& rc) const = 0; virtual void renderUpdateBuffers() const = 0; virtual shader_list_t requiredShaders() const; virtual void freeOpenGLResources() = 0;
Methods
static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPosePDF& o)
Returns a representation of a the PDF - this is just an auxiliary function, it’s more natural to call mrpt::poses::CPosePDF::getAs3DObject
static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPointPDF& o)
Returns a representation of a the PDF - this is just an auxiliary function, it’s more natural to call mrpt::poses::CPointPDF::getAs3DObject
static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPose3DPDF& o)
Returns a representation of a the PDF - this is just an auxiliary function, it’s more natural to call mrpt::poses::CPose3DPDF::getAs3DObject
static CSetOfObjects::Ptr posePDF2opengl(const mrpt::poses::CPose3DQuatPDF& o)
Returns a representation of a the PDF - this is just an auxiliary function, it’s more natural to call mrpt::poses::CPose3DQuatPDF::getAs3DObject
template <class T> void insertCollection(const T& objs)
Inserts a set of objects into the list.
void insert(const CRenderizable::Ptr& newObject)
Insert a new object to the list.
template <class T_it> void insert(const T_it& begin, const T_it& end)
Inserts a set of objects, bounded by iterators, into the list.
virtual shader_list_t requiredShaders() const
Returns the ID of the OpenGL shader program required to render this class.
See also:
virtual void render(const RenderContext& rc) const
Implements the rendering of 3D objects in each class derived from CRenderizable.
This can be called more than once (one per required shader program) if the object registered several shaders.
See also:
virtual void renderUpdateBuffers() const
Called whenever m_outdatedBuffers is true: used to re-generate OpenGL vertex buffers, etc.
before they are sent for rendering in render()
virtual bool isCompositeObject() const
Should return true if enqueueForRenderRecursive() is defined since the object has inner children.
Examples: CSetOfObjects, CAssimpModel.
virtual void freeOpenGLResources()
Free opengl buffers.
virtual void initializeTextures() const
Initializes all textures (loads them into opengl memory).
void clear()
Clear the list of objects in the scene, deleting objects’ memory.
size_t size()
Returns number of objects.
bool empty() const
Returns true if there are no objects.
CRenderizable::Ptr getByName(const std::string& str)
Returns the first object with a given name, or a nullptr pointer if not found.
template <typename T> T::Ptr getByClass(size_t ith = 0) const
Returns the i’th object of a given class (or of a descendant class), or nullptr (an empty smart pointer) if not found.
Example:
CSphere::Ptr obs = myscene.getByClass<CSphere>();
By default (ith=0), the first observation is returned.
void removeObject(const CRenderizable::Ptr& obj)
Removes the given object from the scene (it also deletes the object to free its memory).
void dumpListOfObjects(std::vector<std::string>& lst) const
Retrieves a list of all objects in text form.
Deprecated Prefer asYAML() (since MRPT 2.1.3)
mrpt::containers::yaml asYAML() const
Prints all objects in human-readable YAML form.
(New in MRPT 2.1.3)
virtual bool traceRay(const mrpt::poses::CPose3D& o, double& dist) const
Simulation of ray-trace, given a pose.
Returns true if the ray effectively collisions with the object (returning the distance to the origin of the ray in “dist”), or false in other case. “dist” variable yields undefined behaviour when false is returned
virtual CRenderizable& setColorA_u8(const uint8_t a)
Set alpha (transparency) color component in the range [0,255].
Returns:
a ref to this
virtual mrpt::math::TBoundingBoxf internalBoundingBoxLocal() const
Must be implemented by derived classes to provide the updated bounding box in the object local frame of coordinates.
This will be called only once after each time the derived class reports to notifyChange() that the object geometry changed.
See also:
getBoundingBox(), getBoundingBoxLocal(), getBoundingBoxLocalf()