Browse Source

Shapes: removed redundant `inline` keyword.

pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
ebf13678dc
  1. 12
      src/Shapes/AxisAlignedBox.h
  2. 8
      src/Shapes/Box.h
  3. 16
      src/Shapes/Capsule.h
  4. 24
      src/Shapes/Composition.h
  5. 4
      src/Shapes/Implementation/CollisionDispatch.cpp
  6. 12
      src/Shapes/Line.h
  7. 8
      src/Shapes/LineSegment.h
  8. 12
      src/Shapes/Plane.h
  9. 8
      src/Shapes/Point.h
  10. 6
      src/Shapes/Shape.h
  11. 6
      src/Shapes/ShapeGroup.h
  12. 12
      src/Shapes/Sphere.h
  13. 18
      src/Shapes/shapeImplementation.h

12
src/Shapes/AxisAlignedBox.h

@ -53,31 +53,31 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT AxisAlignedBox {
*
* Creates zero sized box positioned at origin.
*/
inline constexpr /*implicit*/ AxisAlignedBox() {}
constexpr /*implicit*/ AxisAlignedBox() {}
/** @brief Constructor */
inline constexpr /*implicit*/ AxisAlignedBox(const typename DimensionTraits<dimensions>::VectorType& min, const typename DimensionTraits<dimensions>::VectorType& max): _min(min), _max(max) {}
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;
/** @brief Minimal coordinates */
inline constexpr typename DimensionTraits<dimensions>::VectorType min() const {
constexpr typename DimensionTraits<dimensions>::VectorType min() const {
return _min;
}
/** @brief Set minimal coordinates */
inline void setMin(const typename DimensionTraits<dimensions>::VectorType& min) {
void setMin(const typename DimensionTraits<dimensions>::VectorType& min) {
_min = min;
}
/** @brief Maximal coordinates */
inline constexpr typename DimensionTraits<dimensions>::VectorType max() const {
constexpr typename DimensionTraits<dimensions>::VectorType max() const {
return _max;
}
/** @brief Set maximal coordinates */
inline void setMax(const typename DimensionTraits<dimensions>::VectorType& max) {
void setMax(const typename DimensionTraits<dimensions>::VectorType& max) {
_max = max;
}

8
src/Shapes/Box.h

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

16
src/Shapes/Capsule.h

@ -55,39 +55,39 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Capsule {
*
* Creates zero-sized capsule at origin.
*/
inline constexpr /*implicit*/ Capsule(): _radius(0.0f) {}
constexpr /*implicit*/ Capsule(): _radius(0.0f) {}
/** @brief Constructor */
inline constexpr /*implicit*/ Capsule(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b, Float radius): _a(a), _b(b), _radius(radius) {}
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;
/** @brief Start point */
inline constexpr typename DimensionTraits<dimensions>::VectorType a() const {
constexpr typename DimensionTraits<dimensions>::VectorType a() const {
return _a;
}
/** @brief Set start point */
inline void setA(const typename DimensionTraits<dimensions>::VectorType& a) {
void setA(const typename DimensionTraits<dimensions>::VectorType& a) {
_a = a;
}
/** @brief End point */
inline constexpr typename DimensionTraits<dimensions>::VectorType b() const {
constexpr typename DimensionTraits<dimensions>::VectorType b() const {
return _b;
}
/** @brief Set end point */
inline void setB(const typename DimensionTraits<dimensions>::VectorType& b) {
void setB(const typename DimensionTraits<dimensions>::VectorType& b) {
_b = b;
}
/** @brief Radius */
inline constexpr Float radius() const { return _radius; }
constexpr Float radius() const { return _radius; }
/** @brief Set radius */
inline void setRadius(Float radius) { _radius = radius; }
void setRadius(Float radius) { _radius = radius; }
/** @brief Collision with point */
bool operator%(const Point<dimensions>& other) const;

24
src/Shapes/Composition.h

@ -93,7 +93,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Composition {
*
* Creates empty hierarchy.
*/
inline explicit Composition(): _shapeCount(0), _nodeCount(0), _shapes(nullptr), _nodes(nullptr) {}
explicit Composition(): _shapeCount(0), _nodeCount(0), _shapes(nullptr), _nodes(nullptr) {}
/**
* @brief Unary operation constructor
@ -128,19 +128,19 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Composition {
Composition<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
/** @brief Count of shapes in the hierarchy */
inline std::size_t size() const { return _shapeCount; }
std::size_t size() const { return _shapeCount; }
/** @brief Type of shape at given position */
inline Type type(std::size_t i) const { return _shapes[i]->type(); }
Type type(std::size_t i) const { return _shapes[i]->type(); }
/** @brief Shape at given position */
template<class T> const T& get(std::size_t i) const;
/** @brief Collision with another shape */
#ifdef DOXYGEN_GENERATING_OUTPUT
template<class T> inline bool operator%(const T& other) const {
template<class T> bool operator%(const T& other) const {
#else
template<class T> inline auto operator%(const T& other) const -> typename std::enable_if<std::is_same<decltype(Implementation::TypeOf<T>::type()), typename Implementation::ShapeDimensionTraits<dimensions>::Type>::value, bool>::type {
template<class T> auto operator%(const T& other) const -> typename std::enable_if<std::is_same<decltype(Implementation::TypeOf<T>::type()), typename Implementation::ShapeDimensionTraits<dimensions>::Type>::value, bool>::type {
#endif
Implementation::Shape<T> a(other);
return collides(&a);
@ -152,32 +152,32 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Composition {
CompositionOperation operation;
};
inline bool collides(const Implementation::AbstractShape<dimensions>* a) const {
bool collides(const Implementation::AbstractShape<dimensions>* a) const {
return collides(a, 0, 0, _shapeCount);
}
bool collides(const Implementation::AbstractShape<dimensions>* a, std::size_t node, std::size_t shapeBegin, std::size_t shapeEnd) const;
template<class T> inline constexpr static std::size_t shapeCount(const T&) {
template<class T> constexpr static std::size_t shapeCount(const T&) {
return 1;
}
inline constexpr static std::size_t shapeCount(const Composition<dimensions>& hierarchy) {
constexpr static std::size_t shapeCount(const Composition<dimensions>& hierarchy) {
return hierarchy._shapeCount;
}
template<class T> inline constexpr static std::size_t nodeCount(const T&) {
template<class T> constexpr static std::size_t nodeCount(const T&) {
return 0;
}
inline constexpr static std::size_t nodeCount(const Composition<dimensions>& hierarchy) {
constexpr static std::size_t nodeCount(const Composition<dimensions>& hierarchy) {
return hierarchy._nodeCount;
}
template<class T> inline void copyShapes(std::size_t offset, const T& shape) {
template<class T> void copyShapes(std::size_t offset, const T& shape) {
_shapes[offset] = new Implementation::Shape<T>(shape);
}
void copyShapes(std::size_t offset, Composition<dimensions>&& other);
void copyShapes(std::size_t offset, const Composition<dimensions>& other);
template<class T> inline void copyNodes(std::size_t, const T&) {}
template<class T> void copyNodes(std::size_t, const T&) {}
void copyNodes(std::size_t offset, const Composition<dimensions>& other);
std::size_t _shapeCount, _nodeCount;

4
src/Shapes/Implementation/CollisionDispatch.cpp

@ -36,10 +36,10 @@
namespace Magnum { namespace Shapes { namespace Implementation {
namespace {
inline constexpr UnsignedInt operator*(ShapeDimensionTraits<2>::Type a, ShapeDimensionTraits<2>::Type b) {
constexpr UnsignedInt operator*(ShapeDimensionTraits<2>::Type a, ShapeDimensionTraits<2>::Type b) {
return UnsignedInt(a)*UnsignedInt(b);
}
inline constexpr UnsignedInt operator*(ShapeDimensionTraits<3>::Type a, ShapeDimensionTraits<3>::Type b) {
constexpr UnsignedInt operator*(ShapeDimensionTraits<3>::Type a, ShapeDimensionTraits<3>::Type b) {
return UnsignedInt(a)*UnsignedInt(b);
}
}

12
src/Shapes/Line.h

@ -52,31 +52,31 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Line {
*
* Creates line with both points at origin.
*/
inline constexpr /*implicit*/ Line() {}
constexpr /*implicit*/ Line() {}
/** @brief Constructor */
inline constexpr /*implicit*/ Line(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): _a(a), _b(b) {}
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;
/** @brief First point */
inline constexpr typename DimensionTraits<dimensions>::VectorType a() const {
constexpr typename DimensionTraits<dimensions>::VectorType a() const {
return _a;
}
/** @brief Set first point */
inline void setA(const typename DimensionTraits<dimensions>::VectorType& a) {
void setA(const typename DimensionTraits<dimensions>::VectorType& a) {
_a = a;
}
/** @brief Second point */
inline constexpr typename DimensionTraits<dimensions>::VectorType b() const {
constexpr typename DimensionTraits<dimensions>::VectorType b() const {
return _b;
}
/** @brief Set second point */
inline void setB(const typename DimensionTraits<dimensions>::VectorType& b) {
void setB(const typename DimensionTraits<dimensions>::VectorType& b) {
_b = b;
}

8
src/Shapes/LineSegment.h

@ -45,18 +45,18 @@ template<UnsignedInt dimensions> class LineSegment: public Line<dimensions> {
*
* Creates line segment with both points at origin.
*/
inline constexpr /*implicit*/ LineSegment() {}
constexpr /*implicit*/ LineSegment() {}
/** @brief Constructor */
inline constexpr /*implicit*/ LineSegment(const typename DimensionTraits<dimensions>::VectorType& a, const typename DimensionTraits<dimensions>::VectorType& b): Line<dimensions>(a, b) {}
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 {
LineSegment<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const {
return Line<dimensions>::transformed(matrix);
}
private:
inline constexpr LineSegment(const Line<dimensions>& line): Line<dimensions>(line) {}
constexpr LineSegment(const Line<dimensions>& line): Line<dimensions>(line) {}
};
/** @brief Two-dimensional line segment */

12
src/Shapes/Plane.h

@ -51,27 +51,27 @@ class MAGNUM_SHAPES_EXPORT Plane {
*
* Creates plane with zero-sized normal at origin.
*/
inline constexpr /*implicit*/ Plane() {}
constexpr /*implicit*/ Plane() {}
/** @brief Constructor */
inline constexpr /*implicit*/ Plane(const Vector3& position, const Vector3& normal): _position(position), _normal(normal) {}
constexpr /*implicit*/ Plane(const Vector3& position, const Vector3& normal): _position(position), _normal(normal) {}
/** @brief Transformed shape */
Plane transformed(const Matrix4& matrix) const;
/** @brief Position */
inline constexpr Vector3 position() const { return _position; }
constexpr Vector3 position() const { return _position; }
/** @brief Set position */
inline void setPosition(const Vector3& position) {
void setPosition(const Vector3& position) {
_position = position;
}
/** @brief Normal */
inline constexpr Vector3 normal() const { return _normal; }
constexpr Vector3 normal() const { return _normal; }
/** @brief Set normal */
inline void setNormal(const Vector3& normal) {
void setNormal(const Vector3& normal) {
_normal = normal;
}

8
src/Shapes/Point.h

@ -51,21 +51,21 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Point {
*
* Creates point at origin.
*/
inline constexpr /*implicit*/ Point() {}
constexpr /*implicit*/ Point() {}
/** @brief Constructor */
inline constexpr /*implicit*/ Point(const typename DimensionTraits<dimensions>::VectorType& position): _position(position) {}
constexpr /*implicit*/ Point(const typename DimensionTraits<dimensions>::VectorType& position): _position(position) {}
/** @brief Transformed shape */
Point<dimensions> transformed(const typename DimensionTraits<dimensions>::MatrixType& matrix) const;
/** @brief Position */
inline constexpr typename DimensionTraits<dimensions>::VectorType position() const {
constexpr typename DimensionTraits<dimensions>::VectorType position() const {
return _position;
}
/** @brief Set position */
inline void setPosition(const typename DimensionTraits<dimensions>::VectorType& position) {
void setPosition(const typename DimensionTraits<dimensions>::VectorType& position) {
_position = position;
}

6
src/Shapes/Shape.h

@ -88,7 +88,7 @@ template<class T> class MAGNUM_SHAPES_EXPORT Shape: public AbstractShape<T::Dime
template<class ...U> explicit Shape(SceneGraph::AbstractObject<T::Dimensions>* object, ShapeGroup<T::Dimensions>* group = nullptr): AbstractShape<T::Dimensions>(object, group) {}
/** @brief Shape */
inline const T& shape() const { return _shape.shape; }
const T& shape() const { return _shape.shape; }
/**
* @brief Set shape
@ -134,11 +134,11 @@ template<class T> void Shape<T>::clean(const typename DimensionTraits<T::Dimensi
namespace Implementation {
template<class T> struct ShapeHelper {
inline static void set(Shapes::Shape<T>& shape, const T& s) {
static void set(Shapes::Shape<T>& shape, const T& s) {
shape._shape.shape = s;
}
inline static void transform(Shapes::Shape<T>& shape, const typename DimensionTraits<T::Dimensions>::MatrixType& absoluteTransformationMatrix) {
static void transform(Shapes::Shape<T>& shape, const typename DimensionTraits<T::Dimensions>::MatrixType& absoluteTransformationMatrix) {
shape._transformedShape.shape = shape._shape.shape.transformed(absoluteTransformationMatrix);
}
};

6
src/Shapes/ShapeGroup.h

@ -52,13 +52,13 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT ShapeGroup: public S
*
* Marks the group as dirty.
*/
inline explicit ShapeGroup(): dirty(true) {}
explicit ShapeGroup(): dirty(true) {}
/**
* @brief Whether the group is dirty
* @return True if any object in the group is dirty, false otherwise.
*/
inline bool isDirty() const { return dirty; }
bool isDirty() const { return dirty; }
/**
* @brief Set the group as dirty
@ -69,7 +69,7 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT ShapeGroup: public S
*
* @see setClean()
*/
inline void setDirty() { dirty = true; }
void setDirty() { dirty = true; }
/**
* @brief Set the group and all bodies as clean

12
src/Shapes/Sphere.h

@ -55,29 +55,29 @@ template<UnsignedInt dimensions> class MAGNUM_SHAPES_EXPORT Sphere {
*
* Creates zero-sized sphere at origin.
*/
inline constexpr /*implicit*/ Sphere(): _radius(0.0f) {}
constexpr /*implicit*/ Sphere(): _radius(0.0f) {}
/** @brief Constructor */
inline constexpr /*implicit*/ Sphere(const typename DimensionTraits<dimensions>::VectorType& position, Float radius): _position(position), _radius(radius) {}
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;
/** @brief Position */
inline constexpr typename DimensionTraits<dimensions>::VectorType position() const {
constexpr typename DimensionTraits<dimensions>::VectorType position() const {
return _position;
}
/** @brief Set position */
inline void setPosition(const typename DimensionTraits<dimensions>::VectorType& position) {
void setPosition(const typename DimensionTraits<dimensions>::VectorType& position) {
_position = position;
}
/** @brief Radius */
inline constexpr Float radius() const { return _radius; }
constexpr Float radius() const { return _radius; }
/** @brief Set radius */
inline void setRadius(Float radius) { _radius = radius; }
void setRadius(Float radius) { _radius = radius; }
/** @brief Collision with point */
bool operator%(const Point<dimensions>& other) const;

18
src/Shapes/shapeImplementation.h

@ -73,47 +73,47 @@ Debug MAGNUM_SHAPES_EXPORT operator<<(Debug debug, ShapeDimensionTraits<3>::Type
template<class> struct TypeOf;
template<UnsignedInt dimensions> struct TypeOf<Shapes::Point<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Point;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::Line<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Line;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::LineSegment<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::LineSegment;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::Sphere<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Sphere;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::Capsule<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Capsule;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::AxisAlignedBox<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::AxisAlignedBox;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::Box<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Box;
}
};
template<> struct TypeOf<Shapes::Plane> {
inline constexpr static typename ShapeDimensionTraits<3>::Type type() {
constexpr static typename ShapeDimensionTraits<3>::Type type() {
return ShapeDimensionTraits<3>::Type::Plane;
}
};
template<UnsignedInt dimensions> struct TypeOf<Shapes::Composition<dimensions>> {
inline constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
constexpr static typename ShapeDimensionTraits<dimensions>::Type type() {
return ShapeDimensionTraits<dimensions>::Type::Composition;
}
};

Loading…
Cancel
Save