3 #ifndef SE2EZ_CORE_COLLISION_ 4 #define SE2EZ_CORE_COLLISION_
A shared pointer wrapper for se2ez::State.
virtual bool collide(StatePtr &state)=0
Check if a state is in collision.
Eigen::Vector2d normal
Normal vector to collision.
An abstract class that all collision managers must implement.
An allowed collision map / matrix for the robot. Stores what frames are allowed to collide with each ...
A class that contains all information about the signed distance of a frame to another.
virtual ACMPtr getACM()
Gets the current ACM.
CollisionManager()
Constructor.
std::string collider
Frame this frame is closest to collision with.
#define SE2EZ_EIGEN_CLASS
A shared pointer wrapper for se2ez::ACM.
std::set< std::pair< std::string, std::string > > disabled_
Set of all disabled frame pairs.
std::string frame
Frame closet to collision.
Eigen::Vector2d point
Point on fixture where normal begins.
ACMPtr acm_
ACM for collision manager.
virtual void setACM(const ACMPtr &acm)
Sets a new ACM to use.
void flip()
Flips the direction of the normal and swaps the endpoint.
virtual void compile()=0
Compiles internal data structures for collision checking. Needs to be called if the robot is updated...
SE2EZ_EIGEN_CLASS double distance
Distance to collision.
#define SE2EZ_CLASS_FORWARD(C)