ML Reference
MeVis/Foundation/Sources/ML/include/mlFields.h
Go to the documentation of this file.
00001 // **InsertLicense** code
00002 //-------------------------------------------------------------------------
00012 //-------------------------------------------------------------------------
00013 #ifndef __mlFields_H
00014 #define __mlFields_H
00015 
00016 // ML-includes
00017 #ifndef __mlInitSystemML_H
00018 #include "mlInitSystemML.h"
00019 #endif
00020 #ifndef __mlBasics_H
00021 #include "mlBasics.h"
00022 #endif
00023 #ifndef __mlField_H
00024 #include "mlField.h"
00025 #endif
00026 #ifndef __mlRuntimeSubClass_H
00027 #include "mlRuntimeSubClass.h"
00028 #endif
00029 
00030 #include "mlPlane.h"
00031 #include "mlRotation.h"
00032 #include "mlSubImageBoxd.h"
00033 #include "mlRefCountedBase.h"
00034 
00036 // Inventor Nodes
00037 class SoNode;
00038 
00040 
00041 
00042 ML_START_NAMESPACE
00043 
00044 #ifdef ML_DEPRECATED
00045 #define ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER ML_DEPRECATED
00046 #endif
00047 
00049 class Module;
00050 class OutputConnector;
00051 class InputConnector;
00053 
00054 //-------------------------------------------------------------------------
00056 //-------------------------------------------------------------------------
00057 MLEXPORT void MLInitFields();
00058 
00059 //-------------------------------------------------------------------------
00062 //-------------------------------------------------------------------------
00063 class MLEXPORT BoolField : public Field 
00064 {
00066   ML_CLASS_HEADER(BoolField);
00067   
00068   
00069 public:
00070   
00072   BoolField();
00073   
00076   BoolField(const std::string& name);
00077 
00079   void setStringValue(const std::string& value);
00080 
00082   void setBoolValue(bool boolValue);
00083 
00086   void updateBoolValue(bool boolValue);
00087 
00089   void toggleValue();
00090 
00092   std::string getStringValue() const;
00093 
00095   bool getBoolValue() const;
00096 
00098   bool isOn() const;
00099   
00100 protected:
00101   
00103   virtual void setValueFromField(const Field& field);
00104 
00105 private:
00106   
00108   bool* _valuePtr;
00109 
00111   bool  _internalValue;
00112 
00114   void _initialize(const std::string& name="", bool* valuePtr=NULL);
00115   
00116 #ifdef ML_DEPRECATED
00117   
00119 
00120   
00121 public:
00122   
00125   inline ML_DEPRECATED void switch_Value() { toggleValue(); }
00127   
00128 #endif // ML_DEPRECATED
00129   
00130 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00131   
00133 
00134   
00135 public:
00136 
00139   BoolField(const std::string &name, bool *valuePtr);
00140   
00142   
00143 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00144  
00145   
00146 };
00147 
00148 
00149 //-------------------------------------------------------------------------
00152 //-------------------------------------------------------------------------
00153 class MLEXPORT IntField : public Field 
00154 {
00156   ML_CLASS_HEADER(IntField);
00157 
00158 public:
00159 
00161   IntField();
00162   
00165   IntField(const std::string& name);
00166 
00168   void setStringValue(const std::string& value);
00169 
00171   void setIntValue(MLint intValue);
00172 
00175   void updateIntValue(MLint intValue);
00176 
00180   std::string getStringValue() const;
00181 
00183   MLint getIntValue() const;
00184   
00185 protected:
00186   
00188   virtual void setValueFromField(const Field& field);
00189 
00190 private:
00191   
00193   MLintPtr _valuePtr;
00194   
00196   MLint    _internalValue;
00197 
00199   void _initialize(const std::string& name="", MLintPtr valuePtr=NULL);
00200   
00203   MLint _minValue;  
00206   MLint _maxValue;
00207   
00208 #ifdef ML_DEPRECATED
00209   
00211 
00212   
00213 public:
00214 
00217   ML_DEPRECATED void setIntMaxValue(MLint maxValue);
00220   ML_DEPRECATED MLint getIntMaxValue() const;
00223   ML_DEPRECATED void setIntMinValue(MLint minValue);
00226   ML_DEPRECATED MLint getIntMinValue() const;
00228   
00229 #endif // ML_DEPRECATED
00230   
00231 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00232   
00234 
00235   
00236 public:
00237   
00240   IntField(const std::string &name, MLintPtr valuePtr);  
00241   
00243   
00244 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00245   
00246 };
00247 
00248 #ifdef ML_DEPRECATED
00249 //-------------------------------------------------------------------------
00253 //-------------------------------------------------------------------------
00254 class MLEXPORT ML_DEPRECATED ToggleField : public Field 
00255 {
00257   ML_CLASS_HEADER(ToggleField);
00258   
00259 public:
00260 
00262   ToggleField();
00263   
00268   ToggleField(const std::string& name);
00269 
00271   void setStringValue(const std::string& value);
00272 
00274   void setIntValue(int intValue);
00275   
00277   void setToggleValue(bool b);
00278   
00281   void toggleValue();
00282   
00285   std::string getStringValue() const;
00286   
00288   int getIntValue() const;
00289 
00291   bool isOn() const;
00292   
00293 protected:
00294   
00296   virtual void setValueFromField(const Field& field);
00297 
00298 private:
00299   
00301   int* _valuePtr;
00302 
00304   int  _internalValue;
00305 
00307   void _initialize(const std::string& name="", int* valuePtr=NULL);
00308   
00309 #ifdef ML_DEPRECATED
00310   
00312 
00313   
00314 public:
00315   
00318   ML_DEPRECATED void switch_Value();
00320   
00321 #endif // ML_DEPRECATED
00322   
00323 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00324   
00326 
00327   
00328 public:
00329   
00332   ToggleField(const std::string &name, int* valuePtr);
00333   
00335   
00336 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00337   
00338 };
00339 
00340 #endif // ML_DEPRECATED
00341 
00342 //-------------------------------------------------------------------------
00345 //-------------------------------------------------------------------------
00346 class MLEXPORT EnumField : public Field 
00347 {
00349   ML_CLASS_HEADER(EnumField);
00350 
00351 public:
00352 
00354   EnumField();
00356   EnumField(const std::string& name);
00357   
00365   EnumField(const std::string& name, const std::string enumerationItemNames[], size_t numEnumerationItems);
00366 
00374   EnumField(const std::string& name, const char* const* enumerationItemNames, size_t numEnumerationItems);
00375 
00383   EnumField(const std::string& name, const std::vector<std::string> &enumerationItemNames);
00384 
00386   virtual  ~EnumField();
00387 
00391   void setStringValue(const std::string& value);
00392   
00395   void setStringValueDefaulted(const std::string& value, int defaultItem);
00396   
00398   void setEnumValue(int index);
00399   
00402   void updateEnumValue(int index);
00403   
00407   std::string getStringValue() const;
00408 
00413   const char* getStringValue(size_t index) const;
00414   
00416   int getEnumValue() const;
00417   
00419   size_t getNumEnumerationItems() const;
00420   
00422   virtual MLint isValidValue();
00423 
00424 private:
00425   
00427   void _initialize(const std::string& name="", size_t numEnums=0, int* valuePtr=NULL);
00428   
00430   void _setEnumerationNames(const std::string enumNames[]);
00432   void _setEnumerationNames(const char* const* enumNames);
00434   void _setEnumerationNames(const std::vector<std::string> &enumNames);
00435   
00438   int* _valuePtr;
00439 
00441   int  _internalValue;
00442 
00443 
00445   size_t _enumNum;
00446 
00448   char** _enumNames;
00449   
00450   
00451 #ifdef ML_DEPRECATED
00452   
00454 
00455   
00456 public:
00457   
00460   inline ML_DEPRECATED size_t getEnumNum() const { return getNumEnumerationItems(); }
00461   
00463   
00464 #endif // ML_DEPRECATED
00465   
00466   
00467 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00468   
00470 
00471   
00472 public:
00473   
00476   EnumField(const std::string &name, const std::string enumNames[], size_t enumNum, int *valuePtr);
00477   
00480   EnumField(const std::string &name, const char* const* enumNames, size_t enumNum, int *valuePtr);
00481   
00483   
00484 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00485   
00486 };
00487 
00488 
00489 //-------------------------------------------------------------------------
00492 //-------------------------------------------------------------------------
00493 class MLEXPORT FloatField : public Field 
00494 {
00496   ML_CLASS_HEADER(FloatField);
00497   
00498 public:
00499 
00501   FloatField();
00502 
00505   FloatField(const std::string& name);
00506 
00508   void setStringValue(const std::string& stringValue);
00509   
00512   void setFloatValue(float floatValue);
00513 
00518   void updateFloatValue(float floatValue);
00519 
00522   std::string getStringValue() const;
00523   
00525   float getFloatValue() const;
00526     
00527 protected:
00529   virtual void setValueFromField(const Field& field);
00530 
00532   void _initialize(const std::string& name="", float* valuePtr=NULL);
00533   
00534   
00536   float* _valuePtr;
00537 
00539   float  _internalValue;
00540 
00543   float _minValue;  
00546   float _maxValue;
00547   
00548 #ifdef ML_DEPRECATED
00549 
00551 
00552   
00553 public:
00554   
00557   ML_DEPRECATED void setFloatMaxValue(float maxValue);
00560   ML_DEPRECATED float getFloatMaxValue() const;
00563   ML_DEPRECATED void setFloatMinValue(float minValue);
00566   ML_DEPRECATED float getFloatMinValue() const;
00567   
00569   
00570 #endif // ML_DEPRECATED
00571   
00572 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00573   
00575 
00576   
00577 public:  
00578 
00581   FloatField(const std::string& name, float *valuePtr);
00582   
00584   
00585 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00586   
00587   
00588 };
00589 
00590 
00591 //-------------------------------------------------------------------------
00597 //-------------------------------------------------------------------------
00598 class MLEXPORT ProgressField : public FloatField 
00599 {
00601   ML_CLASS_HEADER(ProgressField);
00602 
00603 public:
00604   
00606   ProgressField();
00607 
00612   ProgressField(const std::string& name);
00613 
00616   void setFloatValue(float floatValue);
00617 
00619   void setProgressValue(float floatValue);
00620   
00622   inline float getProgressValue() { return getFloatValue(); }
00623 
00626   void setUpdateDifference(float epsilonValue);
00627   
00628 private:
00630   float _difference;
00631   
00633   void _initialize();
00634   
00635 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00636   
00638 
00639   
00640 public:
00641   
00644   ProgressField(const std::string& name, float *valuePtr);
00645   
00647   
00648 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00649   
00650 };
00651 
00652 
00653 //-------------------------------------------------------------------------
00656 //-------------------------------------------------------------------------
00657 class MLEXPORT DoubleField : public Field 
00658 {
00660   ML_CLASS_HEADER(DoubleField);
00661   
00662   
00663 public:
00664   
00666   DoubleField();
00667 
00670   DoubleField(const std::string& name);
00671 
00673   void setStringValue(const std::string& stringValue);
00674   
00676   void setDoubleValue(double doubleValue);
00677 
00682   void updateDoubleValue(double doubleValue);
00683 
00686   std::string getStringValue() const;
00687   
00689   double getDoubleValue() const;
00690     
00691 protected:
00693   virtual void setValueFromField(const Field& field);
00694 
00695 private:
00697   double* _valuePtr;
00698  
00700   double  _internalValue;
00701   
00703   void _initialize(const std::string& name="", double* valuePtr=NULL);
00704 
00707   double _minValue;  
00710   double _maxValue;
00711   
00712 #ifdef ML_DEPRECATED
00713 
00715 
00716   
00717 public:
00718   
00721   ML_DEPRECATED void setDoubleMaxValue(double maxValue);
00724   ML_DEPRECATED double getDoubleMaxValue() const;
00727   ML_DEPRECATED void setDoubleMinValue(double minValue);
00730   ML_DEPRECATED double getDoubleMinValue() const;
00731 
00733     
00734 #endif // ML_DEPRECATED
00735   
00736 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00737 
00739 
00740   
00741 public:
00742 
00745   DoubleField(const std::string& name, double *valuePtr);
00746 
00748   
00749 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
00750     
00751 };
00752 
00753 
00754 //-------------------------------------------------------------------------
00757 //-------------------------------------------------------------------------
00758 class MLEXPORT LongDoubleField : public Field 
00759 {
00761   ML_CLASS_HEADER(LongDoubleField);
00762 
00763   
00764 public:
00765 
00766   // Default constructor, do not use it.
00767   LongDoubleField();
00768 
00771   LongDoubleField(const std::string& name);
00772 
00774   void setStringValue(const std::string& stringValue);
00775   
00778   void setLongDoubleValue(MLldouble longDoubleValue);
00779   
00782   std::string getStringValue() const;
00783   
00785   MLldouble getLongDoubleValue() const;
00786     
00787 protected:
00789   virtual void setValueFromField(const Field& field);
00790 
00791 private:
00793   MLldouble _value;
00794   
00796   void _initialize(const std::string& name="");
00797   
00800   MLldouble _minValue;  
00803   MLldouble _maxValue;
00804   
00805 #ifdef ML_DEPRECATED
00806 
00808 
00809 
00810 public:
00811   
00814   ML_DEPRECATED void setLongDoubleMaxValue(MLldouble maxValue);
00817   ML_DEPRECATED MLldouble getLongDoubleMaxValue() const;
00820   ML_DEPRECATED void setLongDoubleMinValue(MLldouble minValue);
00823   ML_DEPRECATED MLldouble getLongDoubleMinValue() const;
00825     
00826 #endif // ML_DEPRECATED
00827 };
00828 
00829 
00830 //-------------------------------------------------------------------------
00833 //-------------------------------------------------------------------------
00834 class MLEXPORT StringField : public Field 
00835 {
00837   ML_CLASS_HEADER(StringField);
00838     
00839   
00840 public:
00841 
00843   StringField();
00844 
00847   StringField(const std::string& name);
00848 
00850   void setStringValue(const std::string& stringValue);
00851 
00854   void updateStringValue(const std::string& stringValue);
00855 
00858   std::string getStringValue() const;
00859 
00860 private:
00863   std::string _value;
00864   
00866   void _initialize(const std::string& name="");
00867 };
00868 
00869 
00870 //-------------------------------------------------------------------------
00873 //-------------------------------------------------------------------------
00874 class MLEXPORT NotifyField : public Field 
00875 {
00877   ML_CLASS_HEADER(NotifyField);
00878 
00879 public:
00880 
00882   NotifyField();
00883 
00887   NotifyField(const std::string& name);
00888 
00891   void setStringValue(const std::string& /*value*/);
00892   
00894   std::string getStringValue() const;
00895   
00897   void notify();
00898 
00899 };
00900 
00901 
00902 //-------------------------------------------------------------------------
00906 //-------------------------------------------------------------------------
00907 class MLEXPORT OutputConnectorField : public Field 
00908 {
00910   ML_CLASS_HEADER(OutputConnectorField);  
00911   
00912 public:
00913 
00915   OutputConnectorField();
00916   
00919   OutputConnectorField(const std::string& name, Module* module, MLint outputImageIndex);
00920 
00922   virtual ~OutputConnectorField();
00923 
00927   void setStringValue(const std::string& /*value*/);
00928 
00932   virtual void touch(FieldSensor::Strength strength=FieldSensor::CHANGED);
00933 
00938   std::string getStringValue() const;
00939   
00941   OutputConnector& getOutputConnectorValue() const;
00942 
00944   virtual MLint isValidValue();
00945 
00946   
00947 private:
00948   
00950   OutputConnector* _valuePtr;
00951   
00953   void _initialize();
00954 };
00955 
00956 
00957 //-------------------------------------------------------------------------
00961 //-------------------------------------------------------------------------
00962 class MLEXPORT InputConnectorField : public Field 
00963 {
00965   ML_CLASS_HEADER(InputConnectorField);
00966   
00967 public:
00968 
00970   InputConnectorField();
00971 
00976   InputConnectorField(const std::string& name, Module* module, MLint inputImageIndex);
00977 
00979   virtual ~InputConnectorField();
00980 
00984   void setStringValue(const std::string& /*value*/);
00985 
00988    std::string getStringValue() const;
00989 
00991   InputConnector& getInputConnectorValue() const;
00992 
00994   virtual MLint isValidValue();
00995 
00996 private:
00998   InputConnector* _valuePtr;
00999   
01001   void _initialize();
01002 };
01003 
01004 
01005 //-------------------------------------------------------------------------
01008 //-------------------------------------------------------------------------
01009 class MLEXPORT BaseField : public Field 
01010 {
01012   ML_CLASS_HEADER(BaseField);
01013   
01014 public:
01015   
01017   BaseField();
01018 
01021   BaseField(const std::string& name);
01022 
01024   ~BaseField();
01025 
01027   void setStringValue(const std::string& stringValue);
01028 
01030   void setBaseValue(Base* basePointerValue);
01031   
01033   void setBaseValue(const RefCountedBasePtr& value);
01034 
01038   std::string getStringValue() const;
01039   
01041   Base* getBaseValue() const;
01042   
01044   virtual void touchSourceFields (void);
01045 
01051   void addAllowedType(const RuntimeType* allowedType);
01052 
01054   template <typename T>
01055   void addAllowedType() { addAllowedType(T::getClassTypeId()); }
01056 
01060   template <typename T>
01061   void setBaseValueAndAddAllowedType(T* value) { addAllowedType(value->getClassTypeId()); setBaseValue(value); }
01062 
01065   template <typename T>
01066   void setBaseValueAndAddAllowedType(const ::boost::intrusive_ptr<T>& value) { setBaseValueAndAddAllowedType(value.get()); }
01067 
01069   std::vector<const RuntimeType*> getAllowedTypes() const { return _allowedTypes; }
01070 
01073   bool hasUnallowedType() const { return _unallowedType; }
01074 
01075 protected:  
01077   virtual void setValueFromField(const Field& field);
01078 
01079 private:  
01081   Base* _value;
01082 
01084   std::vector<const RuntimeType*> _allowedTypes;
01085 
01087   bool _unallowedType;
01089   bool _isRefCountedBase; 
01090 
01092   void _initialize(const std::string& name="");
01093   
01094 };
01095 
01096 
01097 //-------------------------------------------------------------------------
01103 //-------------------------------------------------------------------------
01104 class MLEXPORT SoNodeField : public Field 
01105 {
01107   ML_CLASS_HEADER(SoNodeField);
01108   
01109 public:
01110 
01112   SoNodeField();  
01113   
01116   SoNodeField(const std::string& name);
01117   
01119   void setStringValue(const std::string& stringValue);
01120 
01122   void setSoNodeValue(SoNode* soNodeValue);
01123   
01127   std::string getStringValue() const;
01128   
01130   SoNode* getSoNodeValue() const;
01131   
01132 protected:
01134   virtual void setValueFromField(const Field& field);
01135 
01136 private:
01138   SoNode*  _internalValue;
01139 
01141   void _initialize(const std::string& name="");
01142 };
01143 
01144 
01145 //-------------------------------------------------------------------------
01152 //-------------------------------------------------------------------------
01153 class MLEXPORT PointerField : public Field 
01154 {
01156   ML_CLASS_HEADER(PointerField);
01157   
01158 public:
01159   
01161   PointerField();
01162 
01165   PointerField(const std::string& name);
01166   
01169   void setStringValue(const std::string& stringValue);
01170 
01172   void setPointerValue(void* voidPointerValue);
01173   
01176   std::string getStringValue() const;
01177   
01179   void* getPointerValue() const;
01180   
01181 private:
01183   void* _valuePtr;
01184   
01186   void _initialize(const std::string& name="");
01187 };
01188 
01189 //-------------------------------------------------------------------------
01192 //-------------------------------------------------------------------------
01193 class MLEXPORT Vector2Field : public Field 
01194 {
01196   ML_CLASS_HEADER(Vector2Field);
01197   
01198 public:
01199 
01201   Vector2Field();
01202   
01205   Vector2Field(const std::string& name);
01206   
01208   void setStringValue(const std::string& stringValue);
01209   
01211   void setVector2Value(const Vector2& vectorValue);
01212 
01216   void updateVector2Value(const Vector2& vectorValue);
01217 
01219   inline void setVectorValue(const Vector2& vectorValue) { setVector2Value(vectorValue); } 
01220   
01222   std::string getStringValue() const;
01223 
01225   const Vector2& getVector2Value() const;
01226 
01228   inline const Vector2& getVectorValue() const { return getVector2Value(); }
01229       
01230 protected:
01232   virtual void setValueFromField(const Field& field);
01233 
01234 private:
01236   Vector2* _valuePtr;
01237 
01239   Vector2  _internalValue;
01240 
01242   void _initialize(const std::string& name="", Vector2* valuePtr=NULL);
01243   
01244   
01245 #ifdef ML_DEPRECATED
01246 
01248 
01249   
01250 public:
01251   
01254   inline ML_DEPRECATED void setVec2fValue(const Vector2& value) { setVector2Value(value); }
01257   inline ML_DEPRECATED const Vector2& getVec2fValue() const { return getVector2Value(); }
01258   
01260   
01261 #endif // ML_DEPRECATED
01262   
01263 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01264 
01266 
01267   
01268 public:  
01269 
01272   Vector2Field(const std::string& name, Vector2* valuePtr);  
01273   
01275   
01276 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01277   
01278   
01279 };
01280 
01281 #ifdef ML_DEPRECATED
01282 
01283 
01284 
01285 
01286 ML_DEPRECATED typedef Vector2Field Vec2fField;
01288 #endif // ML_DEPRECATED
01289 
01290 //-------------------------------------------------------------------------
01293 //-------------------------------------------------------------------------
01294 class MLEXPORT Vector3Field : public Field 
01295 {
01297   ML_CLASS_HEADER(Vector3Field);
01298   
01299 public:
01300 
01302   Vector3Field();
01303 
01306   Vector3Field(const std::string& name);
01307   
01309   void setStringValue(const std::string& stringValue);
01310   
01312   void setVector3Value(const Vector3& vectorValue);
01313 
01317   void updateVector3Value(const Vector3& vectorValue);
01318 
01320   inline void setVectorValue(const Vector3& vectorValue) { setVector3Value(vectorValue); }
01321   
01325   std::string getStringValue() const;
01326   
01328   const Vector3& getVector3Value() const;
01329 
01331   inline const Vector3& getVectorValue() const { return getVector3Value(); }
01332   
01333   
01334 protected:
01336   virtual void setValueFromField(const Field& field);
01337 
01338 private:
01340   Vector3* _valuePtr;
01341 
01343   Vector3  _internalValue;
01344 
01346   void _initialize(const std::string& name="", Vector3* valuePtr=NULL);
01347 
01348   
01349 #ifdef ML_DEPRECATED
01350 
01352 
01353 
01354 public:
01357   inline ML_DEPRECATED void setVec3fValue(const Vector3& value) { setVector3Value(value); }
01360   inline ML_DEPRECATED const Vector3& getVec3fValue() const { return getVector3Value(); }
01361 
01363   
01364 #endif // ML_DEPRECATED
01365   
01366 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01367 
01369 
01370 
01371 public:
01372 
01375   Vector3Field(const std::string& name, Vector3* valuePtr);
01376   
01378   
01379 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01380   
01381 };
01382 
01383 #ifdef ML_DEPRECATED
01384 
01385 
01386 
01387 
01388 ML_DEPRECATED typedef Vector3Field Vec3fField;
01390 #endif // ML_DEPRECATED
01391 
01392 
01393 //-------------------------------------------------------------------------
01396 //-------------------------------------------------------------------------
01397 class MLEXPORT Vector4Field : public Field 
01398 {
01400   ML_CLASS_HEADER(Vector4Field);
01401 
01402 public:
01403   
01405   Vector4Field();
01406   
01409   Vector4Field(const std::string& name);
01410   
01412   void setStringValue(const std::string& stringValue);
01413   
01415   void setVector4Value(const Vector4& vectorValue);
01416 
01420   void updateVector4Value(const Vector4& vectorValue);
01421 
01423   inline void setVectorValue(const Vector4& vectorValue) { setVector4Value(vectorValue); }
01424 
01425   
01429   std::string getStringValue() const;
01430 
01432   const Vector4& getVector4Value() const;
01433 
01435   inline const Vector4& getVectorValue() const { return getVector4Value(); }
01436   
01437 protected:
01439   virtual void setValueFromField(const Field& field);
01440 
01441 private:
01443   Vector4* _valuePtr;
01444 
01446   Vector4  _internalValue;
01447 
01449   void _initialize(const std::string& name="", Vector4* valuePtr=NULL);
01450   
01451   
01452 #ifdef ML_DEPRECATED
01453 
01455 
01456   
01457 public:
01460   inline ML_DEPRECATED void setVec4fValue(const Vector4& value) { setVector4Value(value); }
01463   inline ML_DEPRECATED const Vector4& getVec4fValue() const { return getVector4Value(); }
01464   
01466   
01467 #endif // ML_DEPRECATED
01468   
01469 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01470 
01472 
01473 
01474 public:  
01475 
01478   Vector4Field(const std::string& name, Vector4* valuePtr);  
01479   
01481   
01482 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01483   
01484 };
01485 
01486 #ifdef ML_DEPRECATED
01487 
01488 
01489 
01490 
01491 ML_DEPRECATED typedef Vector4Field Vec4fField;
01493 #endif // ML_DEPRECATED
01494 
01495 
01496 //-------------------------------------------------------------------------
01499 //-------------------------------------------------------------------------
01500 class MLEXPORT Vector5Field : public Field 
01501 {
01503   ML_CLASS_HEADER(Vector5Field);
01504   
01505 
01506 public:
01507 
01509   Vector5Field();
01510   
01513   Vector5Field(const std::string& name);
01514   
01516   void setStringValue(const std::string& stringValue);
01517   
01519   void setVector5Value(const Vector5& vectorValue);
01520 
01524   void updateVector5Value(const Vector5& vectorValue);
01525 
01527   inline void setVectorValue(const Vector5& vectorValue) { setVector5Value(vectorValue); }
01528 
01532   std::string getStringValue() const;
01533 
01535   const Vector5& getVector5Value() const;
01536 
01538   inline const Vector5& getVectorValue() const { return getVector5Value(); }
01539 
01540   
01541 protected:
01543   virtual void setValueFromField(const Field& field);
01544 
01545 private:
01547   Vector5 _value;
01548   
01550   void _initialize(const std::string& name="");
01551   
01552   
01553 #ifdef ML_DEPRECATED
01554 
01556 
01557   
01558 public:
01559   
01562   inline ML_DEPRECATED void setVec5fValue(const Vector5& value) { setVector5Value(value); }
01565   inline ML_DEPRECATED const Vector5& getVec5fValue() const { return getVector5Value(); }
01566   
01568   
01569 #endif // ML_DEPRECATED
01570   
01571 };
01572 
01573 #ifdef ML_DEPRECATED
01574 
01575 
01576 
01577 
01578 ML_DEPRECATED typedef Vector5Field Vec5fField;
01580 #endif // ML_DEPRECATED
01581 
01582 
01583 //-------------------------------------------------------------------------
01586 //-------------------------------------------------------------------------
01587 class MLEXPORT Vector6Field : public Field 
01588 {
01590   ML_CLASS_HEADER(Vector6Field);
01591 
01592 
01593 public:
01594 
01596   Vector6Field();
01597     
01600   Vector6Field(const std::string& name);
01601   
01603   void setStringValue(const std::string& stringValue);
01604   
01606   void setVector6Value(const Vector6& vectorValue);
01607 
01611   void updateVector6Value(const Vector6& vectorValue);
01612 
01614   inline void setVectorValue(const Vector6& vectorValue) { setVector6Value(vectorValue); }
01615   
01619   std::string getStringValue() const;
01620 
01622   const Vector6& getVector6Value() const;
01623 
01625   inline const Vector6& getVectorValue() const { return getVector6Value(); }
01626 
01627   
01628 protected:
01630   virtual void setValueFromField(const Field& field);
01631 
01632 private:
01634   Vector6* _valuePtr;
01635 
01637   Vector6  _internalValue;
01638 
01640   void _initialize(const std::string& name="", Vector6* valuePtr=NULL);
01641 
01642 #ifdef ML_DEPRECATED
01643 
01645 
01646 
01647 public:
01648 
01651   inline ML_DEPRECATED void setVec6fValue(const Vector6& value) { setVector6Value(value); }
01654   inline ML_DEPRECATED const Vector6& getVec6fValue() const { return getVector6Value(); }
01655   
01657   
01658 #endif // ML_DEPRECATED
01659   
01660 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01661   
01663 
01664 
01665 public:
01666 
01669   Vector6Field(const std::string& name, Vector6* valuePtr);
01670 
01672   
01673 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01674   
01675 };
01676 
01677 #ifdef ML_DEPRECATED
01678 
01679 
01680 
01681 
01682 ML_DEPRECATED typedef Vector6Field Vec6fField;
01684 #endif // ML_DEPRECATED
01685 
01686 
01687 //-------------------------------------------------------------------------
01690 //-------------------------------------------------------------------------
01691 class MLEXPORT Vector10Field : public Field 
01692 {
01694   ML_CLASS_HEADER(Vector10Field);
01695 
01696   
01697 public:
01698 
01700   Vector10Field();  
01701   
01704   Vector10Field(const std::string& name);
01705   
01707   void setStringValue(const std::string& stringValue);
01708   
01710   void setVector10Value(const Vector10& vectorValue);
01711 
01715   void updateVector10Value(const Vector10& vectorValue);
01716 
01718   inline void setVectorValue(const Vector10& vectorValue) { setVector10Value(vectorValue); }
01719 
01720   
01724   std::string getStringValue() const;
01725 
01727   const Vector10& getVector10Value() const;
01728 
01730   inline const Vector10& getVectorValue() const { return getVector10Value(); }
01731 
01732   
01733 protected:
01735   virtual void setValueFromField(const Field& field);
01736 
01737 private:
01739   Vector10 _value;
01740   
01742   void _initialize(const std::string& name="");
01743 
01744 #ifdef ML_DEPRECATED
01745 
01747 
01748   
01749 public:
01750   
01753   inline ML_DEPRECATED void setVec10fValue(const Vector10& value) { setVector10Value(value); }
01756   inline ML_DEPRECATED const Vector10& getVec10fValue() const { return getVector10Value(); }
01757   
01759   
01760 #endif // ML_DEPRECATED
01761 };
01762 
01763 #ifdef ML_DEPRECATED
01764 
01765 
01766 
01767 
01768 ML_DEPRECATED typedef Vector10Field Vec10fField;
01770 #endif // ML_DEPRECATED
01771 
01772 
01773 //-------------------------------------------------------------------------
01778 //-------------------------------------------------------------------------
01779 class MLEXPORT ColorField : public Vector3Field 
01780 {
01782   ML_CLASS_HEADER(ColorField);
01783 
01784 public:
01785   
01787   ColorField();
01788   
01792   ColorField(const std::string& name);
01793 
01795   void setColorValue(float r, float g, float b);
01796 
01800   void updateColorValue(float r, float g, float b);
01801 
01803   void getColorValue(float& r, float& g, float& b) const;
01804 
01806   const Vector3& getColorValue() const { return getVectorValue(); }
01807 
01812   void setPackedColorValue(MLuint32 rgba);
01813   
01817   MLuint32 getPackedColorValue() const;
01818       
01819 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01820 
01822 
01823 
01824 public:  
01825 
01828   ColorField(const std::string& name, Vector3* valuePtr);
01829 
01831   
01832 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
01833   
01834 };
01835 
01836 
01837 //-------------------------------------------------------------------------
01840 //-------------------------------------------------------------------------
01841 class MLEXPORT Matrix2Field : public Field 
01842 {
01844   ML_CLASS_HEADER(Matrix2Field);
01845 
01846 public:
01849   Matrix2Field(const std::string& name="");
01850 
01854   void setStringValue(const std::string& stringValue);
01855 
01857   void setMatrixValue(const Matrix2& matrixValue);
01858   
01861   void setMatrix2Value(const Matrix2& matrixValue);
01862 
01866   void updateMatrix2Value(const Matrix2& matrixValue);
01867   
01871   std::string getStringValue() const;
01872   
01874   const Matrix2& getMatrixValue() const;
01875   
01878   const Matrix2& getMatrix2Value() const;
01879   
01880 protected:
01882   virtual void setValueFromField(const Field& field);
01883 
01884 private:
01886   Matrix2 _value;
01887 
01888 #ifdef ML_DEPRECATED
01889 
01891 
01892 
01893 public:
01896   inline ML_DEPRECATED void setMat2fValue(const Matrix2& value) { setMatrix2Value(value); }
01899   inline ML_DEPRECATED void setMat2Value(const Matrix2& value) { setMatrix2Value(value); }
01902   inline ML_DEPRECATED const Matrix2& getMat2Value() const { return getMatrix2Value(); }
01903 
01905   
01906 #endif // ML_DEPRECATED
01907 };
01908 
01909 #ifdef ML_DEPRECATED
01910 
01911 
01912 
01913 
01914 ML_DEPRECATED typedef Matrix2Field Mat2Field;
01916 #endif // ML_DEPRECATED
01917 
01918 
01919 //-------------------------------------------------------------------------
01922 //-------------------------------------------------------------------------
01923 class MLEXPORT Matrix3Field : public Field 
01924 {
01926   ML_CLASS_HEADER(Matrix3Field);
01927 
01928 public:
01931   Matrix3Field(const std::string& name="");
01932 
01936   void setStringValue(const std::string& stringValue);
01937 
01939   void setMatrixValue(const Matrix3& matrixValue);
01940 
01943   void setMatrix3Value(const Matrix3& matrixValue);
01944 
01948   void updateMatrix3Value(const Matrix3& matrixValue);
01949   
01953   std::string getStringValue() const;
01954   
01956   const Matrix3& getMatrixValue() const;
01957   
01960   const Matrix3& getMatrix3Value() const;
01961   
01962 protected:
01964   virtual void setValueFromField(const Field& field);
01965 
01966 private:
01968   Matrix3 _value;
01969 
01970 #ifdef ML_DEPRECATED
01971 
01973 
01974 
01975 public:
01978   inline ML_DEPRECATED void setMat3fValue(const Matrix3& value) { setMatrix3Value(value); }
01981   inline ML_DEPRECATED void setMat3Value(const Matrix3& value) { setMatrix3Value(value); }
01984   inline ML_DEPRECATED const Matrix3& getMat3Value() const { return getMatrix3Value(); }
01985 
01987   
01988 #endif // ML_DEPRECATED
01989   
01990 };
01991 
01992 #ifdef ML_DEPRECATED
01993 
01994 
01995 
01996 
01997 ML_DEPRECATED typedef Matrix3Field Mat3Field;
01999 #endif // ML_DEPRECATED
02000 
02001 
02002 
02003 //-------------------------------------------------------------------------
02007 //-------------------------------------------------------------------------
02008 class MLEXPORT MatrixField : public Field 
02009 {
02011   ML_CLASS_HEADER(MatrixField);
02012 
02013 public:
02014   
02016   MatrixField();  
02017   
02020   MatrixField(const std::string& name);
02021 
02025   void setStringValue(const std::string& stringValue);
02026   
02028   void setMatrixValue(const Matrix4& matrixValue);
02029   
02032   void setMatrix4Value(const Matrix4& matrixValue);
02033   
02037   void updateMatrix4Value(const Matrix4& matrixValue);
02038   
02042   std::string getStringValue() const;
02043   
02045   const Matrix4& getMatrixValue() const;
02046   
02049   const Matrix4& getMatrix4Value() const;
02050   
02051 protected:
02053   virtual void setValueFromField(const Field& field);
02054 
02055 private:
02057   Matrix4* _valuePtr;
02058  
02060   Matrix4  _internalValue;
02061 
02063   void _initialize(const std::string& name="", Matrix4* valuePtr=0);
02064   
02065 #ifdef ML_DEPRECATED
02066 
02068 
02069   
02070 public:
02073   inline ML_DEPRECATED void setMat4fValue(const Matrix4& value) { setMatrix4Value(value); }
02076   inline ML_DEPRECATED void setMat4Value(const Matrix4& value) { setMatrix4Value(value); }
02079   inline ML_DEPRECATED const Matrix4& getMat4Value() const { return getMatrix4Value(); }
02080   
02082   
02083 #endif // ML_DEPRECATED
02084   
02085 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02086 
02088 
02089 
02090 public:
02091 
02094   MatrixField(const std::string& name, Matrix4* valuePtr);
02095   
02097   
02098 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02099   
02100 };
02101 
02102 
02103 //-------------------------------------------------------------------------
02106 //-------------------------------------------------------------------------
02107 class MLEXPORT Matrix4Field : public MatrixField 
02108 {
02110   ML_CLASS_HEADER(Matrix4Field);
02111 
02112 public:
02115   Matrix4Field(const std::string& name="");
02116 };
02117 
02118 #ifdef ML_DEPRECATED
02119 
02120 
02121 
02122 
02123 ML_DEPRECATED typedef Matrix4Field Mat4Field;
02125 #endif // ML_DEPRECATED
02126 
02127 
02128 //-------------------------------------------------------------------------
02131 //-------------------------------------------------------------------------
02132 class MLEXPORT Matrix5Field : public Field 
02133 {
02135   ML_CLASS_HEADER(Matrix5Field);
02136 
02137 public:
02140   Matrix5Field(const std::string& name="");
02141 
02145   void setStringValue(const std::string& stringValue);
02146 
02148   void setMatrixValue(const Matrix5& matrixValue);
02149 
02152   void setMatrix5Value(const Matrix5& matrixValue);
02153 
02157   void updateMatrix5Value(const Matrix5& matrixValue);
02158   
02162   std::string getStringValue() const;
02163   
02165   const Matrix5& getMatrixValue() const;
02166   
02169   const Matrix5& getMatrix5Value() const;
02170   
02171 protected:
02173   virtual void setValueFromField(const Field& field);
02174 
02175 private:
02177   Matrix5 _value;
02178   
02179   
02180 #ifdef ML_DEPRECATED
02181 
02183 
02184 
02185 public:
02188   inline ML_DEPRECATED void setMat5fValue(const Matrix5& value) { setMatrix5Value(value); }
02191   inline ML_DEPRECATED void setMat5Value(const Matrix5& value) { setMatrix5Value(value); }
02194   inline ML_DEPRECATED const Matrix5& getMat5Value() const { return getMatrix5Value(); }
02195 
02197   
02198 #endif // ML_DEPRECATED
02199   
02200 };
02201 
02202 #ifdef ML_DEPRECATED
02203 
02204 
02205 
02206 
02207 ML_DEPRECATED typedef Matrix5Field Mat5Field;
02209 #endif // ML_DEPRECATED
02210 
02211 
02212 
02213 //-------------------------------------------------------------------------
02216 //-------------------------------------------------------------------------
02217 class MLEXPORT Matrix6Field : public Field 
02218 {
02220   ML_CLASS_HEADER(Matrix6Field);
02221 
02222 public:
02225   Matrix6Field(const std::string& name="");
02226 
02230   void setStringValue(const std::string& stringValue);
02231 
02233   void setMatrixValue(const Matrix6& matrixValue);
02234 
02237   void setMatrix6Value(const Matrix6& matrixValue);
02238 
02242   void updateMatrix6Value(const Matrix6& matrixValue);
02243   
02247   std::string getStringValue() const;
02248   
02250   const Matrix6& getMatrixValue() const;
02251   
02254   const Matrix6& getMatrix6Value() const;
02255   
02256 protected:
02258   virtual void setValueFromField(const Field& field);
02259 
02260 private:
02262   Matrix6 _value;
02263 
02264   
02265 #ifdef ML_DEPRECATED
02266 
02268 
02269 
02270 public:
02271   
02274   inline ML_DEPRECATED void setMat6fValue(const Matrix6& value) { setMatrix6Value(value); }
02277   inline ML_DEPRECATED void setMat6Value(const Matrix6& value) { setMatrix6Value(value); }
02280   inline ML_DEPRECATED const Matrix6& getMat6Value() const { return getMatrix6Value(); }
02281 
02283   
02284 #endif // ML_DEPRECATED
02285 };
02286 
02287 #ifdef ML_DEPRECATED
02288 
02289 
02290 
02291 
02292 ML_DEPRECATED typedef Matrix6Field Mat6Field;
02294 #endif // ML_DEPRECATED
02295 
02296   
02297 
02298 //-------------------------------------------------------------------------
02301 //-------------------------------------------------------------------------
02302 class MLEXPORT MLDataTypeField : public Field 
02303 {
02305   ML_CLASS_HEADER(MLDataTypeField);
02306 
02307 public:
02308   
02310   MLDataTypeField();
02311   
02314   MLDataTypeField(const std::string& name);
02315   
02317   void setStringValue(const std::string& stringValue);
02318 
02320   void setMLDataTypeValue(MLDataType dataType);
02321 
02325   std::string getStringValue() const;
02326   
02328   MLDataType getMLDataTypeValue() const;
02329   
02330 private:
02332   MLDataType* _valuePtr;
02334   MLDataType  _internalValue;
02335   
02337   void _initialize(const std::string& name="", MLDataType* valuePtr=NULL);
02338   
02339 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02340 
02342 
02343 
02344 public:
02345 
02348   MLDataTypeField(const std::string& name, MLDataType* valuePtr);
02349 
02351   
02352 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02353   
02354 };
02355 
02356 
02357 //-------------------------------------------------------------------------
02361 //-------------------------------------------------------------------------
02362 class MLEXPORT ImageVectorField : public Field 
02363 {
02365   ML_CLASS_HEADER(ImageVectorField);
02366 
02367 public:
02368   
02370   ImageVectorField();
02371   
02374   ImageVectorField(const std::string& name);
02375 
02377   void setStringValue(const std::string& stringValue);
02378   
02380   void setImageVectorValue(const ImageVector& imageVectorValue);
02381 
02384   void updateImageVectorValue(const ImageVector& imageVectorValue);
02385 
02387   std::string getStringValue() const;
02388 
02390   const ImageVector& getImageVectorValue() const;
02391   
02392 protected:
02394   virtual void setValueFromField(const Field& field);
02395 
02396 private:
02398   ImageVector* _valuePtr;
02399 
02401   ImageVector  _internalValue;
02402 
02404   void _initialize(const std::string& name="", ImageVector* valuePtr=NULL);
02405   
02406 #ifdef ML_DEPRECATED
02407 
02409 
02410 
02411 public:
02412 
02415   inline ML_DEPRECATED void setVectorValue(const ImageVector& value) { setImageVectorValue(value); }
02418   inline ML_DEPRECATED const ImageVector& getVectorValue() const { return getImageVectorValue(); }
02419 
02421   
02422 #endif // ML_DEPRECATED
02423   
02424 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02425   
02427 
02428 
02429 public:
02430 
02433   ImageVectorField(const std::string& name, ImageVector* valuePtr);
02434 
02436   
02437 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02438   
02439 };
02440 
02441 #ifdef ML_DEPRECATED
02442 
02443 
02444 
02445 
02446 ML_DEPRECATED typedef ImageVectorField VectorField;
02448 #endif // ML_DEPRECATED
02449 
02450 
02451 //-------------------------------------------------------------------------
02454 //-------------------------------------------------------------------------
02455 class MLEXPORT SubImageBoxField : public Field 
02456 {
02458   ML_CLASS_HEADER(SubImageBoxField);
02459 
02460 public:
02461   
02463   SubImageBoxField();
02464   
02467   SubImageBoxField(const std::string& name);
02468   
02470   void setStringValue(const std::string& stringValue);
02471   
02473   void setSubImageBoxValue(const SubImageBox& subImageBoxValue);
02474 
02477   void updateSubImageBoxValue(const SubImageBox& subImageBoxValue);
02478 
02482   std::string getStringValue() const;
02483 
02485   const SubImageBox& getSubImageBoxValue() const;
02486   
02487 protected:
02489   virtual void setValueFromField(const Field& field);
02490 
02491 private:
02493   SubImageBox* _valuePtr;
02495   SubImageBox  _internalValue;
02496   
02498   void _initialize(const std::string& name="", SubImageBox* valuePtr=NULL);
02499 
02500 #ifdef ML_DEPRECATED
02501 
02503 
02504 
02505 public:
02508   inline ML_DEPRECATED void setSubImgBoxValue(const SubImageBox& value) { setSubImageBoxValue(value); }
02511   inline ML_DEPRECATED const SubImageBox& getSubImgBoxValue() const { return getSubImageBoxValue(); }
02512 
02514   
02515 #endif // ML_DEPRECATED
02516   
02517   
02518 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02519 
02521 
02522 
02523 public:
02524 
02527   SubImageBoxField(const std::string& name, SubImageBox* valuePtr);
02528   
02530   
02531 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02532   
02533   
02534 };
02535 
02536 #ifdef ML_DEPRECATED
02537 
02538 
02539 
02540 
02541 ML_DEPRECATED typedef SubImageBoxField SubImgBoxField;
02543 #endif // ML_DEPRECATED
02544 
02545 
02546 //-------------------------------------------------------------------------
02549 //-------------------------------------------------------------------------
02550 class MLEXPORT SubImageBoxdField : public Field 
02551 {
02553   ML_CLASS_HEADER(SubImageBoxdField);
02554 
02555 public:
02556   
02558   SubImageBoxdField();
02559   
02562   SubImageBoxdField(const std::string& name);
02563   
02565   void setStringValue(const std::string& stringValue);
02566   
02568   void setSubImageBoxdValue(const SubImageBoxd& subImageBoxfValue);
02569 
02573   void updateSubImageBoxdValue(const SubImageBoxd& subImageBoxfValue);
02574 
02578   std::string getStringValue() const;
02579 
02581   const SubImageBoxd& getSubImageBoxdValue() const;
02582   
02583 protected:
02585   virtual void setValueFromField(const Field& field);
02586 
02587 private:
02589   SubImageBoxd* _valuePtr;
02590 
02592   SubImageBoxd  _internalValue;
02593 
02595   void _initialize(const std::string& name="", SubImageBoxd* valuePtr=NULL);
02596   
02597 #ifdef ML_DEPRECATED
02598 
02600 
02601 
02602 public:
02603 
02606   inline ML_DEPRECATED void setSubImgBoxValue(const SubImageBoxd& value) { setSubImageBoxdValue(value); }
02609   inline ML_DEPRECATED const SubImageBoxd& getSubImgBoxValue() const { return getSubImageBoxdValue(); }
02612   inline ML_DEPRECATED void setSubImgBoxfValue(const SubImageBoxd& value) { setSubImageBoxdValue(value); }
02615   inline ML_DEPRECATED const SubImageBoxd& getSubImgBoxfValue() const { return getSubImageBoxdValue(); }
02616   
02618   
02619 #endif // ML_DEPRECATED
02620   
02621   
02622 #ifdef ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER
02623 
02625 
02626 
02627 public:
02628 
02631   SubImageBoxdField(const std::string& name, SubImageBoxd* valuePtr);
02632 
02634   
02635 #endif // ML_DEPRECATED_FIELDS_WITH_VALUE_POINTER  
02636   
02637 };
02638 
02639 #ifdef ML_DEPRECATED
02640 
02641 
02642 
02643 ML_DEPRECATED typedef SubImageBoxdField SubImgBoxfField;
02645 #endif // ML_DEPRECATED
02646 
02647 
02648 //-------------------------------------------------------------------------
02651 //-------------------------------------------------------------------------
02652 class MLEXPORT UniversalTypeField : public Field 
02653 {
02655   ML_CLASS_HEADER(UniversalTypeField);
02656 
02657 public:
02661   UniversalTypeField(const std::string& name="", MLDataType dt=-1);
02662 
02664   ~UniversalTypeField();
02665 
02667   virtual MLint isValidValue();
02668   
02670   virtual void setStringValue(const std::string& stringValue);
02671   
02674   virtual std::string getStringValue() const;
02675   
02678   virtual void setDataType(MLDataType dataType);
02679 
02681   virtual MLDataType getDataType() const;
02682   
02684   virtual void setUniversalTypeValue(const MLTypeData* dataType);
02685 
02691   virtual MLTypeData* getUniversalTypeValue() const;
02692 
02696   virtual const MLTypeData* getShortLivedUniversalTypeValue() const;
02697 
02699   virtual MLldouble getValueCastToLDouble() const;
02700 
02701 
02702 protected:
02705   virtual void _updateIsValidAndTypeDataFromOrigString();
02706 
02709   virtual void _updateIsValidAndStrValueFromTypeData();
02710 
02711 
02712 private:
02716   std::string _origString;
02717 
02720   std::string _strValue;
02721 
02723   MLDataType _dataType;
02724 
02726   MLint _isValid;
02727 
02731   MLTypeData* _typeData;
02732 };
02733 
02734 //----------------------------------------------------------------------------------
02738 //----------------------------------------------------------------------------------
02739 class MLEXPORT RotationField : public Vector4Field {
02740 
02742   ML_CLASS_HEADER(RotationField);
02743 
02744 public:
02747   RotationField(const std::string &name=""): Vector4Field(name) {}
02748 
02750   void setRotationValue(const Vector3& vec, double angle);
02751 
02753   void setRotationValue(const Rotation& rot);
02754 
02756   void getRotationValue(Vector3& vec, double& angle) const;
02757 
02759   Rotation getRotationValue() const;
02760 };
02761 
02762 
02763 //----------------------------------------------------------------------------------
02767 //----------------------------------------------------------------------------------
02768 class MLEXPORT PlaneField : public Vector4Field {
02769 
02771   ML_CLASS_HEADER(PlaneField);
02772 
02773 public:
02776   PlaneField(const std::string &name=""): Vector4Field(name) {}
02777 
02779   void setPlaneValue(double f0, double f1, double f2, double f3);
02780 
02782   void setPlaneValue(const Plane& p);
02783 
02785   void getPlaneValue(double &f0, double &f1, double &f2, double &f3) const;
02786 
02788   void getPlaneValue(Plane &plane) const;
02789 
02791   Plane getPlaneValue() const;
02792 };
02793 
02794 
02795 ML_END_NAMESPACE
02796 
02797 
02798 #endif //of __mlFields_H
02799 
02800 
02801