Browse Source

SceneGraph: make method chaining in Abstract* transformations usable.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
0249c6f8a8
  1. 5
      src/SceneGraph/AbstractTranslationRotation2D.h
  2. 5
      src/SceneGraph/AbstractTranslationRotation3D.h
  3. 7
      src/SceneGraph/AbstractTranslationRotationScaling2D.h
  4. 10
      src/SceneGraph/AbstractTranslationRotationScaling3D.h

5
src/SceneGraph/AbstractTranslationRotation2D.h

@ -63,6 +63,11 @@ class AbstractTranslationRotation2D: public AbstractTransformation<2, T> {
* @return Pointer to self (for method chaining)
*/
virtual AbstractTranslationRotation2D<T>* rotate(Math::Rad<T> angle, TransformationType type = TransformationType::Global) = 0;
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractTranslationRotation2D<T>* resetTransformation() override = 0;
#endif
};
}}

5
src/SceneGraph/AbstractTranslationRotation3D.h

@ -107,6 +107,11 @@ class AbstractTranslationRotation3D: public AbstractTransformation<3, T> {
virtual AbstractTranslationRotation3D<T>* rotateZ(Math::Rad<T> angle, TransformationType type = TransformationType::Global) {
return rotate(angle, Math::Vector3<T>::zAxis(), type);
}
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractTranslationRotation3D<T>* resetTransformation() override = 0;
#endif
};
}}

7
src/SceneGraph/AbstractTranslationRotationScaling2D.h

@ -55,6 +55,13 @@ class AbstractTranslationRotationScaling2D: public AbstractTranslationRotation2D
* @see Vector2::xScale(), Vector2::yScale()
*/
virtual AbstractTranslationRotationScaling2D<T>* scale(const Math::Vector2<T>& vector, TransformationType type = TransformationType::Global) = 0;
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractTranslationRotationScaling2D<T>* resetTransformation() override = 0;
AbstractTranslationRotationScaling2D<T>* translate(const Math::Vector2<T>& vector, TransformationType type = TransformationType::Global) = 0;
AbstractTranslationRotationScaling2D<T>* rotate(Math::Rad<T> angle, TransformationType type = TransformationType::Global) = 0;
#endif
};
}}

10
src/SceneGraph/AbstractTranslationRotationScaling3D.h

@ -55,6 +55,16 @@ class AbstractTranslationRotationScaling3D: public AbstractTranslationRotation3D
* @see Vector3::xScale(), Vector3::yScale(), Vector3::zScale()
*/
virtual AbstractTranslationRotationScaling3D<T>* scale(const Math::Vector3<T>& vector, TransformationType type = TransformationType::Global) = 0;
/* Overloads to remove WTF-factor from method chaining order */
#ifndef DOXYGEN_GENERATING_OUTPUT
AbstractTranslationRotationScaling3D<T>* resetTransformation() override = 0;
AbstractTranslationRotationScaling3D<T>* translate(const Math::Vector3<T>& vector, TransformationType type = TransformationType::Global) = 0;
AbstractTranslationRotationScaling3D<T>* rotate(Math::Rad<T> angle, const Math::Vector3<T>& normalizedAxis, TransformationType type = TransformationType::Global) = 0;
AbstractTranslationRotationScaling3D<T>* rotateX(Math::Rad<T> angle, TransformationType type = TransformationType::Global) = 0;
AbstractTranslationRotationScaling3D<T>* rotateY(Math::Rad<T> angle, TransformationType type = TransformationType::Global) = 0;
AbstractTranslationRotationScaling3D<T>* rotateZ(Math::Rad<T> angle, TransformationType type = TransformationType::Global) override = 0;
#endif
};
}}

Loading…
Cancel
Save