Open3D (C++ API)
0.17.0
|
A bounding box that is aligned along the coordinate axes. More...
#include <BoundingVolume.h>
Public Member Functions | |
AxisAlignedBoundingBox () | |
Default constructor. More... | |
AxisAlignedBoundingBox (const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound) | |
Parameterized constructor. More... | |
~AxisAlignedBoundingBox () override | |
AxisAlignedBoundingBox & | Clear () override |
Clear all elements in the geometry. More... | |
bool | IsEmpty () const override |
Returns true iff the geometry is empty. More... | |
virtual Eigen::Vector3d | GetMinBound () const override |
Returns min bounds for geometry coordinates. More... | |
virtual Eigen::Vector3d | GetMaxBound () const override |
Returns max bounds for geometry coordinates. More... | |
virtual Eigen::Vector3d | GetCenter () const override |
Returns the center of the geometry coordinates. More... | |
virtual AxisAlignedBoundingBox | GetAxisAlignedBoundingBox () const override |
Returns the object itself. More... | |
virtual OrientedBoundingBox | GetOrientedBoundingBox (bool robust=false) const override |
virtual OrientedBoundingBox | GetMinimalOrientedBoundingBox (bool robust=false) const override |
virtual AxisAlignedBoundingBox & | Transform (const Eigen::Matrix4d &transformation) override |
Apply transformation (4x4 matrix) to the geometry coordinates. More... | |
virtual AxisAlignedBoundingBox & | Translate (const Eigen::Vector3d &translation, bool relative=true) override |
Apply translation to the geometry coordinates. More... | |
virtual AxisAlignedBoundingBox & | Scale (const double scale, const Eigen::Vector3d ¢er) override |
Scales the axis-aligned bounding boxes. If \(mi\) is the min_bound and \(ma\) is the max_bound of the axis aligned bounding box, and \(s\) and \(c\) are the provided scaling factor and center respectively, then the new min_bound and max_bound are given by \(mi = c + s (mi - c)\) and \(ma = c + s (ma - c)\). More... | |
virtual AxisAlignedBoundingBox & | Rotate (const Eigen::Matrix3d &R, const Eigen::Vector3d ¢er) override |
an AxisAlignedBoundingBox can not be rotated. This method will throw an error. More... | |
AxisAlignedBoundingBox & | operator+= (const AxisAlignedBoundingBox &other) |
Eigen::Vector3d | GetExtent () const |
Get the extent/length of the bounding box in x, y, and z dimension. More... | |
Eigen::Vector3d | GetHalfExtent () const |
Returns the half extent of the bounding box. More... | |
double | GetMaxExtent () const |
double | GetXPercentage (double x) const |
double | GetYPercentage (double y) const |
double | GetZPercentage (double z) const |
double | Volume () const |
Returns the volume of the bounding box. More... | |
std::vector< Eigen::Vector3d > | GetBoxPoints () const |
Returns the eight points that define the bounding box. More... | |
std::vector< size_t > | GetPointIndicesWithinBoundingBox (const std::vector< Eigen::Vector3d > &points) const |
std::string | GetPrintInfo () const |
Returns the 3D dimensions of the bounding box in string format. More... | |
Public Member Functions inherited from open3d::geometry::Geometry3D | |
~Geometry3D () override | |
virtual Geometry3D & | Rotate (const Eigen::Matrix3d &R) |
Public Member Functions inherited from open3d::geometry::Geometry | |
virtual | ~Geometry () |
GeometryType | GetGeometryType () const |
Returns one of registered geometry types. More... | |
int | Dimension () const |
Returns whether the geometry is 2D or 3D. More... | |
std::string | GetName () const |
void | SetName (const std::string &name) |
Static Public Member Functions | |
static AxisAlignedBoundingBox | CreateFromPoints (const std::vector< Eigen::Vector3d > &points) |
Static Public Member Functions inherited from open3d::geometry::Geometry3D | |
static Eigen::Matrix3d | GetRotationMatrixFromXYZ (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from XYZ RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromYZX (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from YZX RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromZXY (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from ZXY RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromXZY (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from XZY RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromZYX (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from ZYX RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromYXZ (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from YXZ RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromAxisAngle (const Eigen::Vector3d &rotation) |
Get Rotation Matrix from AxisAngle RotationType. More... | |
static Eigen::Matrix3d | GetRotationMatrixFromQuaternion (const Eigen::Vector4d &rotation) |
Get Rotation Matrix from Quaternion. More... | |
Data Fields | |
Eigen::Vector3d | min_bound_ |
The lower x, y, z bounds of the bounding box. More... | |
Eigen::Vector3d | max_bound_ |
The upper x, y, z bounds of the bounding box. More... | |
Eigen::Vector3d | color_ |
The color of the bounding box in RGB. More... | |
Additional Inherited Members | |
Public Types inherited from open3d::geometry::Geometry | |
enum class | GeometryType { Unspecified = 0 , PointCloud = 1 , VoxelGrid = 2 , Octree = 3 , LineSet = 4 , MeshBase = 5 , TriangleMesh = 6 , HalfEdgeTriangleMesh = 7 , Image = 8 , RGBDImage = 9 , TetraMesh = 10 , OrientedBoundingBox = 11 , AxisAlignedBoundingBox = 12 } |
Specifies possible geometry types. More... | |
Protected Member Functions inherited from open3d::geometry::Geometry3D | |
Geometry3D (GeometryType type) | |
Parameterized Constructor. More... | |
Eigen::Vector3d | ComputeMinBound (const std::vector< Eigen::Vector3d > &points) const |
Compute min bound of a list points. More... | |
Eigen::Vector3d | ComputeMaxBound (const std::vector< Eigen::Vector3d > &points) const |
Compute max bound of a list points. More... | |
Eigen::Vector3d | ComputeCenter (const std::vector< Eigen::Vector3d > &points) const |
Computer center of a list of points. More... | |
void | ResizeAndPaintUniformColor (std::vector< Eigen::Vector3d > &colors, const size_t size, const Eigen::Vector3d &color) const |
Resizes the colors vector and paints a uniform color. More... | |
void | TransformPoints (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &points) const |
Transforms all points with the transformation matrix. More... | |
void | TransformNormals (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &normals) const |
Transforms the normals with the transformation matrix. More... | |
void | TransformCovariances (const Eigen::Matrix4d &transformation, std::vector< Eigen::Matrix3d > &covariances) const |
Transforms all covariance matrices with the transformation. More... | |
void | TranslatePoints (const Eigen::Vector3d &translation, std::vector< Eigen::Vector3d > &points, bool relative) const |
Apply translation to the geometry coordinates. More... | |
void | ScalePoints (const double scale, std::vector< Eigen::Vector3d > &points, const Eigen::Vector3d ¢er) const |
Scale the coordinates of all points by the scaling factor scale . More... | |
void | RotatePoints (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &points, const Eigen::Vector3d ¢er) const |
Rotate all points with the rotation matrix R . More... | |
void | RotateNormals (const Eigen::Matrix3d &R, std::vector< Eigen::Vector3d > &normals) const |
Rotate all normals with the rotation matrix R . More... | |
void | RotateCovariances (const Eigen::Matrix3d &R, std::vector< Eigen::Matrix3d > &covariances) const |
Rotate all covariance matrices with the rotation matrix R . More... | |
Protected Member Functions inherited from open3d::geometry::Geometry | |
Geometry (GeometryType type, int dimension) | |
Parameterized Constructor. More... | |
A bounding box that is aligned along the coordinate axes.
The AxisAlignedBoundingBox uses the coordinate axes for bounding box generation. This means that the bounding box is oriented along the coordinate axes.
|
inline |
Default constructor.
Creates an empty Axis Aligned Bounding Box.
|
inline |
Parameterized constructor.
min_bound | Lower bounds of the bounding box for all axes. |
max_bound | Upper bounds of the bounding box for all axes. |
|
inlineoverride |
|
overridevirtual |
Clear all elements in the geometry.
Implements open3d::geometry::Geometry3D.
|
static |
Creates the bounding box that encloses the set of points.
points | A list of points. |
|
overridevirtual |
Returns the object itself.
Implements open3d::geometry::Geometry3D.
std::vector< Eigen::Vector3d > open3d::geometry::AxisAlignedBoundingBox::GetBoxPoints | ( | ) | const |
Returns the eight points that define the bounding box.
|
overridevirtual |
Returns the center of the geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
inline |
Get the extent/length of the bounding box in x, y, and z dimension.
|
inline |
Returns the half extent of the bounding box.
|
overridevirtual |
Returns max bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
inline |
Returns the maximum extent, i.e. the maximum of X, Y and Z axis' extents.
|
overridevirtual |
Returns min bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns an oriented bounding box with the same dimensions and orientation as the object
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns an oriented bounding box with the same dimensions and orientation as the object
Implements open3d::geometry::Geometry3D.
std::vector< size_t > open3d::geometry::AxisAlignedBoundingBox::GetPointIndicesWithinBoundingBox | ( | const std::vector< Eigen::Vector3d > & | points | ) | const |
Return indices to points that are within the bounding box.
points | A list of points. |
std::string open3d::geometry::AxisAlignedBoundingBox::GetPrintInfo | ( | ) | const |
Returns the 3D dimensions of the bounding box in string format.
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Returns true
iff the geometry is empty.
Implements open3d::geometry::Geometry3D.
AxisAlignedBoundingBox & open3d::geometry::AxisAlignedBoundingBox::operator+= | ( | const AxisAlignedBoundingBox & | other | ) |
|
overridevirtual |
an AxisAlignedBoundingBox can not be rotated. This method will throw an error.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Scales the axis-aligned bounding boxes. If \(mi\) is the min_bound and \(ma\) is the max_bound of the axis aligned bounding box, and \(s\) and \(c\) are the provided scaling factor and center respectively, then the new min_bound and max_bound are given by \(mi = c + s (mi - c)\) and \(ma = c + s (ma - c)\).
scale | The scale parameter. |
center | Center used for the scaling operation. |
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply transformation (4x4 matrix) to the geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply translation to the geometry coordinates.
translation | A 3D vector to transform the geometry. |
relative | If true , the translation is directly applied to the geometry. Otherwise, the geometry center is moved to the translation . |
Implements open3d::geometry::Geometry3D.
double open3d::geometry::AxisAlignedBoundingBox::Volume | ( | ) | const |
Returns the volume of the bounding box.
Eigen::Vector3d open3d::geometry::AxisAlignedBoundingBox::color_ |
The color of the bounding box in RGB.
Eigen::Vector3d open3d::geometry::AxisAlignedBoundingBox::max_bound_ |
The upper x, y, z bounds of the bounding box.
Eigen::Vector3d open3d::geometry::AxisAlignedBoundingBox::min_bound_ |
The lower x, y, z bounds of the bounding box.