codac 1.5.6
Loading...
Searching...
No Matches
codac2_TSlice.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <map>
13#include <list>
14#include <vector>
15#include <memory>
16
17#include "codac2_Interval.h"
18#include "codac2_Slice.h"
19
20namespace codac2
21{
22 class TDomain;
23 class AbstractSlice;
24 class AbstractSlicedTube;
25
26 class TSlice
27 {
28 public:
29
30 explicit TSlice(const Interval& tdomain);
31 TSlice(const TSlice& tslice, const Interval& tdomain); // performs a deep copy on slices
32 const Interval& t0_tf() const;
33 bool is_gate() const;
34 const std::map<const AbstractSlicedTube*,std::shared_ptr<AbstractSlice>>& slices() const;
35 bool operator==(const TSlice& x) const;
36 bool operator!=(const TSlice& x) const;
37 friend std::ostream& operator<<(std::ostream& os, const TSlice& x);
38
39 protected:
40
41 void set_tdomain(const Interval& tdomain);
42
43 Interval _t0_tf;
44 std::map<const AbstractSlicedTube*,std::shared_ptr<AbstractSlice>> _slices;
45
46 friend class TDomain;
47 template<typename U>
48 friend class Tube;
49 };
50}