Program listing for file mechanics/src/collision/SiconosCollisionManager.hpp

Program listing for file mechanics/src/collision/SiconosCollisionManager.hpp#

 1#ifndef SiconosCollisionManager_h
 2#define SiconosCollisionManager_h
 3
 4#include <InteractionManager.hpp>
 5#include <SiconosContactor.hpp>
 6#include <SiconosCollisionQueryResult.hpp>
 7
 8class SiconosCollisionManager : public InteractionManager
 9{
10protected:
11
12  ACCEPT_SERIALIZATION(SiconosCollisionManager);
13
14public:
15  SiconosCollisionManager() : InteractionManager() {}
16  virtual ~SiconosCollisionManager() {}
17
18
19  typedef void* StaticContactorSetID;
20
21
22  virtual void removeBody(const SP::SecondOrderDS& body) {}
23
24
25  virtual SP::StaticBody addStaticBody(
26    SP::SiconosContactorSet cs, SP::SiconosVector position = SP::SiconosVector(), int number=0) {return SP::StaticBody();};
27
28
29  virtual void removeStaticBody(const SP::StaticBody& body) {};
30
31
32  virtual std::vector<SP::SiconosCollisionQueryResult>
33  lineIntersectionQuery(const SiconosVector& start,
34                        const SiconosVector& end,
35                        bool closestOnly=false,
36                        bool sorted=true)
37    { return std::vector<SP::SiconosCollisionQueryResult>(); }
38
39
40  virtual std::vector<SP::SiconosCollisionQueryResult>
41  inSphereQuery(const SiconosVector& center,
42                double radius,
43                bool closestOnly=false,
44                bool sorted=true)
45    { return std::vector<SP::SiconosCollisionQueryResult>(); }
46
47
48  virtual std::vector<SP::SiconosCollisionQueryResult>
49  inBoxQuery(const SiconosVector& center,
50             const SiconosVector& dimensions,
51             bool closestOnly=false,
52             bool sorted=true)
53    { return std::vector<SP::SiconosCollisionQueryResult>(); }
54
55
56  virtual std::vector<SP::SiconosCollisionQueryResult>
57  inHalfSpaceQuery(const SiconosVector& point,
58                   const SiconosVector& normal,
59                   bool closestOnly=false,
60                   bool sorted=true)
61    { return std::vector<SP::SiconosCollisionQueryResult>(); }
62
63};
64
65#endif