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

#include <polygon_mesh.h>

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

Public Types

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
 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)
 

Private Attributes

int face_count_ { 0 }
 
std::shared_ptr< const Eigen::VectorXi > faces_
 
std::shared_ptr< MeshMaterialmesh_material_
 
std::shared_ptr< const std::vector< std::shared_ptr< MeshTexture > > > mesh_textures_
 
std::shared_ptr< const tesseract_common::VectorVector3dnormals_
 
std::shared_ptr< const tesseract_common::Resourceresource_
 
Eigen::Vector3d scale_
 
std::shared_ptr< const tesseract_common::VectorVector4dvertex_colors_
 
int vertex_count_ { 0 }
 
std::shared_ptr< const tesseract_common::VectorVector3dvertices_
 

Friends

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

Detailed Description

Definition at line 51 of file polygon_mesh.h.

Member Typedef Documentation

◆ ConstPtr

Definition at line 59 of file polygon_mesh.h.

◆ Ptr

Definition at line 58 of file polygon_mesh.h.

Constructor & Destructor Documentation

◆ PolygonMesh() [1/3]

tesseract_geometry::PolygonMesh::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.

Parameters
verticesA vector of vertices associated with the mesh
facesA vector of face indices, where the first number 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 44 of file polygon_mesh.cpp.

◆ PolygonMesh() [2/3]

tesseract_geometry::PolygonMesh::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.

Parameters
verticesA vector of vertices associated with the mesh
facesA vector of face indices, where the first number 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.
face_countProvide the number of faces. This is faster because it does not need to loop over the faces.
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_materialDescribes the color and material properties of the mesh (optional)
mesh_texturesA vector of MeshTexture to apply to the mesh (optional)

◆ PolygonMesh() [3/3]

tesseract_geometry::PolygonMesh::PolygonMesh ( )
default

◆ ~PolygonMesh()

tesseract_geometry::PolygonMesh::~PolygonMesh ( )
overridedefault

Member Function Documentation

◆ clone()

Geometry::Ptr tesseract_geometry::PolygonMesh::clone ( ) const
overridevirtual

Create a copy of this shape.

Implements tesseract_geometry::Geometry.

Reimplemented in tesseract_geometry::SDFMesh.

Definition at line 119 of file polygon_mesh.cpp.

◆ getFaceCount()

int tesseract_geometry::PolygonMesh::getFaceCount ( ) const

Get face count.

Returns
Number of faces

Definition at line 102 of file polygon_mesh.cpp.

◆ getFaces()

const std::shared_ptr< const Eigen::VectorXi > & tesseract_geometry::PolygonMesh::getFaces ( ) const

Get Polygon mesh faces.

Returns
A vector of face indices

Definition at line 98 of file polygon_mesh.cpp.

◆ getMaterial()

MeshMaterial::ConstPtr tesseract_geometry::PolygonMesh::getMaterial ( ) const

Get material data extracted from the mesh file.

Mesh files contain material information. The mesh parser will extract the material information and store it in a MeshMaterial structure.

Returns
The MeshMaterial data extracted from mesh file

Definition at line 115 of file polygon_mesh.cpp.

◆ getNormals()

const std::shared_ptr< const tesseract_common::VectorVector3d > & tesseract_geometry::PolygonMesh::getNormals ( ) const

Get the vertex normal vectors.

Optional, may be nullptr

Returns
The vertex normal vector

Definition at line 108 of file polygon_mesh.cpp.

◆ getResource()

tesseract_common::Resource::ConstPtr tesseract_geometry::PolygonMesh::getResource ( ) const

Get the path to file used to generate the mesh.

Note: If empty, assume it was manually generated.

Returns
Absolute path to the mesh file

Definition at line 104 of file polygon_mesh.cpp.

◆ getScale()

const Eigen::Vector3d & tesseract_geometry::PolygonMesh::getScale ( ) const

Get the scale applied to file used to generate the mesh.

Returns
The scale x, y, z

