34 m_colorFromModule(false),
37 m_point_color = m_color;
38 m_field_color = m_color;
39 m_still_color = m_color;
40 m_maxspeed_color = m_color;
51 m_colorFromModule(false),
72 #if MRPT_HAS_OPENGL_GLUT 100 for (
unsigned int i = 0; i <
x_p.cols(); i++)
101 for (
unsigned int j = 0; j <
x_p.rows(); j++)
114 for (
unsigned int i = 0; i <
x_vf.cols(); i++)
115 for (
unsigned int j = 0; j <
x_vf.rows(); j++)
125 for (
unsigned int i = 0; i <
x_vf.cols(); i++)
126 for (
unsigned int j = 0; j <
x_vf.rows(); j++)
129 const float module = sqrt(
238 for (
unsigned int i = 0; i <
x_p.cols(); i++)
239 for (
unsigned int j = 0; j <
x_p.rows(); j++)
242 if (
x_p(j, i) < bb_min.
x) bb_min.
x =
x_p(j, i);
244 if (
x_p(j, i) +
x_vf(j, i) < bb_min.
x)
247 if (
y_p(j, i) < bb_min.
y) bb_min.
y =
y_p(j, i);
249 if (
y_p(j, i) +
y_vf(j, i) < bb_min.
y)
252 if (
z_p(j, i) < bb_min.
z) bb_min.
z =
z_p(j, i);
254 if (
z_p(j, i) +
z_vf(j, i) < bb_min.
z)
258 if (
x_p(j, i) > bb_max.
x) bb_max.
x =
x_p(j, i);
260 if (
x_p(j, i) +
x_vf(j, i) > bb_max.
x)
263 if (
y_p(j, i) > bb_max.
y) bb_max.
y =
y_p(j, i);
265 if (
y_p(j, i) +
y_vf(j, i) > bb_max.
y)
268 if (
z_p(j, i) > bb_max.
z) bb_max.
z =
z_p(j, i);
270 if (
z_p(j, i) +
z_vf(j, i) > bb_max.
z)
mrpt::math::CMatrix x_vf
X component of the vector field.
float m_LineWidth
By default it is 1.0.
GLAPI void GLAPIENTRY glEnable(GLenum cap)
GLAPI void GLAPIENTRY glPointSize(GLfloat size)
#define IMPLEMENTS_SERIALIZABLE(class_name, base, NameSpace)
This must be inserted in all CSerializable classes implementation files.
mrpt::img::TColor m_still_color
Color associated to fields with null module.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
#define GL_ONE_MINUS_SRC_ALPHA
float m_maxspeed
Value of the module of the motion field which will correspond to 'm_maxspeed_color'.
GLAPI void GLAPIENTRY glPopAttrib(void)
float m_pointSize
By default it is 1.0.
GLAPI void GLAPIENTRY glLineWidth(GLfloat width)
mrpt::poses::CPose3D m_pose
6D pose wrt the parent coordinate reference.
GLAPI void GLAPIENTRY glBlendFunc(GLenum sfactor, GLenum dfactor)
A renderizable object suitable for rendering with OpenGL's display lists.
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations.
bool m_showPoints
By default it is true.
T square(const T x)
Inline function for the square of a number.
#define GL_COLOR_BUFFER_BIT
This base provides a set of functions for maths stuff.
mrpt::img::TColor m_point_color
mrpt::math::CMatrix y_p
Y coordinate of the points at which the vector field is plotted.
void writeToStreamRender(mrpt::serialization::CArchive &out) const
mrpt::math::CMatrix z_vf
Z component of the vector field.
mrpt::math::CMatrix y_vf
Y component of the vector field.
double x
X,Y,Z coordinates.
mrpt::img::TColor m_field_color
uint8_t serializeGetVersion() const override
Must return the current versioning number of the object.
GLAPI void GLAPIENTRY glBegin(GLenum mode)
mrpt::math::CMatrix z_p
Z coordinate of the points at which the vector field is plotted.
A 3D vector field representation, consisting of points and arrows drawn at any spatial position...
GLAPI void GLAPIENTRY glVertex3f(GLfloat x, GLfloat y, GLfloat z)
void serializeFrom(mrpt::serialization::CArchive &in, uint8_t serial_version) override
Pure virtual method for reading (deserializing) from an abstract archive.
GLAPI void GLAPIENTRY glColor4ub(GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha)
CVectorField3D()
Constructor.
mrpt::img::TColor m_color
Color components in the range [0,255].
static void checkOpenGLError()
Checks glGetError and throws an exception if an error situation is found.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
bool m_colorFromModule
By default it is false.
Virtual base class for "archives": classes abstracting I/O streams.
GLAPI void GLAPIENTRY glPushAttrib(GLbitfield mask)
void composePoint(double lx, double ly, double lz, double &gx, double &gy, double &gz, mrpt::math::CMatrixFixedNumeric< double, 3, 3 > *out_jacobian_df_dpoint=nullptr, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dpose=nullptr, mrpt::math::CMatrixFixedNumeric< double, 3, 6 > *out_jacobian_df_dse3=nullptr, bool use_small_rot_approx=false) const
An alternative, slightly more efficient way of doing with G and L being 3D points and P this 6D pose...
The namespace for 3D scene representation and rendering.
GLAPI void GLAPIENTRY glEnd(void)
A matrix of dynamic size.
void render_dl() const override
Render.
void serializeTo(mrpt::serialization::CArchive &out) const override
Pure virtual method for writing (serializing) to an abstract archive.
mrpt::img::TColor m_maxspeed_color
Color associated to fields whose module is equal or larger than 'm_maxspeed'.
bool m_antiAliasing
By default it is true.
GLAPI void GLAPIENTRY glDisable(GLenum cap)
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...
void readFromStreamRender(mrpt::serialization::CArchive &in)
mrpt::math::CMatrix x_p
X coordinate of the points at which the vector field is plotted.