[Group-Model] Simplify and refactor Group model
- In the method
isCentroidWithinObstacle
inCentroidGroup
:(members.size() - lostMembers.size() <= 2)
-> Check the condition for plausibility and simplify where possible:
- In the method
getAdjustedSpeed
inCentroidGroupSpeedAdjuster
:
if (group.isLostMember(ped)) {
group.reevaluateLostMember(ped); // create sub-group: exclude pedestrians that are too far apart
// wait behaviour
if (ped instanceof PedestrianOSM) {
if ( ((PedestrianOSM) ped).getRelevantPedestrians().size()
< groupCollection.getAttributesCGM().getWaitBehaviourRelevantAgentsFactor()) {
group.wakeFromLostMember(ped);
// check distance for sub-group only
if (group.isGroupTarget(ped.getNextTargetId()) &&
group.getRelativeDistanceCentroid(ped, false, true) > 7) {
result = Double.MIN_VALUE;
}
group.setLostMember(ped); //TODO: [priority=low] [task=refactoring] do not set lost members in the speed adjuster
}
}
}
Simplify the creation of the sub-group