public final ActivityFacilityImpl createAndAddFacility(final Id<ActivityFacility> id, final Coord center) { return createAndAddFacility(id, center, null); }
public static ActivityFacilities createHexagonLayer(double minX, double minY, double maxX, double maxY, int maxDiameter_m) { LOG.info("Start creating measure points on a hexagon pattern."); double inRadius_m = Math.sqrt(3) / 4 * maxDiameter_m; int skippedPoints = 0; int setPoints = 0; ActivityFacilitiesImpl measuringPoints = (ActivityFacilitiesImpl) FacilitiesUtils.createActivityFacilities("accessibility measuring points"); int columnNumber = 1; for (double x = minX; x < (maxX - 1./2 * maxDiameter_m); x += (3./4 * maxDiameter_m)) { for (double y = minY; y <= maxY; y += (2 * inRadius_m)) { double centerX = x; double centerY; if (columnNumber % 2 != 0) { centerY = y; } else { centerY = y + inRadius_m; } if (centerX <= maxX && centerX >= minX && centerY <= maxY && centerY >= minY) { Coord center = new Coord(centerX, centerY); measuringPoints.createAndAddFacility(Id.create(setPoints, ActivityFacility.class), center); setPoints++; } else skippedPoints++; } columnNumber++; } LOG.info("Created " + setPoints + " inside the boundary. " + skippedPoints + " lie outside."); LOG.info("Finished creating measure points on a hexagon pattern."); return measuringPoints; }
measuringPoints.createAndAddFacility(Id.create(setPoints, ActivityFacility.class), center); setPoints++;
measuringPoints.createAndAddFacility(Id.create( setPoints , ActivityFacility.class), center); setPoints++;
public void testRunAlgorithms() { final ActivityFacilitiesImpl facilities = new ActivityFacilitiesImpl(); // create 2 facilities facilities.createAndAddFacility(Id.create(1, ActivityFacility.class), new Coord(1.0, 1.0)); facilities.createAndAddFacility(Id.create(2, ActivityFacility.class), new Coord(2.0, 2.0)); // create an algo and let it run over the facilities MockAlgo1 algo1 = new MockAlgo1(); algo1.run(facilities); assertEquals("TestAlgo should have handled 2 facilities.", 2, algo1.getCounter()); }