Open3D (C++ API)
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Public Member Functions | Static Public Member Functions | Data Fields
open3d::geometry::VoxelGrid Class Reference

#include <VoxelGrid.h>

Inheritance diagram for open3d::geometry::VoxelGrid:
open3d::geometry::Geometry3D open3d::geometry::Geometry

Public Member Functions

 VoxelGrid ()
 
 VoxelGrid (const VoxelGrid &src_voxel_grid)
 
 ~VoxelGrid () override
 
VoxelGridClear () override
 
bool IsEmpty () const override
 
Eigen::Vector3d GetMinBound () const override
 
Eigen::Vector3d GetMaxBound () const override
 
Eigen::Vector3d GetCenter () const override
 
AxisAlignedBoundingBox GetAxisAlignedBoundingBox () const override
 
OrientedBoundingBox GetOrientedBoundingBox () const override
 
VoxelGridTransform (const Eigen::Matrix4d &transformation) override
 
VoxelGridTranslate (const Eigen::Vector3d &translation, bool relative=true) override
 
VoxelGridScale (const double scale, bool center=true) override
 
VoxelGridRotate (const Eigen::Vector3d &rotation, bool center=true, RotationType type=RotationType::XYZ) override
 
VoxelGridoperator+= (const VoxelGrid &voxelgrid)
 
VoxelGrid operator+ (const VoxelGrid &voxelgrid) const
 
bool HasVoxels () const
 
bool HasColors () const
 
Eigen::Vector3i GetVoxel (const Eigen::Vector3d &point) const
 
Eigen::Vector3d GetVoxelCenterCoordinate (int idx) const
 
std::vector< Eigen::Vector3d > GetVoxelBoundingPoints (int index) const
 Return a vector of 3D coordinates that define the indexed voxel cube. More...
 
VoxelGridCarveDepthMap (const Image &depth_map, const camera::PinholeCameraParameters &camera_parameter)
 
VoxelGridCarveSilhouette (const Image &silhouette_mask, const camera::PinholeCameraParameters &camera_parameter)
 
void CreateFromOctree (const Octree &octree)
 
std::shared_ptr< geometry::OctreeToOctree (const size_t &max_depth) const
 
- Public Member Functions inherited from open3d::geometry::Geometry3D
 ~Geometry3D () override
 
- Public Member Functions inherited from open3d::geometry::Geometry
virtual ~Geometry ()
 
GeometryType GetGeometryType () const
 
int Dimension () const
 

Static Public Member Functions

static std::shared_ptr< VoxelGridCreateDense (const Eigen::Vector3d &origin, double voxel_size, double width, double height, double depth)
 
static std::shared_ptr< VoxelGridCreateFromPointCloud (const PointCloud &input, double voxel_size)
 
static std::shared_ptr< VoxelGridCreateFromPointCloudWithinBounds (const PointCloud &input, double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound)
 
static std::shared_ptr< VoxelGridCreateFromTriangleMesh (const TriangleMesh &input, double voxel_size)
 
static std::shared_ptr< VoxelGridCreateFromTriangleMeshWithinBounds (const TriangleMesh &input, double voxel_size, const Eigen::Vector3d &min_bound, const Eigen::Vector3d &max_bound)
 

Data Fields

double voxel_size_
 
Eigen::Vector3d origin_
 
std::vector< Voxelvoxels_
 

Additional Inherited Members

- Public Types inherited from open3d::geometry::Geometry3D
enum  RotationType {
  RotationType::XYZ, RotationType::YZX, RotationType::ZXY, RotationType::XZY,
  RotationType::ZYX, RotationType::YXZ, RotationType::AxisAngle
}
 
