1 #ifndef DM_ICALCULATOR_HPP_INCLUDED
2 #define DM_ICALCULATOR_HPP_INCLUDED
8 #include "DM/IGeometry.hpp"
25 ternaryConditional = raster << 1,
26 assignment = ternaryConditional << 1,
27 neighbors = assignment << 1,
28 full = (neighbors<<1)-1
53 virtual void rasterNoData(
const double *raster,
unsigned sRaster )
const = 0;
56 virtual double resultDouble(
const IGeometry &geom )
const = 0;
57 virtual double resultDouble(
const double *raster,
unsigned sRaster )
const = 0;
58 virtual double resultDouble(
const IGeometry &geom,
const double *raster,
unsigned sRaster )
const = 0;
59 virtual double resultDouble(
const IGeometry &geom,
const double *raster,
unsigned sRaster,
60 const IGeometry **neighbors,
unsigned sNeighbors )
const = 0;
63 virtual double resultDouble(
IGeometry &geom )
const = 0;
64 virtual double resultDouble(
double *raster,
unsigned sRaster )
const = 0;
65 virtual double resultDouble(
IGeometry &geom,
double *raster,
unsigned sRaster )
const = 0;
66 virtual double resultDouble(
IGeometry &geom,
double *raster,
unsigned sRaster,
67 IGeometry **neighbors,
unsigned sNeighbors )
const = 0;
70 virtual bool queriesRasters()
const = 0;
72 virtual bool queriesNeighbors()
const = 0;
74 virtual bool containsAssignment()
const = 0;
76 virtual DataTypeSuperset::Type typeSuperset()
const = 0;
78 virtual void print(std::ostream&)
const = 0;
81 typedef Handle< ICalculator > CalculatorHandle;
83 DM_API ICalculator::Dialect::Type operator| (
const ICalculator::Dialect::Type &left,
const ICalculator::Dialect::Type &right );
87 #endif //DM_ICALCULATOR_HPP_INCLUDED