libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
circleForm.hpp
1 #ifndef CIRCLEFORM_H
2 #define CIRCLEFORM_H
3 
4 #include "geometricForm.hpp"
5 
6 class CircleForm : public GeometricForm
7 {
8  MOVE3D_STATIC_LOGGER;
9 public:
10  CircleForm(p3d_point c, double r, p3d_vector3 norm);
11  virtual ~CircleForm(){}
12 
13  bool isPointInForm(p3d_point p);
14  double distHToPoint(p3d_point p);
15 
16 
17  double getDistanceFromPoint(p3d_point p);
18  double getPlannarDistanceFromPoint(p3d_point p);
19 
20  p3d_point getRandomPointInForm();
21  std::vector<p3d_point> getFormGrid(double sampleRate);
22  GeometricForm* getTransformedForm(p3d_matrix4 M);
23 
24  void draw();
25 
26 private:
27  p3d_point _c;
28  double _r;
29 };
30 #endif // CIRCLEFORM_H
Definition: geometricForm.hpp:11
Definition: circleForm.hpp:6
double getDistanceFromPoint(p3d_point p)
Definition: circleForm.cpp:27
bool isPointInForm(p3d_point p)
Definition: circleForm.cpp:15
double distHToPoint(p3d_point p)
Definition: circleForm.cpp:21
void draw()
draw the form
Definition: circleForm.cpp:60
double getPlannarDistanceFromPoint(p3d_point p)
Definition: circleForm.cpp:33
std::vector< p3d_point > getFormGrid(double sampleRate)
Definition: circleForm.cpp:49
p3d_point getRandomPointInForm()
Definition: circleForm.cpp:39
GeometricForm * getTransformedForm(p3d_matrix4 M)
create a new form rotate by M compared to this one.
Definition: circleForm.cpp:55