codac 2.0.0
Loading...
Searching...
No Matches
codac2_SlicedTubeBase.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include "codac2_Slice.h"
13#include "codac2_TubeBase.h"
14
15namespace codac2
16{
17 class SlicedTubeBase : public TubeBase
18 {
19 public:
20
21 SlicedTubeBase(const std::shared_ptr<TDomain>& tdomain)
22 : TubeBase(tdomain)
23 { }
24
25 inline ~SlicedTubeBase()
26 {
27 for(auto& s : *_tdomain)
28 s._slices.erase(this);
29 }
30
31 inline size_t nb_slices() const
32 {
33 return _tdomain->nb_tslices();
34 }
35
36 inline std::shared_ptr<const SliceBase> first_slice() const
37 {
38 const auto& slices = _tdomain->front().slices();
39 assert(slices.find(this) != slices.end());
40 return slices.at(this);
41 }
42
43 inline std::shared_ptr<const SliceBase> last_slice() const
44 {
45 const auto& slices = _tdomain->back().slices();
46 assert(slices.find(this) != slices.end());
47 return slices.at(this);
48 }
49 };
50}
Definition codac2_OctaSym.h:21