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
153 void set_window_properties(const Vector& pos, const Vector& size);
154
161 void center_viewbox(const Vector& c, const Vector& r);
162
168 double scaled_unit() const;
169
174
180 bool is_default() const;
181
186
192 void set_tdomain(const Interval& tdomain);
193
194 // Geometric shapes
195
202 void draw_point(const Vector& c, const StyleProperties& style = StyleProperties());
203
210 void draw_box(const IntervalVector& x, const StyleProperties& style = StyleProperties());
211
219 void draw_circle(const Vector& c, double r, const StyleProperties& style = StyleProperties());
220
228 void draw_ring(const Vector& c, const Interval& r, const StyleProperties& style = StyleProperties());
229
237 void draw_line(const Vector& p1, const Vector& p2, const StyleProperties& style = StyleProperties());
238
245 void draw_line(const Segment& e, const StyleProperties& style = StyleProperties());
246
255 void draw_arrow(const Vector& p1, const Vector& p2, float tip_length, const StyleProperties& style = StyleProperties());
256
263 void draw_polyline(const std::vector<Vector>& x, const StyleProperties& style = StyleProperties());
264
272 void draw_polyline(const std::vector<Vector>& x, float tip_length, const StyleProperties& style = StyleProperties());
273
280 void draw_polygon(const Polygon& x, const StyleProperties& style = StyleProperties());
281
289 void draw_parallelepiped(const Vector& z, const Matrix& A, const StyleProperties& style = StyleProperties());
290
298 void draw_zonotope(const Vector& z, const std::vector<Vector>& A, const StyleProperties& style = StyleProperties());
299
308 void draw_pie(const Vector& c, const Interval& r, const Interval& theta, const StyleProperties& style = StyleProperties());
309
318 void draw_ellipse(const Vector& c, const Vector& ab, double theta, const StyleProperties& style = StyleProperties());
319
326 void draw_ellipsoid(const Ellipsoid& e, const StyleProperties& style = StyleProperties());
327
334 void draw_trajectory(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties());
335
342 void draw_trajectory(const AnalyticTraj<VectorType>& x, const StyleProperties& style = StyleProperties());
343
350 void draw_trajectory(const SampledTraj<Vector>& x, const ColorMap& cmap);
351
358 void draw_trajectory(const AnalyticTraj<VectorType>& x, const ColorMap& cmap);
359
366 void plot_trajectory(const SampledTraj<double>& x, const StyleProperties& style = StyleProperties());
367
374 void plot_trajectories(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties());
375
382 void draw_tube(const SlicedTube<IntervalVector>& x, const StyleProperties& style);
383
390 void draw_tube(const SlicedTube<IntervalVector>& x, const ColorMap& cmap = ColorMap::blue_tube());
391
392 // Robots
393
401 void draw_tank(const Vector& x, float size, const StyleProperties& style = StyleProperties());
402
410 void draw_AUV(const Vector& x, float size, const StyleProperties& style = StyleProperties());
411
419 void draw_motor_boat(const Vector& x, float size, const StyleProperties& style = StyleProperties());
420
421 // Pavings
422
430 void draw_paving(const PavingOut& p,
433
442 void draw_paving(const PavingInOut& p,
446
453 template<typename P>
454 void draw_subpaving(const Subpaving<P>& p, const StyleProperties& style = StyleProperties())
455 {
456 for(const auto& pi : p.boxes())
457 draw_box(pi, style);
458 }
459
460 protected:
461
462 const std::string _name;
463 Vector _pos {50,50}, _window_size {700,700};
464 std::vector<FigureAxis> _axes { axis(0,{0,1}), axis(1,{0,1}) };
465 std::vector<std::shared_ptr<OutputFigure2D>> _output_figures;
466 Interval _tdomain;
467
468 friend DefaultFigure;
469 };
470
480 {
481 public:
482
488 static std::shared_ptr<Figure2D> selected_fig()
489 {
490 if(_selected_fig == nullptr)
491 _selected_fig = _default_fig;
492 return _selected_fig;
493 }
494
500 static void set(std::shared_ptr<Figure2D> fig)
501 {
502 _selected_fig = fig;
503 }
504
511 static Figure2D& set_axes(const FigureAxis& axis1, const FigureAxis& axis2)
512 {
513 auto_init();
514 return selected_fig()->set_axes(axis1,axis2);
515 }
516
523 static void set_window_properties(const Vector& pos, const Vector& size)
524 {
525 auto_init();
526 selected_fig()->set_window_properties(pos,size);
527 }
528
532 static void auto_scale()
533 {
534 auto_init();
535 selected_fig()->auto_scale();
536 }
537
538 // Geometric shapes
539
546 static void draw_point(const Vector& c, const StyleProperties& style = StyleProperties())
547 {
548 auto_init();
549 selected_fig()->draw_point(c,style);
550 }
551
558 static void draw_box(const IntervalVector& x, const StyleProperties& style = StyleProperties())
559 {
560 auto_init();
561 selected_fig()->draw_box(x,style);
562 }
563
571 static void draw_circle(const Vector& c, double r, const StyleProperties& style = StyleProperties())
572 {
573 auto_init();
574 selected_fig()->draw_circle(c,r,style);
575 }
576
584 static void draw_ring(const Vector& c, const Interval& r, const StyleProperties& style = StyleProperties())
585 {
586 auto_init();
587 selected_fig()->draw_ring(c,r,style);
588 }
589
597 static void draw_line(const Vector& p1, const Vector& p2, const StyleProperties& style = StyleProperties())
598 {
599 auto_init();
600 selected_fig()->draw_line(p1,p2,style);
601 }
602
609 static void draw_line(const Segment& e, const StyleProperties& style = StyleProperties())
610 {
611 auto_init();
612 selected_fig()->draw_line(e,style);
613 }
614
623 static void draw_arrow(const Vector& p1, const Vector& p2, float tip_length, const StyleProperties& style = StyleProperties())
624 {
625 auto_init();
626 selected_fig()->draw_arrow(p1,p2,tip_length,style);
627 }
628
635 static void draw_polyline(const std::vector<Vector>& x, const StyleProperties& style = StyleProperties())
636 {
637 auto_init();
638 selected_fig()->draw_polyline(x,style);
639 }
640
648 static void draw_polyline(const std::vector<Vector>& x, float tip_length, const StyleProperties& style = StyleProperties())
649 {
650 auto_init();
651 selected_fig()->draw_polyline(x,tip_length,style);
652 }
653
660 static void draw_polygon(const Polygon& x, const StyleProperties& style = StyleProperties())
661 {
662 auto_init();
663 selected_fig()->draw_polygon(x,style);
664 }
665
673 static void draw_parallelepiped(const Vector& z, const Matrix& A, const StyleProperties& style = StyleProperties())
674 {
675 auto_init();
676 selected_fig()->draw_parallelepiped(z,A,style);
677 }
678
686 static void draw_zonotope(const Vector& z, const std::vector<Vector>& A, const StyleProperties& style = StyleProperties())
687 {
688 auto_init();
689 selected_fig()->draw_zonotope(z,A,style);
690 }
691
700 static void draw_pie(const Vector& c, const Interval& r, const Interval& theta, const StyleProperties& style = StyleProperties())
701 {
702 auto_init();
703 selected_fig()->draw_pie(c,r,theta,style);
704 }
705
714 static void draw_ellipse(const Vector& c, const Vector& ab, double theta, const StyleProperties& style = StyleProperties())
715 {
716 auto_init();
717 selected_fig()->draw_ellipse(c,ab,theta,style);
718 }
719
726 static void draw_ellipsoid(const Ellipsoid& e, const StyleProperties& style = StyleProperties())
727 {
728 auto_init();
729 selected_fig()->draw_ellipsoid(e,style);
730 }
731
738 static void draw_trajectory(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties())
739 {
740 auto_init();
741 selected_fig()->draw_trajectory(x,style);
742 }
743
750 static void draw_trajectory(const AnalyticTraj<VectorType>& x, const StyleProperties& style = StyleProperties())
751 {
752 auto_init();
753 selected_fig()->draw_trajectory(x,style);
754 }
755
762 static void draw_trajectory(const SampledTraj<Vector>& x, const ColorMap& cmap)
763 {
764 auto_init();
765 selected_fig()->draw_trajectory(x,cmap);
766 }
767
774 static void draw_trajectory(const AnalyticTraj<VectorType>& x, const ColorMap& cmap)
775 {
776 auto_init();
777 selected_fig()->draw_trajectory(x,cmap);
778 }
779
786 static void plot_trajectory(const SampledTraj<double>& x, const StyleProperties& style = StyleProperties())
787 {
788 auto_init();
789 selected_fig()->plot_trajectory(x,style);
790 }
791
798 static void plot_trajectories(const SampledTraj<Vector>& x, const StyleProperties& style = StyleProperties())
799 {
800 auto_init();
801 selected_fig()->plot_trajectories(x,style);
802 }
803
810 static void draw_tube(const SlicedTube<IntervalVector>& x, const StyleProperties& style = StyleProperties())
811 {
812 auto_init();
813 selected_fig()->draw_tube(x,style);
814 }
815
822 static void draw_tube(const SlicedTube<IntervalVector>& x, const ColorMap& cmap)
823 {
824 auto_init();
825 selected_fig()->draw_tube(x,cmap);
826 }
827
828 // Robots
829
837 static void draw_tank(const Vector& x, float size, const StyleProperties& style = StyleProperties())
838 {
839 auto_init();
840 selected_fig()->draw_tank(x,size,style);
841 }
842
850 static void draw_AUV(const Vector& x, float size, const StyleProperties& style = StyleProperties())
851 {
852 auto_init();
853 selected_fig()->draw_AUV(x,size,style);
854 }
855
863 static void draw_motor_boat(const Vector& x, float size, const StyleProperties& style = StyleProperties())
864 {
865 auto_init();
866 selected_fig()->draw_motor_boat(x,size,style);
867 }
868
869 // Pavings
870
878 static void draw_paving(const PavingOut& p,
879 const StyleProperties& boundary_style = StyleProperties::boundary(),
880 const StyleProperties& outside_style = StyleProperties::outside())
881 {
882 if(auto_init())
883 {
884 double rx = p.tree()->hull()[0].diam(), ry = p.tree()->hull()[1].diam();
885 _default_fig->set_window_properties({20.,20.},
886 rx > ry ? Vector({800.,800.*ry/rx}) : Vector({800.*rx/ry,800.}));
887 _default_fig->set_axes(axis(0,p.tree()->hull()[0]),axis(1,p.tree()->hull()[1]));
888 }
889
890 selected_fig()->draw_paving(p, boundary_style, outside_style);
891 }
892
901 static void draw_paving(const PavingInOut& p,
902 const StyleProperties& boundary_style = StyleProperties::boundary(),
903 const StyleProperties& outside_style = StyleProperties::outside(),
904 const StyleProperties& inside_style = StyleProperties::inside())
905 {
906 if(auto_init())
907 {
908 double rx = p.tree()->hull()[0].diam(), ry = p.tree()->hull()[1].diam();
909 _default_fig->set_window_properties({20.,20.},
910 rx > ry ? Vector({800.,800.*ry/rx}) : Vector({800.*rx/ry,800.}));
911 _default_fig->set_axes(axis(0,p.tree()->hull()[0]),axis(1,p.tree()->hull()[1]));
912 }
913
914 selected_fig()->draw_paving(p, boundary_style, outside_style, inside_style);
915 }
916
923 template<typename P>
924 static void draw_subpaving(const Subpaving<P>& p, const StyleProperties& style = StyleProperties())
925 {
926 auto_init();
927 selected_fig()->draw_subpaving(p, style);
928 }
929
930
931 protected:
932
933 static bool auto_init()
934 {
935 if(!_default_fig && !_selected_fig)
936 {
937 _default_fig = std::make_shared<Figure2D>(DEFAULT_FIG_NAME, GraphicOutput::VIBES);
938 _default_fig->set_window_properties({20.,20.}, {800.,800.});
939 _default_fig->set_axes(axis(0,{-10,10}),axis(1,{-10,10}));
940 _selected_fig = _default_fig;
941 return true;
942 }
943
944 return false;
945 }
946
947 friend Figure2D;
948
949 static std::shared_ptr<Figure2D> _default_fig;
950 static std::shared_ptr<Figure2D> _selected_fig;
951 };
952}
Default view class, used to manage the default figure.
Definition codac2_Figure2D.h:480
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:878
static void draw_trajectory(const SampledTraj< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
Definition codac2_Figure2D.h:738
static void draw_box(const IntervalVector &x, const StyleProperties &style=StyleProperties())
Draws a box on the figure.
Definition codac2_Figure2D.h:558
static void draw_ring(const Vector &c, const Interval &r, const StyleProperties &style=StyleProperties())
Draws a ring on the figure.
Definition codac2_Figure2D.h:584
static void draw_line(const Segment &e, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
Definition codac2_Figure2D.h:609
static void draw_tube(const SlicedTube< IntervalVector > &x, const StyleProperties &style=StyleProperties())
Draws a tube of IntervalVector on the figure.
Definition codac2_Figure2D.h:810
static void draw_circle(const Vector &c, double r, const StyleProperties &style=StyleProperties())
Draws a circle on the figure.
Definition codac2_Figure2D.h:571
static void draw_AUV(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws an AUV on the figure.
Definition codac2_Figure2D.h:850
static void draw_polygon(const Polygon &x, const StyleProperties &style=StyleProperties())
Draws a Polygon object on the figure.
Definition codac2_Figure2D.h:660
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:673
static void draw_ellipsoid(const Ellipsoid &e, const StyleProperties &style=StyleProperties())
Draws an ellipsoid on the figure.
Definition codac2_Figure2D.h:726
static void draw_point(const Vector &c, const StyleProperties &style=StyleProperties())
Draws a point on the figure.
Definition codac2_Figure2D.h:546
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:863
static void auto_scale()
VIBes only: auto scale the figure.
Definition codac2_Figure2D.h:532
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:648
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:686
static void set(std::shared_ptr< Figure2D > fig)
Setter for the default figure.
Definition codac2_Figure2D.h:500
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:786
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:623
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:822
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:901
static void draw_subpaving(const Subpaving< P > &p, const StyleProperties &style=StyleProperties())
Draws a subpaving on the figure.
Definition codac2_Figure2D.h:924
static Figure2D & set_axes(const FigureAxis &axis1, const FigureAxis &axis2)
Setter for the axes of the figure.
Definition codac2_Figure2D.h:511
static void draw_line(const Vector &p1, const Vector &p2, const StyleProperties &style=StyleProperties())
Draws a line on the figure.
Definition codac2_Figure2D.h:597
static void set_window_properties(const Vector &pos, const Vector &size)
Setter for the position and size of the window.
Definition codac2_Figure2D.h:523
static void draw_trajectory(const SampledTraj< Vector > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
Definition codac2_Figure2D.h:762
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:700
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:798
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:714
static std::shared_ptr< Figure2D > selected_fig()
Getter for the default figure.
Definition codac2_Figure2D.h:488
static void draw_trajectory(const AnalyticTraj< VectorType > &x, const StyleProperties &style=StyleProperties())
Draws a trajectory on the figure.
Definition codac2_Figure2D.h:750
static void draw_polyline(const std::vector< Vector > &x, const StyleProperties &style=StyleProperties())
Draws a polyline on the figure.
Definition codac2_Figure2D.h:635
static void draw_tank(const Vector &x, float size, const StyleProperties &style=StyleProperties())
Draws a tank on the figure.
Definition codac2_Figure2D.h:837
static void draw_trajectory(const AnalyticTraj< VectorType > &x, const ColorMap &cmap)
Draws a trajectory on the figure with a colormap.
Definition codac2_Figure2D.h:774
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 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:454
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
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.