ML Reference
|
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