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

#include <TetraMesh.h>

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

Public Member Functions

 TetraMesh ()
 
 ~TetraMesh () override
 
TetraMeshClear () 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
 
TetraMeshTransform (const Eigen::Matrix4d &transformation) override
 
TetraMeshTranslate (const Eigen::Vector3d &translation, bool relative=true) override
 
TetraMeshScale (const double scale, bool center=true) override
 
TetraMeshRotate (const Eigen::Vector3d &rotation, bool center=true, RotationType type=RotationType::XYZ) override
 
TetraMeshoperator+= (const TetraMesh &mesh)
 
TetraMesh operator+ (const TetraMesh &mesh) const
 
TetraMeshRemoveDuplicatedVertices ()
 
TetraMeshRemoveDuplicatedTetras ()
 
TetraMeshRemoveUnreferencedVertices ()
 
TetraMeshRemoveDegenerateTetras ()
 
bool HasVertices () const
 
bool HasTetras () const
 
std::shared_ptr< TriangleMeshExtractTriangleMesh (const std::vector< double > &values, double level)
 
- 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< TetraMeshCreateFromPointCloud (const PointCloud &point_cloud)
 

Data Fields

std::vector< Eigen::Vector3d > vertices_
 
std::vector< Eigen::Vector4i, utility::Vector4i_allocatortetras_
 

Protected Member Functions

 TetraMesh (Geometry::GeometryType type)
 
- 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)
 

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
}
 

Constructor & Destructor Documentation

◆ TetraMesh() [1/2]

open3d::geometry::TetraMesh::TetraMesh ( )
inline

◆ ~TetraMesh()

open3d::geometry::TetraMesh::~TetraMesh ( )
inlineoverride

◆ TetraMesh() [2/2]

open3d::geometry::TetraMesh::TetraMesh ( Geometry::GeometryType  type)
inlineprotected

Member Function Documentation

◆ Clear()

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

◆ CreateFromPointCloud()

std::shared_ptr< TetraMesh > open3d::geometry::TetraMesh::CreateFromPointCloud ( const PointCloud point_cloud)
static

Function that creates a tetrahedral mesh (TetraMeshFactory.cpp). from a point cloud. The method creates the Delaunay triangulation using the implementation from Qhull.

◆ ExtractTriangleMesh()

std::shared_ptr< TriangleMesh > open3d::geometry::TetraMesh::ExtractTriangleMesh ( const std::vector< double > &  values,
double  level 
)

Function to extract a triangle mesh of the specified iso-surface at

Parameters
level.
valuesare values per-vertex. This method applies primal contouring and generates triangles for each tetrahedron.

◆ GetAxisAlignedBoundingBox()

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

◆ GetCenter()

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

◆ GetMaxBound()

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

◆ GetMinBound()

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

◆ GetOrientedBoundingBox()

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

◆ HasTetras()

bool open3d::geometry::TetraMesh::HasTetras ( ) const
inline

◆ HasVertices()

bool open3d::geometry::TetraMesh::HasVertices ( ) const
inline

◆ IsEmpty()

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

◆ operator+()

TetraMesh open3d::geometry::TetraMesh::operator+ ( const TetraMesh mesh) const

◆ operator+=()

TetraMesh & open3d::geometry::TetraMesh::operator+= ( const TetraMesh mesh)

◆ RemoveDegenerateTetras()

TetraMesh & open3d::geometry::TetraMesh::RemoveDegenerateTetras ( )

Function that removes degenerate tetrahedra, i.e., tetrahedra that reference a single vertex multiple times in a single tetrahedron. They are usually the product of removing duplicated vertices.

◆ RemoveDuplicatedTetras()

TetraMesh & open3d::geometry::TetraMesh::RemoveDuplicatedTetras ( )

Function that removes duplicated tetrahedra, i.e., removes tetrahedra that reference the same four vertices, independent of their order.

◆ RemoveDuplicatedVertices()

TetraMesh & open3d::geometry::TetraMesh::RemoveDuplicatedVertices ( )

Function that removes duplicated verties, i.e., vertices that have identical coordinates.

◆ RemoveUnreferencedVertices()

TetraMesh & open3d::geometry::TetraMesh::RemoveUnreferencedVertices ( )

This function removes vertices from the tetra mesh that are not referenced in any tetrahedron of the mesh.

◆ Rotate()

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

◆ Scale()

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

◆ Transform()

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

◆ Translate()

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

Field Documentation

◆ tetras_

std::vector<Eigen::Vector4i, utility::Vector4i_allocator> open3d::geometry::TetraMesh::tetras_

◆ vertices_

std::vector<Eigen::Vector3d> open3d::geometry::TetraMesh::vertices_

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