codac 2.0.0
Loading...
Searching...
No Matches
codac2_Figure2D.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <string>
13#include <vector>
14#include <memory>
15#include "codac2_Index.h"
18#include "codac2_Paving.h"
19#include "codac2_ColorMap.h"
20#include "codac2_Ellipsoid.h"
21#include "codac2_Polygon.h"
22#include "codac2_SlicedTube.h"
23
24#define DEFAULT_FIG_NAME "Codac - default figure"
25
26namespace codac2
27{
28 enum class GraphicOutput
29 {
30 VIBES = 0x01,
31 IPE = 0x02
32 };
33
34 constexpr int operator&(GraphicOutput a, GraphicOutput b)
35 { return static_cast<int>(static_cast<int>(a) & static_cast<int>(b)); }
36
37 constexpr GraphicOutput operator|(GraphicOutput a, GraphicOutput b)
38 { return static_cast<GraphicOutput>(static_cast<int>(a) | static_cast<int>(b)); }
39
40 struct FigureAxis
41 {
42 Index dim_id;
43 Interval limits;
44 std::string label;
45 };
46
47 inline FigureAxis axis(Index dim_id, const Interval& limits, const std::string& label = "")
48 {
49 assert_release(dim_id >= 0);
50 //assert_release(!limits.is_empty());
51
52 std::string axis_label = label;
53 if(axis_label.empty())
54 axis_label = "x_" + std::to_string(dim_id);
55
56 return { dim_id, limits, axis_label };
57 }
58
59 class DefaultFigure;
60 class PavingOut;
61 class PavingInOut;
62 template<typename P>
63 class Subpaving;
64
77 class Figure2D : public std::enable_shared_from_this<Figure2D>
78 {
79 public:
80
88 Figure2D(const std::string& name, GraphicOutput o, bool set_as_default = false);
89
95 const std::string& name() const;
96
102 Index size() const;
103
109 const std::vector<FigureAxis>& axes() const;
110
117 Figure2D& set_axes(const FigureAxis& axis1, const FigureAxis& axis2);
118
124 const Index& i() const;
125
131 const Index& j() const;
132
138 const Vector& pos() const;
139
145 const Vector& window_size() const;
146
154
161 void center_viewbox(const Vector& c, const Vector& r);
162
166 void clear();
167
173 double scaled_unit() const;
174
179
185 bool is_default() const;
186
191
197 void set_tdomain(const Interval& tdomain);
198
199 // Geometric shapes
200
207 void draw_point(const Vector& c, const StyleProperties& style = StyleProperties());
208
215 void draw_box(const IntervalVector& x, const StyleProperties& style = StyleProperties());
216
224 void draw_circle(const Vector& c, double r, const StyleProperties& style = StyleProperties());
225
233 void draw_ring(const Vector& c, const Interval& r, const StyleProperties& style = StyleProperties());
234
242 void draw_line(const Vector& p1, const Vector& p2, const StyleProperties& style = StyleProperties());
243
250 void draw_line(const Segment& e, const StyleProperties& style = StyleProperties());
251
260 void draw_arrow(const Vector& p1, const Vector& p2, float tip_length, const StyleProperties& style = StyleProperties());
261
268 void draw_polyline(const std::vector<Vector>& x, const StyleProperties& style = StyleProperties());
269
277 void draw_polyline(const std::vector<Vector>& x, float tip_length, const StyleProperties& style = StyleProperties());
278
285 void draw_polygon(const Polygon& x, const StyleProperties& style = StyleProperties());
286
294 void draw_parallelepiped(const Vector& z, const Matrix& A, const StyleProperties& style = StyleProperties());
295
303 void draw_zonotope(const Vector& z, const std::vector<Vector>& A, const StyleProperties& style = StyleProperties());
304
313 void draw_pie(const Vector& c, const Interval& r, const Interval& theta, const StyleProperties& style = StyleProperties());
314
323 void draw_ellipse(const Vector& c, const Vector& ab, double theta, const StyleProperties& style = StyleProperties());
324
331 void draw_ellipsoid(const Ellipsoid& e, const StyleProperties& style = StyleProperties());
332
339 void draw_trajectory(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties());
340
347 void draw_trajectory(const AnalyticTraj<VectorType>& x, const StyleProperties& style = StyleProperties());
348
355 void draw_trajectory(const SampledTraj<Vector>& x, const ColorMap& cmap);
356
363 void draw_trajectory(const AnalyticTraj<VectorType>& x, const ColorMap& cmap);
364
371 void plot_trajectory(const SampledTraj<double>& x, const StyleProperties& style = StyleProperties());
372
379 void plot_trajectories(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties());
380
387 void draw_tube(const SlicedTube<IntervalVector>& x, const StyleProperties& style);
388
395 void draw_tube(const SlicedTube<IntervalVector>& x, const ColorMap& cmap = ColorMap::blue_tube());
396
397 // Robots
398
406 void draw_tank(const Vector& x, float size, const StyleProperties& style = StyleProperties());
407
415 void draw_AUV(const Vector& x, float size, const StyleProperties& style = StyleProperties());
416
424 void draw_motor_boat(const Vector& x, float size, const StyleProperties& style = StyleProperties());
425
426 // Pavings
427
435 void draw_paving(const PavingOut& p,
438
447 void draw_paving(const PavingInOut& p,
451
458 template<typename P>
459 void draw_subpaving(const Subpaving<P>& p, const StyleProperties& style = StyleProperties())
460 {
461 for(const auto& pi : p.boxes())
462 draw_box(pi, style);
463 }
464
465 protected:
466
467 const std::string _name;
468 Vector _pos {50,50}, _window_size {700,700};
469 std::vector<FigureAxis> _axes { axis(0,{0,1}), axis(1,{0,1}) };
470 std::vector<std::shared_ptr<OutputFigure2D>> _output_figures;
471 Interval _tdomain;
472
473 friend DefaultFigure;
474 };
475
485 {
486 public:
487
493 static std::shared_ptr<Figure2D> selected_fig()
494 {
495 if(_selected_fig == nullptr)
496 _selected_fig = _default_fig;
497 return _selected_fig;
498 }
499
505 static void set(std::shared_ptr<Figure2D> fig)
506 {
507 _selected_fig = fig;
508 }
509
516 static Figure2D& set_axes(const FigureAxis& axis1, const FigureAxis& axis2)
517 {
518 auto_init();
519 return selected_fig()->set_axes(axis1,axis2);
520 }
521
528 static void set_window_properties(const Vector& pos, const Vector& size)
529 {
530 auto_init();
531 selected_fig()->set_window_properties(pos,size);
532 }
533
537 static void auto_scale()
538 {
539 auto_init();
540 selected_fig()->auto_scale();
541 }
542
546 static void clear()
547 {
548 auto_init();
549 selected_fig()->clear();
550 }
551
552 // Geometric shapes
553
560 static void draw_point(const Vector& c, const StyleProperties& style = StyleProperties())
561 {
562 auto_init();
563 selected_fig()->draw_point(c,style);
564 }
565
572 static void draw_box(const IntervalVector& x, const StyleProperties& style = StyleProperties())
573 {
574 auto_init();
575 selected_fig()->draw_box(x,style);
576 }
577
585 static void draw_circle(const Vector& c, double r, const StyleProperties& style = StyleProperties())
586 {
587 auto_init();
588 selected_fig()->draw_circle(c,r,style);
589 }
590
598 static void draw_ring(const Vector& c, const Interval& r, const StyleProperties& style = StyleProperties())
599 {
600 auto_init();
601 selected_fig()->draw_ring(c,r,style);
602 }
603
611 static void draw_line(const Vector& p1, const Vector& p2, const StyleProperties& style = StyleProperties())
612 {
613 auto_init();
614 selected_fig()->draw_line(p1,p2,style);
615 }
616
623 static void draw_line(const Segment& e, const StyleProperties& style = StyleProperties())
624 {
625 auto_init();
626 selected_fig()->draw_line(e,style);
627 }
628
637 static void draw_arrow(const Vector& p1, const Vector& p2, float tip_length, const StyleProperties& style = StyleProperties())
638 {
639 auto_init();
640 selected_fig()->draw_arrow(p1,p2,tip_length,style);
641 }
642
649 static void draw_polyline(const std::vector<Vector>& x, const StyleProperties& style = StyleProperties())
650 {
651 auto_init();
652 selected_fig()->draw_polyline(x,style);
653 }
654
662 static void draw_polyline(const std::vector<Vector>& x, float tip_length, const StyleProperties& style = StyleProperties())
663 {
664 auto_init();
665 selected_fig()->draw_polyline(x,tip_length,style);
666 }
667
674 static void draw_polygon(const Polygon& x, const StyleProperties& style = StyleProperties())
675 {
676 auto_init();
677 selected_fig()->draw_polygon(x,style);
678 }
679
687 static void draw_parallelepiped(const Vector& z, const Matrix& A, const StyleProperties& style = StyleProperties())
688 {
689 auto_init();
690 selected_fig()->draw_parallelepiped(z,A,style);
691 }
692
700 static void draw_zonotope(const Vector& z, const std::vector<Vector>& A, const StyleProperties& style = StyleProperties())
701 {
702 auto_init();
703 selected_fig()->draw_zonotope(z,A,style);
704 }
705
714 static void draw_pie(const Vector& c, const Interval& r, const Interval& theta, const StyleProperties& style = StyleProperties())
715 {
716 auto_init();
717 selected_fig()->draw_pie(c,r,theta,style);
718 }
719
728 static void draw_ellipse(const Vector& c, const Vector& ab, double theta, const StyleProperties& style = StyleProperties())
729 {
730 auto_init();
731 selected_fig()->draw_ellipse(c,ab,theta,style);
732 }
733
740 static void draw_ellipsoid(const Ellipsoid& e, const StyleProperties& style = StyleProperties())
741 {
742 auto_init();
743 selected_fig()->draw_ellipsoid(e,style);
744 }
745
752 static void draw_trajectory(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties())
753 {
754 auto_init();
755 selected_fig()->draw_trajectory(x,style);
756 }
757
764 static void draw_trajectory(const AnalyticTraj<VectorType>& x, const StyleProperties& style = StyleProperties())
765 {
766 auto_init();
767 selected_fig()->draw_trajectory(x,style);
768 }
769
776 static void draw_trajectory(const SampledTraj<Vector>& x, const ColorMap& cmap)
777 {
778 auto_init();
779 selected_fig()->draw_trajectory(x,cmap);
780 }
781
788 static void draw_trajectory(const AnalyticTraj<VectorType>& x, const ColorMap& cmap)
789 {
790 auto_init();
791 selected_fig()->draw_trajectory(x,cmap);
792 }
793
800 static void plot_trajectory(const SampledTraj<double>& x, const StyleProperties& style = StyleProperties())
801 {
802 auto_init();
803 selected_fig()->plot_trajectory(x,style);
804 }
805
812 static void plot_trajectories(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties())
813 {
814 auto_init();
815 selected_fig()->plot_trajectories(x,style);
816 }
817
824 static void draw_tube(const SlicedTube<IntervalVector>& x, const StyleProperties& style = StyleProperties())
825 {
826 auto_init();
827 selected_fig()->draw_tube(x,style);
828 }
829
836 static void draw_tube(const SlicedTube<IntervalVector>& x, const ColorMap& cmap)
837 {
838 auto_init();
839 selected_fig()->draw_tube(x,cmap);
840 }
841
842 // Robots
843
851 static void draw_tank(const Vector& x, float size, const StyleProperties& style = StyleProperties())
852 {
853 auto_init();
854 selected_fig()->draw_tank(x,size,style);
855 }
856
864 static void draw_AUV(const Vector& x, float size, const StyleProperties& style = StyleProperties())
865 {
866 auto_init();
867 selected_fig()->draw_AUV(x,size,style);
868 }
869
877 static void draw_motor_boat(const Vector& x, float size, const StyleProperties& style = StyleProperties())
878 {
879 auto_init();
880 selected_fig()->draw_motor_boat(x,size,style);
881 }
882
883 // Pavings
884
892 static void draw_paving(const PavingOut& p,
893 const StyleProperties& boundary_style = StyleProperties::boundary(),
894 const StyleProperties& outside_style = StyleProperties::outside())
895 {
896 if(auto_init())
897 {
898 double rx = p.tree()->hull()[0].diam(), ry = p.tree()->hull()[1].diam();
899 _default_fig->set_window_properties({20.,20.},
900 rx > ry ? Vector({800.,800.*ry/rx}) : Vector({800.*rx/ry,800.}));
901 _default_fig->set_axes(axis(0,p.tree()->hull()[0]),axis(1,p.tree()->hull()[1]));
902 }
903
904 selected_fig()->draw_paving(p, boundary_style, outside_style);
905 }
906
915 static void draw_paving(const PavingInOut& p,
916 const StyleProperties& boundary_style = StyleProperties::boundary(),
917 const StyleProperties& outside_style = StyleProperties::outside(),
918 const StyleProperties& inside_style = StyleProperties::inside())
919 {
920 if(auto_init())
921 {
922 double rx = p.tree()->hull()[0].diam(), ry = p.tree()->hull()[1].diam();
923 _default_fig->set_window_properties({20.,20.},
924 rx > ry ? Vector({800.,800.*ry/rx}) : Vector({800.*rx/ry,800.}));
925 _default_fig->set_axes(axis(0,p.tree()->hull()[0]),axis(1,p.tree()->hull()[1]));
926 }
927
928 selected_fig()->draw_paving(p, boundary_style, outside_style, inside_style);
929 }
930
937 template<typename P>
938 static void draw_subpaving(const Subpaving<P>& p, const StyleProperties& style = StyleProperties())
939 {
940 auto_init();
941 selected_fig()->draw_subpaving(p, style);
942 }
943
944
945 protected:
946
947 static bool auto_init()
948 {
949 if(!_default_fig && !_selected_fig)
950 {
951 _default_fig = std::make_shared<Figure2D>(DEFAULT_FIG_NAME, GraphicOutput::VIBES);
952 _default_fig->set_window_properties({20.,20.}, {800.,800.});
953 _default_fig->set_axes(axis(0,{-10,10}),axis(1,{-10,10}));
954 _selected_fig = _default_fig;
955 return true;
956 }
957
958 return false;
959 }
960
961 friend Figure2D;
962
963 static std::shared_ptr<Figure2D> _default_fig;
964 static std::shared_ptr<Figure2D> _selected_fig;
965 };
966}
Default view class, used to manage the default figure.
Definition codac2_Figure2D.h:485
static void draw_paving(const PavingOut &p, const StyleProperties &boundary_style=StyleProperties::boundary(), const StyleProperties &outside_style=StyleProperties::outside())
Draws a paving on the figure.
Definition codac2_Figure2D.h:892
static void draw_trajectory(const SampledTraj< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
Definition codac2_Figure2D.h:752
static void draw_box(const IntervalVector &x, const StyleProperties &style=StyleProperties())
Draws a box on the figure.
Definition codac2_Figure2D.h:572
static void draw_ring(const Vector &c, const Interval &r, const StyleProperties &style=StyleProperties())
Draws a ring on the figure.
Definition codac2_Figure2D.h:598
static void draw_line(const Segment &e, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
Definition codac2_Figure2D.h:623
static void draw_tube(const SlicedTube< IntervalVector > &x, const StyleProperties &style=StyleProperties())
Draws a tube of IntervalVector on the figure.
Definition codac2_Figure2D.h:824
static void draw_circle(const Vector &c, double r, const StyleProperties &style=StyleProperties())
Draws a circle on the figure.
Definition codac2_Figure2D.h:585
static void draw_AUV(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws an AUV on the figure.
Definition codac2_Figure2D.h:864
static void draw_polygon(const Polygon &x, const StyleProperties &style=StyleProperties())
Draws a Polygon object on the figure.
Definition codac2_Figure2D.h:674
static void draw_parallelepiped(const Vector &z, const Matrix &A, const StyleProperties &style=StyleProperties())
Draws a parallelepiped z+A*[-1,1]^2 on the figure.
Definition codac2_Figure2D.h:687
static void draw_ellipsoid(const Ellipsoid &e, const StyleProperties &style=StyleProperties())
Draws an ellipsoid on the figure.
Definition codac2_Figure2D.h:740
static void draw_point(const Vector &c, const StyleProperties &style=StyleProperties())
Draws a point on the figure.
Definition codac2_Figure2D.h:560
static void draw_motor_boat(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws a motor boat on the figure.
Definition codac2_Figure2D.h:877
static void auto_scale()
VIBes only: auto scale the figure.
Definition codac2_Figure2D.h:537
static void draw_polyline(const std::vector< Vector > &x, float tip_length, const StyleProperties &style=StyleProperties())
Draws a polyline on the figure.
Definition codac2_Figure2D.h:662
static void draw_zonotope(const Vector &z, const std::vector< Vector > &A, const StyleProperties &style=StyleProperties())
Draws a zonotope z+sum_i [-1,1] A_i on the figure.
Definition codac2_Figure2D.h:700
static void set(std::shared_ptr< Figure2D > fig)
Setter for the default figure.
Definition codac2_Figure2D.h:505
static void clear()
Clear the figure.
Definition codac2_Figure2D.h:546
static void plot_trajectory(const SampledTraj< double > &x, const StyleProperties &style=StyleProperties())
Plots a trajectory on the figure (x-axis is the time)
Definition codac2_Figure2D.h:800
static void draw_arrow(const Vector &p1, const Vector &p2, float tip_length, const StyleProperties &style=StyleProperties())
Draws an arrow on the figure.
Definition codac2_Figure2D.h:637
static void draw_tube(const SlicedTube< IntervalVector > &x, const ColorMap &cmap)
Draws a tube of IntervalVector on the figure with a colormap.
Definition codac2_Figure2D.h:836
static void draw_paving(const PavingInOut &p, const StyleProperties &boundary_style=StyleProperties::boundary(), const StyleProperties &outside_style=StyleProperties::outside(), const StyleProperties &inside_style=StyleProperties::inside())
Draws a paving on the figure.
Definition codac2_Figure2D.h:915
static void draw_subpaving(const Subpaving< P > &p, const StyleProperties &style=StyleProperties())
Draws a subpaving on the figure.
Definition codac2_Figure2D.h:938
static Figure2D & set_axes(const FigureAxis &axis1, const FigureAxis &axis2)
Setter for the axes of the figure.
Definition codac2_Figure2D.h:516
static void draw_line(const Vector &p1, const Vector &p2, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
Definition codac2_Figure2D.h:611
static void set_window_properties(const Vector &pos, const Vector &size)
Setter for the position and size of the window.
Definition codac2_Figure2D.h:528
static void draw_trajectory(const SampledTraj< Vector > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
Definition codac2_Figure2D.h:776
static void draw_pie(const Vector &c, const Interval &r, const Interval &theta, const StyleProperties &style=StyleProperties())
Draws a pie on the figure.
Definition codac2_Figure2D.h:714
static void plot_trajectories(const SampledTraj< Vector > &x, const StyleProperties &style=StyleProperties())
Plots a set of trajectories on the figure (x-axis is the time)
Definition codac2_Figure2D.h:812
static void draw_ellipse(const Vector &c, const Vector &ab, double theta, const StyleProperties &style=StyleProperties())
Draws an ellipse on the figure.
Definition codac2_Figure2D.h:728
static std::shared_ptr< Figure2D > selected_fig()
Getter for the default figure.
Definition codac2_Figure2D.h:493
static void draw_trajectory(const AnalyticTraj< VectorType > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
Definition codac2_Figure2D.h:764
static void draw_polyline(const std::vector< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a polyline on the figure.
Definition codac2_Figure2D.h:649
static void draw_tank(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws a tank on the figure.
Definition codac2_Figure2D.h:851
static void draw_trajectory(const AnalyticTraj< VectorType > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
Definition codac2_Figure2D.h:788
Ellipsoid representation.
Definition codac2_Ellipsoid.h:43
void draw_polyline(const std::vector< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a polyline on the figure.
const Index & j() const
Getter for the index of the vertical axis.
Figure2D & set_axes(const FigureAxis &axis1, const FigureAxis &axis2)
Setter for the axes of the figure.
void draw_trajectory(const SampledTraj< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
const std::vector< FigureAxis > & axes() const
Getter for the axes of the figure.
void set_tdomain(const Interval &tdomain)
Setter for the time domain of the figure.
void draw_trajectory(const SampledTraj< Vector > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
void draw_motor_boat(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws a motor boat on the figure.
void draw_line(const Vector &p1, const Vector &p2, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
void draw_zonotope(const Vector &z, const std::vector< Vector > &A, const StyleProperties &style=StyleProperties())
Draws a zonotope z+sum_i [-1,1] A_i on the figure.
void center_viewbox(const Vector &c, const Vector &r)
VIBes only: center the viewbox on a given point with a given radius.
const Vector & pos() const
Getter for the position of the figure.
void draw_ring(const Vector &c, const Interval &r, const StyleProperties &style=StyleProperties())
Draws a ring on the figure.
void draw_tank(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws a tank on the figure.
void draw_arrow(const Vector &p1, const Vector &p2, float tip_length, const StyleProperties &style=StyleProperties())
Draws an arrow on the figure.
void clear()
Clears the figure.
void plot_trajectories(const SampledTraj< Vector > &x, const StyleProperties &style=StyleProperties())
Plots a set of trajectories on the figure (x-axis is the time)
const Vector & window_size() const
getter for the size of the window
bool is_default() const
void set_as_default()
Sets the figure as the default view.
void draw_circle(const Vector &c, double r, const StyleProperties &style=StyleProperties())
Draws a circle on the figure.
void draw_AUV(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws an AUV on the figure.
void draw_trajectory(const AnalyticTraj< VectorType > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
void draw_subpaving(const Subpaving< P > &p, const StyleProperties &style=StyleProperties())
Draws a subpaving on the figure.
Definition codac2_Figure2D.h:459
void draw_trajectory(const AnalyticTraj< VectorType > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
double scaled_unit() const
Getter for the scaling factor of the figure.
const Index & i() const
Getter for the index of the horizontal axis.
void draw_ellipsoid(const Ellipsoid &e, const StyleProperties &style=StyleProperties())
Draws an ellipsoid on the figure.
const std::string & name() const
Getter for the name of the figure.
void draw_polygon(const Polygon &x, const StyleProperties &style=StyleProperties())
Draws a Polygon object on the figure.
void draw_parallelepiped(const Vector &z, const Matrix &A, const StyleProperties &style=StyleProperties())
Draws a parallelepiped z+A*[-1,1]^2 on the figure.
void draw_paving(const PavingInOut &p, const StyleProperties &bound_s=StyleProperties::boundary(), const StyleProperties &out_s=StyleProperties::outside(), const StyleProperties &in_s=StyleProperties::inside())
Draws a paving on the figure.
void draw_line(const Segment &e, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
void draw_box(const IntervalVector &x, const StyleProperties &style=StyleProperties())
Draws a box on the figure.
void draw_ellipse(const Vector &c, const Vector &ab, double theta, const StyleProperties &style=StyleProperties())
Draws an ellipse on the figure.
Figure2D(const std::string &name, GraphicOutput o, bool set_as_default=false)
Creates a new Figure2D object, with a given name and output.
void draw_paving(const PavingOut &p, const StyleProperties &bound_s=StyleProperties::boundary(), const StyleProperties &out_s=StyleProperties::outside())
Draws a paving on the figure.
void draw_pie(const Vector &c, const Interval &r, const Interval &theta, const StyleProperties &style=StyleProperties())
Draws a pie on the figure.
void draw_point(const Vector &c, const StyleProperties &style=StyleProperties())
Draws a point on the figure.
void plot_trajectory(const SampledTraj< double > &x, const StyleProperties &style=StyleProperties())
Plots a trajectory on the figure (x-axis is the time)
void auto_scale()
VIBes only: auto scale the figure.
void draw_tube(const SlicedTube< IntervalVector > &x, const ColorMap &cmap=ColorMap::blue_tube())
Draws a tube of IntervalVector on the figure with a colormap.
Index size() const
Getter for the size of the figure.
void draw_polyline(const std::vector< Vector > &x, float tip_length, const StyleProperties &style=StyleProperties())
Draws a polyline on the figure.
void set_window_properties(const Vector &pos, const Vector &size)
Setter for the position and size of the window.
void draw_tube(const SlicedTube< IntervalVector > &x, const StyleProperties &style)
Draws a tube of IntervalVector on the figure.
Interval class, for representing closed and connected subsets of .
Definition codac2_Interval.h:49
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
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25
Eigen::Matrix< double,-1,-1 > Matrix
Alias for a dynamic-size matrix of doubles.
Definition codac2_Matrix.h:26
Eigen::Matrix< double,-1, 1 > Vector
Alias for a dynamically-sized column vector of doubles.
Definition codac2_Vector.h:24
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
static StyleProperties inside()
Predefined "inside" style, dark gray edge and green fill.
static StyleProperties outside()
Predefined "outside" style, dark gray edge and light blue fill.
static StyleProperties boundary()
Predefined "boundary" style, dark gray edge and yellow fill.