|
Open3D (C++ API)
0.19.0
|
#include <BoundingVolume.h>
Public Member Functions | |
| OrientedBoundingEllipsoid () | |
| Default constructor. More... | |
| OrientedBoundingEllipsoid (const Eigen::Vector3d ¢er, const Eigen::Matrix3d &R, const Eigen::Vector3d &radii) | |
| Parameterized constructor. More... | |
| ~OrientedBoundingEllipsoid () override | |
| OrientedBoundingEllipsoid & | 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 |
| Creates an axis-aligned bounding box around the object. More... | |
| virtual OrientedBoundingBox | GetOrientedBoundingBox (bool robust) const override |
| Returns an oriented bounding box around the ellipsoid. More... | |
| virtual OrientedBoundingBox | GetMinimalOrientedBoundingBox (bool robust) const override |
| Returns an oriented bounding box around the ellipsoid. More... | |
| virtual OrientedBoundingEllipsoid & | Transform (const Eigen::Matrix4d &transformation) override |
| Apply transformation (4x4 matrix) to the geometry coordinates. More... | |
| virtual OrientedBoundingEllipsoid & | Translate (const Eigen::Vector3d &translation, bool relative=true) override |
| Apply translation to the geometry coordinates. More... | |
| virtual OrientedBoundingEllipsoid & | Scale (const double scale, const Eigen::Vector3d ¢er) override |
| Apply scaling to the geometry coordinates. Given a scaling factor \(s\), and center \(c\), a given point \(p\) is transformed according to \(s (p - c) + c\). More... | |
| virtual OrientedBoundingEllipsoid & | Rotate (const Eigen::Matrix3d &R, const Eigen::Vector3d ¢er) override |
| Apply rotation to the geometry coordinates and normals. Given a rotation matrix \(R\), and center \(c\), a given point \(p\) is transformed according to \(R (p - c) + c\). More... | |
| double | Volume () const |
| Returns the volume of the bounding box. More... | |
| std::vector< Eigen::Vector3d > | GetEllipsoidPoints () const |
| std::vector< size_t > | GetPointIndicesWithinBoundingEllipsoid (const std::vector< Eigen::Vector3d > &points) const |
| Return indices to points that are within the bounding ellipsoid. 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 OrientedBoundingEllipsoid | CreateFromPoints (const std::vector< Eigen::Vector3d > &points, bool robust=false) |
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 | center_ |
| The center point of the bounding ellipsoid. More... | |
| Eigen::Matrix3d | R_ |
| Eigen::Vector3d | radii_ |
| The radii of the bounding ellipsoid in its frame of reference. More... | |
| Eigen::Vector3d | color_ |
| The color of the bounding ellipsoid 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 , OrientedBoundingEllipsoid = 13 } |
| 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... | |
|
inline |
Default constructor.
Creates an empty Oriented Bounding Ellipsoid.
|
inline |
Parameterized constructor.
| center | Specifies the center position of the bounding ellipsoid. |
| R | The rotation matrix specifying the orientation of the bounding ellipsoid with the original frame of reference. |
| radii | The radii of the bounding ellipsoid. |
|
inlineoverride |
|
overridevirtual |
Clear all elements in the geometry.
Implements open3d::geometry::Geometry3D.
|
static |
Creates an oriented bounding ellipsoid using a PCA. Note, that this is only an approximation to the minimum oriented bounding box that could be computed for example with O'Rourke's algorithm (cf. http://cs.smith.edu/~jorourke/Papers/MinVolBox.pdf, https://www.geometrictools.com/Documentation/MinimumVolumeBox.pdf)
| points | The input points |
| robust | If set to true uses a more robust method which works in degenerate cases but introduces noise to the points coordinates. |
|
overridevirtual |
Creates an axis-aligned bounding box around the object.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns the center of the geometry coordinates.
Implements open3d::geometry::Geometry3D.
| std::vector< Eigen::Vector3d > open3d::geometry::OrientedBoundingEllipsoid::GetEllipsoidPoints | ( | ) | const |
Returns the six critical points of the bounding ellipsoid.
* ------- x * /| * / | * / | z * y * 2 * .--|---. * .--' | '--. * .--' | '--. * .' | 4 '. * / | / \ * / | / \ * 0 |------------------|-------------------| 1 * \ / | / * \ / | / * '. 5 | .' * '--. | .--' * '--. | .--' * '--|---' * 3 *
|
overridevirtual |
Returns max bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns min bounds for geometry coordinates.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns an oriented bounding box around the ellipsoid.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Returns an oriented bounding box around the ellipsoid.
Implements open3d::geometry::Geometry3D.
| std::vector<size_t> open3d::geometry::OrientedBoundingEllipsoid::GetPointIndicesWithinBoundingEllipsoid | ( | const std::vector< Eigen::Vector3d > & | points | ) | const |
Return indices to points that are within the bounding ellipsoid.
|
overridevirtual |
Returns true iff the geometry is empty.
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply rotation to the geometry coordinates and normals. Given a rotation matrix \(R\), and center \(c\), a given point \(p\) is transformed according to \(R (p - c) + c\).
| R | A 3x3 rotation matrix |
| center | Rotation center that is used for the rotation. |
Implements open3d::geometry::Geometry3D.
|
overridevirtual |
Apply scaling to the geometry coordinates. Given a scaling factor \(s\), and center \(c\), a given point \(p\) is transformed according to \(s (p - c) + c\).
| scale | The scale parameter that is multiplied to the points/vertices of the geometry. |
| center | Scale center that is used to resize the geometry. |
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::OrientedBoundingEllipsoid::Volume | ( | ) | const |
Returns the volume of the bounding box.
| Eigen::Vector3d open3d::geometry::OrientedBoundingEllipsoid::center_ |
The center point of the bounding ellipsoid.
| Eigen::Vector3d open3d::geometry::OrientedBoundingEllipsoid::color_ |
The color of the bounding ellipsoid in RGB.
| Eigen::Matrix3d open3d::geometry::OrientedBoundingEllipsoid::R_ |
The rotation matrix of the bounding ellipsoid to transform the original frame of reference to the frame of this ellipsoid.
| Eigen::Vector3d open3d::geometry::OrientedBoundingEllipsoid::radii_ |
The radii of the bounding ellipsoid in its frame of reference.