Update RVO2 to git 2022.09

This commit is contained in:
DeeJayLSP
2023-06-10 19:56:21 -03:00
parent 72b59325cf
commit c920881105
33 changed files with 4877 additions and 4093 deletions

View File

@ -37,10 +37,12 @@ if env["builtin_recastnavigation"]:
if env["builtin_rvo2_2d"]:
thirdparty_dir = "#thirdparty/rvo2/rvo2_2d/"
thirdparty_sources = [
"Agent2d.cpp",
"Obstacle2d.cpp",
"KdTree2d.cpp",
"RVOSimulator2d.cpp",
"Agent2d.cc",
"Obstacle2d.cc",
"KdTree2d.cc",
"Line.cc",
"RVOSimulator2d.cc",
"Vector2.cc",
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
@ -54,9 +56,11 @@ if env["builtin_rvo2_2d"]:
if env["builtin_rvo2_3d"]:
thirdparty_dir = "#thirdparty/rvo2/rvo2_3d/"
thirdparty_sources = [
"Agent3d.cpp",
"KdTree3d.cpp",
"RVOSimulator3d.cpp",
"Agent3d.cc",
"KdTree3d.cc",
"Plane.cc",
"RVOSimulator3d.cc",
"Vector3.cc",
]
thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]

View File

@ -1017,16 +1017,16 @@ void NavMap::_update_rvo_obstacles_tree_2d() {
rvo_2d_obstacle->avoidance_layers_ = _obstacle_avoidance_layers;
if (i != 0) {
rvo_2d_obstacle->prevObstacle_ = raw_obstacles.back();
rvo_2d_obstacle->prevObstacle_->nextObstacle_ = rvo_2d_obstacle;
rvo_2d_obstacle->previous_ = raw_obstacles.back();
rvo_2d_obstacle->previous_->next_ = rvo_2d_obstacle;
}
if (i == rvo_2d_vertices.size() - 1) {
rvo_2d_obstacle->nextObstacle_ = raw_obstacles[obstacleNo];
rvo_2d_obstacle->nextObstacle_->prevObstacle_ = rvo_2d_obstacle;
rvo_2d_obstacle->next_ = raw_obstacles[obstacleNo];
rvo_2d_obstacle->next_->previous_ = rvo_2d_obstacle;
}
rvo_2d_obstacle->unitDir_ = normalize(rvo_2d_vertices[(i == rvo_2d_vertices.size() - 1 ? 0 : i + 1)] - rvo_2d_vertices[i]);
rvo_2d_obstacle->direction_ = normalize(rvo_2d_vertices[(i == rvo_2d_vertices.size() - 1 ? 0 : i + 1)] - rvo_2d_vertices[i]);
if (rvo_2d_vertices.size() == 2) {
rvo_2d_obstacle->isConvex_ = true;
@ -1074,9 +1074,9 @@ void NavMap::_update_rvo_simulation() {
}
void NavMap::compute_single_avoidance_step_2d(uint32_t index, NavAgent **agent) {
(*(agent + index))->get_rvo_agent_2d()->computeNeighbors(&rvo_simulation_2d);
(*(agent + index))->get_rvo_agent_2d()->computeNewVelocity(&rvo_simulation_2d);
(*(agent + index))->get_rvo_agent_2d()->update(&rvo_simulation_2d);
(*(agent + index))->get_rvo_agent_2d()->computeNeighbors(rvo_simulation_2d.kdTree_);
(*(agent + index))->get_rvo_agent_2d()->computeNewVelocity(rvo_simulation_2d.timeStep_);
(*(agent + index))->get_rvo_agent_2d()->update(rvo_simulation_2d.timeStep_);
(*(agent + index))->update();
}
@ -1099,9 +1099,9 @@ void NavMap::step(real_t p_deltatime) {
WorkerThreadPool::get_singleton()->wait_for_group_task_completion(group_task);
} else {
for (NavAgent *agent : active_2d_avoidance_agents) {
agent->get_rvo_agent_2d()->computeNeighbors(&rvo_simulation_2d);
agent->get_rvo_agent_2d()->computeNewVelocity(&rvo_simulation_2d);
agent->get_rvo_agent_2d()->update(&rvo_simulation_2d);
agent->get_rvo_agent_2d()->computeNeighbors(rvo_simulation_2d.kdTree_);
agent->get_rvo_agent_2d()->computeNewVelocity(rvo_simulation_2d.timeStep_);
agent->get_rvo_agent_2d()->update(rvo_simulation_2d.timeStep_);
agent->update();
}
}