File mechanics/src/collision/SiconosShape.hpp#

Go to the source code of this file

Definition of an abstract rigid shape.

Typedefs

typedef std::vector<unsigned int> VUInt#
class SiconosShape

Subclassed by SiconosBox, SiconosBox2d, SiconosCapsule, SiconosCone, SiconosConvexHull, SiconosConvexHull2d, SiconosCylinder, SiconosDisk, SiconosHeightMap, SiconosMesh, SiconosPlane, SiconosSphere

Public Functions

inline virtual ~SiconosShape()#
inline void setInsideMargin(double margin)

Set the inside margin of the shape.

This is a distance that the contour should be shrunk to improve contact detection robustness. It will have an effect on the roundness of corners.

inline void setOutsideMargin(double margin)

Set the outside margin of the shape.

This is the distance from the contact shell to an external shell used to detect contacts in advance. The implementation will detect contact points on the external shell and project them back to the contact shell. Note: Currently not working in Bullet implementation! Better to leave at zero.

inline double insideMargin()#
inline double outsideMargin()#
inline unsigned int version() const#
VIRTUAL_ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosShape)#
inline SiconosShape()#

Protected Attributes

double _inside_margin#
double _outside_margin#
unsigned int _version#
class SiconosPlane : public SiconosShape, public std::enable_shared_from_this<SiconosPlane>#

Public Functions

inline SiconosPlane()#
inline virtual ~SiconosPlane()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosPlane)#
class SiconosSphere : public SiconosShape, public std::enable_shared_from_this<SiconosSphere>#

Public Functions

inline SiconosSphere(float radius)#
inline virtual ~SiconosSphere()#
inline float radius() const#
inline void setRadius(float r)#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosSphere)#

Protected Attributes

float _radius#

Private Functions

inline SiconosSphere()#
class SiconosBox : public SiconosShape, public std::enable_shared_from_this<SiconosBox>#

Public Functions

inline SiconosBox(double width, double height, double depth)#
inline SiconosBox(SP::SiconosVector dimensions)#
inline virtual ~SiconosBox()#
inline SP::SiconosVector dimensions() const#
inline void setDimensions(double width, double height, double depth)#
inline void setDimensions(SP::SiconosVector dim)#
inline void setDimensions(const SiconosVector &dim)#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosBox)#

Protected Attributes

SP::SiconosVector _dimensions#

Private Functions

inline SiconosBox()#
class SiconosCylinder : public SiconosShape, public std::enable_shared_from_this<SiconosCylinder>#

Public Functions

inline SiconosCylinder(float radius, float length)#
inline virtual ~SiconosCylinder()#
inline void setRadius(double radius)#
inline double radius()#
inline void setLength(double length)#
inline double length()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosCylinder)#

Protected Attributes

double _radius#
double _length#

Private Functions

inline SiconosCylinder()#
class SiconosCone : public SiconosShape, public std::enable_shared_from_this<SiconosCone>#

Public Functions

inline SiconosCone(float radius, float length)#
inline virtual ~SiconosCone()#
inline void setRadius(double radius)#
inline double radius()#
inline void setLength(double length)#
inline double length()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosCone)#

Protected Attributes

double _radius#
double _length#

Private Functions

inline SiconosCone()#
class SiconosCapsule : public SiconosShape, public std::enable_shared_from_this<SiconosCapsule>#

Public Functions

inline SiconosCapsule(float radius, float length)#
inline virtual ~SiconosCapsule()#
inline void setRadius(double radius)#
inline double radius()#
inline void setLength(double length)#
inline double length()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosCapsule)#

Protected Attributes

double _radius#
double _length#

Private Functions

inline SiconosCapsule()#
class SiconosConvexHull : public SiconosShape, public std::enable_shared_from_this<SiconosConvexHull>#

Public Functions

inline SiconosConvexHull(SP::SiconosMatrix vertices)#
inline virtual ~SiconosConvexHull()#
inline SP::SiconosMatrix vertices() const#
inline void setVertices(SP::SiconosMatrix vertices)#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosConvexHull)#

Protected Attributes

SP::SiconosMatrix _vertices#

Private Functions

inline SiconosConvexHull()#
class SiconosMesh : public SiconosShape, public std::enable_shared_from_this<SiconosMesh>#

Public Functions

inline SiconosMesh(SP::VUInt indexes, SP::SiconosMatrix vertices)#
inline SP::VUInt indexes()#
inline SP::SiconosMatrix vertices()#
inline virtual ~SiconosMesh()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosMesh)#

Protected Attributes

SP::VUInt _indexes#
SP::SiconosMatrix _vertices#

Private Functions

inline SiconosMesh()#
class SiconosHeightMap : public SiconosShape, public std::enable_shared_from_this<SiconosHeightMap>#

Public Functions

inline SiconosHeightMap(SP::SiconosMatrix height_data, double length_x, double length_y)#
inline SP::SiconosMatrix height_data()#
inline double length_x()#
inline double length_y()#
inline virtual ~SiconosHeightMap()#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosHeightMap)#

Protected Attributes

SP::SiconosMatrix _height_data#
double _length_x#
double _length_y#

Private Functions

inline SiconosHeightMap()#
class SiconosDisk : public SiconosShape, public std::enable_shared_from_this<SiconosDisk>#

Public Functions

inline SiconosDisk(float radius)#
inline virtual ~SiconosDisk()#
inline float radius() const#
inline void setRadius(float r)#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosDisk)#

Protected Attributes

float _radius#

Private Functions

inline SiconosDisk()#
class SiconosBox2d : public SiconosShape, public std::enable_shared_from_this<SiconosBox2d>#

Public Functions

inline SiconosBox2d(double width, double height)#
inline SiconosBox2d(SP::SiconosVector dimensions)#
inline virtual ~SiconosBox2d()#
inline SP::SiconosVector dimensions() const#
inline void setDimensions(double width, double height)#
inline void setDimensions(SP::SiconosVector dim)#
inline void setDimensions(const SiconosVector &dim)#
ACCEPT_VISITORS()#

Protected Functions

ACCEPT_SERIALIZATION(SiconosBox2d)#

Protected Attributes

SP::SiconosVector _dimensions#

Private Functions

inline SiconosBox2d()#
class SiconosConvexHull2d : public SiconosShape, public std::enable_shared_from_this<SiconosConvexHull2d>#

Public Functions

inline SiconosConvexHull2d(SP::SiconosMatrix vertices)#
inline virtual ~SiconosConvexHull2d()#
inline SP::SiconosMatrix vertices() const#
inline void setVertices(SP::SiconosMatrix vertices)#
inline bool avoidInternalEdgeContact() const#
inline void setAvoidInternalEdgeContact(bool value)#
ACCEPT_VISITORS()#

Public Members

int _normal_edge_pointA#
int _normal_edge_pointB#

Protected Functions

ACCEPT_SERIALIZATION(SiconosConvexHull2d)#

Protected Attributes

SP::SiconosMatrix _vertices#
bool _avoidInternalEdgeContact#

Private Functions

inline SiconosConvexHull2d()#