Parasol Planning Library (PPL)
TetGenDecomposition.h
Go to the documentation of this file.
1 #ifndef PMPL_TET_GEN_DECOMPOSITION_H_
2 #define PMPL_TET_GEN_DECOMPOSITION_H_
3 
4 #include "Utilities/IOUtils.h"
5 
6 #include <containers/sequential/graph/graph.h>
7 
8 #include "Vector.h"
9 
10 class Environment;
11 class MultiBody;
13 class XMLNode;
14 
15 class tetgenio;
16 
17 
32 class TetGenDecomposition final {
33 
34  public:
35 
39 
41 
45 
49 
52  const WorkspaceDecomposition* operator()(const Environment* _env);
53 
54  private:
55 
57  const WorkspaceDecomposition* MakeDecomposition();
58 
62 
67  void MakeFreeModel(const Environment* _env);
68 
72 
75  void MakeInternalVoidModel(const Environment* _env);
76 
80 
84  static void ValidateSwitches(std::string& _switches);
85 
90  void SaveFreeModel();
91 
93  void SaveDecompModel();
94 
96  void LoadDecompModel();
97 
101 
102  std::string m_switches{"pnQ"};
103 
104  enum IOOperation {Read, Write, None};
105  IOOperation m_ioType{None};
106  std::string m_baseFilename;
107 
108  bool m_debug{false};
109 
110  tetgenio* m_freeModel{nullptr};
111  tetgenio* m_decompModel{nullptr};
112 
113  bool m_useConvex{false};
114  double m_convexHullScaleFactor{1.0};
115 
117 };
118 
119 #endif
Definition: Environment.h:137
Definition: MultiBody.h:65
Definition: TetGenDecomposition.h:32
const WorkspaceDecomposition * operator()(const Environment *_env)
Definition: TetGenDecomposition.cpp:345
Definition: WorkspaceDecomposition.h:24
Definition: XMLNode.h:27