convex_mesh.h
Go to the documentation of this file.
1 
26 #ifndef TESSERACT_GEOMETRY_CONVEX_MESH_H
27 #define TESSERACT_GEOMETRY_CONVEX_MESH_H
28 
31 #include <boost/serialization/export.hpp>
32 #include <Eigen/Geometry>
33 #include <memory>
35 
37 
38 namespace boost::serialization
39 {
40 class access;
41 }
42 
43 namespace tesseract_geometry
44 {
45 class ConvexMesh : public PolygonMesh
46 {
47 public:
48  // LCOV_EXCL_START
49  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
50  // LCOV_EXCL_STOP
51 
52  using Ptr = std::shared_ptr<ConvexMesh>;
53  using ConstPtr = std::shared_ptr<const ConvexMesh>;
54 
55  enum CreationMethod : std::uint8_t
56  {
60  };
61 
77  ConvexMesh(std::shared_ptr<const tesseract_common::VectorVector3d> vertices,
78  std::shared_ptr<const Eigen::VectorXi> faces,
79  std::shared_ptr<const tesseract_common::Resource> resource = nullptr,
80  const Eigen::Vector3d& scale = Eigen::Vector3d(1, 1, 1),
81  std::shared_ptr<const tesseract_common::VectorVector3d> normals = nullptr,
82  std::shared_ptr<const tesseract_common::VectorVector4d> vertex_colors = nullptr,
83  std::shared_ptr<MeshMaterial> mesh_material = nullptr,
84  std::shared_ptr<const std::vector<std::shared_ptr<MeshTexture>>> mesh_textures = nullptr);
85 
103  ConvexMesh(std::shared_ptr<const tesseract_common::VectorVector3d> vertices,
104  std::shared_ptr<const Eigen::VectorXi> faces,
105  int face_count,
106  std::shared_ptr<const tesseract_common::Resource> resource = nullptr,
107  const Eigen::Vector3d& scale = Eigen::Vector3d(1, 1, 1),
108  std::shared_ptr<const tesseract_common::VectorVector3d> normals = nullptr,
109  std::shared_ptr<const tesseract_common::VectorVector4d> vertex_colors = nullptr,
110  std::shared_ptr<MeshMaterial> mesh_material = nullptr,
111  std::shared_ptr<const std::vector<std::shared_ptr<MeshTexture>>> mesh_textures = nullptr);
112 
113  ConvexMesh() = default;
114  ~ConvexMesh() override = default;
115 
122 
128  void setCreationMethod(CreationMethod method);
129 
130  Geometry::Ptr clone() const override;
131 
132  bool operator==(const ConvexMesh& rhs) const;
133  bool operator!=(const ConvexMesh& rhs) const;
134 
135 private:
137 
140  template <class Archive>
141  void serialize(Archive& ar, const unsigned int version); // NOLINT
142 };
143 } // namespace tesseract_geometry
144 
145 BOOST_CLASS_EXPORT_KEY(tesseract_geometry::ConvexMesh)
146 #endif
tesseract_geometry::ConvexMesh::creation_method_
CreationMethod creation_method_
Definition: convex_mesh.h:136
tesseract_geometry::ConvexMesh::MESH
@ MESH
Definition: convex_mesh.h:58
tesseract_geometry::ConvexMesh
Definition: convex_mesh.h:45
tesseract_geometry::ConvexMesh::ConvexMesh
ConvexMesh()=default
tesseract_geometry::Geometry::Ptr
std::shared_ptr< Geometry > Ptr
Definition: geometry.h:72
tesseract_geometry::ConvexMesh::DEFAULT
@ DEFAULT
Definition: convex_mesh.h:57
tesseract_geometry::ConvexMesh::access
friend class boost::serialization::access
Definition: convex_mesh.h:138
tesseract_geometry::ConvexMesh::setCreationMethod
void setCreationMethod(CreationMethod method)
Set the method used to create the convex mesh.
Definition: convex_mesh.cpp:82
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
tesseract_geometry::ConvexMesh::~ConvexMesh
~ConvexMesh() override=default
tesseract_geometry::ConvexMesh::CreationMethod
CreationMethod
Definition: convex_mesh.h:55
tesseract_common::Serialization
tesseract_geometry::ConvexMesh::operator==
bool operator==(const ConvexMesh &rhs) const
Definition: convex_mesh.cpp:89
tesseract_geometry::ConvexMesh::serialize
void serialize(Archive &ar, const unsigned int version)
Definition: convex_mesh.cpp:99
tesseract_geometry::ConvexMesh::getCreationMethod
CreationMethod getCreationMethod() const
Get how the convex hull was created.
Definition: convex_mesh.cpp:80
boost::serialization
polygon_mesh.h
Tesseract Polygon Mesh Geometry.
tesseract_geometry::ConvexMesh::operator!=
bool operator!=(const ConvexMesh &rhs) const
Definition: convex_mesh.cpp:96
tesseract_geometry::PolygonMesh
Definition: polygon_mesh.h:51
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
tesseract_geometry::ConvexMesh::clone
Geometry::Ptr clone() const override
Create a copy of this shape.
Definition: convex_mesh.cpp:84
tesseract_geometry
Definition: fwd.h:31
tesseract_geometry::Geometry::ConstPtr
std::shared_ptr< const Geometry > ConstPtr
Definition: geometry.h:73
macros.h
tesseract_geometry::ConvexMesh::CONVERTED
@ CONVERTED
Definition: convex_mesh.h:59


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