libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
rectangleForm.hpp
1 #ifndef RECTANGLEFORM_H
2 #define RECTANGLEFORM_H
3 
4 #include "geometricForm.hpp"
5 
13 {
14  MOVE3D_STATIC_LOGGER;
15 public:
16  RectangleForm(p3d_point a, p3d_point b, p3d_point c, p3d_point d, p3d_vector3 norm);
17  virtual ~RectangleForm(){}
18 
19  bool isPointInForm(p3d_point p);
20  double distHToPoint(p3d_point p);
21 
22  double getDistanceFromPoint(p3d_point p);
23  double getPlannarDistanceFromPoint(p3d_point p);
24  p3d_point getRandomPointInForm();
25  std::vector<p3d_point> getFormGrid(double sampleRate);
26 
27 
28  GeometricForm* getTransformedForm(p3d_matrix4 M);
29 
30  void draw();
31 
32  p3d_point getA(){return _a;}
33  p3d_point getB(){return _b;}
34  p3d_point getC(){return _c;}
35  p3d_point getD(){return _d;}
36 
37 protected:
38  p3d_point _a;
39  p3d_point _b;
40  p3d_point _c;
41  p3d_point _d;
42 
43 
44 };
45 
46 #endif // RECTANGLEFORM_H
Definition: geometricForm.hpp:11
GeometricForm * getTransformedForm(p3d_matrix4 M)
create a new form rotate by M compared to this one.
Definition: rectangleForm.cpp:115
bool isPointInForm(p3d_point p)
Definition: rectangleForm.cpp:18
double getDistanceFromPoint(p3d_point p)
Definition: rectangleForm.cpp:32
p3d_point getRandomPointInForm()
Definition: rectangleForm.cpp:77
void draw()
draw the form
Definition: rectangleForm.cpp:126
a form of a rectangle, b and c should be diagonally oposite a-—b | | c-—d
Definition: rectangleForm.hpp:12
std::vector< p3d_point > getFormGrid(double sampleRate)
Definition: rectangleForm.cpp:83
double getPlannarDistanceFromPoint(p3d_point p)
Definition: rectangleForm.cpp:54
double distHToPoint(p3d_point p)
Definition: rectangleForm.cpp:25