00001 #ifndef PROPERTYSET_H 00002 #define PROPERTYSET_H 00003 00004 #include <string> 00005 00006 #include "vnode.h" 00007 00012 namespace afl 00013 { 00014 namespace ddf 00015 { 00016 class Property; 00017 class Geometry; 00018 00022 class PropertySet 00023 { 00024 public: 00025 00026 // Constructors/Destructors 00027 // 00028 00029 00033 PropertySet ( ); 00034 00039 PropertySet( const PropertySet& toCopy ); 00040 00046 PropertySet& operator=( const PropertySet& toCopy ); 00047 00051 ~PropertySet ( ); 00052 00058 void save( const std::string& dir ) const; 00059 00060 00067 Property* loadPoints( const std::string& path ); 00068 00074 Property* initPoints( const Geometry* geom ); 00075 00076 00083 Property* loadValues( const std::string& path ); 00084 00090 Property* initValues( const Geometry* geom ); 00091 00092 00099 Property* loadJacobian( const std::string& path ); 00100 00106 Property* initJacobian( const Geometry* geom ); 00107 00108 00113 const Property* getPoints ( ) const { return _points; } 00114 00115 00120 const Property* getValues ( ) const { return _values; } 00121 00122 00127 const Property* getJacobian ( ) const { return _jacobian; } 00128 00133 Property* getPoints ( ) { return _points; } 00134 00135 00140 Property* getValues ( ) { return _values; } 00141 00142 00147 Property* getJacobian ( ) { return _jacobian; } 00148 00153 VNode getVNode( size_t loc ); 00154 00159 VNode getVNode( size_t loc ) const; 00160 00161 private: 00162 00163 // Private attributes 00164 // 00165 00166 Property *_points; 00167 Property *_values; 00168 Property *_jacobian; 00169 00170 void initAttributes ( ) ; 00171 }; 00172 00173 } 00174 } 00175 #endif // PROPERTYSET_H