36 #ifndef PROFILEEMPTY_OBJECT_H
37 #define PROFILEEMPTY_OBJECT_H
99 radiusTop(radTop), radiusBottom(radBot)
122 { radiusBottom = radii[rIndex++];
123 radiusTop = radii[rIndex++];
139 virtual int class_size()
const
148 {
return ProfileType::EMPTY; };
153 virtual bool operator == (
const Profile& p)
const
154 {
return (Profile::operator==(p) &&
164 int attributeIndex,
double radius,
165 bool allowRadiusOutOfRange)
const;
175 virtual double getValue(
int attributeIndex,
int nodeIndex)
const
176 {
return NaN_DOUBLE; }
188 virtual bool isNaN(
int nodeIndex,
int attributeIndex)
200 virtual double getValueTop(
int attributeIndex)
const
212 virtual double getValueBottom(
int attributeIndex)
const
221 virtual float getRadius(
int i)
const
222 {
return i == 0 ? radiusBottom : radiusTop; };
228 virtual Data** getData();
233 virtual Data* getData(
int i);
238 virtual const Data& getData(
int i)
const;
243 virtual void setData(
const vector<Data*>& inData)
250 virtual void setRadii(
const vector<float>& newRadii)
251 { radiusBottom = newRadii[0]; radiusTop = newRadii[1]; }
257 virtual void setData(
int index,
Data* inData)
268 virtual const Data& getDataTop()
const;
283 virtual const Data& getDataBottom()
const;
303 virtual float* getRadii()
304 {
float* fa =
new float [2]; fa[0] = radiusBottom;
305 fa[1] = radiusTop;
return fa; };
319 { ofs.
writeInt(ProfileType::EMPTY.ordinal());
335 virtual int findClosestRadiusIndex(
double radius)
const
336 {
return abs(radiusTop - radius) < abs(radiusBottom - radius) ? 1 : 0; }
346 virtual void setPointIndex(
int nodeIndex,
int pointIndex)
369 virtual int getPointIndex(
int nodeIndex)
const
379 virtual void getWeights(map<int, double>& weights,
380 double dkm,
double radius,
double hcoefficient)
const
389 virtual void getCoefficients(map<int, double>& coefficients,
double radius,
390 double horizontalCoefficient)
const
396 vector<int>& nodeIndexes, vector<double>& coefficients,
397 double& radius,
bool& allowOutOfRange)
400 nodeIndexes.push_back(0);
401 coefficients.push_back(NaN_DOUBLE);
421 #endif // PROFILEEMPTY_OBJECT_H