10 #ifndef opengl_CVectorField2D_H
11 #define opengl_CVectorField2D_H
70 const float R,
const float G,
const float B,
const float A = 1)
88 const float R,
const float G,
const float B,
const float A = 1)
135 const float center_x,
const float center_y,
const float cellsize_x,
136 const float cellsize_y)
138 xMin = center_x - 0.5 * cellsize_x * (
xcomp.cols() - 1);
139 xMax = center_x + 0.5 * cellsize_x * (
xcomp.cols() - 1);
140 yMin = center_y - 0.5 * cellsize_y * (
xcomp.rows() - 1);
141 yMax = center_y + 0.5 * cellsize_y * (
xcomp.rows() - 1);
150 const float xmin,
const float xmax,
const float ymin,
const float ymax)
163 void getGridLimits(
float& xmin,
float& xmax,
float& ymin,
float& ymax)
const
207 (Matrix_x.rows() == Matrix_y.rows()) &&
208 (Matrix_x.cols() == Matrix_y.cols()));
240 float xmax = 1,
float ymin = -1,
float ymax = 1);
262 float xmin = -1,
float xmax = 1,
float ymin = -1,
float ymax = 1);
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
This class is a "CSerializable" wrapper for "CMatrixFloat".
A matrix of dynamic size.
A renderizable object suitable for rendering with OpenGL's display lists.
EIGEN_STRONG_INLINE void notifyChange() const
Must be called to notify that the object has changed (so, the display list must be updated)
A 2D vector field representation, consisting of points and arrows drawn on a plane (invisible grid).
bool isAntiAliasingEnabled() const
static CVectorField2D::Ptr Create(const mrpt::math::CMatrixFloat &Matrix_x, const mrpt::math::CMatrixFloat &Matrix_y, float xmin=-1, float xmax=1, float ymin=-1, float ymax=1)
Class factory.
mrpt::math::CMatrix xcomp
X component of the vector field.
mrpt::math::CMatrixFloat & getVectorField_y()
This is an overloaded member function, provided for convenience. It differs from the above function o...
void getGridLimits(float &xmin, float &xmax, float &ymin, float &ymax) const
Get the coordinates of the grid on where the vector field is drawn using the max and min values.
void setVectorField(mrpt::math::CMatrixFloat &Matrix_x, mrpt::math::CMatrixFloat &Matrix_y)
Set the vector field.
mrpt::img::TColor m_field_color
size_t rows() const
Returns the total count of columns used to represent the vector field.
std::shared_ptr< CVectorField2D > Ptr
CVectorField2D()
Constructor.
void setPointSize(const float p)
Set the size with which points will be drawn.
mrpt::math::CMatrix ycomp
Y component of the vector field.
float getPointSize() const
Get the size with which points are drawn.
void setVectorFieldColor(const float R, const float G, const float B, const float A=1)
Set the arrow color in the range [0,1].
void setLineWidth(const float w)
Set the width with which lines will be drawn.
mrpt::img::TColorf getVectorFieldColor() const
Get the arrow color in the range [0,1].
mrpt::img::TColor m_point_color
float m_pointSize
By default is 1.0.
void getVectorField(mrpt::math::CMatrixFloat &Matrix_x, mrpt::math::CMatrixFloat &Matrix_y) const
Get the vector field.
mrpt::math::CMatrixFloat & getVectorField_x()
This is an overloaded member function, provided for convenience. It differs from the above function o...
void render_dl() const override
Render.
void setGridCenterAndCellSize(const float center_x, const float center_y, const float cellsize_x, const float cellsize_y)
Set the coordinates of the grid on where the vector field will be drawn by setting its center and the...
void resize(size_t rows, size_t cols)
Resizes the set.
virtual ~CVectorField2D()
Private, virtual destructor: only can be deleted from smart pointers.
mrpt::img::TColorf getPointColor() const
Get the point color in the range [0,1].
float m_LineWidth
By default is 1.0.
const mrpt::math::CMatrixFloat & getVectorField_y() const
Get the "y" component of the vector field, as a matrix where each entry represents a point in the 2D ...
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...
size_t cols() const
Returns the total count of rows used to represent the vector field.
bool m_antiAliasing
By default is true.
void enableAntiAliasing(bool enable=true)
void adjustVectorFieldToGrid()
Adjust the vector field in the scene (vectors magnitude) according to the grid size.
const mrpt::math::CMatrixFloat & getVectorField_x() const
Get the "x" component of the vector field, as a matrix where each entry represents a point in the 2D ...
void setPointColor(const float R, const float G, const float B, const float A=1)
Set the point color in the range [0,1].
void clear()
Clear the matrices.
float getLineWidth() const
Get the width with which lines are drawn.
void setGridLimits(const float xmin, const float xmax, const float ymin, const float ymax)
Set the coordinates of the grid on where the vector field will be drawn using x-y max and min values.
#define ASSERT_(f)
Defines an assertion mechanism.
GLubyte GLubyte GLubyte GLubyte w
The namespace for 3D scene representation and rendering.
A RGB color - floats in the range [0,1].