libstp
Robotics library for Botball
Loading...
Searching...
No Matches
Collision.hpp
Go to the documentation of this file.
1#pragma once
2
6
7#include <optional>
8#include <vector>
9
11{
15 std::vector<MapSegment> buildCollisionWalls(const WorldMap& map);
16
20 std::vector<MapSegment> buildCollisionWalls(const WorldMap& map, std::size_t layerIdx);
21
23 {
27 float depth{0.0f};
28 };
29
33 std::optional<CollisionInfo> findCollision(
34 const Pose2D& pose,
35 const Vec2& moveVec,
36 const RobotConfig& robot,
37 const std::vector<MapSegment>& walls);
38
42 const Pose2D& pose,
44 const RobotConfig& robot);
45
49 std::vector<Pose2D> simulateSegment(
50 const Pose2D& start,
51 const Pose2D& target,
52 const RobotConfig& robot,
53 const std::vector<MapSegment>& walls);
54
58 const Pose2D& pose,
59 const RobotConfig& robot,
60 const std::vector<MapSegment>& walls);
61
67 float originX,
68 float originY,
69 float angleRad,
70 float maxDistanceCm,
71 const std::vector<MapSegment>& walls);
72}
Pose2D resolveAgainstWall(const Pose2D &pose, const CollisionInfo &collision, const RobotConfig &robot)
std::vector< MapSegment > buildCollisionWalls(const WorldMap &map)
std::vector< Pose2D > simulateSegment(const Pose2D &start, const Pose2D &target, const RobotConfig &robot, const std::vector< MapSegment > &walls)
bool checkRobotCollision(const Pose2D &pose, const RobotConfig &robot, const std::vector< MapSegment > &walls)
float raycastDistanceCm(float originX, float originY, float angleRad, float maxDistanceCm, const std::vector< MapSegment > &walls)
std::optional< CollisionInfo > findCollision(const Pose2D &pose, const Vec2 &moveVec, const RobotConfig &robot, const std::vector< MapSegment > &walls)
libstp::map::WorldMap WorldMap
Definition WorldMap.hpp:12
libstp::map::MapSegment MapSegment
Definition WorldMap.hpp:13