2 #include "../../tessellation/ConvexHull.hpp" 3 #include "../../misc/lazy_list.hpp" 6 class CellEdgesGetter:
public LazyList<Edge>
11 tess_(tess), edge_indices_(tess.GetCellEdges(n)) {}
13 size_t size(
void)
const 15 return edge_indices_.size();
20 return tess_.GetEdge(edge_indices_[i]);
25 const vector<int> edge_indices_;
29 CacheData::VolumeCalculator::VolumeCalculator
32 tess_(tess), pg_(pg) {}
34 size_t CacheData::VolumeCalculator::size(
void)
const 36 return static_cast<size_t>(tess_.GetPointNo());
39 double CacheData::VolumeCalculator::operator[](
const size_t i)
const 45 CacheData::AreaCalculator::AreaCalculator
48 tess_(tess), pg_(pg) {}
50 size_t CacheData::AreaCalculator::size(
void)
const 52 return tess_.getAllEdges().size();
55 double CacheData::AreaCalculator::operator[](
const size_t i)
const 57 return pg_.calcArea(tess_.getAllEdges()[i]);
62 volume_func_(tess,pg), area_func_(tess,pg),cm_func_(tess,pg),
63 volumes(volume_func_), areas(area_func_),CMs(cm_func_) {}
72 CacheData::CMCalculator::CMCalculator
75 tess_(tess), pg_(pg) {}
77 size_t CacheData::CMCalculator::size(
void)
const 79 return static_cast<size_t>(tess_.GetPointNo());
82 Vector2D CacheData::CMCalculator::operator[](
const size_t i)
const 84 vector<Vector2D> chull;
86 return pg_.calcCentroid(chull);
CacheData(const Tessellation &tess, const PhysicalGeometry &pg)
Class constructor.
void reset(void) const
Marks all items for recalculation.
Abstract class for tessellation.
void reset(void) const
Marks all terms for recalculation.
const CachedLazyList< Vector2D > CMs
List of center of masses of the cells.
vector< T > serial_generate(const LazyList< T > &ll)
Creates a vector from an LazyList.
Interface between two cells.
const CachedLazyList< double > areas
List of areas of interfaces.
Ordered list whose terms are evaluated lazily.
virtual T operator[](const size_t i) const =0
Returns a single member of the list.
void ConvexHull(vector< Vector2D > &result, Tessellation const &tess, int index)
Returns the ConvexHull for a set of points.
const CachedLazyList< double > volumes
List of cell volumes.
Geometrical cache data for optimisation.
Base class for physical geometry.
virtual size_t size(void) const =0
Returns the length of the list.