Definition at line 106 of file polygon_mesh.cpp.

◆ getTextures()

const std::shared_ptr< const std::vector< MeshTexture::Ptr > > & tesseract_geometry::PolygonMesh::getTextures ( ) const

Get textures extracted from the mesh file.

Mesh files contain (or reference) image files that form textures on the surface of the mesh. UV coordinates specify how the image is applied to the mesh. The MeshTexture structure contains a resource to the image, and the UV coordinates. Currently only jpg and png image formats are supported.

Returns
Vector of mesh textures

Definition at line 117 of file polygon_mesh.cpp.

◆ getVertexColors()

const std::shared_ptr< const tesseract_common::VectorVector4d > & tesseract_geometry::PolygonMesh::getVertexColors ( ) const

Get the vertex colors.

Optional, may be nullptr

Returns
Vertex colors

Definition at line 110 of file polygon_mesh.cpp.

◆ getVertexCount()

int tesseract_geometry::PolygonMesh::getVertexCount ( ) const

Get vertex count.

Returns
Number of vertices

Definition at line 100 of file polygon_mesh.cpp.

◆ getVertices()

const std::shared_ptr< const tesseract_common::VectorVector3d > & tesseract_geometry::PolygonMesh::getVertices ( ) const

Get Polygon mesh vertices.

Returns
A vector of vertices

Definition at line 96 of file polygon_mesh.cpp.

◆ operator!=()

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

Definition at line 134 of file polygon_mesh.cpp.

◆ operator==()

bool tesseract_geometry::PolygonMesh::operator== ( const PolygonMesh rhs) const
Todo:
Finish PolygonMesh == operator

Definition at line 124 of file polygon_mesh.cpp.

◆ serialize()

template<class Archive >
void tesseract_geometry::PolygonMesh::serialize ( Archive &  ar,
const unsigned int  version 
)
private
Todo:
Serialize mesh materials and textures

Definition at line 137 of file polygon_mesh.cpp.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

Definition at line 214 of file polygon_mesh.h.

◆ tesseract_common::Serialization

friend struct tesseract_common::Serialization
friend

Definition at line 215 of file polygon_mesh.h.

Member Data Documentation

◆ face_count_

int tesseract_geometry::PolygonMesh::face_count_ { 0 }
private

Definition at line 206 of file polygon_mesh.h.

◆ faces_

std::shared_ptr<const Eigen::VectorXi> tesseract_geometry::PolygonMesh::faces_
private

Definition at line 203 of file polygon_mesh.h.

◆ mesh_material_

std::shared_ptr<MeshMaterial> tesseract_geometry::PolygonMesh::mesh_material_
private

Definition at line 211 of file polygon_mesh.h.

◆ mesh_textures_

std::shared_ptr<const std::vector<std::shared_ptr<MeshTexture> > > tesseract_geometry::PolygonMesh::mesh_textures_
private

Definition at line 212 of file polygon_mesh.h.

◆ normals_

std::shared_ptr<const tesseract_common::VectorVector3d> tesseract_geometry::PolygonMesh::normals_
private

Definition at line 209 of file polygon_mesh.h.

◆ resource_

std::shared_ptr<const tesseract_common::Resource> tesseract_geometry::PolygonMesh::resource_
private

Definition at line 207 of file polygon_mesh.h.

◆ scale_

Eigen::Vector3d tesseract_geometry::PolygonMesh::scale_
private

Definition at line 208 of file polygon_mesh.h.

◆ vertex_colors_

std::shared_ptr<const tesseract_common::VectorVector4d> tesseract_geometry::PolygonMesh::vertex_colors_
private

Definition at line 210 of file polygon_mesh.h.

◆ vertex_count_

int tesseract_geometry::PolygonMesh::vertex_count_ { 0 }
private

Definition at line 205 of file polygon_mesh.h.

◆ vertices_

std::shared_ptr<const tesseract_common::VectorVector3d> tesseract_geometry::PolygonMesh::vertices_
private

Definition at line 202 of file polygon_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