47     const double BADNUM = std::numeric_limits<double>::max();
    49     for (
unsigned int nPt = 0;; ++nPt)
    54         const double ptx = cfg.
read_double(sSection, sPtx, BADNUM, 
false);
    55         const double pty = cfg.
read_double(sSection, sPty, BADNUM, 
false);
    56         if (ptx == BADNUM && pty == BADNUM) 
break;
    58             (ptx != BADNUM && pty != BADNUM),
    59             "Error: mismatch between number of pts in {x,y} defining robot "    77     const int WN = 25, WV = 30;
    86             "Robot polygonal shape, `x` [m].");
    89             "Robot polygonal shape, `y` [m].");
   102         for (
int i = 0; i < N; i++)
   110             shap_x[0], shap_y[0], shap_z[0], shap_x[1], shap_y[1], shap_z[1]);
   111         for (
int i = 0; i <= shap_x.size(); i++)
   113             const int idx = i % shap_x.size();
   150     const double x, 
const double y)
 const   156     const double ox, 
const double oy)
 const 
void appendLineStrip(float x, float y, float z)
Appends a line whose starting point is the end point of the last line (similar to OpenGL's GL_LINE_ST...
 
std::string std::string format(std::string_view fmt, ARGS &&... args)
 
void loadDefaultParams() override
Loads a set of default parameters; provided exclusively for the PTG-configurator tool. 
 
A wrapper of a TPolygon2D class, implementing CSerializable. 
 
bool contains(const TPoint2D &point) const
Check whether a point is inside (or within geometryEpsilon of a polygon edge). 
 
void composePoint(double lx, double ly, double &gx, double &gy) const
An alternative, slightly more efficient way of doing  with G and L being 2D points and P this 2D pose...
 
void internal_shape_saveToStream(mrpt::serialization::CArchive &out) const
 
void add_robotShape_to_setOfLines(mrpt::opengl::CSetOfLines &gl_shape, const mrpt::poses::CPose2D &origin=mrpt::poses::CPose2D()) const override
Auxiliary function for rendering. 
 
#define MRPT_THROW_UNKNOWN_SERIALIZATION_VERSION(__V)
For use in CSerializable implementations. 
 
void loadShapeFromConfigFile(const mrpt::config::CConfigFileBase &source, const std::string §ion)
 
This class allows loading and storing values and vectors of different types from a configuration text...
 
double evalClearanceToRobotShape(const double ox, const double oy) const override
Evals the clearance from an obstacle (ox,oy) in coordinates relative to the robot center...
 
void appendLine(const mrpt::math::TSegment3D &sgm)
Appends a line to the set. 
 
virtual void internal_processNewRobotShape()=0
Will be called whenever the robot shape is set / updated. 
 
void internal_shape_loadFromStream(mrpt::serialization::CArchive &in)
 
#define ASSERTMSG_(f, __ERROR_MSG)
Defines an assertion mechanism. 
 
double read_double(const std::string §ion, const std::string &name, double defaultValue, bool failIfNotFound=false) const
 
T hypot_fast(const T x, const T y)
Faster version of std::hypot(), to use when overflow is not an issue and we prefer fast code...
 
#define ASSERT_ABOVEEQ_(__A, __B)
 
void write(const std::string §ion, const std::string &name, enum_t value, const int name_padding_width=-1, const int value_padding_width=-1, const std::string &comment=std::string())
 
void keep_max(T &var, const K test_val)
If the second argument is above the first one, set the first argument to this higher value...
 
CPTG_RobotShape_Polygonal()
 
void setRobotShape(const mrpt::math::CPolygon &robotShape)
Robot shape must be set before initialization, either from ctor params or via this method...
 
Virtual base class for "archives": classes abstracting I/O streams. 
 
A class used to store a 2D pose, including the 2D coordinate point and a heading (phi) angle...
 
mrpt::vision::TStereoCalibResults out
 
void saveToConfigFile(mrpt::config::CConfigFileBase &cfg, const std::string &sSection) const override
This method saves the options to a ".ini"-like file or memory-stored string list. ...
 
bool isPointInsideRobotShape(const double x, const double y) const override
Returns true if the point lies within the robot shape. 
 
A set of independent lines (or segments), one line with its own start and end positions (X...
 
void AddVertex(double x, double y)
Add a new vertex to polygon. 
 
mrpt::math::CPolygon m_robotShape
 
~CPTG_RobotShape_Polygonal() override
 
double getMaxRobotRadius() const override
Returns an approximation of the robot radius.