Point.hpp
Go to the documentation of this file.
1 
18 #pragma once
19 
20 #include <boost/shared_ptr.hpp>
21 #include <iostream>
22 #include <Eigen/Geometry>
23 #include "Serializable.hpp"
24 
25 namespace ISM {
26 
30 class Point : public Serializable
31 {
32 public:
33  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
34 
35  //Using a public eigen datastructure to avoid the need to convert it to other structure to do any math.
36  Eigen::Vector3d eigen;
37 
38  Point () : eigen(0.0, 0.0, 0.0) { }
39  Point(double x, double y, double z) : eigen(x,y,z) { }
40  Point(Eigen::Vector3d v) : eigen(v) { }
41 
42  virtual void serialize(std::ostream& strm) const;
43  Eigen::Vector3d getEigen();
44 };
45 typedef boost::shared_ptr<Point> PointPtr;
46 
47 bool operator==(const PointPtr& p1, const PointPtr& p2);
48 bool operator==(const Point& p1, const Point& p2);
49 
50 std::ostream& operator<<(std::ostream &strm, const ISM::Point &p);
51 std::ostream& operator<<(std::ostream &strm, const ISM::PointPtr &p);
52 }
boost::shared_ptr< Point > PointPtr
Definition: Point.hpp:45
Point(double x, double y, double z)
Definition: Point.hpp:39
Eigen::Vector3d getEigen()
Definition: Point.cpp:63
std::ostream & operator<<(std::ostream &strm, const ISM::ObjectRelation &r)
Point(Eigen::Vector3d v)
Definition: Point.hpp:40
bool operator==(const PointPtr &p1, const PointPtr &p2)
Definition: Point.cpp:39
this namespace contains all generally usable classes.
EIGEN_MAKE_ALIGNED_OPERATOR_NEW Eigen::Vector3d eigen
Definition: Point.hpp:36
virtual void serialize(std::ostream &strm) const
Definition: Point.cpp:35


asr_lib_ism
Author(s): Hanselmann Fabian, Heller Florian, Heizmann Heinrich, Kübler Marcel, Mehlhaus Jonas, Meißner Pascal, Qattan Mohamad, Reckling Reno, Stroh Daniel
autogenerated on Wed Jan 8 2020 04:02:40