irafhy
Interval arithmetic based Reachability Analysis Framework for Hybrid Automaton
viewer.h
Go to the documentation of this file.
1 #ifndef UTILITY_VIEWER_H
2 #define UTILITY_VIEWER_H
3 
7 #include <vector>
8 #include <set>
9 #include <igl/opengl/glfw/Viewer.h>
10 #include <igl/opengl/glfw/imgui/ImGuiHelpers.h>
11 #include <igl/opengl/glfw/imgui/ImGuiTraits.h>
12 #include <igl/opengl/glfw/imgui/ImGuiMenu.h>
13 #include <imgui/imgui.h>
14 
15 namespace irafhy
16 {
18  {
22  Eigen::MatrixXd _V;
26  Eigen::MatrixXi _F;
30  Eigen::MatrixXi _E;
37  IntervalHullStruct(Eigen::MatrixXd& V, Eigen::MatrixXi F, Eigen::MatrixXi E)
38  : _V(V)
39  , _F(F)
40  , _E(E)
41  {}
48  IntervalHullStruct(const Eigen::MatrixXd& V, const Eigen::MatrixXi& F, const Eigen::MatrixXi& E)
49  {
50  _V = V;
51  _F = F;
52  _E = E;
53  }
54  };
55 
56  class viewer
57  {
58  private:
66  static IntervalHullStruct intervalHullMatrix(const IntervalHull& intervalHulls,
67  const capd::interval& time,
68  const std::vector<int>& dimension);
76  static Eigen::MatrixXd pointMatrix(const std::vector<Point>& point,
77  const capd::interval& time,
78  const std::vector<int>& dimension);
85  static void drawAxes(igl::opengl::glfw::Viewer& viewer,
86  const std::vector<capd::interval>& ranges,
87  const std::vector<std::string>& vars);
88 
89  public:
98  static void show(const std::vector<IntervalHull>& intervalHulls = {},
99  const std::vector<std::vector<Point>>& points = {},
100  const std::vector<capd::interval>& time = {},
101  const std::vector<int>& dimension = {},
102  VIEW_TYPE viewType = VIEW_TYPE::PLANE);
111  static void show(const std::vector<Condition>& conditions = {},
112  const std::vector<std::vector<Point>>& points = {},
113  const std::vector<capd::interval>& time = {},
114  const std::vector<int>& dimension = {},
115  VIEW_TYPE viewType = VIEW_TYPE::PLANE);
116  };
117 } // namespace irafhy
118 #endif //UTILITY_VIEWER_H
Definition: viewer.h:17
Eigen::MatrixXi _E
indexes of the vertices relate to each edge
Definition: viewer.h:30
VIEW_TYPE
style of viewing geometry objects
Definition: enum.h:9
Definition: intervalHull.h:12
Definition: viewer.h:56
Eigen::MatrixXi _F
indexes of the vertices relate to each facet
Definition: viewer.h:26
Definition: enum.h:13
void show(const bool block=true)
Definition: matplotlibcpp.h:1486
Definition: condition.cpp:3
IntervalHullStruct(const Eigen::MatrixXd &V, const Eigen::MatrixXi &F, const Eigen::MatrixXi &E)
constructor with given vertices, facets and edges
Definition: viewer.h:48
IntervalHullStruct(Eigen::MatrixXd &V, Eigen::MatrixXi F, Eigen::MatrixXi E)
constructor with given vertices, facets and edges
Definition: viewer.h:37
Eigen::MatrixXd _V
extreme vertices of the interval hull
Definition: viewer.h:22