00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef __rdFunction_h__
00010 #define __rdFunction_h__
00011
00012
00013
00014 #include "rdTools.h"
00015 #include "rdObject.h"
00016
00017
00018
00019
00034 class RDTOOLS_API rdFunction : public rdObject
00035 {
00036
00037
00038
00039 public:
00040 static const char DEFAULT_NAME[];
00041 static const char PROP_MIN_X[];
00042 static const char PROP_MIN_Y[];
00043 static const char PROP_MIN_Z[];
00044 static const char PROP_MAX_X[];
00045 static const char PROP_MAX_Y[];
00046 static const char PROP_MAX_Z[];
00047 protected:
00049 double _minX;
00051 double _maxX;
00053 double _minY;
00055 double _maxY;
00057 double _minZ;
00059 double _maxZ;
00060
00061
00062
00063
00064 public:
00065
00066
00067
00068 rdFunction();
00069 rdFunction(IDOM_Element *aElement);
00070 rdFunction(const rdFunction &aFunction);
00071 virtual ~rdFunction();
00072 virtual rdFunction* copy() const = 0;
00073 virtual rdFunction* copy(IDOM_Element *aElement) const = 0;
00074 private:
00075 void setNull();
00076 void setEqual(const rdFunction &aFunction);
00077
00078
00079
00080
00081 public:
00082 rdFunction& operator=(const rdFunction &aFunction);
00083
00084
00085
00086
00087 public:
00088 void setMinX(double aMinX);
00089 double getMinX() const;
00090 void setMaxX(double aMaxX);
00091 double getMaxX() const;
00092 void setMinY(double aMinY);
00093 double getMinY() const;
00094 void setMaxY(double aMaxY);
00095 double getMaxY() const;
00096 void setMinZ(double aMinZ);
00097 double getMinZ() const;
00098 void setMaxZ(double aMaxZ);
00099 double getMaxZ() const;
00100
00101
00102
00103
00104 virtual void updateBoundingBox() = 0;
00105 virtual double
00106 evaluate(int aDerivOrder,double aX=0.0,double aY=0.0,double aZ=0.0) = 0;
00107
00108
00109
00110
00111 virtual void updateObject(bool aDeep=true);
00112 virtual void updateNode(bool aDeep=true);
00113 virtual void generateNode(IDOM_Element *aParent);
00114 void updateData();
00115
00116
00117 };
00118
00119
00120
00121 #endif // __rdFunction_h__