7 const Eigen::Vector2d &point1,
const Eigen::Vector2d &point2,
8 std::vector<LineSegment> &intersect)
const {
10 for (
auto &obj : collision_object_at_time_) {
11 res = obj->rayTrace(point1, point2, intersect) || res;
17 stream <<
"Timevariant obstacle, time " << time_start_idx_ <<
"-" 18 << time_end_idx_ << std::endl;
19 for (
unsigned int i = 0; i < collision_object_at_time_.size(); i++) {
20 stream <<
" " << i + time_start_idx_ <<
":";
21 collision_object_at_time_[i]->print(stream);
33 time_end_idx_ = time_start_idx - 1;
38 if (time_idx < time_start_idx_ || time_idx > time_end_idx_)
return nullptr;
39 return collision_object_at_time_[time_idx - time_start_idx_];
44 if (time_idx < time_start_idx_ || time_idx > time_end_idx_)
return nullptr;
45 return collision_object_at_time_ptr_[time_idx - time_start_idx_];
49 return time_start_idx_;
61 collision_object_at_time_.push_back(obstacle);
62 collision_object_at_time_ptr_.push_back(obstacle.get());
63 return ++time_end_idx_;
68 std::list<CollisionObjectConstPtr>> &parent_map)
const {
69 for (
auto &tvobj : collision_object_at_time_) {
70 tvobj->addParentMap(parent_map, shared_from_this());
78 ICollisionObjectExport *exportObject(
84 return serialize::exportObject(*
this);
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.
int time_start_idx() const
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
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
int serialize(const test::BroadphaseFailureCCObj &bf_object, std::ostream &output_stream, const char *format=SERIALIZER_DEFAULT_FORMAT)
Base class for CollisionObjects and some of their groups.
virtual void print(std::ostringstream &stream) const
Print all parameters of the shape.