#include <Magnum/Shapes/Shape.h>
template<class T>
Shape class
Object shape.
Contents
Adds shape for collision detection to object. Each Shape is part of some ShapeGroup, which essentially maintains a set of objects which can collide with each other. See Collision detection for brief introduction.
The shape contains original shape with relative transformation under shape() and also caches a shape with absolute transformation under transformedShape(), which can be used for collision detection. To conveniently use collision detection among many objects, you need to add the shape to ShapeGroup, which then provides collision detection for given group of shapes using either collides(), collision() or ShapeGroup::
Shapes::ShapeGroup3D shapes; Object3D object; auto shape = new Shapes::Shape<Shapes::Sphere3D>(object, {{}, 0.75f}, &shapes); Shapes::AbstractShape3D* firstCollision = shapes.firstCollision(shape);
Base classes

template<UnsignedInt dimensions>class AbstractShape deprecated
 Base class for object shapes.
Constructors, destructors, conversion operators

Shape(SceneGraph::
AbstractObject <T::Dimensions, Float>& object, const T& shape, ShapeGroup<T::Dimensions>* group = nullptr) explicit  Constructor.

Shape(SceneGraph::
AbstractObject <T::Dimensions, Float>& object, T&& shape, ShapeGroup<T::Dimensions>* group = nullptr) explicit 
Shape(SceneGraph::
AbstractObject <T::Dimensions, Float>& object, ShapeGroup<T::Dimensions>* group = nullptr) explicit
Public functions
 auto shape() const > const T&
 Shape.
 auto setShape(const T& shape) > Shape<T>&
 Set shape.
 auto transformedShape() > const T&
 Transformed shape.
Protected functions
 void clean(const MatrixTypeFor<T::Dimensions, Float>& absoluteTransformationMatrix) override
Function documentation
template<class T>
Magnum::Shapes::Shape<T>:: Shape(SceneGraph::AbstractObject <T::Dimensions, Float>& object,
const T& shape,
ShapeGroup<T::Dimensions>* group = nullptr) explicit
Constructor.
Parameters  

object  Object holding this feature 
shape  Shape 
group  Group this shape belongs to 
template<class T>
Magnum::Shapes::Shape<T>:: Shape(SceneGraph::AbstractObject <T::Dimensions, Float>& object,
T&& shape,
ShapeGroup<T::Dimensions>* group = nullptr) explicit
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<class T>
Magnum::Shapes::Shape<T>:: Shape(SceneGraph::AbstractObject <T::Dimensions, Float>& object,
ShapeGroup<T::Dimensions>* group = nullptr) explicit
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
template<class T>
const T& Magnum::Shapes::Shape<T>:: transformedShape()
Transformed shape.
Cleans the feature before returning the shape.
template<class T>
void Magnum::Shapes::Shape<T>:: clean(const MatrixTypeFor<T::Dimensions, Float>& absoluteTransformationMatrix) override protected
Applies transformation to associated shape.