/** * 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); }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof RoadModelBuilders.CollisionPlaneRMB) { RoadModelBuilders.CollisionPlaneRMB that = (RoadModelBuilders.CollisionPlaneRMB) o; return (this.distanceUnit.equals(that.getDistanceUnit())) && (this.speedUnit.equals(that.getSpeedUnit())) && (this.min.equals(that.getMin())) && (this.max.equals(that.getMax())) && (Double.doubleToLongBits(this.maxSpeed) == Double.doubleToLongBits(that.getMaxSpeed())) && (Double.doubleToLongBits(this.objectRadius) == Double.doubleToLongBits(that.getObjectRadius())); } return false; }
RoadModelBuilders.plane() .withCollisionAvoidance() .withObjectRadius(300) .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(6000, 6000)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(1000)) .build(); model = sim.getModelProvider().getModel(CollisionPlaneRoadModel.class);
RoadModelBuilders.plane() .withCollisionAvoidance() .withObjectRadius(UAV_RADIUS) .withMinPoint(MIN_POINT) .withMaxPoint(MAX_POINT) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(MAX_SPEED)) .addModel(viewBuilder) .build();
.addModel(RoadModelBuilders.plane() .withCollisionAvoidance() .withObjectRadius(1000) .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(6000, 6000)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(1000d)) .addModel(TimeModel.builder().withTickLength(500)) .build();
RoadModelBuilders.plane() .withCollisionAvoidance() .withObjectRadius(UAV_RADIUS) .withMinPoint(MIN_POINT) .withMaxPoint(MAX_POINT) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(MAX_SPEED)) .addModel(viewBuilder) .build();
@Before public void setUp() { model = RoadModelBuilders.plane() .withCollisionAvoidance() .withMinPoint(new Point(0, 0)) .withMaxPoint(new Point(100, 100)) .withDistanceUnit(SI.METER) .withSpeedUnit(SI.METERS_PER_SECOND) .withMaxSpeed(1) .withObjectRadius(.5d) .build(FakeDependencyProvider.builder() .add(TimeModel.builder() .withTickLength(tickLength)) .build()); }
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()); }
/** * 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 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()); }
@Override public CollisionPlaneRMB withMaxSpeed(double maxSpeed) { checkMaxSpeed(maxSpeed); return create(getDistanceUnit(), getSpeedUnit(), getMin(), getMax(), maxSpeed, getObjectRadius()); }
@Override public CollisionPlaneRMB withDistanceUnit(Unit<Length> unit) { return create(unit, getSpeedUnit(), getMin(), getMax(), getMaxSpeed(), getObjectRadius()); }