36 class AxisAlignedBoundingBox;
52 virtual Eigen::Vector3d
GetMinBound()
const override;
53 virtual Eigen::Vector3d
GetMaxBound()
const override;
54 virtual Eigen::Vector3d
GetCenter()
const override;
58 const Eigen::Matrix4d& transformation)
override;
60 bool relative =
true)
override;
62 bool center =
true)
override;
64 const Eigen::Vector3d& rotation,
80 const std::vector<Eigen::Vector3d>&
points);
102 virtual Eigen::Vector3d
GetMinBound()
const override;
103 virtual Eigen::Vector3d
GetMaxBound()
const override;
104 virtual Eigen::Vector3d
GetCenter()
const override;
108 const Eigen::Matrix4d& transformation)
override;
110 const Eigen::Vector3d& translation,
bool relative =
true)
override;
112 bool center =
true)
override;
114 const Eigen::Vector3d& rotation,
119 min_bound_ = min_bound_.array().min(other.
min_bound_.array()).matrix();
120 max_bound_ = max_bound_.array().max(other.
max_bound_.array()).matrix();
127 Eigen::Vector3d
GetExtend()
const {
return (max_bound_ - min_bound_); }
131 double GetMaxExtend()
const {
return (max_bound_ - min_bound_).maxCoeff(); }
134 return (x - min_bound_(0)) / (max_bound_(0) - min_bound_(0));
138 return (y - min_bound_(1)) / (max_bound_(1) - min_bound_(1));
142 return (z - min_bound_(2)) / (max_bound_(2) - min_bound_(2));
145 std::string GetPrintInfo()
const;
148 const std::vector<Eigen::Vector3d>&
points);
OrientedBoundingBox & Clear() override
Definition: BoundingVolume.cpp:40
Definition: Geometry.h:32
Eigen::Vector3d y_axis_
Definition: BoundingVolume.h:85
Eigen::Vector3d max_bound_
Definition: BoundingVolume.h:152
Definition: BoundingVolume.h:90
~AxisAlignedBoundingBox() override
Definition: BoundingVolume.h:97
double GetXPercentage(double x) const
Definition: BoundingVolume.h:133
double Volume() const
Definition: BoundingVolume.cpp:138
static OrientedBoundingBox CreateFromPoints(const std::vector< Eigen::Vector3d > &points)
Definition: BoundingVolume.cpp:166
Definition: BoundingVolume.h:38
Eigen::Vector3d min_bound_
Definition: BoundingVolume.h:151
virtual OrientedBoundingBox & Rotate(const Eigen::Vector3d &rotation, bool center=true, RotationType type=RotationType::XYZ) override
Definition: BoundingVolume.cpp:119
Eigen::Vector3d GetHalfExtend() const
Definition: BoundingVolume.h:129
Eigen::Vector3d GetExtend() const
Definition: BoundingVolume.h:127
bool IsEmpty() const override
Definition: BoundingVolume.cpp:48
RotationType
Definition: Geometry3D.h:43
virtual Eigen::Vector3d GetCenter() const override
Definition: BoundingVolume.cpp:60
virtual OrientedBoundingBox & Transform(const Eigen::Matrix4d &transformation) override
Definition: BoundingVolume.cpp:70
double GetZPercentage(double z) const
Definition: BoundingVolume.h:141
virtual OrientedBoundingBox & Translate(const Eigen::Vector3d &translation, bool relative=true) override
Definition: BoundingVolume.cpp:91
std::vector< Eigen::Vector3d > GetBoxPoints() const
Definition: BoundingVolume.cpp:142
Definition: Geometry3D.h:41
virtual AxisAlignedBoundingBox GetAxisAlignedBoundingBox() const override
Definition: BoundingVolume.cpp:62
virtual Eigen::Vector3d GetMinBound() const override
Definition: BoundingVolume.cpp:50
Eigen::Vector3d color_
Definition: BoundingVolume.h:153
OrientedBoundingBox()
Definition: BoundingVolume.h:40
~OrientedBoundingBox() override
Definition: BoundingVolume.h:47
double GetYPercentage(double y) const
Definition: BoundingVolume.h:137
char type
Definition: FilePCD.cpp:56
virtual OrientedBoundingBox GetOrientedBoundingBox() const override
Definition: BoundingVolume.cpp:66
int points
Definition: FilePCD.cpp:69
Definition: PinholeCameraIntrinsic.cpp:34
Eigen::Vector3d color_
Definition: BoundingVolume.h:87
GeometryType
Definition: Geometry.h:34
AxisAlignedBoundingBox & operator+=(const AxisAlignedBoundingBox &other)
Definition: BoundingVolume.h:118
virtual Eigen::Vector3d GetMaxBound() const override
Definition: BoundingVolume.cpp:55
AxisAlignedBoundingBox()
Definition: BoundingVolume.h:92
virtual OrientedBoundingBox & Scale(const double scale, bool center=true) override
Definition: BoundingVolume.cpp:101
Eigen::Vector3d x_axis_
Definition: BoundingVolume.h:84
static OrientedBoundingBox CreateFromAxisAlignedBoundingBox(const AxisAlignedBoundingBox &aabox)
Definition: BoundingVolume.cpp:155
double GetMaxExtend() const
Definition: BoundingVolume.h:131
Eigen::Vector3d z_axis_
Definition: BoundingVolume.h:86
Eigen::Vector3d center_
Definition: BoundingVolume.h:83