Public Types | Public Member Functions | Private Member Functions | Friends | List of all members
tesseract_geometry::Mesh Class Reference

#include <mesh.h>

Inheritance diagram for tesseract_geometry::Mesh:
Inheritance graph
[legend]

Public Types

using ConstPtr = std::shared_ptr< const Mesh >
 
using Ptr = std::shared_ptr< Mesh >
 
- Public Types inherited from tesseract_geometry::PolygonMesh
using ConstPtr = std::shared_ptr< const PolygonMesh >
 
using Ptr = std::shared_ptr< PolygonMesh >
 
- Public Types inherited from tesseract_geometry::Geometry
using ConstPtr = std::shared_ptr< const Geometry >
 
using Ptr = std::shared_ptr< Geometry >
 

Public Member Functions

Geometry::Ptr clone () const override final
 Create a copy of this shape. More...
 
 Mesh ()=default
 
 Mesh (std::shared_ptr< const tesseract_common::VectorVector3d > vertices, std::shared_ptr< const Eigen::VectorXi > triangles, int triangle_count, std::shared_ptr< const tesseract_common::Resource > resource=nullptr, const Eigen::Vector3d &scale=Eigen::Vector3d(1, 1, 1), std::shared_ptr< const tesseract_common::VectorVector3d > normals=nullptr, std::shared_ptr< const tesseract_common::VectorVector4d > vertex_colors=nullptr, std::shared_ptr< MeshMaterial > mesh_material=nullptr, std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>> mesh_textures=nullptr)
 Mesh geometry. More...
 
 Mesh (std::shared_ptr< const tesseract_common::VectorVector3d > vertices, std::shared_ptr< const Eigen::VectorXi > triangles, std::shared_ptr< const tesseract_common::Resource > resource=nullptr, const Eigen::Vector3d &scale=Eigen::Vector3d(1, 1, 1), std::shared_ptr< const tesseract_common::VectorVector3d > normals=nullptr, std::shared_ptr< const tesseract_common::VectorVector4d > vertex_colors=nullptr, std::shared_ptr< MeshMaterial > mesh_material=nullptr, std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>> mesh_textures=nullptr)
 Mesh geometry. More...
 
bool operator!= (const Mesh &rhs) const
 
bool operator== (const Mesh &rhs) const
 
 ~Mesh () override=default
 
- Public Member Functions inherited from tesseract_geometry::PolygonMesh
Geometry::Ptr clone () const override
 Create a copy of this shape. More...
 
int getFaceCount () const
 Get face count. More...
 
const std::shared_ptr< const Eigen::VectorXi > & getFaces () const
 Get Polygon mesh faces. More...
 
std::shared_ptr< const MeshMaterialgetMaterial () const
 Get material data extracted from the mesh file. More...
 
const std::shared_ptr< const tesseract_common::VectorVector3d > & getNormals () const
 Get the vertex normal vectors. More...
 
std::shared_ptr< const tesseract_common::ResourcegetResource () const
 Get the path to file used to generate the mesh. More...
 
const Eigen::Vector3d & getScale () const
 Get the scale applied to file used to generate the mesh. More...
 
const std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture > > > & getTextures () const
 Get textures extracted from the mesh file. More...
 
const std::shared_ptr< const tesseract_common::VectorVector4d > & getVertexColors () const
 Get the vertex colors. More...
 
int getVertexCount () const
 Get vertex count. More...
 
const std::shared_ptr< const tesseract_common::VectorVector3d > & getVertices () const
 Get Polygon mesh vertices. More...
 
bool operator!= (const PolygonMesh &rhs) const
 
bool operator== (const PolygonMesh &rhs) const
 
 PolygonMesh ()=default
 
 PolygonMesh (std::shared_ptr< const tesseract_common::VectorVector3d > vertices, std::shared_ptr< const Eigen::VectorXi > faces, int face_count, std::shared_ptr< const tesseract_common::Resource > resource=nullptr, const Eigen::Vector3d &scale=Eigen::Vector3d(1, 1, 1), std::shared_ptr< const tesseract_common::VectorVector3d > normals=nullptr, std::shared_ptr< const tesseract_common::VectorVector4d > vertex_colors=nullptr, std::shared_ptr< MeshMaterial > mesh_material=nullptr, std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>> mesh_textures=nullptr, GeometryType type=GeometryType::POLYGON_MESH)
 Polygon Mesh geometry. More...
 
 PolygonMesh (std::shared_ptr< const tesseract_common::VectorVector3d > vertices, std::shared_ptr< const Eigen::VectorXi > faces, std::shared_ptr< const tesseract_common::Resource > resource=nullptr, const Eigen::Vector3d &scale=Eigen::Vector3d(1, 1, 1), std::shared_ptr< const tesseract_common::VectorVector3d > normals=nullptr, std::shared_ptr< const tesseract_common::VectorVector4d > vertex_colors=nullptr, std::shared_ptr< MeshMaterial > mesh_material=nullptr, std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>> mesh_textures=nullptr, GeometryType type=GeometryType::POLYGON_MESH)
 Polygon Mesh geometry. More...
 
 ~PolygonMesh () override=default
 