- Public Types inherited from open3d::geometry::Geometry
enum  GeometryType {
  GeometryType::Unspecified = 0, GeometryType::PointCloud = 1, GeometryType::VoxelGrid = 2, GeometryType::Octree = 3,
  GeometryType::LineSet = 4, GeometryType::TriangleMesh = 5, GeometryType::HalfEdgeTriangleMesh = 6, GeometryType::Image = 7,
  GeometryType::RGBDImage = 8, GeometryType::TetraMesh = 9, GeometryType::OrientedBoundingBox = 10, GeometryType::AxisAlignedBoundingBox = 11
}
 
- Protected Member Functions inherited from open3d::geometry::Geometry3D
 Geometry3D (GeometryType type)
 
Eigen::Vector3d ComputeMinBound (const std::vector< Eigen::Vector3d > &points) const
 
Eigen::Vector3d ComputeMaxBound (const std::vector< Eigen::Vector3d > &points) const
 
Eigen::Vector3d ComputeCenter (const std::vector< Eigen::Vector3d > &points) const
 
void ResizeAndPaintUniformColor (std::vector< Eigen::Vector3d > &colors, const size_t size, const Eigen::Vector3d &color) const
 
void TransformPoints (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &points) const
 
void TransformNormals (const Eigen::Matrix4d &transformation, std::vector< Eigen::Vector3d > &normals) const
 
void TranslatePoints (const Eigen::Vector3d &translation, std::vector< Eigen::Vector3d > &points, bool relative) const
 
void ScalePoints (const double scale, std::vector< Eigen::Vector3d > &points, bool center) const
 
void RotatePoints (const Eigen::Vector3d &rotation, std::vector< Eigen::Vector3d > &points, bool center, RotationType type) const
 
void RotateNormals (const Eigen::Vector3d &rotation, std::vector< Eigen::Vector3d > &normals, bool center, RotationType type) const
 
Eigen::Matrix3d GetRotationMatrix (const Eigen::Vector3d &rotation, RotationType type=RotationType::XYZ) const
 
- Protected Member Functions inherited from open3d::geometry::Geometry
 Geometry (GeometryType type, int dimension)
 

Constructor & Destructor Documentation

◆ VoxelGrid() [1/2]

open3d::geometry::VoxelGrid::VoxelGrid ( )
inline

◆ VoxelGrid() [2/2]

open3d::geometry::VoxelGrid::VoxelGrid ( const VoxelGrid src_voxel_grid)

◆ ~VoxelGrid()

open3d::geometry::VoxelGrid::~VoxelGrid ( )
inlineoverride

Member Function Documentation

◆ CarveDepthMap()

VoxelGrid & open3d::geometry::VoxelGrid::CarveDepthMap ( const Image depth_map,
const camera::PinholeCameraParameters camera_parameter 
)

Remove all voxels from the VoxelGrid where none of the boundary points of the voxel projects to depth value that is smaller, or equal than the projected depth of the boundary point. The point is not carved if none of the boundary points of the voxel projects to a valid image location.

◆ CarveSilhouette()

VoxelGrid & open3d::geometry::VoxelGrid::CarveSilhouette ( const Image silhouette_mask,
const camera::PinholeCameraParameters camera_parameter 
)

Remove all voxels from the VoxelGrid where none of the boundary points of the voxel projects to a valid mask pixel (pixel value > 0). The point is not carved if none of the boundary points of the voxel projects to a valid image location.

◆ Clear()

VoxelGrid & open3d::geometry::VoxelGrid::Clear ( )
overridevirtual

◆ CreateDense()

std::shared_ptr< VoxelGrid > open3d::geometry::VoxelGrid::CreateDense ( const Eigen::Vector3d &  origin,
double  voxel_size,
double  width,
double  height,
double  depth 
)
static

◆ CreateFromOctree()

void open3d::geometry::VoxelGrid::CreateFromOctree ( const Octree octree)

◆ CreateFromPointCloud()

std::shared_ptr< VoxelGrid > open3d::geometry::VoxelGrid::CreateFromPointCloud ( const PointCloud input,
double  voxel_size 
)
static

◆ CreateFromPointCloudWithinBounds()

