/** * Will return a new builder that constructs {@link CollisionPlaneRoadModel} * instances instead of {@link PlaneRoadModel} instances. * @return A new {@link CollisionPlaneRMB} instance. */ @CheckReturnValue public CollisionPlaneRMB withCollisionAvoidance() { return CollisionPlaneRMB.create(this); }
/** * Each {@link MovingRoadUser} in the {@link CollisionPlaneRoadModel} has a * fixed radius that can be set with this method. * @param radius The radius for each {@link MovingRoadUser}. * @return A new builder instance. */ public CollisionPlaneRMB withObjectRadius(double radius) { checkArgument(radius > 0); return create(getDistanceUnit(), getSpeedUnit(), getMin(), getMax(), getMaxSpeed(), radius); }
@Override public CollisionPlaneRMB withMaxSpeed(double maxSpeed) { checkMaxSpeed(maxSpeed); return create(getDistanceUnit(), getSpeedUnit(), getMin(), getMax(), maxSpeed, getObjectRadius()); }
@Override public CollisionPlaneRMB withMaxPoint(Point maxPoint) { return create(getDistanceUnit(), getSpeedUnit(), getMin(), maxPoint, getMaxSpeed(), getObjectRadius()); }
@Override public CollisionPlaneRMB withSpeedUnit(Unit<Velocity> unit) { return create(getDistanceUnit(), unit, getMin(), getMax(), getMaxSpeed(), getObjectRadius()); }
static CollisionPlaneRMB create(AbstractPlaneRMB<?, ?> planeRmb) { return create(planeRmb.getDistanceUnit(), planeRmb.getSpeedUnit(), planeRmb.getMin(), planeRmb.getMax(), planeRmb.getMaxSpeed(), DEFAULT_OBJ_RADIUS); }
@Override public CollisionPlaneRMB withMinPoint(Point minPoint) { return create(getDistanceUnit(), getSpeedUnit(), minPoint, getMax(), getMaxSpeed(), getObjectRadius()); }
@Override public CollisionPlaneRMB withDistanceUnit(Unit<Length> unit) { return create(unit, getSpeedUnit(), getMin(), getMax(), getMaxSpeed(), getObjectRadius()); }