Index: code/branches/core/src/util/MultiTypeMath.h
===================================================================
--- code/branches/core/src/util/MultiTypeMath.h	(revision 833)
+++ code/branches/core/src/util/MultiTypeMath.h	(revision 834)
@@ -88,4 +88,11 @@
         bool operator!=(const MultiTypeMath& mtm) const;
 
+        inline operator orxonox::Vector2()     const { return this->vector2_;     }
+        inline operator orxonox::Vector3()     const { return this->vector3_;     }
+        inline operator orxonox::ColourValue() const { return this->colourvalue_; }
+        inline operator orxonox::Quaternion()  const { return this->quaternion_;  }
+        inline operator orxonox::Radian()      const { return this->radian_;      }
+        inline operator orxonox::Degree()      const { return this->degree_;      }
+
         using MultiTypeString::setValue;
         inline void setValue(const orxonox::Vector2&     value) { this->type_ = MT_vector2;     this->vector2_     = value; }
Index: code/branches/core/src/util/MultiTypePrimitive.h
===================================================================
--- code/branches/core/src/util/MultiTypePrimitive.h	(revision 833)
+++ code/branches/core/src/util/MultiTypePrimitive.h	(revision 834)
@@ -54,4 +54,5 @@
         MultiTypePrimitive(const MultiTypePrimitive& mtp);
 
+        inline MultiTypePrimitive& operator=(MultiType      value) { this->type_ = MT_null; return *this; }
         inline MultiTypePrimitive& operator=(int            value) { this->setValue(value); return *this; }
         inline MultiTypePrimitive& operator=(unsigned int   value) { this->setValue(value); return *this; }
@@ -95,4 +96,17 @@
         inline bool operator!=(bool           value) const { return (this->value_.bool_       != value); }
         bool operator!=(const MultiTypePrimitive& mtp) const;
+
+        inline operator int()            const { return this->value_.int_;        }
+        inline operator unsigned int()   const { return this->value_.uint_;       }
+        inline operator char()           const { return this->value_.char_;       }
+        inline operator unsigned char()  const { return this->value_.uchar_;      }
+        inline operator short()          const { return this->value_.short_;      }
+        inline operator unsigned short() const { return this->value_.ushort_;     }
+        inline operator long()           const { return this->value_.long_;       }
+        inline operator unsigned long()  const { return this->value_.ulong_;      }
+        inline operator float ()         const { return this->value_.float_;      }
+        inline operator double ()        const { return this->value_.double_;     }
+        inline operator long double()    const { return this->value_.longdouble_; }
+        inline operator bool()           const { return this->value_.bool_;       }
 
         inline void setValue(int            value) { this->type_ = MT_int;        this->value_.int_        = value; }
Index: code/branches/core/src/util/MultiTypeString.h
===================================================================
--- code/branches/core/src/util/MultiTypeString.h	(revision 833)
+++ code/branches/core/src/util/MultiTypeString.h	(revision 834)
@@ -63,22 +63,25 @@
         using MultiTypePrimitive::operator==;
         inline bool operator==(const char*        value) const { return (this->string_ == std::string(value)); }
-        inline bool operator==(const std::string& value) const { return (this->string_ == value); }
+        inline bool operator==(const std::string& value) const { return (this->string_ == value);              }
         bool operator==(const MultiTypeString& mtp) const;
 
         using MultiTypePrimitive::operator!=;
         inline bool operator!=(const char*        value) const { return (this->string_ != std::string(value)); }
-        inline bool operator!=(const std::string& value) const { return (this->string_ != value); }
+        inline bool operator!=(const std::string& value) const { return (this->string_ != value);              }
         bool operator!=(const MultiTypeString& mtp) const;
+
+        inline operator std::string() const { return this->string_;         }
+        inline operator const char*() const { return this->string_.c_str(); }
 
         using MultiTypePrimitive::setValue;
         inline void setValue(const char*        value) { this->type_ = MT_string; this->string_ = std::string(value); }
-        inline void setValue(const std::string& value) { this->type_ = MT_string; this->string_ = value; }
+        inline void setValue(const std::string& value) { this->type_ = MT_string; this->string_ = value;              }
         void setValue(const MultiTypeString& mtp);
 
-        inline std::string& getString()    { return this->string_; }
+        inline std::string& getString()    { return this->string_;         }
         inline const char*  getConstChar() { return this->string_.c_str(); }
 
         using MultiTypePrimitive::getValue;
-        inline void getValue(std::string* variable) const { (*variable) = this->string_; }
+        inline void getValue(std::string* variable) const { (*variable) = this->string_;         }
         inline void getValue(const char** variable) const { (*variable) = this->string_.c_str(); }
 
