00001 00005 class SpaceTimeScale : public HandleId 00006 00007 { 00008 public: 00009 Ptv(real) grid_scale_factor; 00010 Ptv(real) grid_scale_reference; 00011 real time_scale_factor; 00012 real time_scale_reference; 00013 00014 SpaceTimeScale (int nsd); 00015 ~SpaceTimeScale (); 00016 00017 void defaultInit (); 00018 bool defaultScale (); 00019 00020 static void defineStatic (MenuSystem& menu, int level = MAIN); 00021 void define (MenuSystem& menu, int level = MAIN); 00022 void scan (MenuSystem& menu); 00023 00024 void setSpaceScale (const Ptv(real)& scale, const Ptv(real)& origin); 00025 void setSpaceScale (real scale); 00026 void setTimeScale (real scale); 00027 00028 00029 void scale (MatSimple(real)& grid_point_coordinates); 00030 void unscale (MatSimple(real)& grid_point_coordinates); 00031 void scale (VecSimple(real)& grid_point_coordinates, int dir); 00032 void unscale (VecSimple(real)& grid_point_coordinates, int dir); 00033 void scale (Ptv(real)& x, bool interval = false); 00034 void unscale (Ptv(real)& x, bool interval = false); 00035 }; 00036 00037 00171 class ScalarScale : public HandleId 00172 00173 { 00174 Vec(NUMT)* a_parameter; 00175 NUMT* n_parameter; 00176 Ptv(NUMT)* p_parameter; 00177 00178 00179 00180 00181 00182 public: 00183 String quantity_name; 00184 NUMT scale_factor; 00185 NUMT scale_reference; 00186 bool is_scaled; 00187 00188 ScalarScale (const char* quantity_name = NULL); 00189 ~ScalarScale (); 00190 00191 void operator = (const ScalarScale& scale); 00192 00193 void attach (Vec(NUMT)& vector); 00194 void attach (NUMT& number); 00195 void attach (Ptv(NUMT)& point); 00196 bool hasAttachedVector () { return getbool(a_parameter != NULL); } 00197 bool hasAttachedNumber () { return getbool(n_parameter != NULL); } 00198 bool hasAttachedPoint () { return getbool(n_parameter != NULL); } 00199 00200 void defaultInit (); 00201 bool defaultScale (); 00202 00203 static void defineStatic (const char* quantity_name, 00204 MenuSystem& menu, int level = MAIN); 00205 void define (MenuSystem& menu, int level = MAIN); 00206 void scan (MenuSystem& menu); 00207 00208 virtual void scale (); 00209 virtual void unscale (); 00210 }; 00211 00212