30 #include <Eigen/Geometry> 38 class AxisAlignedBoundingBox;
39 class OrientedBoundingBox;
52 bool IsEmpty()
const override = 0;
55 virtual Eigen::Vector3d
GetCenter()
const = 0;
60 bool relative =
true) = 0;
68 const std::vector<Eigen::Vector3d>&
points)
const;
70 const std::vector<Eigen::Vector3d>& points)
const;
72 const std::vector<Eigen::Vector3d>& points)
const;
76 const Eigen::Vector3d& color)
const;
79 std::vector<Eigen::Vector3d>& points)
const;
81 std::vector<Eigen::Vector3d>& normals)
const;
83 std::vector<Eigen::Vector3d>& points,
86 std::vector<Eigen::Vector3d>& points,
89 std::vector<Eigen::Vector3d>& points,
93 std::vector<Eigen::Vector3d>& normals,
98 const Eigen::Vector3d& rotation,
Eigen::Vector3d ComputeCenter(const std::vector< Eigen::Vector3d > &points) const
Definition: Geometry3D.cpp:60
virtual Geometry3D & Scale(const double scale, bool center=true)=0
Definition: Geometry.h:32
bool IsEmpty() const override=0
virtual Eigen::Vector3d GetMinBound() const =0
void ScalePoints(const double scale, std::vector< Eigen::Vector3d > &points, bool center) const
Definition: Geometry3D.cpp:124
void RotatePoints(const Eigen::Vector3d &rotation, std::vector< Eigen::Vector3d > &points, bool center, RotationType type) const
Definition: Geometry3D.cpp:136
Definition: BoundingVolume.h:90
virtual OrientedBoundingBox GetOrientedBoundingBox() const =0
Geometry3D(GeometryType type)
Definition: Geometry3D.h:48
virtual Eigen::Vector3d GetCenter() const =0
virtual Geometry3D & Transform(const Eigen::Matrix4d &transformation)=0
virtual AxisAlignedBoundingBox GetAxisAlignedBoundingBox() const =0
void RotateNormals(const Eigen::Vector3d &rotation, std::vector< Eigen::Vector3d > &normals, bool center, RotationType type) const
Definition: Geometry3D.cpp:150
Eigen::Matrix3d GetRotationMatrix(const Eigen::Vector3d &rotation, RotationType type=RotationType::XYZ) const
Definition: Geometry3D.cpp:160
virtual Eigen::Vector3d GetMaxBound() const =0
void TransformNormals(const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &normals) const
Definition: Geometry3D.cpp:102
Definition: BoundingVolume.h:38
Geometry3D & Clear() override=0
RotationType
Definition: Geometry3D.h:43
virtual Geometry3D & Rotate(const Eigen::Vector3d &rotation, bool center=true, RotationType type=RotationType::XYZ)=0
int size
Definition: FilePCD.cpp:55
Definition: Geometry3D.h:41
void TranslatePoints(const Eigen::Vector3d &translation, std::vector< Eigen::Vector3d > &points, bool relative) const
Definition: Geometry3D.cpp:112
char type
Definition: FilePCD.cpp:56
~Geometry3D() override
Definition: Geometry3D.h:45
int points
Definition: FilePCD.cpp:69
void TransformPoints(const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &points) const
Definition: Geometry3D.cpp:92
Definition: PinholeCameraIntrinsic.cpp:34
GeometryType
Definition: Geometry.h:34
virtual Geometry3D & Translate(const Eigen::Vector3d &translation, bool relative=true)=0
void ResizeAndPaintUniformColor(std::vector< Eigen::Vector3d > &colors, const size_t size, const Eigen::Vector3d &color) const
Definition: Geometry3D.cpp:71
Eigen::Vector3d ComputeMinBound(const std::vector< Eigen::Vector3d > &points) const
Definition: Geometry3D.cpp:37
Eigen::Vector3d ComputeMaxBound(const std::vector< Eigen::Vector3d > &points) const
Definition: Geometry3D.cpp:49