Class SiconosBulletCollisionManager#

Defined in Program listing for file mechanics/src/collision/bullet/SiconosBulletCollisionManager.hpp

class SiconosBulletCollisionManager : public SiconosCollisionManager#

Public Functions

virtual SP::StaticBody addStaticBody(SP::SiconosContactorSet cs, SP::SiconosVector position = SP::SiconosVector(), int number = 0)#

Add a static body in the collision detector.

virtual void removeStaticBody(const SP::StaticBody &body)#

Remove a body from the collision detector.

virtual void removeBody(const SP::SecondOrderDS &body)#

Remove a body from the collision detector.

This must be done after removing a body from the NonSmoothDynamicalSystem otherwise contact will occur with a non-graph body which results in failure.

virtual std::vector<SP::SiconosCollisionQueryResult> lineIntersectionQuery(const SiconosVector &start, const SiconosVector &end, bool closestOnly = false, bool sorted = true)#

Perform an intersection test on all shapes in the contactors and return a vector of all results, ordered by distance from start.

Parameters:
  • start – The starting point of the line segment in inertial frame (world) coordinates.

  • end – The ending point of the line segment in inertial frame (world) coordinates.

  • closestOnly – If true, indicates only interested in first result closest to half-space boundary, max size of returned vector = 1.

  • sorted – If true, results are sorted by distance.

Returns:

A vector of SiconosCollisionQueryResult that contain information about the query results.

inline void useEqualityConstraints(bool choice = true)#

Set the usage of equality constraints.

When the number of objects is huge as in granular material, the usage of equality constraint breaks scalability. This have to be fixed.

Parameters:

choice – a boolean, default is True.