1 #ifndef COLLISION_OBJECT_H_ 2 #define COLLISION_OBJECT_H_ 8 #include <unordered_map> 20 #include <Eigen/Dense> 33 class TimeVariantCollisionObject;
34 class CollisionObject;
55 int serialize(std::ostream &output_stream)
const;
56 static CollisionObjectConstPtr
deserialize(std::istream &output_stream);
71 virtual void print(std::ostringstream &stream)
const {
return; }
73 virtual void toString(std::ostringstream &stream)
const {
print(stream); }
75 virtual bool BVCheck(CollisionObjectConstPtr obj2)
const = 0;
77 virtual std::shared_ptr<const collision::RectangleAABB>
getAABB()
const = 0;
81 std::list<CollisionObjectConstPtr>> &parent_map)
const;
84 std::list<CollisionObjectConstPtr>> &parent_map,
85 CollisionObjectConstPtr parent)
const;
87 virtual CollisionObjectConstPtr
timeSlice(
88 int time_idx, CollisionObjectConstPtr shared_ptr_this)
const = 0;
90 virtual bool rayTrace(
const Eigen::Vector2d &point1,
91 const Eigen::Vector2d &point2,
92 std::vector<LineSegment> &intersect)
const {
std::shared_ptr< RectangleOBB > RectangleOBBPtr
std::shared_ptr< const Shape > ShapeConstPtr
virtual ~CollisionObject()
virtual CollisionObjectClass getCollisionObjectClass() const
virtual bool rayTrace(const Eigen::Vector2d &point1, const Eigen::Vector2d &point2, std::vector< LineSegment > &intersect) const
std::shared_ptr< const RectangleAABB > RectangleAABBConstPtr
virtual void addParentMap(std::unordered_map< const CollisionObject *, std::list< CollisionObjectConstPtr >> &parent_map) const
virtual CollisionObjectConstPtr timeSlice(int time_idx, CollisionObjectConstPtr shared_ptr_this) const =0
std::shared_ptr< const RectangleOBB > RectangleOBBConstPtr
virtual bool collide(const CollisionObject &c, const collision::CollisionRequest &req=CollisionRequest()) const =0
std::shared_ptr< const CollisionObject > CollisionObjectConstPtr
std::shared_ptr< RectangleAABB > RectangleAABBPtr
int deserialize(test::BroadphaseFailureCCObj &bf_object, std::istream &input_stream, const char *format=SERIALIZER_DEFAULT_FORMAT)
Universal structure specifying collision request properties.
virtual CollisionObjectType getCollisionObjectType() const
virtual void print(std::ostringstream &stream) const
std::shared_ptr< CollisionObject > CollisionObjectPtr
int serialize(const test::BroadphaseFailureCCObj &bf_object, std::ostream &output_stream, const char *format=SERIALIZER_DEFAULT_FORMAT)
virtual void toString(std::ostringstream &stream) const
virtual std::shared_ptr< const collision::RectangleAABB > getAABB() const =0
std::shared_ptr< Shape > ShapePtr
Base class for CollisionObjects and some of their groups.
virtual bool BVCheck(CollisionObjectConstPtr obj2) const =0