Collision Checker
time_variant_collision_object.h
Go to the documentation of this file.
1 #ifndef TIME_VARIANT_COLLISION_OBJECT_H_
2 #define TIME_VARIANT_COLLISION_OBJECT_H_
3 
4 #include <iostream>
5 #include <memory>
6 #include <sstream>
7 #include <vector>
8 
11 #include "collision/shape_group.h"
12 
13 namespace collision {
14 
16 typedef std::shared_ptr<TimeVariantCollisionObject>
18 typedef std::shared_ptr<const TimeVariantCollisionObject>
20 } // namespace collision
21 
22 namespace collision {
23 
31  public:
34  CollisionObjectConstPtr getObstacleAtTime(int time_idx) const;
35  const CollisionObject *getObstacleAtTimePtr(int time_idx) const;
37  {
38  return *(collision_object_at_time_ptr_.begin());
39  };
40 
43  int time_idx, CollisionObjectConstPtr shared_ptr_this) const;
44 
45  int time_start_idx() const;
46  int time_end_idx() const;
47 
48  bool rayTrace(const Eigen::Vector2d &point1, const Eigen::Vector2d &point2,
49  std::vector<LineSegment> &intersect) const;
50 
52  virtual void print(std::ostringstream &stream) const;
53 
54  virtual void addParentMap(
55  std::unordered_map<const CollisionObject *,
56  std::list<CollisionObjectConstPtr>> &parent_map) const;
57 
60  }
63  }
64 
65 #if ENABLE_SERIALIZER
66  serialize::ICollisionObjectExport *exportThis(void) const;
67 #endif
68 
69  private:
70  int time_start_idx_;
71  int time_end_idx_;
72  std::vector<CollisionObjectConstPtr> collision_object_at_time_;
73  std::vector<const CollisionObject *> collision_object_at_time_ptr_;
74 };
75 
76 typedef std::shared_ptr<TimeVariantCollisionObject>
78 typedef std::shared_ptr<const TimeVariantCollisionObject>
80 
81 } // namespace collision
82 
83 #endif
TimeVariantCollisionObject can contain a different CollisionObject or ShapeGroup at each time step...
const CollisionObject * getObstacleAtTimePtr(int time_idx) const
TimeVariantCollisionObject(int time_start_idx)
Creates a new TimeVariantCollisionObject.
std::shared_ptr< const TimeVariantCollisionObject > TimeVariantCollisionObjectConstPtr
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
const CollisionObject * getFirstObstaclePtr() const
bool rayTrace(const Eigen::Vector2d &point1, const Eigen::Vector2d &point2, std::vector< LineSegment > &intersect) const
virtual void addParentMap(std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map) const
int appendObstacle(CollisionObjectConstPtr obstacle)
virtual CollisionObjectConstPtr timeSlice(int time_idx, CollisionObjectConstPtr shared_ptr_this) const
CollisionObjectConstPtr getObstacleAtTime(int time_idx) const
CollisionObjectClass getCollisionObjectClass() const
Base class for CollisionObjects and some of their groups.
virtual CollisionObjectType getCollisionObjectType() const
virtual void print(std::ostringstream &stream) const
Print all parameters of the shape.
Provides functionality to use different collision solvers.
std::shared_ptr< TimeVariantCollisionObject > TimeVariantCollisionObjectPtr