diff --git a/src/Physics/AbstractShape.h b/src/Physics/AbstractShape.h index a8320aa0d..c4e6dff67 100644 --- a/src/Physics/AbstractShape.h +++ b/src/Physics/AbstractShape.h @@ -105,7 +105,7 @@ template class PHYSICS_EXPORT AbstractShape { * Applies transformation to user-defined shape properties and caches * them for later usage in collision detection. */ - virtual void applyTransformation(const typename DimensionTraits::MatrixType& transformation) = 0; + virtual void applyTransformation(const typename DimensionTraits::MatrixType& transformation) = 0; /** * @brief Detect collision with other shape diff --git a/src/Physics/AxisAlignedBox.cpp b/src/Physics/AxisAlignedBox.cpp index 63b288fcc..8b15efa27 100644 --- a/src/Physics/AxisAlignedBox.cpp +++ b/src/Physics/AxisAlignedBox.cpp @@ -20,8 +20,8 @@ namespace Magnum { namespace Physics { -template void AxisAlignedBox::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { - _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); +template void AxisAlignedBox::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { + _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); _transformedSize = transformation.rotationScaling()*_size; } diff --git a/src/Physics/AxisAlignedBox.h b/src/Physics/AxisAlignedBox.h index 711491575..2c00e8f35 100644 --- a/src/Physics/AxisAlignedBox.h +++ b/src/Physics/AxisAlignedBox.h @@ -34,44 +34,44 @@ namespace Magnum { namespace Physics { template class PHYSICS_EXPORT AxisAlignedBox: public AbstractShape { public: /** @brief Constructor */ - inline AxisAlignedBox(const typename DimensionTraits::VectorType& position, const typename DimensionTraits::VectorType& size): _position(position), _transformedPosition(position), _size(size), _transformedSize(size) {} + inline AxisAlignedBox(const typename DimensionTraits::VectorType& position, const typename DimensionTraits::VectorType& size): _position(position), _transformedPosition(position), _size(size), _transformedSize(size) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::AxisAlignedBox; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; /** @brief Position */ - inline typename DimensionTraits::VectorType position() const { + inline typename DimensionTraits::VectorType position() const { return _position; } /** @brief Set position */ - inline void setPosition(const typename DimensionTraits::VectorType& position) { + inline void setPosition(const typename DimensionTraits::VectorType& position) { _position = position; } /** @brief Size */ - inline typename DimensionTraits::VectorType size() const { return _size; } + inline typename DimensionTraits::VectorType size() const { return _size; } /** @brief Set size */ - inline void setSize(const typename DimensionTraits::VectorType& size) { + inline void setSize(const typename DimensionTraits::VectorType& size) { _size = size; } /** @brief Transformed position */ - inline typename DimensionTraits::VectorType transformedPosition() const { + inline typename DimensionTraits::VectorType transformedPosition() const { return _transformedPosition; } /** @brief Transformed size */ - inline typename DimensionTraits::VectorType transformedSize() const { + inline typename DimensionTraits::VectorType transformedSize() const { return _transformedSize; } private: - Math::Vector _position, _transformedPosition, + typename DimensionTraits::VectorType _position, _transformedPosition, _size, _transformedSize; }; diff --git a/src/Physics/Box.cpp b/src/Physics/Box.cpp index 2b0eb5725..e1ed39501 100644 --- a/src/Physics/Box.cpp +++ b/src/Physics/Box.cpp @@ -20,7 +20,7 @@ namespace Magnum { namespace Physics { -template void Box::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { +template void Box::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { _transformedTransformation = (transformation*_transformation); } diff --git a/src/Physics/Box.h b/src/Physics/Box.h index 81959172e..87f259a12 100644 --- a/src/Physics/Box.h +++ b/src/Physics/Box.h @@ -36,31 +36,31 @@ namespace Magnum { namespace Physics { template class PHYSICS_EXPORT Box: public AbstractShape { public: /** @brief Constructor */ - inline Box(const typename DimensionTraits::MatrixType& transformation): _transformation(transformation), _transformedTransformation(transformation) {} + inline Box(const typename DimensionTraits::MatrixType& transformation): _transformation(transformation), _transformedTransformation(transformation) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::Box; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; /** @brief Transformation */ - inline typename DimensionTraits::MatrixType transformation() const { + inline typename DimensionTraits::MatrixType transformation() const { return _transformation; } /** @brief Set transformation */ - inline void setTransformation(const typename DimensionTraits::MatrixType& transformation) { + inline void setTransformation(const typename DimensionTraits::MatrixType& transformation) { _transformation = transformation; } /** @brief Transformed transformation */ - inline typename DimensionTraits::MatrixType transformedTransformation() const { + inline typename DimensionTraits::MatrixType transformedTransformation() const { return _transformedTransformation; } private: - Math::Matrix _transformation, + typename DimensionTraits::MatrixType _transformation, _transformedTransformation; }; diff --git a/src/Physics/Capsule.cpp b/src/Physics/Capsule.cpp index 0c9c1b288..0c9a8882e 100644 --- a/src/Physics/Capsule.cpp +++ b/src/Physics/Capsule.cpp @@ -27,10 +27,10 @@ using namespace Magnum::Math::Geometry; namespace Magnum { namespace Physics { -template void Capsule::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { - _transformedA = (transformation*typename DimensionTraits::PointType(_a)).vector(); - _transformedB = (transformation*typename DimensionTraits::PointType(_b)).vector(); - float scaling = (transformation.rotationScaling()*typename DimensionTraits::VectorType(1/Math::Constants::sqrt3())).length(); +template void Capsule::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { + _transformedA = (transformation*typename DimensionTraits::PointType(_a)).vector(); + _transformedB = (transformation*typename DimensionTraits::PointType(_b)).vector(); + float scaling = (transformation.rotationScaling()*typename DimensionTraits::VectorType(1/Math::Constants::sqrt3())).length(); _transformedRadius = scaling*_radius; } diff --git a/src/Physics/Capsule.h b/src/Physics/Capsule.h index af8a19a36..3c5aad2d6 100644 --- a/src/Physics/Capsule.h +++ b/src/Physics/Capsule.h @@ -37,33 +37,33 @@ applying transformation, the scale factor is averaged from all axes. template class PHYSICS_EXPORT Capsule: public AbstractShape { public: /** @brief Constructor */ - inline Capsule(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b, float radius): _a(a), _transformedA(a), _b(b), _transformedB(b), _radius(radius), _transformedRadius(radius) {} + inline Capsule(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b, float radius): _a(a), _transformedA(a), _b(b), _transformedB(b), _radius(radius), _transformedRadius(radius) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::Capsule; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; bool collides(const AbstractShape* other) const override; /** @brief Start point */ - inline typename DimensionTraits::VectorType a() const { + inline typename DimensionTraits::VectorType a() const { return _a; } /** @brief End point */ - inline typename DimensionTraits::VectorType b() const { + inline typename DimensionTraits::VectorType b() const { return _a; } /** @brief Set start point */ - inline void setA(const typename DimensionTraits::VectorType& a) { + inline void setA(const typename DimensionTraits::VectorType& a) { _a = a; } /** @brief Set end point */ - inline void setB(const typename DimensionTraits::VectorType& b) { + inline void setB(const typename DimensionTraits::VectorType& b) { _b = b; } @@ -74,12 +74,12 @@ template class PHYSICS_EXPORT Capsule: public AbstractS inline void setRadius(float radius) { _radius = radius; } /** @brief Transformed first point */ - inline typename DimensionTraits::VectorType transformedA() const { + inline typename DimensionTraits::VectorType transformedA() const { return _transformedA; } /** @brief Transformed second point */ - inline typename DimensionTraits::VectorType transformedB() const { + inline typename DimensionTraits::VectorType transformedB() const { return _transformedB; } @@ -95,7 +95,7 @@ template class PHYSICS_EXPORT Capsule: public AbstractS bool operator%(const Sphere& other) const; private: - Math::Vector _a, _transformedA, + typename DimensionTraits::VectorType _a, _transformedA, _b, _transformedB; float _radius, _transformedRadius; }; diff --git a/src/Physics/Implementation/AbstractDebugRenderer.h b/src/Physics/Implementation/AbstractDebugRenderer.h index 0b3af89c2..3d699899b 100644 --- a/src/Physics/Implementation/AbstractDebugRenderer.h +++ b/src/Physics/Implementation/AbstractDebugRenderer.h @@ -38,7 +38,7 @@ template class AbstractDebugRenderer { virtual ~AbstractDebugRenderer(); - virtual void draw(Resource& options, const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) = 0; + virtual void draw(Resource& options, const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) = 0; protected: Resource> shader; diff --git a/src/Physics/Implementation/AbstractShapeRenderer.h b/src/Physics/Implementation/AbstractShapeRenderer.h index 276d53ba2..737e29895 100644 --- a/src/Physics/Implementation/AbstractShapeRenderer.h +++ b/src/Physics/Implementation/AbstractShapeRenderer.h @@ -38,7 +38,7 @@ template class AbstractShapeRenderer { virtual ~AbstractShapeRenderer(); - virtual void draw(Resource& options, const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) = 0; + virtual void draw(Resource& options, const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) = 0; protected: Resource> shader; diff --git a/src/Physics/Implementation/AxisAlignedBoxRenderer.cpp b/src/Physics/Implementation/AxisAlignedBoxRenderer.cpp index 57e701116..d53732742 100644 --- a/src/Physics/Implementation/AxisAlignedBoxRenderer.cpp +++ b/src/Physics/Implementation/AxisAlignedBoxRenderer.cpp @@ -22,7 +22,7 @@ namespace Magnum { namespace Physics { namespace Implementation { -template void AxisAlignedBoxRenderer::draw(Resource& options, const typename DimensionTraits::MatrixType&, typename SceneGraph::AbstractCamera* camera) { +template void AxisAlignedBoxRenderer::draw(Resource& options, const typename DimensionTraits::MatrixType&, typename SceneGraph::AbstractCamera* camera) { typename DimensionTraits::MatrixType transformation = DimensionTraits::MatrixType::translation(axisAlignedBox.transformedPosition())* DimensionTraits::MatrixType::scaling(axisAlignedBox.transformedSize()); diff --git a/src/Physics/Implementation/BoxRenderer.cpp b/src/Physics/Implementation/BoxRenderer.cpp index 1624e7aa3..ea4531324 100644 --- a/src/Physics/Implementation/BoxRenderer.cpp +++ b/src/Physics/Implementation/BoxRenderer.cpp @@ -22,7 +22,7 @@ namespace Magnum { namespace Physics { namespace Implementation { -template void BoxRenderer::draw(Resource& options, const typename DimensionTraits::MatrixType&, typename SceneGraph::AbstractCamera* camera) { +template void BoxRenderer::draw(Resource& options, const typename DimensionTraits::MatrixType&, typename SceneGraph::AbstractCamera* camera) { this->shader->setTransformationProjection(camera->projectionMatrix()*camera->cameraMatrix()*box.transformedTransformation()) ->setColor(options->color) ->use(); diff --git a/src/Physics/Implementation/BoxRenderer.h b/src/Physics/Implementation/BoxRenderer.h index c1e248478..4513155c1 100644 --- a/src/Physics/Implementation/BoxRenderer.h +++ b/src/Physics/Implementation/BoxRenderer.h @@ -27,7 +27,7 @@ template class BoxRenderer: public AbstractBoxRenderer< public: inline BoxRenderer(Box& box): box(box) {} - void draw(Resource& options, const typename DimensionTraits::MatrixType& transformation, typename SceneGraph::AbstractCamera* camera) override; + void draw(Resource& options, const typename DimensionTraits::MatrixType& transformation, typename SceneGraph::AbstractCamera* camera) override; private: Box& box; diff --git a/src/Physics/Implementation/DebugRenderer.h b/src/Physics/Implementation/DebugRenderer.h index fdb19e268..87e806392 100644 --- a/src/Physics/Implementation/DebugRenderer.h +++ b/src/Physics/Implementation/DebugRenderer.h @@ -44,7 +44,7 @@ template class DebugRenderer: public SceneGraph::Drawab renderers.push_back(renderer); } - inline void draw(const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) override { + inline void draw(const typename DimensionTraits::MatrixType& transformationMatrix, SceneGraph::AbstractCamera* camera) override { for(auto i: renderers) i->draw(options, transformationMatrix, camera); } diff --git a/src/Physics/Line.cpp b/src/Physics/Line.cpp index c067306c0..65533e3ef 100644 --- a/src/Physics/Line.cpp +++ b/src/Physics/Line.cpp @@ -20,9 +20,9 @@ namespace Magnum { namespace Physics { -template void Line::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { - _transformedA = (transformation*typename DimensionTraits::PointType(_a)).vector(); - _transformedB = (transformation*typename DimensionTraits::PointType(_b)).vector(); +template void Line::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { + _transformedA = (transformation*typename DimensionTraits::PointType(_a)).vector(); + _transformedB = (transformation*typename DimensionTraits::PointType(_b)).vector(); } /* Explicitly instantiate the templates */ diff --git a/src/Physics/Line.h b/src/Physics/Line.h index 39cb70363..df509d87d 100644 --- a/src/Physics/Line.h +++ b/src/Physics/Line.h @@ -35,46 +35,46 @@ namespace Magnum { namespace Physics { template class PHYSICS_EXPORT Line: public AbstractShape { public: /** @brief Constructor */ - inline Line(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b): _a(a), _transformedA(a), _b(b), _transformedB(b) {} + inline Line(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b): _a(a), _transformedA(a), _b(b), _transformedB(b) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::Line; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; /** @brief First point */ - inline typename DimensionTraits::VectorType a() const { + inline typename DimensionTraits::VectorType a() const { return _a; } /** @brief Second point */ - inline typename DimensionTraits::VectorType b() const { + inline typename DimensionTraits::VectorType b() const { return _a; } /** @brief Set first point */ - inline void setA(const typename DimensionTraits::VectorType& a) { + inline void setA(const typename DimensionTraits::VectorType& a) { _a = a; } /** @brief Set second point */ - inline void setB(const typename DimensionTraits::VectorType& b) { + inline void setB(const typename DimensionTraits::VectorType& b) { _b = b; } /** @brief Transformed first point */ - inline typename DimensionTraits::VectorType transformedA() const { + inline typename DimensionTraits::VectorType transformedA() const { return _transformedA; } /** @brief Transformed second point */ - inline typename DimensionTraits::VectorType transformedB() const { + inline typename DimensionTraits::VectorType transformedB() const { return _transformedB; } private: - Math::Vector _a, _transformedA, + typename DimensionTraits::VectorType _a, _transformedA, _b, _transformedB; }; diff --git a/src/Physics/LineSegment.h b/src/Physics/LineSegment.h index 8c0d00242..4ed4b9449 100644 --- a/src/Physics/LineSegment.h +++ b/src/Physics/LineSegment.h @@ -31,7 +31,7 @@ namespace Magnum { namespace Physics { template class LineSegment: public Line { public: /** @brief Constructor */ - inline LineSegment(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b): Line(a, b) {} + inline LineSegment(const typename DimensionTraits::VectorType& a, const typename DimensionTraits::VectorType& b): Line(a, b) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::LineSegment; diff --git a/src/Physics/ObjectShape.cpp b/src/Physics/ObjectShape.cpp index 4ce8e4ce7..446433d5a 100644 --- a/src/Physics/ObjectShape.cpp +++ b/src/Physics/ObjectShape.cpp @@ -36,7 +36,7 @@ template void ObjectShape::markDirty() { group()->setDirty(); } -template void ObjectShape::clean(const typename DimensionTraits::MatrixType& absoluteTransformation) { +template void ObjectShape::clean(const typename DimensionTraits::MatrixType& absoluteTransformation) { if(_shape) _shape->applyTransformation(absoluteTransformation); } diff --git a/src/Physics/Plane.h b/src/Physics/Plane.h index 2397aa2e2..253e41484 100644 --- a/src/Physics/Plane.h +++ b/src/Physics/Plane.h @@ -39,7 +39,7 @@ class PHYSICS_EXPORT Plane: public AbstractShape<3> { void applyTransformation(const Matrix4& transformation) override; bool collides(const AbstractShape<3>* other) const override; #else - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; bool collides(const AbstractShape* other) const override; #endif diff --git a/src/Physics/Point.cpp b/src/Physics/Point.cpp index 6ca6df6f4..06850fd68 100644 --- a/src/Physics/Point.cpp +++ b/src/Physics/Point.cpp @@ -20,8 +20,8 @@ namespace Magnum { namespace Physics { -template void Point::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { - _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); +template void Point::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { + _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); } template class Point<2>; diff --git a/src/Physics/Point.h b/src/Physics/Point.h index 142b315e0..a228173f9 100644 --- a/src/Physics/Point.h +++ b/src/Physics/Point.h @@ -34,31 +34,31 @@ namespace Magnum { namespace Physics { template class PHYSICS_EXPORT Point: public AbstractShape { public: /** @brief Constructor */ - inline Point(const typename DimensionTraits::VectorType& position): _position(position), _transformedPosition(position) {} + inline Point(const typename DimensionTraits::VectorType& position): _position(position), _transformedPosition(position) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::Point; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; /** @brief Position */ - inline typename DimensionTraits::VectorType position() const { + inline typename DimensionTraits::VectorType position() const { return _position; } /** @brief Set position */ - inline void setPosition(const typename DimensionTraits::VectorType& position) { + inline void setPosition(const typename DimensionTraits::VectorType& position) { _position = position; } /** @brief Transformed position */ - inline typename DimensionTraits::VectorType transformedPosition() const { + inline typename DimensionTraits::VectorType transformedPosition() const { return _transformedPosition; } private: - Math::Vector _position, _transformedPosition; + typename DimensionTraits::VectorType _position, _transformedPosition; }; /** @brief Two-dimensional point */ diff --git a/src/Physics/ShapeGroup.cpp b/src/Physics/ShapeGroup.cpp index 83a5f7178..3352a2664 100644 --- a/src/Physics/ShapeGroup.cpp +++ b/src/Physics/ShapeGroup.cpp @@ -43,7 +43,7 @@ template ShapeGroup& ShapeGroup return *this; } -template void ShapeGroup::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { +template void ShapeGroup::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { if(a) a->applyTransformation(transformation); if(b) b->applyTransformation(transformation); } diff --git a/src/Physics/ShapeGroup.h b/src/Physics/ShapeGroup.h index 8a3533e84..04992413d 100644 --- a/src/Physics/ShapeGroup.h +++ b/src/Physics/ShapeGroup.h @@ -105,7 +105,7 @@ template class PHYSICS_EXPORT ShapeGroup: public Abstra return AbstractShape::Type::ShapeGroup; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; bool collides(const AbstractShape* other) const override; diff --git a/src/Physics/Sphere.cpp b/src/Physics/Sphere.cpp index b0f578871..91caac41d 100644 --- a/src/Physics/Sphere.cpp +++ b/src/Physics/Sphere.cpp @@ -28,7 +28,7 @@ using namespace Magnum::Math::Geometry; namespace Magnum { namespace Physics { namespace { - template static typename DimensionTraits::VectorType unitVector(); + template static typename DimensionTraits::VectorType unitVector(); template<> inline Vector2 unitVector<2>() { return Vector2(1/Math::Constants::sqrt2()); @@ -39,8 +39,8 @@ namespace { } } -template void Sphere::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { - _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); +template void Sphere::applyTransformation(const typename DimensionTraits::MatrixType& transformation) { + _transformedPosition = (transformation*typename DimensionTraits::PointType(_position)).vector(); float scaling = (transformation.rotationScaling()*unitVector()).length(); _transformedRadius = scaling*_radius; } diff --git a/src/Physics/Sphere.h b/src/Physics/Sphere.h index 1fd8cc378..f77cf8415 100644 --- a/src/Physics/Sphere.h +++ b/src/Physics/Sphere.h @@ -37,23 +37,23 @@ applying transformation, the scale factor is averaged from all axes. template class PHYSICS_EXPORT Sphere: public AbstractShape { public: /** @brief Constructor */ - inline Sphere(const typename DimensionTraits::VectorType& position, float radius): _position(position), _transformedPosition(position), _radius(radius), _transformedRadius(radius) {} + inline Sphere(const typename DimensionTraits::VectorType& position, float radius): _position(position), _transformedPosition(position), _radius(radius), _transformedRadius(radius) {} inline typename AbstractShape::Type type() const override { return AbstractShape::Type::Sphere; } - void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; + void applyTransformation(const typename DimensionTraits::MatrixType& transformation) override; bool collides(const AbstractShape* other) const override; /** @brief Position */ - inline typename DimensionTraits::VectorType position() const { + inline typename DimensionTraits::VectorType position() const { return _position; } /** @brief Set position */ - inline void setPosition(const typename DimensionTraits::VectorType& position) { + inline void setPosition(const typename DimensionTraits::VectorType& position) { _position = position; } @@ -64,7 +64,7 @@ template class PHYSICS_EXPORT Sphere: public AbstractSh inline void setRadius(float radius) { _radius = radius; } /** @brief Transformed position */ - inline typename DimensionTraits::VectorType transformedPosition() const { + inline typename DimensionTraits::VectorType transformedPosition() const { return _transformedPosition; } @@ -86,7 +86,7 @@ template class PHYSICS_EXPORT Sphere: public AbstractSh bool operator%(const Sphere& other) const; private: - Math::Vector _position, + typename DimensionTraits::VectorType _position, _transformedPosition; float _radius, _transformedRadius; }; diff --git a/src/SceneGraph/Test/ObjectTest.cpp b/src/SceneGraph/Test/ObjectTest.cpp index 376f859b3..abe60f4c7 100644 --- a/src/SceneGraph/Test/ObjectTest.cpp +++ b/src/SceneGraph/Test/ObjectTest.cpp @@ -27,12 +27,12 @@ CORRADE_TEST_MAIN(Magnum::SceneGraph::Test::ObjectTest) namespace Magnum { namespace SceneGraph { namespace Test { -typedef SceneGraph::Object> Object3D; -typedef SceneGraph::Scene> Scene3D; +typedef SceneGraph::Object> Object3D; +typedef SceneGraph::Scene> Scene3D; -class CachingObject: public Object3D, AbstractFeature<3, GLfloat> { +class CachingObject: public Object3D, AbstractFeature<3> { public: - inline CachingObject(Object3D* parent = nullptr): Object3D(parent), AbstractFeature<3, GLfloat>(this) { + inline CachingObject(Object3D* parent = nullptr): Object3D(parent), AbstractFeature<3>(this) { setCachedTransformations(CachedTransformation::Absolute); } @@ -189,9 +189,9 @@ void ObjectTest::transformations() { void ObjectTest::setClean() { Scene3D scene; - class CachingFeature: public AbstractFeature<3, GLfloat> { + class CachingFeature: public AbstractFeature<3> { public: - CachingFeature(AbstractObject<3, GLfloat>* object): AbstractFeature<3, GLfloat>(object) { + CachingFeature(AbstractObject<3>* object): AbstractFeature<3>(object) { setCachedTransformations(CachedTransformation::Absolute); } @@ -202,9 +202,9 @@ void ObjectTest::setClean() { } }; - class CachingInvertedFeature: public AbstractFeature<3, GLfloat> { + class CachingInvertedFeature: public AbstractFeature<3> { public: - CachingInvertedFeature(AbstractObject<3, GLfloat>* object): AbstractFeature<3, GLfloat>(object) { + CachingInvertedFeature(AbstractObject<3>* object): AbstractFeature<3>(object) { setCachedTransformations(CachedTransformation::InvertedAbsolute); } diff --git a/src/Shaders/FlatShader.h b/src/Shaders/FlatShader.h index bbdca99e5..af839d760 100644 --- a/src/Shaders/FlatShader.h +++ b/src/Shaders/FlatShader.h @@ -38,7 +38,7 @@ Draws whole mesh with one color. template class SHADERS_EXPORT FlatShader: public AbstractShaderProgram { public: /** @brief Vertex position */ - typedef Attribute<0, typename DimensionTraits::PointType> Position; + typedef Attribute<0, typename DimensionTraits::PointType> Position; FlatShader(); @@ -46,7 +46,7 @@ template class SHADERS_EXPORT FlatShader: public Abstra * @brief Set transformation and projection matrix * @return Pointer to self (for method chaining) */ - FlatShader* setTransformationProjection(const typename DimensionTraits::MatrixType& matrix) { + FlatShader* setTransformationProjection(const typename DimensionTraits::MatrixType& matrix) { setUniform(transformationProjectionUniform, matrix); return this; } diff --git a/src/Shaders/VertexColorShader.h b/src/Shaders/VertexColorShader.h index 1c68a147a..437e1a7ed 100644 --- a/src/Shaders/VertexColorShader.h +++ b/src/Shaders/VertexColorShader.h @@ -38,7 +38,7 @@ Draws vertex-colored mesh. template class SHADERS_EXPORT VertexColorShader: public AbstractShaderProgram { public: /** @brief Vertex position */ - typedef Attribute<0, typename DimensionTraits::PointType> Position; + typedef Attribute<0, typename DimensionTraits::PointType> Position; /** @brief Vertex color */ typedef Attribute<1, Color3> Color; @@ -49,7 +49,7 @@ template class SHADERS_EXPORT VertexColorShader: public * @brief Set transformation and projection * @return Pointer to self (for method chaining) */ - inline VertexColorShader* setTransformationProjection(const typename DimensionTraits::MatrixType& matrix) { + inline VertexColorShader* setTransformationProjection(const typename DimensionTraits::MatrixType& matrix) { setUniform(transformationProjectionUniform, matrix); return this; }