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
- 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.