Open3D (C++ API)
0.18.0+3975044
|
A bounding box that is aligned along the coordinate axes and defined by the min_bound and max_bound. 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 and defined by the min_bound and max_bound.
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.
open3d::geometry::AxisAlignedBoundingBox::AxisAlignedBoundingBox | ( | const Eigen::Vector3d & | min_bound, |
const Eigen::Vector3d & | max_bound | ||
) |
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 |
Calculates the percentage position of the given x-coordinate within the x-axis range of this AxisAlignedBoundingBox.
|
inline |
Calculates the percentage position of the given y-coordinate within the y-axis range of this AxisAlignedBoundingBox.
|
inline |
Calculates the percentage position of the given z-coordinate within the z-axis range of this AxisAlignedBoundingBox.
|
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.