Skip to content

Commit

Permalink
Physics shape rework #3: made shape constructors implicit.
Browse files Browse the repository at this point in the history
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(...));
  • Loading branch information
mosra committed May 4, 2013
1 parent 8deb220 commit ebbb5b6
Show file tree
Hide file tree
Showing 8 changed files with 16 additions and 16 deletions.
4 changes: 2 additions & 2 deletions src/Physics/AxisAlignedBox.h
Expand Up @@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT AxisAlignedBox {
*
* Creates zero sized box positioned at origin.
*/
inline constexpr explicit AxisAlignedBox() {}
inline constexpr /*implicit*/ AxisAlignedBox() {}

/** @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 */
AxisAlignedBox<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Box.h
Expand Up @@ -55,10 +55,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Box {
*
* 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 */
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 */
Box<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Capsule.h
Expand Up @@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Capsule {
*
* Creates zero-sized capsule at origin.
*/
inline constexpr explicit Capsule(): _radius(0.0f) {}
inline constexpr /*implicit*/ Capsule(): _radius(0.0f) {}

/** @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 */
Capsule<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Line.h
Expand Up @@ -51,10 +51,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Line {
*
* Creates line with both points at origin.
*/
inline constexpr explicit Line() {}
inline constexpr /*implicit*/ Line() {}

/** @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 */
Line<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/LineSegment.h
Expand Up @@ -44,10 +44,10 @@ template<UnsignedInt dimensions> class LineSegment: public Line<dimensions> {
*
* Creates line segment with both points at origin.
*/
inline constexpr explicit LineSegment() {}
inline constexpr /*implicit*/ LineSegment() {}

/** @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 */
inline LineSegment<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const {
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Plane.h
Expand Up @@ -47,10 +47,10 @@ class MAGNUM_PHYSICS_EXPORT Plane {
*
* Creates plane with zero-sized normal at origin.
*/
inline constexpr explicit Plane() {}
inline constexpr /*implicit*/ Plane() {}

/** @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 */
Plane transformed(const Matrix4& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Point.h
Expand Up @@ -50,10 +50,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Point {
*
* Creates point at origin.
*/
inline constexpr explicit Point() {}
inline constexpr /*implicit*/ Point() {}

/** @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 */
Point<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down
4 changes: 2 additions & 2 deletions src/Physics/Sphere.h
Expand Up @@ -54,10 +54,10 @@ template<UnsignedInt dimensions> class MAGNUM_PHYSICS_EXPORT Sphere {
*
* Creates zero-sized sphere at origin.
*/
inline constexpr explicit Sphere(): _radius(0.0f) {}
inline constexpr /*implicit*/ Sphere(): _radius(0.0f) {}

/** @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 */
Sphere<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
Expand Down

0 comments on commit ebbb5b6

Please sign in to comment.