32 #include <boost/shared_ptr.hpp>
43 namespace ost {
namespace img {
49 class NonModAlgorithm;
Abstract base class for read-only data.
virtual PixelSampling & Sampling()=0
bool IsComplex() const
Returns true if data is currently of complex type.
ConstData(const ConstData &d)
virtual Real OverallDifference(const ConstData &d) const
virtual Point GetSpatialOrigin() const =0
Retrieve spatial origin.
bool IsFrequency() const
Returns true if data is currently in frequency domain.
virtual void Apply(NonModAlgorithm &a) const =0
Algorithm interface: NonModAlgorithm.
virtual void Detach(DataObserver *o) const =0
DataObserver interface: detach observer.
virtual Complex GetIntpolComplex(const Vec3 &v) const =0
Get interpolated complex value from 3D,2D or 1D vec.
void CalcIntpolWeights(Vec3 v, Real w[8], Point p[8]) const
implements interpolation
virtual Extent GetExtent() const =0
Return (logical) extent of data.
virtual Real NormDifference(const ConstData &d) const
Vec3 GetSpatialSampling() const
return spatial pixel dimensions
virtual Complex GetComplex(const Point &p) const =0
Get explicit complex value.
virtual Real GetIntpolReal(const Vec3 &v) const =0
Get interpolated real value from 3D,2D or 1D vec.
virtual Real GetIntpolReal(const Vec2 &v) const =0
virtual const PixelSampling & Sampling() const =0
Vec3 GetFrequencySampling() const
return frequency pixel dimensions
ConstData & operator=(const ConstData &d)
virtual Real GetIntpolReal(const Real &d) const =0
virtual void Notify() const =0
Notify each observer that state has changed.
bool IsReal() const
Returns true if data is currently of real type.
virtual void Attach(DataObserver *o) const =0
DataObserver interface: attach observer.
Size GetSize() const
Return Size.
virtual Real GetReal(const Point &p) const =0
Get explicit real value.
bool IsSpatial() const
Returns true if data is currently in spatial domain.
virtual DataDomain GetDomain() const =0
Return domain: SPATIAL, FREQUENCY or HALF_FREQUENCY.
virtual Complex GetIntpolComplex(const Real &d) const =0
virtual void ApplyIP(NonModAlgorithm &a) const =0
Vec3 GetPixelSampling() const
return pixel sampling of the current domain
virtual Complex GetIntpolComplex(const Vec2 &v) const =0
virtual DataType GetType() const =0
Return type of data: REAL or COMPLEX.
Abstract base class for data.
void SetPixelSampling(Real d)
Set uniform pixel dimensions of the current domain.
virtual void Apply(NonModAlgorithm &a) const =0
Algorithm interface: NonModAlgorithm.
void SetPixelSampling(const Vec3 &)
void SetSpatialSampling(const Vec3 &)
set spatial pixel dimensions (non-uniform)
virtual void SetSpatialOrigin(const Point &o)=0
Set the spatial origin.
virtual void ApplyIP(NonModAlgorithm &a) const =0
void SetSpatialSampling(Real d)
set spatial pixel dimensions (uniform)
Data & operator=(const Data &d)
Abstract base class of data observer.
Defines lower and upper valid indices.
Non-modifying Algorithm, abstract base class.
Helper class to handle pixel sampling.
class encapsulating 1D to 3D point
class encapsulating 1D to 3D size
#define DLLEXPORT_OST_IMG_BASE
std::complex< Real > Complex
DataDomain
underlying data type