9 #ifndef opengl_COpenGLScene_H 10 #define opengl_COpenGLScene_H 89 insert(objs.begin(), objs.end(), vpn);
107 template <
class T_it>
138 void clear(
bool createMainViewport =
true);
165 template <
typename T>
172 typename T::Ptr o = (*it)->getByClass<T>(ith);
175 return typename T::Ptr();
224 template <
typename FUNCTOR>
231 itO != (*it)->end(); ++itO)
242 template <
typename FUNCTOR,
typename EXTRA_PARAM>
244 FUNCTOR functor,
const EXTRA_PARAM& userParam)
const 257 template <
typename FUNCTOR>
267 it !=
obj->end(); ++it)
287 s->insert(
v.begin(),
v.end());
virtual ~COpenGLScene()
Destructor:
std::shared_ptr< COpenGLViewport > Ptr
mrpt::utils::CStream & operator<<(mrpt::utils::CStream &out, const mrpt::opengl::CLight &o)
A set of object, which are referenced to the coordinates framework established in this object...
void visitAllObjects(FUNCTOR functor) const
Recursive depth-first visit all objects in all viewports of the scene, calling the user-supplied func...
COpenGLScene()
Constructor.
The virtual base class which provides a unified interface for all persistent objects in MRPT...
void insertCollection(const T &objs, const std::string &vpn=std::string("main"))
Inserts a set of objects into the scene, in the given viewport ("main" by default).
EIGEN_STRONG_INLINE iterator begin()
bool traceRay(const mrpt::poses::CPose3D &o, double &dist) const
Traces a ray.
std::shared_ptr< CRenderizable > Ptr
const Scalar * const_iterator
GLsizei GLsizei GLuint * obj
void getBoundingBox(mrpt::math::TPoint3D &bb_min, mrpt::math::TPoint3D &bb_max, const std::string &vpn=std::string("main")) const
Evaluates the bounding box of the scene in the given viewport (default: "main").
void initializeAllTextures()
Initializes all textures in the scene (See opengl::CTexturedPlane::loadTextureInOpenGL) ...
A class for storing a list of text lines.
void enableFollowCamera(bool enabled)
If disabled (default), the SceneViewer application will ignore the camera of the "main" viewport and ...
COpenGLViewport::Ptr createViewport(const std::string &viewportName)
Creates a new viewport, adding it to the scene and returning a pointer to the new object...
std::shared_ptr< CSetOfObjects > Ptr
void clear(bool createMainViewport=true)
Clear the list of objects and viewports in the scene, deleting objects' memory, and leaving just the ...
size_t viewportsCount() const
GLsizei const GLchar ** string
bool saveToFile(const std::string &fil) const
Saves the scene to a 3Dscene file, loadable by the application SceneViewer3D.
TListViewports m_viewports
The list of viewports, indexed by name.
std::vector< COpenGLViewport::Ptr > TListViewports
static void internal_visitAllObjects(FUNCTOR functor, const CRenderizable::Ptr &o)
void insert(const T_it &begin, const T_it &end, const std::string &vpn=std::string("main"))
Inserts a set of objects into the scene, in the given viewport ("main" by default).
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...
COpenGLViewport::Ptr getViewport(const std::string &viewportName=std::string("main")) const
Returns the viewport with the given name, or nullptr if it does not exist; note that the default view...
bool loadFromFile(const std::string &fil)
Loads the scene from a 3Dscene file, the format used by the application SceneViewer3D.
GLdouble GLdouble GLdouble r
COpenGLScene & operator=(const COpenGLScene &obj)
Copy operator:
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
CRenderizable::Ptr getByName(const std::string &str, const std::string &viewportName=std::string("main"))
Returns the first object with a given name, or nullptr (an empty smart pointer) if not found...
#define IS_CLASS(ptrObj, class_name)
Evaluates to true if the given pointer to an object (derived from mrpt::utils::CSerializable) is of t...
void render() const
Render this scene.
std::shared_ptr< COpenGLScene > Ptr
CListOpenGLObjects::const_iterator const_iterator
CListOpenGLObjects::const_iterator const_iterator
void visitAllObjects(FUNCTOR functor, const EXTRA_PARAM &userParam) const
Recursive depth-first visit all objects in all viewports of the scene, calling the user-supplied func...
This class allows the user to create, load, save, and render 3D scenes using OpenGL primitives...
bool followCamera() const
Return the value of "followCamera".
T::Ptr getByClass(const size_t &ith=0) const
Returns the i'th object of a given class (or of a descendant class), or nullptr (an empty smart point...
void insert(const CRenderizable::Ptr &newObject, const std::string &viewportName=std::string("main"))
Insert a new object into the scene, in the given viewport (by default, into the "main" viewport)...
void removeObject(const CRenderizable::Ptr &obj, const std::string &viewportName=std::string("main"))
Removes the given object from the scene (it also deletes the object to free its memory).
void dumpListOfObjects(mrpt::utils::CStringList &lst)
Retrieves a list of all objects in text form.