CollisionShapeCache.h
Go to the documentation of this file.
1 /*+-------------------------------------------------------------------------+
2  | MultiVehicle simulator (libmvsim) |
3  | |
4  | Copyright (C) 2014-2024 Jose Luis Blanco Claraco |
5  | Copyright (C) 2017 Borys Tymchenko (Odessa Polytechnic University) |
6  | Distributed under 3-clause BSD License |
7  | See COPYING |
8  +-------------------------------------------------------------------------+ */
9 
10 #include <mrpt/opengl/CRenderizable.h>
11 #include <mvsim/Shape2p5.h>
12 
13 #include <map>
14 #include <optional>
15 #include <string>
16 
17 namespace mvsim
18 {
21 {
22  public:
23  static CollisionShapeCache& Instance();
24 
26  Shape2p5 get(
27  mrpt::opengl::CRenderizable& obj, float zMin, float zMax,
28  const mrpt::poses::CPose3D& modelPose, const float modelScale,
29  const std::optional<std::string>& modelFile = std::nullopt);
30 
31  void clear() { cache.clear(); }
32 
33  private:
34  CollisionShapeCache() = default;
35  ~CollisionShapeCache() = default;
36 
37  struct Entry
38  {
40  };
41 
42  std::map<std::string, Entry> cache;
43 
47  std::optional<Shape2p5> processSimpleGeometries(
48  const mrpt::opengl::CRenderizable& obj, float zMin, float zMax,
49  const mrpt::poses::CPose3D& modelPose, const float modelScale);
50 
52  mrpt::opengl::CRenderizable& obj, float zMin, float zMax,
53  const mrpt::poses::CPose3D& modelPose, const float modelScale);
54 
56  const size_t actualEdgeCount, double actualRadius, float zMin, float zMax,
57  const mrpt::poses::CPose3D& modelPose, const float modelScale);
58 };
59 
60 } // namespace mvsim
mvsim
Definition: Client.h:21
mvsim::CollisionShapeCache::processGenericGeometry
Shape2p5 processGenericGeometry(mrpt::opengl::CRenderizable &obj, float zMin, float zMax, const mrpt::poses::CPose3D &modelPose, const float modelScale)
Definition: CollisionShapeCache.cpp:152
mvsim::CollisionShapeCache::~CollisionShapeCache
~CollisionShapeCache()=default
mvsim::CollisionShapeCache::cache
std::map< std::string, Entry > cache
Definition: CollisionShapeCache.h:42
mvsim::CollisionShapeCache
Definition: CollisionShapeCache.h:20
mvsim::CollisionShapeCache::get
Shape2p5 get(mrpt::opengl::CRenderizable &obj, float zMin, float zMax, const mrpt::poses::CPose3D &modelPose, const float modelScale, const std::optional< std::string > &modelFile=std::nullopt)
Definition: CollisionShapeCache.cpp:26
mvsim::CollisionShapeCache::Instance
static CollisionShapeCache & Instance()
Definition: CollisionShapeCache.cpp:20
mvsim::Shape2p5
Definition: Shape2p5.h:31
Shape2p5.h
mvsim::CollisionShapeCache::Entry::shape
Shape2p5 shape
Definition: CollisionShapeCache.h:39
mvsim::CollisionShapeCache::CollisionShapeCache
CollisionShapeCache()=default
mvsim::CollisionShapeCache::Entry
Definition: CollisionShapeCache.h:37
mvsim::CollisionShapeCache::clear
void clear()
Definition: CollisionShapeCache.h:31
mvsim::CollisionShapeCache::processSimpleGeometries
std::optional< Shape2p5 > processSimpleGeometries(const mrpt::opengl::CRenderizable &obj, float zMin, float zMax, const mrpt::poses::CPose3D &modelPose, const float modelScale)
Definition: CollisionShapeCache.cpp:77
mvsim::CollisionShapeCache::processCylinderLike
Shape2p5 processCylinderLike(const size_t actualEdgeCount, double actualRadius, float zMin, float zMax, const mrpt::poses::CPose3D &modelPose, const float modelScale)
Definition: CollisionShapeCache.cpp:283


mvsim
Author(s):
autogenerated on Wed May 28 2025 02:13:07