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

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

 1#ifndef SiconosContactor_h
 2#define SiconosContactor_h
 3
 4#include <vector>
 5#include <utility>
 6
 7#include "MechanicsFwd.hpp"
 8
 9#include <SiconosSerialization.hpp>
10
11#include "SiconosShape.hpp"
12
13
14
15class SiconosContactor
16{
17private:
18  SiconosContactor() {};
19
20protected:
21  ACCEPT_SERIALIZATION(SiconosContactor);
22
23public:
24  SiconosContactor(SP::SiconosShape _shape,
25                   SP::SiconosVector _offset = SP::SiconosVector(),
26                   int _collision_group = 0);
27
28  SP::SiconosShape shape;
29  SP::SiconosVector offset;
30  int collision_group;
31};
32
33class SiconosContactorSet : public std::vector< SP::SiconosContactor >
34{
35protected:
36  ACCEPT_SERIALIZATION(SiconosContactorSet);
37
38public:
39  typedef std::vector< SP::SiconosContactor >::iterator iterator;
40
41  void append(SP::SiconosContactor b) { push_back(b); }
42  void append(std::vector<SP::SiconosContactor> b) { insert(end(), b.begin(), b.end()); }
43  void append(const SiconosContactorSet& b) { insert(end(), b.begin(), b.end()); }
44  void append(const SP::SiconosContactorSet& b) { insert(end(), b->begin(), b->end()); }
45};
46
47#endif