mf
Media Framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
plane.h
Go to the documentation of this file.
1 #ifndef MF_PLANE_H_
2 #define MF_PLANE_H_
3 
4 #include "../eigen.h"
5 #include <string>
6 #include "pose.h"
7 
8 namespace mf {
9 
11 
13 struct plane {
14  Eigen::Vector3f normal = Eigen::Vector3f::Zero();
15  float distance = 0;
16 
17  plane() = default;
18  plane(const plane&) = default;
19  explicit plane(const pose&);
20 
23  plane(float a, float b, float c, float d);
24 
27  plane(const Eigen::Vector3f& p, const Eigen::Vector3f& n);
28 
31  plane(const Eigen::Vector3f& p1, const Eigen::Vector3f& p2, const Eigen::Vector3f& p3);
32 
34  void normalize();
35 
38  Eigen::Vector3f project(const Eigen::Vector3f&) const;
39 
40  Eigen::Vector3f origin() const;
41 
42  pose to_pose() const;
43 
44  operator Eigen::Hyperplane<float, 3>() const;
45 
46  void apply_transformation(const Eigen::Affine3f&);
47 
48  std::string to_string() const;
49  static plane from_string(const std::string&);
50 };
51 
52 
53 float signed_distance(const Eigen::Vector3f&, const plane&);
54 float distance(const Eigen::Vector3f&, const plane&);
55 
56 
57 }
58 
59 #endif
plane()=default
Eigen::Vector3f origin() const
Definition: plane.cc:40
void normalize()
Normalize the plane representation.
Definition: plane.cc:26
pose to_pose() const
Definition: plane.cc:55
Eigen::Vector3f project(const Eigen::Vector3f &) const
Definition: plane.cc:33
Oriented plane in 3D space.
Definition: plane.h:13
float signed_distance(const Eigen::Vector3f &pt, const plane &pl)
Definition: plane.cc:45
static plane from_string(const std::string &)
Definition: plane.cc:82
std::string to_string() const
Definition: plane.cc:72
Position and orientation in space.
Definition: pose.h:15
float distance
Definition: plane.h:15
Eigen::Vector3f normal
Definition: plane.h:14
void apply_transformation(const Eigen::Affine3f &)
Definition: plane.cc:67
float distance(const Eigen::Vector3f &pt, const plane &pl)
Definition: plane.cc:50