- Public Member Functions inherited from tesseract_geometry::Geometry
 Geometry (const Geometry &)=default
 
 Geometry (Geometry &&)=default
 
 Geometry (GeometryType type=GeometryType::UNINITIALIZED)
 
GeometryType getType () const
 Get the geometry type. More...
 
const boost::uuids::uuid & getUUID () const
 Get the geometry UUID. More...
 
bool operator!= (const Geometry &rhs) const
 
Geometryoperator= (const Geometry &)=default
 
Geometryoperator= (Geometry &&)=default
 
bool operator== (const Geometry &rhs) const
 
void setUUID (const boost::uuids::uuid &uuid)
 Set the geometry UUID. More...
 
virtual ~Geometry ()=default
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Friends

class boost::serialization::access
 
struct tesseract_common::Serialization
 

Detailed Description

Definition at line 45 of file mesh.h.

Member Typedef Documentation

◆ ConstPtr

using tesseract_geometry::Mesh::ConstPtr = std::shared_ptr<const Mesh>

Definition at line 53 of file mesh.h.

◆ Ptr

using tesseract_geometry::Mesh::Ptr = std::shared_ptr<Mesh>

Definition at line 52 of file mesh.h.

Constructor & Destructor Documentation

◆ Mesh() [1/3]

tesseract_geometry::Mesh::Mesh ( std::shared_ptr< const tesseract_common::VectorVector3d vertices,
std::shared_ptr< const Eigen::VectorXi >  triangles,
std::shared_ptr< const tesseract_common::Resource resource = nullptr,
const Eigen::Vector3d &  scale = Eigen::Vector3d(1, 1, 1),
std::shared_ptr< const tesseract_common::VectorVector3d normals = nullptr,
std::shared_ptr< const tesseract_common::VectorVector4d vertex_colors = nullptr,
std::shared_ptr< MeshMaterial mesh_material = nullptr,
std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>>  mesh_textures = nullptr 
)

Mesh geometry.

Parameters
verticesA vector of vertices associated with the mesh
trianglesA vector of face indices where the first index indicates the number of vertices associated with the face followed by the vertex index in parameter vertices. For example a triangle has three vertices so there should be four inputs where the first should be 3 indicating there are three vertices that define this face followed by three indices.
resourceA resource locator for locating resource
scaleScale the mesh
normalsA vector of normals for the vertices (optional)
vertex_colorsA vector of colors (RGBA) for the vertices (optional)
mesh_materialA MeshMaterial describing the color and material properties of the mesh (optional)
mesh_texturesA vector of MeshTexture to apply to the mesh (optional)

Definition at line 38 of file mesh.cpp.

◆ Mesh() [2/3]

tesseract_geometry::Mesh::Mesh ( std::shared_ptr< const tesseract_common::VectorVector3d vertices,
std::shared_ptr< const Eigen::VectorXi >  triangles,
int  triangle_count,
std::shared_ptr< const tesseract_common::Resource resource = nullptr,
const Eigen::Vector3d &  scale = Eigen::Vector3d(1, 1, 1),
std::shared_ptr< const tesseract_common::VectorVector3d normals = nullptr,
std::shared_ptr< const tesseract_common::VectorVector4d vertex_colors = nullptr,
std::shared_ptr< MeshMaterial mesh_material = nullptr,
std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture >>>  mesh_textures = nullptr 
)

Mesh geometry.

Parameters
verticesA vector of vertices associated with the mesh
trianglesA vector of face indices where the first index indicates the number of vertices associated with the face followed by the vertex index in parameter vertices. For example a triangle has three vertices so there should be four inputs where the first should be 3 indicating there are three vertices that define this face followed by three indices.
triangle_countProvide the number of faces. This is faster because it does not need to loop over triangles.
resourceA resource locator for locating resource
scaleScale the resource mesh. The stored mesh data will already be scaled but if using the resource use this.
normalsA vector of normals for the vertices (optional)
vertex_colorsA vector of colors (RGBA) for the vertices (optional)
mesh_materialA MeshMaterial describing the color and material properties of the mesh (optional)
mesh_texturesA vector of MeshTexture to apply to the mesh (optional)

Definition at line 60 of file mesh.cpp.

◆ Mesh() [3/3]

tesseract_geometry::Mesh::Mesh ( )
default

◆ ~Mesh()

tesseract_geometry::Mesh::~Mesh ( )
overridedefault

Member Function Documentation

◆ clone()

Geometry::Ptr tesseract_geometry::Mesh::clone ( ) const
finaloverridevirtual

Create a copy of this shape.

Implements tesseract_geometry::Geometry.

Definition at line 84 of file mesh.cpp.

◆ operator!=()

bool tesseract_geometry::Mesh::operator!= ( const Mesh rhs) const

Definition at line 121 of file mesh.cpp.

◆ operator==()

bool tesseract_geometry::Mesh::operator== ( const Mesh rhs) const

Definition at line 115 of file mesh.cpp.

◆ serialize()

template<class Archive >
void tesseract_geometry::Mesh::serialize ( Archive &  ar,
const unsigned int  version 
)
private

Definition at line 124 of file mesh.cpp.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 112 of file mesh.h.

◆ tesseract_common::Serialization

friend struct tesseract_common::Serialization
friend

Definition at line 113 of file mesh.h.


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


tesseract_geometry
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:46