29#define DEFAULT_FIG_NAME "Codac - default figure" 
   33  enum class GraphicOutput
 
   39  constexpr int operator&(GraphicOutput a, GraphicOutput b)
 
   40  { 
return static_cast<int>(
static_cast<int>(a) & 
static_cast<int>(b)); }
 
   42  constexpr GraphicOutput operator|(GraphicOutput a, GraphicOutput b)
 
   43  { 
return static_cast<GraphicOutput
>(
static_cast<int>(a) | 
static_cast<int>(b)); }
 
   52  inline FigureAxis axis(Index dim_id, 
const Interval& limits, 
const std::string& label = 
"")
 
   54    assert_release(dim_id >= 0);
 
   57    std::string axis_label = label;
 
   58    if(axis_label.empty())
 
   59      axis_label = 
"x_" + std::to_string(dim_id);
 
   61    return { dim_id, limits, axis_label };
 
   82  class Figure2D : 
public std::enable_shared_from_this<Figure2D>
 
  100      const std::string& 
name() 
const;
 
  114      const std::vector<FigureAxis>& 
axes() 
const;
 
  129      const Index& 
i() 
const;
 
  136      const Index& 
j() 
const;
 
  438        const PavingStyle& style = PavingStyle::default_style());
 
  449        const PavingStyle& style = PavingStyle::default_style());
 
  458        const PavingStyle& style = PavingStyle::default_style());
 
  469        const PavingStyle& style = PavingStyle::default_style());
 
  480        requires IsCtcBaseOrPtr<C,IntervalVector>
 
  482        const PavingStyle& style = PavingStyle::default_style());
 
  494        requires IsCtcBaseOrPtr<C,IntervalVector>
 
  497        const PavingStyle& style = PavingStyle::default_style());
 
  508        requires IsSepBaseOrPtr<S>
 
  510        const PavingStyle& style = PavingStyle::default_style());
 
  522        requires IsSepBaseOrPtr<S>
 
  525        const PavingStyle& style = PavingStyle::default_style());
 
  536        for(
const auto& pi : p.boxes())
 
 
  542      const std::string _name;
 
  543      Vector _pos {50,50}, _window_size {700,700};
 
  544      std::vector<FigureAxis> _axes { axis(0,{0,1}), axis(1,{0,1}) };
 
  545      std::vector<std::shared_ptr<OutputFigure2D>> _output_figures;
 
  548      friend DefaultFigure;
 
 
  570        if(_selected_fig == 
nullptr)
 
  571          _selected_fig = _default_fig;
 
  572        return _selected_fig;
 
 
  580      static void set(std::shared_ptr<Figure2D> fig)
 
 
  591      static Figure2D& 
set_axes(
const FigureAxis& axis1, 
const FigureAxis& axis2)
 
 
  962        _default_fig->set_window_properties({100,100}, {800,800});
 
  963        _default_fig->set_axes(axis(0,x[0],
"x_1"), axis(1,x[1],
"x_2"));
 
  964        _default_fig->auto_scale();
 
  976        const PavingStyle& style = PavingStyle::default_style())
 
  979          init_axes_paving(p.tree()->hull());
 
 
  992        const PavingStyle& style = PavingStyle::default_style())
 
  995          init_axes_paving(p.tree()->hull());
 
 
 1006        const PavingStyle& style = PavingStyle::default_style())
 
 1009          init_axes_paving(p.tree()->hull());
 
 
 1022        const PavingStyle& style = PavingStyle::default_style())
 
 1025          init_axes_paving(p.tree()->hull());
 
 
 1037      template<
typename C>
 
 1038        requires IsCtcBaseOrPtr<C,IntervalVector>
 
 1040        const PavingStyle& style = PavingStyle::default_style())
 
 1043          init_axes_paving(x0);
 
 
 1056      template<
typename C>
 
 1057        requires IsCtcBaseOrPtr<C,IntervalVector>
 
 1060        const PavingStyle& style = PavingStyle::default_style())
 
 1063          init_axes_paving(x0);
 
 
 1075      template<
typename S>
 
 1076        requires IsSepBaseOrPtr<S>
 
 1078        const PavingStyle& style = PavingStyle::default_style())
 
 1081          init_axes_paving(x0);
 
 
 1094      template<
typename S>
 
 1095        requires IsSepBaseOrPtr<S>
 
 1098        const PavingStyle& style = PavingStyle::default_style())
 
 1101          init_axes_paving(x0);
 
 
 1111      template<
typename P>
 
 1121      static bool auto_init()
 
 1123        if(!_default_fig && !_selected_fig)
 
 1125          _default_fig = std::make_shared<Figure2D>(DEFAULT_FIG_NAME, GraphicOutput::VIBES);
 
 1126          _default_fig->set_window_properties({20.,20.}, {800.,800.});
 
 1127          _default_fig->set_axes(axis(0,{-10,10}),axis(1,{-10,10}));
 
 1128          _selected_fig = _default_fig;
 
 1137      static std::shared_ptr<Figure2D> _default_fig;
 
 1138      static std::shared_ptr<Figure2D> _selected_fig;
 
 
Ellipsoid representation.
Definition codac2_Ellipsoid.h:43
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:49
Class representing a parallelepiped .
Definition codac2_Parallelepiped.h:30
Represents a polygon (convex or non-convex) defined by its vertices enclosed in IntervalVectors.
Definition codac2_Polygon.h:29
Represents a geometric segment defined by two points enclosed in IntervalVectors.
Definition codac2_Segment.h:28
Class representing a zonotope .
Definition codac2_Zonotope.h:29
Definition codac2_OctaSym.h:21
Eigen::Matrix< double,-1, 1 > Vector
Alias for a dynamically-sized column vector of doubles.
Definition codac2_Vector.h:24
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25
Represents a set of RGB or HSV values.
Definition codac2_ColorMap.h:29
static ColorMap blue_tube()
Blue tube color map.
Definition codac2_ColorMap.h:131
Style properties structure, to specify the style of a shape.
Definition codac2_StyleProperties.h:26