9 #ifndef opengl_CFrustum_H
10 #define opengl_CFrustum_H
61 static CFrustumPtr
Create(
float near_distance,
float far_distance,
float horz_FOV_degrees,
float vert_FOV_degrees,
float lineWidth = 1.5f,
bool draw_lines =
true,
bool draw_planes =
false );
105 CFrustum(
float near_distance,
float far_distance,
float horz_FOV_degrees,
float vert_FOV_degrees,
float lineWidth,
bool draw_lines,
bool draw_planes);
#define DEFINE_SERIALIZABLE_POST_CUSTOM_BASE_LINKAGE(class_name, base_name, _LINKAGE_)
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
#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...
A solid or wireframe frustum in 3D (a rectangular truncated pyramid), with arbitrary (possibly assyme...
void setLineWidth(float width)
const mrpt::utils::TColor & getPlaneColor() const
void setVertFOV(const float fov_vert_degrees)
Changes vertical FOV (symmetric)
static CFrustumPtr Create(float near_distance, float far_distance, float horz_FOV_degrees, float vert_FOV_degrees, float lineWidth=1.5f, bool draw_lines=true, bool draw_planes=false)
Constructor returning a smart pointer to the newly created object.
float getVertFOVUp() const
float getHorzFOVLeft() const
float getLineWidth() const
float getHorzFOVRight() const
float getNearPlaneDistance() const
void setVertFOVAsymmetric(const float fov_vert_down_degrees, const float fov_vert_up_degrees)
Changes vertical FOV (asymmetric)
void setHorzFOVAsymmetric(const float fov_horz_left_degrees, const float fov_horz_right_degrees)
Changes horizontal FOV (asymmetric)
void render_dl() const MRPT_OVERRIDE
Render.
void setPlaneColor(const mrpt::utils::TColor &c)
Changes the color of the planes; to change color of lines, use CRenderizable base methods.
float getFarPlaneDistance() const
mrpt::utils::TColor m_planes_color
float m_max_distance
Near and far planes.
float getVertFOVDown() const
void setNearFarPlanes(const float near_distance, const float far_distance)
Changes distance of near & far planes.
void setHorzFOV(const float fov_horz_degrees)
Changes horizontal FOV (symmetric)
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)
bool BASE_IMPEXP traceRay(const vector< TPolygonWithPlane > &vec, const mrpt::poses::CPose3D &pose, double &dist)
Fast ray tracing method using polygons' properties.
#define MRPT_OVERRIDE
C++11 "override" for virtuals:
double RAD2DEG(const double x)
Radians to degrees.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.