11#ifndef BRAINRAT_UTILITY_BORDER_H
12#define BRAINRAT_UTILITY_BORDER_H
15#include <cartobase/smart/rcptr.h>
16#include <aims/data/data_g.h>
17#include <aims/data/data_g.h>
19#define DEFAULT_BORDER 10
30 virtual const Point3d &
value()
const = 0;
36 virtual bool contains(
const Point3d & )
const = 0;
56 virtual const Point3d &
value()
const;
62 virtual bool contains(
const Point3d & )
const;
66 carto::VolumeRef<T> _data;
74 inline carto::VolumeRef< T >
border( carto::VolumeRef< T > &data, Point3d
border )
76 std::vector< Point3d > v;
81 v.push_back(b.
value());
85 carto::VolumeRef<T > r(v.size());
88 for ( int32_t i = 0; i < v.size(); i++ )
95 inline carto::VolumeRef< T >
border( carto::VolumeRef< T > &data, uint32_t width )
97 return border(data, Point3d(width, width, width));
Border3dIteratorOf(const carto::VolumeRef< T > &data, const int32_t width)
virtual Point3d & width()
Border3dIteratorOf(const carto::VolumeRef< T > &data, const Point3d &width)
virtual bool isValid() const
virtual ~Border3dIteratorOf()
virtual bool contains(const Point3d &) const
virtual const Point3d & value() const
virtual const Point3d & value() const =0
virtual Point3d & width()=0
virtual bool isValid() const =0
virtual ~BorderIterator()
virtual bool contains(const Point3d &) const =0
carto::VolumeRef< T > border(carto::VolumeRef< T > &data, Point3d border)