Program listing for file mechanics/src/collision/SiconosCollisionManager.hpp#
Return to documentation for this file
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