9 #ifndef opengl_CRenderizable_H 10 #define opengl_CRenderizable_H 25 class COpenGLViewport;
54 mrpt::utils::TColor m_color;
55 mrpt::poses::CPose3D m_pose;
56 float m_scale_x, m_scale_y, m_scale_z;
63 void setName(const
std::
string &
n) { m_name=
n; }
89 inline double getPoseX()
const {
return m_pose.x(); }
90 inline double getPoseY()
const {
return m_pose.y(); }
91 inline double getPoseZ()
const {
return m_pose.z(); }
99 inline double getColorR()
const {
return m_color.R/255.; }
100 inline double getColorG()
const {
return m_color.G/255.; }
101 inline double getColorB()
const {
return m_color.B/255.; }
102 inline double getColorA()
const {
return m_color.A/255.; }
120 inline CRenderizable&
setScale(
float sx,
float sy,
float sz) { m_scale_x=sx; m_scale_y=sy; m_scale_z = sz;
return *
this; }
157 virtual void render()
const = 0;
200 static unsigned int getNewTextureNumber();
201 static void releaseTextureName(
unsigned int i);
void OPENGL_IMPEXP renderTextBitmap(const char *str, void *fontStyle)
This method is safe for calling from within ::render() methods.
double getColorA() const
Color components in the range [0,1].
CRenderizable & setColorB(const double b)
Color components in the range [0,1].
double getPosePitch() const
Rotation relative to parent coordinate origin, in DEGREES.
OPENGL_IMPEXP mrpt::utils::CStream & operator<<(mrpt::utils::CStream &out, const mrpt::opengl::CLight &o)
float getScaleX() const
Get the current scaling factor in one axis.
A set of object, which are referenced to the coordinates framework established in this object...
The virtual base class which provides a unified interface for all persistent objects in MRPT...
virtual CRenderizable & setColorA_u8(const uint8_t a)
Color components in the range [0,255].
bool BASE_IMPEXP traceRay(const std::vector< TPolygonWithPlane > &vec, const mrpt::poses::CPose3D &pose, double &dist)
Fast ray tracing method using polygons' properties.
CRenderizable & setLocation(const mrpt::math::TPoint3D &p)
Changes the location of the object, keeping untouched the orientation.
double getPosePitchRad() const
Rotation relative to parent coordinate origin, in radians.
uint8_t getColorR_u8() const
Color components in the range [0,255].
The base class of 3D objects that can be directly rendered through OpenGL.
CRenderizable & setLocation(double x, double y, double z)
Changes the location of the object, keeping untouched the orientation.
std::deque< CRenderizablePtr > CListOpenGLObjects
A list of objects pointers, automatically managing memory free at destructor, and managing copies cor...
double getPoseX() const
Translation relative to parent coordinate origin.
virtual CRenderizable & setColorR_u8(const uint8_t r)
Color components in the range [0,255].
CRenderizable & setColor(const mrpt::utils::TColorf &c)
void enableShowName(bool showName=true)
Enables or disables showing the name of the object as a label when rendering.
double getPoseZ() const
Translation relative to parent coordinate origin.
CRenderizable & setColorA(const double a)
Color components in the range [0,1].
uint8_t getColorA_u8() const
Color components in the range [0,255].
double getPoseRoll() const
Rotation relative to parent coordinate origin, in DEGREES.
A viewport within a COpenGLScene, containing a set of OpenGL objects to render.
CRenderizable * clone() const
Interface for the smart pointer class.
CRenderizable & setColorR(const double r)
Color components in the range [0,1].
#define DEFINE_VIRTUAL_SERIALIZABLE(class_name)
This declaration must be inserted in virtual CSerializable classes definition:
This base class is used to provide a unified interface to files,memory buffers,..Please see the deriv...
virtual CRenderizable & setColorB_u8(const uint8_t b)
Color components in the range [0,255].
#define DEFINE_SERIALIZABLE_PRE_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
This declaration must be inserted in all CSerializable classes definition, before the class declarati...
double RAD2DEG(const double x)
Radians to degrees.
TOpenGLFont
Existing fonts for 2D texts in mrpt::opengl methods.
uint8_t getColorG_u8() const
Color components in the range [0,255].
CRenderizable & setColor_u8(uint8_t R, uint8_t G, uint8_t B, uint8_t A=255)
Set the color components of this object (R,G,B,Alpha, in the range 0-255)
virtual CRenderizable & setColorG_u8(const uint8_t g)
Color components in the range [0,255].
bool isVisible() const
Is the object visible?
CRenderizable & setScale(float sx, float sy, float sz)
Scale to apply to the object in each axis (default=1)
const mrpt::utils::TColor & getColor_u8() const
Returns the object color property as a TColor.
const std::string & getName() const
Returns the name of the object.
CRenderizable & setScale(float s)
Scale to apply to the object, in all three axes (default=1)
CRenderizable & setColor(double R, double G, double B, double A=1)
Set the color components of this object (R,G,B,Alpha, in the range 0-1)
GLsizei const GLchar ** string
A class used to store a 2D point.
A class used to store a 3D point.
double getPoseYawRad() const
Rotation relative to parent coordinate origin, in radians.
double getPoseY() const
Translation relative to parent coordinate origin.
bool isShowNameEnabled() const
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
GLdouble GLdouble GLdouble r
void setVisibility(bool visible=true)
Set object visibility (default=true)
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
int OPENGL_IMPEXP textBitmapWidth(const std::string &str, mrpt::opengl::TOpenGLFont font=mrpt::opengl::MRPT_GLUT_BITMAP_TIMES_ROMAN_24)
Return the exact width in pixels for a given string, as will be rendered by renderTextBitmap().
double getPoseYaw() const
Rotation relative to parent coordinate origin, in DEGREES.
void OPENGL_IMPEXP checkOpenGLError()
Checks glGetError and throws an exception if an error situation is found.
Lightweight 3D pose (three spatial coordinates, plus three angular coordinates).
CRenderizable & setColorG(const double g)
Color components in the range [0,1].
A RGB color - floats in the range [0,1].
double getPoseRollRad() const
Rotation relative to parent coordinate origin, in radians.
const mrpt::poses::CPose3D & getPoseRef() const
Returns a const ref to the 3D pose of the object as mrpt::poses::CPose3D (which explicitly contains t...
float getScaleY() const
Get the current scaling factor in one axis.
double getColorB() const
Color components in the range [0,1].
uint8_t getColorB_u8() const
Color components in the range [0,255].
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
double getColorG() const
Color components in the range [0,1].
GLubyte GLubyte GLubyte a
float getScaleZ() const
Get the current scaling factor in one axis.
double getColorR() const
Color components in the range [0,1].
mrpt::utils::TColorf getColor() const
Returns the object color property as a TColorf.