44 #ifndef FRAMEFAB_TASK_SEQUENCE_PLANNER_QUADCOLLISION_H 45 #define FRAMEFAB_TASK_SEQUENCE_PLANNER_QUADCOLLISION_H 61 #define STRICT_COLLISION 64 typedef unsigned long long lld;
80 void Init(vector <lld> &colli_map);
81 bool DetectCollision(
WF_edge* target_e,
DualGraph* ptr_subgraph, std::vector<lld>& result_map);
82 bool DetectCollision(
WF_edge* target_e,
WF_edge* order_e, std::vector<lld>& colli_map);
83 void DetectCollision(
WF_edge* target_e, std::vector<WF_edge*> exist_edge, std::vector<GeoV3>& output);
86 void ModifyAngle(std::vector<lld>& angle_state,
const std::vector<lld>& colli_map);
88 int ColFreeAngle(
const std::vector<lld>& colli_map);
90 std::vector<Eigen::Vector3d> ConvertCollisionMapToEigenDirections(
const std::vector<lld>& colli_map);
91 std::vector<int> ConvertCollisionMapToIntMap(
const std::vector<lld>& colli_map);
102 return GeoV3(sin(theta) * cos(phi), sin(theta) * sin(phi), cos(theta));
107 return Eigen::Vector3d(sin(theta) * cos(phi), sin(theta) * sin(phi), cos(theta));
111 bool DetectBulk(
WF_edge *order_e,
double theta,
double phi);
112 bool DetectEdge(
WF_edge *order_e, vector <lld> &colli_map);
113 bool DetectEdges(std::vector<WF_edge*> exist_edge,
double theta,
double phi);
116 bool Case(
GeoV3 target_start,
GeoV3 target_end,
119 bool ParallelCase(
GeoV3 target_start,
GeoV3 target_end,
131 double Distance(
WF_edge *order_e);
Eigen::Vector3d ConvertAngleToEigenDirection(double theta, double phi)
GeoV3 Orientation(double theta, double phi)
std::vector< Triangle > bulk_
GLboolean GLboolean GLboolean GLboolean a
std::vector< std::vector< lld > * > colli_map_
GLboolean GLboolean GLboolean b