Browse Source

Physics shape rework #3: made shape constructors implicit.

Allows to use them in (future) ObjectShape construction without unneded
verbosity:

    new Physics::ObjectShape<Physics::Point2D>(o, {{1.0f, -2.5f}});

instead of:

    new Physics::ObjectShape<Physics::Point2D>(o, Physics::Point2D(...));
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
ebbb5b6e5e
  1. 4
      src/Physics/AxisAlignedBox.h
  2. 4
      src/Physics/Box.h
  3. 4
      src/Physics/Capsule.h
  4. 4
      src/Physics/Line.h
  5. 4
      src/Physics/LineSegment.h
  6. 4
      src/Physics/Plane.h
  7. 4
      src/Physics/Point.h
  8. 4
      src/Physics/Sphere.h

4
src/Physics/AxisAlignedBox.h

@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT AxisAlignedBox {
* *
* Creates zero sized box positioned at origin. * Creates zero sized box positioned at origin.
*/ */
inline constexpr explicit AxisAlignedBox() {} inline constexpr /*implicit*/ AxisAlignedBox() {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit AxisAlignedBox(const typename DimensionTraits<dimensions>::VectorType& min, const typename DimensionTraits<dimensions>::VectorType& max): _min(min), _max(max) {} inline constexpr /*implicit*/ AxisAlignedBox(const typename DimensionTraits<dimensions>::VectorType& min, const typename DimensionTraits<dimensions>::VectorType& max): _min(min), _max(max) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
AxisAlignedBox<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; AxisAlignedBox<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

4
src/Physics/Box.h

@ -55,10 +55,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Box {
* *
* Creates zero-sized box positioned at origin. * Creates zero-sized box positioned at origin.
*/ */
inline constexpr explicit Box(): _transformation(DimensionTraits<dimensions>::MatrixType::Zero) {} inline constexpr /*implicit*/ Box(): _transformation(DimensionTraits<dimensions>::MatrixType::Zero) {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Box(const typename DimensionTraits<dimensions>::MatrixType& transformation): _transformation(transformation) {} inline constexpr /*implicit*/ Box(const typename DimensionTraits<dimensions>::MatrixType& transformation): _transformation(transformation) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Box<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; Box<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

4
src/Physics/Capsule.h

@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Capsule {
* *
* Creates zero-sized capsule at origin. * Creates zero-sized capsule at origin.
*/ */
inline constexpr explicit Capsule(): _radius(0.0f) {} inline constexpr /*implicit*/ Capsule(): _radius(0.0f) {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Capsule(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b, Float radius): _a(a), _b(b), _radius(radius) {} inline constexpr /*implicit*/ Capsule(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b, Float radius): _a(a), _b(b), _radius(radius) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Capsule<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; Capsule<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

4
src/Physics/Line.h

@ -51,10 +51,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Line {
* *
* Creates line with both points at origin. * Creates line with both points at origin.
*/ */
inline constexpr explicit Line() {} inline constexpr /*implicit*/ Line() {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Line(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): _a(a), _b(b) {} inline constexpr /*implicit*/ Line(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): _a(a), _b(b) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Line<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; Line<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

4
src/Physics/LineSegment.h

@ -44,10 +44,10 @@ template<UnsignedInt dimensions> class LineSegment: public Line<dimensions> {
* *
* Creates line segment with both points at origin. * Creates line segment with both points at origin.
*/ */
inline constexpr explicit LineSegment() {} inline constexpr /*implicit*/ LineSegment() {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit LineSegment(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): Line<dimensions>(a, b) {} inline constexpr /*implicit*/ LineSegment(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): Line<dimensions>(a, b) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
inline LineSegment<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const { inline LineSegment<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const {

4
src/Physics/Plane.h

@ -47,10 +47,10 @@ class MAGNUM_PHYSICS_EXPORT Plane {
* *
* Creates plane with zero-sized normal at origin. * Creates plane with zero-sized normal at origin.
*/ */
inline constexpr explicit Plane() {} inline constexpr /*implicit*/ Plane() {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Plane(const Vector3& position, const Vector3& normal): _position(position), _normal(normal) {} inline constexpr /*implicit*/ Plane(const Vector3& position, const Vector3& normal): _position(position), _normal(normal) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Plane transformed(const Matrix4& matrix) const; Plane transformed(const Matrix4& matrix) const;

4
src/Physics/Point.h

@ -50,10 +50,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Point {
* *
* Creates point at origin. * Creates point at origin.
*/ */
inline constexpr explicit Point() {} inline constexpr /*implicit*/ Point() {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Point(const typename DimensionTraits<dimensions>::VectorType& position): _position(position) {} inline constexpr /*implicit*/ Point(const typename DimensionTraits<dimensions>::VectorType& position): _position(position) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Point<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; Point<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

4
src/Physics/Sphere.h

@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Sphere {
* *
* Creates zero-sized sphere at origin. * Creates zero-sized sphere at origin.
*/ */
inline constexpr explicit Sphere(): _radius(0.0f) {} inline constexpr /*implicit*/ Sphere(): _radius(0.0f) {}
/** @brief Constructor */ /** @brief Constructor */
inline constexpr explicit Sphere(const typename DimensionTraits<dimensions>::VectorType& position, Float radius): _position(position), _radius(radius) {} inline constexpr /*implicit*/ Sphere(const typename DimensionTraits<dimensions>::VectorType& position, Float radius): _position(position), _radius(radius) {}
/** @brief Transformed shape */ /** @brief Transformed shape */
Sphere<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const; Sphere<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;

Loading…
Cancel
Save