Buran Motion Planning Framework
solid_3d_object.h
1 #pragma once
2 
3 #include <GL/glut.h>
4 #include <vector>
5 #include <Eigen/Dense>
6 #include <fstream>
7 
8 #include "SOLID.h"
9 #include "MT_Scalar.h"
10 #include "MT_Point3.h"
11 #include "stl_shape.h"
12 
13 
14 namespace bmpf {
21  class Solid3Object {
22  public:
26  Solid3Object() = default;
27 
31  Solid3Object(const Solid3Object &) = delete;
32 
37  Solid3Object &operator=(const Solid3Object &) = delete;
38 
45  Solid3Object(const std::shared_ptr<bmpf::StlShape> &shape, bool isRobot, MT_Scalar margin = 0.0f)
46  : _stl_shape(shape),
47  _object(DT_CreateObject(this, shape->getDTShape())),
48  _isRobot(isRobot) {
49  DT_SetMargin(_object, margin);
50  }
51 
55  virtual ~Solid3Object() { DT_DestroyObject(_object); }
56 
64  static std::shared_ptr<Solid3Object>
65  fromStlFile(const std::string &path, bool isRobot, MT_Scalar margin = 0.0f);
66 
71  void paintGL(bool onlyRobot = false) const;
72 
77  DT_ObjectHandle getHandle() const { return _object; }
78 
86  std::vector<float> getTransformedPointsList();
87 
88  private:
92  bool _isRobot{};
96  std::shared_ptr<bmpf::StlShape> _stl_shape;
100  DT_ObjectHandle _object{};
101  };
102 }
bmpf::Solid3Object::fromStlFile
static std::shared_ptr< Solid3Object > fromStlFile(const std::string &path, bool isRobot, MT_Scalar margin=0.0f)
Definition: solid_3d_object.cpp:13
bmpf::Solid3Object::Solid3Object
Solid3Object(const std::shared_ptr< bmpf::StlShape > &shape, bool isRobot, MT_Scalar margin=0.0f)
Definition: solid_3d_object.h:45
bmpf::Solid3Object::~Solid3Object
virtual ~Solid3Object()
Definition: solid_3d_object.h:55
bmpf::Solid3Object::getTransformedPointsList
std::vector< float > getTransformedPointsList()
возвращает список точек возвращает список точек, к каждой применяется матрица преобразования список к...
Definition: solid_3d_object.cpp:46
bmpf::Solid3Object::operator=
Solid3Object & operator=(const Solid3Object &)=delete
bmpf::Solid3Object
Класс 3D объектов Класс 3D объектов, из которых строятся роботы на сцене коллайдера....
Definition: solid_3d_object.h:21
bmpf::Solid3Object::getHandle
DT_ObjectHandle getHandle() const
Definition: solid_3d_object.h:77
bmpf::Solid3Object::paintGL
void paintGL(bool onlyRobot=false) const
Definition: solid_3d_object.cpp:22
bmpf::Solid3Object::Solid3Object
Solid3Object()=default