std::shared_ptr< VoxelGrid > open3d::geometry::VoxelGrid::CreateFromPointCloudWithinBounds ( const PointCloud input,
double  voxel_size,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound 
)
static

◆ CreateFromTriangleMesh()

std::shared_ptr< VoxelGrid > open3d::geometry::VoxelGrid::CreateFromTriangleMesh ( const TriangleMesh input,
double  voxel_size 
)
static

◆ CreateFromTriangleMeshWithinBounds()

std::shared_ptr< VoxelGrid > open3d::geometry::VoxelGrid::CreateFromTriangleMeshWithinBounds ( const TriangleMesh input,
double  voxel_size,
const Eigen::Vector3d &  min_bound,
const Eigen::Vector3d &  max_bound 
)
static

◆ GetAxisAlignedBoundingBox()

AxisAlignedBoundingBox open3d::geometry::VoxelGrid::GetAxisAlignedBoundingBox ( ) const
overridevirtual

◆ GetCenter()

Eigen::Vector3d open3d::geometry::VoxelGrid::GetCenter ( ) const
overridevirtual

◆ GetMaxBound()

Eigen::Vector3d open3d::geometry::VoxelGrid::GetMaxBound ( ) const
overridevirtual

◆ GetMinBound()

Eigen::Vector3d open3d::geometry::VoxelGrid::GetMinBound ( ) const
overridevirtual

◆ GetOrientedBoundingBox()

OrientedBoundingBox open3d::geometry::VoxelGrid::GetOrientedBoundingBox ( ) const
overridevirtual

◆ GetVoxel()

Eigen::Vector3i open3d::geometry::VoxelGrid::GetVoxel ( const Eigen::Vector3d &  point) const

◆ GetVoxelBoundingPoints()

std::vector< Eigen::Vector3d > open3d::geometry::VoxelGrid::GetVoxelBoundingPoints ( int  index) const

Return a vector of 3D coordinates that define the indexed voxel cube.

◆ GetVoxelCenterCoordinate()

Eigen::Vector3d open3d::geometry::VoxelGrid::GetVoxelCenterCoordinate ( int  idx) const
inline

◆ HasColors()

bool open3d::geometry::VoxelGrid::HasColors ( ) const
inline

◆ HasVoxels()

bool open3d::geometry::VoxelGrid::HasVoxels ( ) const
inline

◆ IsEmpty()

bool open3d::geometry::VoxelGrid::IsEmpty ( ) const
overridevirtual

◆ operator+()

VoxelGrid open3d::geometry::VoxelGrid::operator+ ( const VoxelGrid voxelgrid) const

◆ operator+=()

VoxelGrid & open3d::geometry::VoxelGrid::operator+= ( const VoxelGrid voxelgrid)

◆ Rotate()

VoxelGrid & open3d::geometry::VoxelGrid::Rotate ( const Eigen::Vector3d &  rotation,
bool  center = true,
RotationType  type = RotationType::XYZ 
)
overridevirtual

◆ Scale()

VoxelGrid & open3d::geometry::VoxelGrid::Scale ( const double  scale,
bool  center = true 
)
overridevirtual

◆ ToOctree()

std::shared_ptr< geometry::Octree > open3d::geometry::VoxelGrid::ToOctree ( const size_t &  max_depth) const

◆ Transform()

VoxelGrid & open3d::geometry::VoxelGrid::Transform ( const Eigen::Matrix4d &  transformation)
overridevirtual

◆ Translate()

VoxelGrid & open3d::geometry::VoxelGrid::Translate ( const Eigen::Vector3d &  translation,
bool  relative = true 
)
overridevirtual

Field Documentation

◆ origin_

Eigen::Vector3d open3d::geometry::VoxelGrid::origin_

◆ voxel_size_

double open3d::geometry::VoxelGrid::voxel_size_

◆ voxels_

std::vector<Voxel> open3d::geometry::VoxelGrid::voxels_

The documentation for this class was generated from the following files: