Changeset 9225 for code/branches/testing/src/libraries/util/MultiType.cc
- Timestamp:
- May 19, 2012, 11:24:18 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/testing/src/libraries/util/MultiType.cc
r9222 r9225 161 161 } 162 162 163 MultiType::operator char() const { return (this->value_) ? ((this->value_->type_ == Type::Char ) ? (static_cast<MT_Value<char> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 164 MultiType::operator unsigned char() const { return (this->value_) ? ((this->value_->type_ == Type::UnsignedChar ) ? (static_cast<MT_Value<unsigned char> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 165 MultiType::operator short() const { return (this->value_) ? ((this->value_->type_ == Type::Short ) ? (static_cast<MT_Value<short> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 166 MultiType::operator unsigned short() const { return (this->value_) ? ((this->value_->type_ == Type::UnsignedShort ) ? (static_cast<MT_Value<unsigned short> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 167 MultiType::operator int() const { return (this->value_) ? ((this->value_->type_ == Type::Int ) ? (static_cast<MT_Value<int> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 168 MultiType::operator unsigned int() const { return (this->value_) ? ((this->value_->type_ == Type::UnsignedInt ) ? (static_cast<MT_Value<unsigned int> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 169 MultiType::operator long() const { return (this->value_) ? ((this->value_->type_ == Type::Long ) ? (static_cast<MT_Value<long> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 170 MultiType::operator unsigned long() const { return (this->value_) ? ((this->value_->type_ == Type::UnsignedLong ) ? (static_cast<MT_Value<unsigned long> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 171 MultiType::operator long long() const { return (this->value_) ? ((this->value_->type_ == Type::LongLong ) ? (static_cast<MT_Value<long long> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 172 MultiType::operator unsigned long long() const { return (this->value_) ? ((this->value_->type_ == Type::UnsignedLongLong) ? (static_cast<MT_Value<unsigned long long> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 173 MultiType::operator float() const { return (this->value_) ? ((this->value_->type_ == Type::Float ) ? (static_cast<MT_Value<float> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 174 MultiType::operator double() const { return (this->value_) ? ((this->value_->type_ == Type::Double ) ? (static_cast<MT_Value<double> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 175 MultiType::operator long double() const { return (this->value_) ? ((this->value_->type_ == Type::LongDouble ) ? (static_cast<MT_Value<long double> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 176 MultiType::operator bool() const { return (this->value_) ? ((this->value_->type_ == Type::Bool ) ? (static_cast<MT_Value<bool> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 177 MultiType::operator void*() const { return (this->value_) ? ((this->value_->type_ == Type::VoidPointer ) ? (static_cast<MT_Value<void*> *>(this->value_))->value_ : (*this->value_)) : 0; } ///< Returns the current value, converted to the requested type. 178 MultiType::operator std::string() const { return (this->value_) ? ((this->value_->type_ == Type::String ) ? (static_cast<MT_Value<std::string> *>(this->value_))->value_ : (*this->value_)) : NilValue<std::string>(); } ///< Returns the current value, converted to the requested type. 179 MultiType::operator orxonox::Vector2() const { return (this->value_) ? ((this->value_->type_ == Type::Vector2 ) ? (static_cast<MT_Value<orxonox::Vector2> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector2>(); } ///< Returns the current value, converted to the requested type. 180 MultiType::operator orxonox::Vector3() const { return (this->value_) ? ((this->value_->type_ == Type::Vector3 ) ? (static_cast<MT_Value<orxonox::Vector3> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector3>(); } ///< Returns the current value, converted to the requested type. 181 MultiType::operator orxonox::Vector4() const { return (this->value_) ? ((this->value_->type_ == Type::Vector4 ) ? (static_cast<MT_Value<orxonox::Vector4> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Vector4>(); } ///< Returns the current value, converted to the requested type. 182 MultiType::operator orxonox::ColourValue() const { return (this->value_) ? ((this->value_->type_ == Type::ColourValue ) ? (static_cast<MT_Value<orxonox::ColourValue>*>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::ColourValue>(); } ///< Returns the current value, converted to the requested type. 183 MultiType::operator orxonox::Quaternion() const { return (this->value_) ? ((this->value_->type_ == Type::Quaternion ) ? (static_cast<MT_Value<orxonox::Quaternion> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Quaternion>(); } ///< Returns the current value, converted to the requested type. 184 MultiType::operator orxonox::Radian() const { return (this->value_) ? ((this->value_->type_ == Type::Radian ) ? (static_cast<MT_Value<orxonox::Radian> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Radian>(); } ///< Returns the current value, converted to the requested type. 185 MultiType::operator orxonox::Degree() const { return (this->value_) ? ((this->value_->type_ == Type::Degree ) ? (static_cast<MT_Value<orxonox::Degree> *>(this->value_))->value_ : (*this->value_)) : NilValue<orxonox::Degree>(); } ///< Returns the current value, converted to the requested type. 186 187 template <> void MultiType::createNewValueContainer(const char& value) { this->value_ = new MT_Value<char> (value, Type::Char ); } ///< Creates a new value container for the given type. 188 template <> void MultiType::createNewValueContainer(const unsigned char& value) { this->value_ = new MT_Value<unsigned char> (value, Type::UnsignedChar ); } ///< Creates a new value container for the given type. 189 template <> void MultiType::createNewValueContainer(const short& value) { this->value_ = new MT_Value<short> (value, Type::Short ); } ///< Creates a new value container for the given type. 190 template <> void MultiType::createNewValueContainer(const unsigned short& value) { this->value_ = new MT_Value<unsigned short> (value, Type::UnsignedShort ); } ///< Creates a new value container for the given type. 191 template <> void MultiType::createNewValueContainer(const int& value) { this->value_ = new MT_Value<int> (value, Type::Int ); } ///< Creates a new value container for the given type. 192 template <> void MultiType::createNewValueContainer(const unsigned int& value) { this->value_ = new MT_Value<unsigned int> (value, Type::UnsignedInt ); } ///< Creates a new value container for the given type. 193 template <> void MultiType::createNewValueContainer(const long& value) { this->value_ = new MT_Value<long> (value, Type::Long ); } ///< Creates a new value container for the given type. 194 template <> void MultiType::createNewValueContainer(const unsigned long& value) { this->value_ = new MT_Value<unsigned long> (value, Type::UnsignedLong ); } ///< Creates a new value container for the given type. 195 template <> void MultiType::createNewValueContainer(const long long& value) { this->value_ = new MT_Value<long long> (value, Type::LongLong ); } ///< Creates a new value container for the given type. 196 template <> void MultiType::createNewValueContainer(const unsigned long long& value) { this->value_ = new MT_Value<unsigned long long> (value, Type::UnsignedLongLong); } ///< Creates a new value container for the given type. 197 template <> void MultiType::createNewValueContainer(const float& value) { this->value_ = new MT_Value<float> (value, Type::Float ); } ///< Creates a new value container for the given type. 198 template <> void MultiType::createNewValueContainer(const double& value) { this->value_ = new MT_Value<double> (value, Type::Double ); } ///< Creates a new value container for the given type. 199 template <> void MultiType::createNewValueContainer(const long double& value) { this->value_ = new MT_Value<long double> (value, Type::LongDouble ); } ///< Creates a new value container for the given type. 200 template <> void MultiType::createNewValueContainer(const bool& value) { this->value_ = new MT_Value<bool> (value, Type::Bool ); } ///< Creates a new value container for the given type. 201 template <> void MultiType::createNewValueContainer( void* const& value) { this->value_ = new MT_Value<void*> (value, Type::VoidPointer ); } ///< Creates a new value container for the given type. 202 template <> void MultiType::createNewValueContainer(const std::string& value) { this->value_ = new MT_Value<std::string> (value, Type::String ); } ///< Creates a new value container for the given type. 203 template <> void MultiType::createNewValueContainer(const orxonox::Vector2& value) { this->value_ = new MT_Value<orxonox::Vector2> (value, Type::Vector2 ); } ///< Creates a new value container for the given type. 204 template <> void MultiType::createNewValueContainer(const orxonox::Vector3& value) { this->value_ = new MT_Value<orxonox::Vector3> (value, Type::Vector3 ); } ///< Creates a new value container for the given type. 205 template <> void MultiType::createNewValueContainer(const orxonox::Vector4& value) { this->value_ = new MT_Value<orxonox::Vector4> (value, Type::Vector4 ); } ///< Creates a new value container for the given type. 206 template <> void MultiType::createNewValueContainer(const orxonox::ColourValue& value) { this->value_ = new MT_Value<orxonox::ColourValue>(value, Type::ColourValue ); } ///< Creates a new value container for the given type. 207 template <> void MultiType::createNewValueContainer(const orxonox::Quaternion& value) { this->value_ = new MT_Value<orxonox::Quaternion> (value, Type::Quaternion ); } ///< Creates a new value container for the given type. 208 template <> void MultiType::createNewValueContainer(const orxonox::Radian& value) { this->value_ = new MT_Value<orxonox::Radian> (value, Type::Radian ); } ///< Creates a new value container for the given type. 209 template <> void MultiType::createNewValueContainer(const orxonox::Degree& value) { this->value_ = new MT_Value<orxonox::Degree> (value, Type::Degree ); } ///< Creates a new value container for the given type. 163 template <> void MultiType::createNewValueContainer(const char& value) { this->value_ = new MT_Value<char> (value, Type::Char ); } 164 template <> void MultiType::createNewValueContainer(const unsigned char& value) { this->value_ = new MT_Value<unsigned char> (value, Type::UnsignedChar ); } 165 template <> void MultiType::createNewValueContainer(const short& value) { this->value_ = new MT_Value<short> (value, Type::Short ); } 166 template <> void MultiType::createNewValueContainer(const unsigned short& value) { this->value_ = new MT_Value<unsigned short> (value, Type::UnsignedShort ); } 167 template <> void MultiType::createNewValueContainer(const int& value) { this->value_ = new MT_Value<int> (value, Type::Int ); } 168 template <> void MultiType::createNewValueContainer(const unsigned int& value) { this->value_ = new MT_Value<unsigned int> (value, Type::UnsignedInt ); } 169 template <> void MultiType::createNewValueContainer(const long& value) { this->value_ = new MT_Value<long> (value, Type::Long ); } 170 template <> void MultiType::createNewValueContainer(const unsigned long& value) { this->value_ = new MT_Value<unsigned long> (value, Type::UnsignedLong ); } 171 template <> void MultiType::createNewValueContainer(const long long& value) { this->value_ = new MT_Value<long long> (value, Type::LongLong ); } 172 template <> void MultiType::createNewValueContainer(const unsigned long long& value) { this->value_ = new MT_Value<unsigned long long> (value, Type::UnsignedLongLong); } 173 template <> void MultiType::createNewValueContainer(const float& value) { this->value_ = new MT_Value<float> (value, Type::Float ); } 174 template <> void MultiType::createNewValueContainer(const double& value) { this->value_ = new MT_Value<double> (value, Type::Double ); } 175 template <> void MultiType::createNewValueContainer(const long double& value) { this->value_ = new MT_Value<long double> (value, Type::LongDouble ); } 176 template <> void MultiType::createNewValueContainer(const bool& value) { this->value_ = new MT_Value<bool> (value, Type::Bool ); } 177 template <> void MultiType::createNewValueContainer( void* const& value) { this->value_ = new MT_Value<void*> (value, Type::VoidPointer ); } 178 template <> void MultiType::createNewValueContainer(const std::string& value) { this->value_ = new MT_Value<std::string> (value, Type::String ); } 179 template <> void MultiType::createNewValueContainer(const orxonox::Vector2& value) { this->value_ = new MT_Value<orxonox::Vector2> (value, Type::Vector2 ); } 180 template <> void MultiType::createNewValueContainer(const orxonox::Vector3& value) { this->value_ = new MT_Value<orxonox::Vector3> (value, Type::Vector3 ); } 181 template <> void MultiType::createNewValueContainer(const orxonox::Vector4& value) { this->value_ = new MT_Value<orxonox::Vector4> (value, Type::Vector4 ); } 182 template <> void MultiType::createNewValueContainer(const orxonox::ColourValue& value) { this->value_ = new MT_Value<orxonox::ColourValue>(value, Type::ColourValue ); } 183 template <> void MultiType::createNewValueContainer(const orxonox::Quaternion& value) { this->value_ = new MT_Value<orxonox::Quaternion> (value, Type::Quaternion ); } 184 template <> void MultiType::createNewValueContainer(const orxonox::Radian& value) { this->value_ = new MT_Value<orxonox::Radian> (value, Type::Radian ); } 185 template <> void MultiType::createNewValueContainer(const orxonox::Degree& value) { this->value_ = new MT_Value<orxonox::Degree> (value, Type::Degree ); } 210 186 }
Note: See TracChangeset
for help on using the changeset viewer.