22 Point2Vector landmarks_;
23 static std::minstd_rand rng;
31 static void seedGenerator(
size_t seed);
47 static SimPolygon2D randomTriangle(
double side_len,
double mean_side_len,
double sigma_side_len,
48 double min_vertex_dist,
double min_side_len,
const std::vector<SimPolygon2D>& existing_polys);
55 static SimPolygon2D randomRectangle(
double side_len,
double mean_side_len,
double sigma_side_len,
56 double min_vertex_dist,
double min_side_len,
const std::vector<SimPolygon2D>& existing_polys);
59 const Point2& landmark(
size_t i)
const {
return landmarks_[i]; }
60 size_t size()
const {
return landmarks_.size(); }
61 const Point2Vector& vertices()
const {
return landmarks_; }
64 bool equals(
const SimPolygon2D& p,
double tol=1e-5)
const;
65 void print(
const std::string& s=
"")
const;
70 std::vector<SimWall2D> walls()
const;
77 bool contains(
const Point2& p)
const;
83 bool overlaps(
const SimPolygon2D& p)
const;
86 static bool anyContains(
const Point2& p,
const std::vector<SimPolygon2D>& obstacles);
89 static bool anyOverlaps(
const SimPolygon2D& p,
const std::vector<SimPolygon2D>& obstacles);
92 static bool insideBox(
double s,
const Point2& p);
95 static bool nearExisting(
const Point2Vector& S,
96 const Point2& p,
double threshold);
99 static Point2 randomPoint2(
double s);
102 static Rot2 randomAngle();
105 static double randomDistance(
double mu,
double sigma,
double min_dist = -1.0);
108 static Point2 randomBoundedPoint2(
double boundary_size,
109 const Point2Vector& landmarks,
double min_landmark_dist);
112 static Point2 randomBoundedPoint2(
double boundary_size,
113 const Point2Vector& landmarks,
114 const std::vector<SimPolygon2D>& obstacles,
double min_landmark_dist);
117 static Point2 randomBoundedPoint2(
double boundary_size,
118 const std::vector<SimPolygon2D>& obstacles);
121 static Point2 randomBoundedPoint2(
122 const Point2& LL_corner,
const Point2& UR_corner,
123 const Point2Vector& landmarks,
124 const std::vector<SimPolygon2D>& obstacles,
double min_landmark_dist);
127 static Pose2 randomFreePose(
double boundary_size,
const std::vector<SimPolygon2D>& obstacles);
131typedef std::vector<SimPolygon2D> SimPolygon2DVector;
Implementation of walls for use with simulators.
Global functions in a separate testing namespace.
Definition chartTesting.h:28
void print(const Matrix &A, const string &s, ostream &stream)
print without optional string, must specify cout yourself
Definition Matrix.cpp:143
Vector2 Point2
As of GTSAM 4, in order to make GTSAM more lean, it is now possible to just typedef Point2 to Vector2...
Definition Point2.h:32
General polygon class for convex polygons.
Definition SimPolygon2D.h:20
SimPolygon2D()
Don't use this constructor, use a named one instead.
Definition SimPolygon2D.h:28