codac 1.5.6
Loading...
Searching...
No Matches
codac2_AbstractSlice.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <list>
13#include <variant>
14#include <memory>
15#include "codac2_Interval.h"
18
19namespace codac2
20{
21 class TSlice;
22
23 class AbstractSlice
24 {
25 public:
26
27 AbstractSlice(const AbstractSlicedTube& tubevector, const std::list<TSlice>::iterator& _it_tslice);
28 virtual std::shared_ptr<AbstractSlice> duplicate() const = 0;
29 virtual size_t size() const = 0;
30 virtual void set_unbounded() = 0;
31
32 const Interval& t0_tf() const;
33 const TSlice& tslice() const;
34
35 const std::shared_ptr<AbstractSlice> prev_abstract_slice_ptr() const;
36 const std::shared_ptr<AbstractSlice> next_abstract_slice_ptr() const;
37
38
39 protected:
40
41 const AbstractSlicedTube& _tubevector;
42 std::list<TSlice>::iterator _it_tslice;
43
44 friend class TDomain;
45 };
46}