10 #ifndef opengl_CVectorField3D_H 11 #define opengl_CVectorField3D_H 100 const float R,
const float G,
const float B,
const float A = 1)
118 const float R,
const float G,
const float B,
const float A = 1)
138 const float Rmin,
const float Gmin,
const float Bmin,
const float Rmax,
139 const float Gmax,
const float Bmax,
const float Amin = 1,
140 const float Amax = 1)
210 template <
class MATRIX>
212 MATRIX& Matrix_x, MATRIX& Matrix_y, MATRIX& Matrix_z)
const 232 template <
class MATRIX>
234 MATRIX& Coord_x, MATRIX& Coord_y, MATRIX& Coord_z)
const 270 (Matrix_x.rows() == Matrix_y.rows()) &&
271 (Matrix_x.rows() == Matrix_z.rows()));
273 (Matrix_x.cols() == Matrix_y.cols()) &&
274 (Matrix_x.cols() == Matrix_z.cols()));
281 template <
class MATRIX>
285 (Matrix_x.rows() == Matrix_y.rows()) &&
286 (Matrix_x.rows() == Matrix_z.rows()));
288 (Matrix_x.cols() == Matrix_y.cols()) &&
289 (Matrix_x.cols() == Matrix_z.cols()));
305 (Matrix_x.rows() == Matrix_y.rows()) &&
306 (Matrix_x.rows() == Matrix_z.rows()));
308 (Matrix_x.cols() == Matrix_y.cols()) &&
309 (Matrix_x.cols() == Matrix_z.cols()));
316 template <
class MATRIX>
318 MATRIX& Matrix_x, MATRIX& Matrix_y, MATRIX& Matrix_z)
321 (Matrix_x.rows() == Matrix_y.rows()) &&
322 (Matrix_x.rows() == Matrix_z.rows()));
324 (Matrix_x.cols() == Matrix_y.cols()) &&
325 (Matrix_x.cols() == Matrix_z.cols()));
virtual ~CVectorField3D()
Private, virtual destructor: only can be deleted from smart pointers.
bool isAntiAliasingEnabled() const
mrpt::math::CMatrix x_vf
X component of the vector field.
float m_LineWidth
By default it is 1.0.
float getPointSize() const
Get the size with which points are drawn.
void setMotionFieldColormap(const float Rmin, const float Gmin, const float Bmin, const float Rmax, const float Gmax, const float Bmax, const float Amin=1, const float Amax=1)
Set the motion field min and max colors (colormap) in the range [0,1].
void getVectorField(MATRIX &Matrix_x, MATRIX &Matrix_y, MATRIX &Matrix_z) const
mrpt::img::TColor m_still_color
Color associated to fields with null module.
void getPointCoordinates(mrpt::math::CMatrixFloat &Coord_x, mrpt::math::CMatrixFloat &Coord_y, mrpt::math::CMatrixFloat &Coord_z) const
Get the coordiantes of the points at which the vector field is plotted: Coord_x, Coord_y and Coord_z...
void enableShowPoints(bool enable=true)
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated) ...
void clear()
Clear the matrices.
size_t cols() const
Returns the total count of rows used to represent the vector field.
float m_maxspeed
Value of the module of the motion field which will correspond to 'm_maxspeed_color'.
void enableColorFromModule(bool enable=true)
float m_pointSize
By default it is 1.0.
void setVectorFieldColor(const float R, const float G, const float B, const float A=1)
Set the arrow color in the range [0,1].
bool isColorFromModuleEnabled() const
GLubyte GLubyte GLubyte GLubyte w
void getVectorField(mrpt::math::CMatrixFloat &Matrix_x, mrpt::math::CMatrixFloat &Matrix_y, mrpt::math::CMatrixFloat &Matrix_z) const
Get the vector field in three independent matrices: Matrix_x, Matrix_y and Matrix_z.
float getMaxSpeedForColor() const
Get the max_speed with which lines are drawn.
A renderizable object suitable for rendering with OpenGL's display lists.
bool m_showPoints
By default it is true.
#define ASSERT_(f)
Defines an assertion mechanism.
void setVectorField(mrpt::math::CMatrixFloat &Matrix_x, mrpt::math::CMatrixFloat &Matrix_y, mrpt::math::CMatrixFloat &Matrix_z)
Set the vector field with Matrix_x, Matrix_y and Matrix_z.
mrpt::img::TColor m_point_color
mrpt::math::CMatrix y_p
Y coordinate of the points at which the vector field is plotted.
void getVectorFieldColor(mrpt::img::TColorf Cmin, mrpt::img::TColorf Cmax) const
Get the motion field min and max colors (colormap) in the range [0,1].
void setPointSize(const float p)
Set the size with which points will be drawn.
mrpt::math::CMatrixFloat & getVectorField_z()
float getLineWidth() const
Get the width with which lines are drawn.
const mrpt::math::CMatrixFloat & getVectorField_y() const
Get the "y" component of the vector field as a matrix.
mrpt::math::CMatrix z_vf
Z component of the vector field.
mrpt::math::CMatrix y_vf
Y component of the vector field.
mrpt::img::TColor m_field_color
void setPointCoordinates(MATRIX &Matrix_x, MATRIX &Matrix_y, MATRIX &Matrix_z)
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...
CVectorField3D()
Constructor.
const mrpt::math::CMatrixFloat & getVectorField_z() const
Get the "z" component of the vector field as a matrix.
void resize(size_t rows, size_t cols)
Resizes the set.
void enableAntiAliasing(bool enable=true)
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
void setLineWidth(const float w)
Set the width with which lines will be drawn.
bool m_colorFromModule
By default it is false.
A RGB color - floats in the range [0,1].
void setPointColor(const float R, const float G, const float B, const float A=1)
Set the point color in the range [0,1].
The namespace for 3D scene representation and rendering.
const mrpt::math::CMatrixFloat & getVectorField_x() const
Get the "x" component of the vector field as a matrix.
size_t rows() const
Returns the total count of columns used to represent the vector field.
A matrix of dynamic size.
mrpt::math::CMatrixFloat & getVectorField_x()
void getPointCoordinates(MATRIX &Coord_x, MATRIX &Coord_y, MATRIX &Coord_z) const
void render_dl() const override
Render.
void setMaxSpeedForColor(const float s)
Set the max speed associated for the color map ( m_still_color, m_maxspeed_color) ...
void setVectorField(MATRIX &Matrix_x, MATRIX &Matrix_y, MATRIX &Matrix_z)
mrpt::math::CMatrixFloat & getVectorField_y()
mrpt::img::TColor m_maxspeed_color
Color associated to fields whose module is equal or larger than 'm_maxspeed'.
void setPointCoordinates(mrpt::math::CMatrixFloat &Matrix_x, mrpt::math::CMatrixFloat &Matrix_y, mrpt::math::CMatrixFloat &Matrix_z)
Set the coordinates of the points at which the vector field is plotted with Matrix_x, Matrix_y and Matrix_z.
bool m_antiAliasing
By default it is true.
static Ptr Create(Args &&... args)
This class is a "CSerializable" wrapper for "CMatrixFloat".
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...
mrpt::img::TColorf getVectorFieldColor() const
Get the arrow color in the range [0,1].
mrpt::img::TColorf getPointColor() const
Get the point color in the range [0,1].
mrpt::math::CMatrix x_p
X coordinate of the points at which the vector field is plotted.