From 36d6137891ca16e71eae1dcc165e18c799fe2d3e Mon Sep 17 00:00:00 2001 From: rschoene <rene.schoene@tu-dresden.de> Date: Tue, 12 Apr 2022 11:26:31 +0200 Subject: [PATCH] update grammars - remove robot in placeA - connect indexed list for other logical scenes in placeB (new ragconnect feature) --- .../src/main/jastadd/WorldModelA.jadd | 8 ---- .../src/main/jastadd/WorldModelA.relast | 4 +- .../de/tudresden/inf/st/placeA/MainA.java | 12 +----- .../tudresden/inf/st/placeA/SimpleMainA.java | 20 ---------- .../de/tudresden/inf/st/placeA/UtilA.java | 3 -- .../src/main/jastadd/WorldModelB.connect | 3 +- .../src/main/jastadd/WorldModelB.jadd | 12 ------ .../src/main/jastadd/WorldModelB.relast | 3 +- .../de/tudresden/inf/st/placeB/MainB.java | 2 +- .../tudresden/inf/st/placeB/SimpleMainB.java | 4 +- .../inf/st/placeB/TestComputeOperations.java | 12 ++++-- .../inf/st/placeB/TestDifference.java | 1 - .../inf/st/placeB/TestMultiScenes.java | 40 +++++++++---------- .../de/tudresden/inf/st/placeB/TestUtils.java | 10 ++--- 14 files changed, 42 insertions(+), 92 deletions(-) diff --git a/ros3rag.placeA/src/main/jastadd/WorldModelA.jadd b/ros3rag.placeA/src/main/jastadd/WorldModelA.jadd index b9dd1ee..2f7fb2f 100644 --- a/ros3rag.placeA/src/main/jastadd/WorldModelA.jadd +++ b/ros3rag.placeA/src/main/jastadd/WorldModelA.jadd @@ -1,11 +1,3 @@ -aspect Resolving { - //--- resolveObjectOfInterest --- - inh ObjectOfInterest Robot.resolveObjectOfInterest(String name); - eq WorldModelA.getRobot().resolveObjectOfInterest(String name) { - return getScene().resolveObjectOfInterest(name); - } -} - aspect Glue { class WorldModelA implements de.tudresden.inf.st.ros3rag.common.SharedMainParts.WorldModelWrapper {} diff --git a/ros3rag.placeA/src/main/jastadd/WorldModelA.relast b/ros3rag.placeA/src/main/jastadd/WorldModelA.relast index 4089553..1e84df6 100644 --- a/ros3rag.placeA/src/main/jastadd/WorldModelA.relast +++ b/ros3rag.placeA/src/main/jastadd/WorldModelA.relast @@ -1,3 +1 @@ -WorldModelA ::= Robot [Scene] /LogicalScene/ ; - -Robot ::= <Name:String> ; +WorldModelA ::= [Scene] /LogicalScene/ ; diff --git a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/MainA.java b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/MainA.java index 157de87..195f2aa 100644 --- a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/MainA.java +++ b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/MainA.java @@ -1,11 +1,9 @@ package de.tudresden.inf.st.placeA; import de.tudresden.inf.st.placeA.ast.MqttHandler; -import de.tudresden.inf.st.placeA.ast.Robot; import de.tudresden.inf.st.placeA.ast.Scene; import de.tudresden.inf.st.placeA.ast.WorldModelA; import de.tudresden.inf.st.ros3rag.common.SharedMainParts; -import de.tudresden.inf.st.ros3rag.common.Util; import java.io.IOException; @@ -58,20 +56,14 @@ public class MainA extends SharedMainParts<MqttHandler, WorldModelA> { @Override protected de.tudresden.inf.st.ceti.Scene readSceneAndRobots() throws Exception { - /// Reading scene and robot + /// Reading scene de.tudresden.inf.st.ceti.Scene scene = readScene( UtilA.pathToDirectoryOfPlaceA().resolve(config.filenameInitialScene) ); Scene myScene = UtilA.convert(scene); model.setScene(myScene); - // if multiple robots are specified, then error message will be displayed - Util.extractRobotNames(scene).forEach(name -> { - if (model.getRobot() != null) { - logger.error("Robot already set. Overriding with newly found name."); - } - model.setRobot(new Robot().setName(name)); - }); + // no robots to be set return scene; } diff --git a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/SimpleMainA.java b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/SimpleMainA.java index de2074c..7af8409 100644 --- a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/SimpleMainA.java +++ b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/SimpleMainA.java @@ -1,13 +1,11 @@ package de.tudresden.inf.st.placeA; -import de.tudresden.inf.st.ceti.Object; import de.tudresden.inf.st.placeA.ast.*; import org.apache.commons.math3.geometry.euclidean.threed.Rotation; import org.apache.commons.math3.geometry.euclidean.threed.Vector3D; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.nio.file.Paths; import java.util.Scanner; import java.util.concurrent.TimeUnit; @@ -37,19 +35,6 @@ public class SimpleMainA { var model = new WorldModelA(); model.setScene(myScene); - // find robot (should be only one) - for (var obj : scene.getObjectsList()) { - if (obj.getType().equals(Object.Type.ARM)) { - if (model.getRobot() != null) { - logger.error("Found multiple robots in scene for place A!"); - } - model.setRobot(new Robot().setName(obj.getId())); - } - } - if (model.getRobot() == null) { - logger.error("Found no robots in scene for place A!"); - } - // send initial scene once // MqttHandler publisher = new MqttHandler().dontSendWelcomeMessage().setHost("localhost"); // publisher.publish("scene/init", scene.toByteArray()); @@ -66,11 +51,6 @@ public class SimpleMainA { private static void testBuildModelA() { WorldModelA model = new WorldModelA(); - // robot - Robot robot = new Robot(); - robot.setName("panda1"); - model.setRobot(robot); - // scene var scene = new Scene(); model.setScene(scene); diff --git a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/UtilA.java b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/UtilA.java index fafa021..405f67a 100644 --- a/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/UtilA.java +++ b/ros3rag.placeA/src/main/java/de/tudresden/inf/st/placeA/UtilA.java @@ -44,9 +44,6 @@ public class UtilA { public static String getModelInfos(WorldModelA model, boolean detailed) { StringBuilder sb = new StringBuilder(); - sb.append("myRobot: ") - .append(model.getRobot().getName()) - .append("\n"); if (detailed) { // also include "normal" scene sb.append("myScene:"); diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.connect b/ros3rag.placeB/src/main/jastadd/WorldModelB.connect index d2a9fab..9e3097a 100644 --- a/ros3rag.placeB/src/main/jastadd/WorldModelB.connect +++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.connect @@ -1,7 +1,6 @@ // --- receiving --- receive WorldModelB.MyScene using ParseScene, ConvertScene ; -receive WorldModelB.OtherScene1 ; -receive WorldModelB.OtherScene2 ; +receive indexed WorldModelB.OtherScene ; receive WorldModelB.TestingOtherScene ; receive Robot.CanReachObjectOfInterestWrapper using ParseReachability, ConvertReachability ; diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd index 119cccc..518e868 100644 --- a/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd +++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.jadd @@ -2,18 +2,6 @@ aspect Computation { //--- unspecifiedLocation --- syn nta LogicalDropOffLocation WorldModelB.unspecifiedLocation() = new LogicalDropOffLocation().setName("<unspecified>"); - //--- getOtherSceneList --- - syn JastAddList<LogicalScene> WorldModelB.getOtherSceneList() { - JastAddList<LogicalScene> result = new JastAddList<>(); - if (hasOtherScene1()) { - result.add(getOtherScene1()); - } - if (hasOtherScene2()) { - result.add(getOtherScene2()); - } - return result; - } - //--- mergedOtherScene --- syn nta LogicalScene WorldModelB.mergedOtherScene() { // return empty scene, if there are no other scenes (yet) diff --git a/ros3rag.placeB/src/main/jastadd/WorldModelB.relast b/ros3rag.placeB/src/main/jastadd/WorldModelB.relast index f2bc360..8925831 100644 --- a/ros3rag.placeB/src/main/jastadd/WorldModelB.relast +++ b/ros3rag.placeB/src/main/jastadd/WorldModelB.relast @@ -1,5 +1,4 @@ -WorldModelB ::= Robot* [MyScene:Scene] [OtherScene1:LogicalScene] [OtherScene2:LogicalScene] /OtherScene:LogicalScene*/ /NextOperation:Operation/ TestingOtherScene:LogicalScene* ; -// workaround with NTA OtherSceneList as receiving lists is not possible yet +WorldModelB ::= Robot* [MyScene:Scene] OtherScene:LogicalScene* /NextOperation:Operation/ TestingOtherScene:LogicalScene* ; Robot ::= <Name:String> CanReachObjectOfInterestWrapper ; diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java index 0c193b3..930b048 100644 --- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java +++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/MainB.java @@ -82,7 +82,7 @@ public class MainB extends SharedMainParts<MqttHandler, WorldModelB> { @Override protected void connectEndpoints() throws IOException { model.connectMyScene(mqttUri(TOPIC_MY_SCENE_UPDATE_FROM_ROS, config)); - model.connectOtherScene1(mqttUri(TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A, config)); + model.connectOtherScene(mqttUri(TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A, config)); model.connectNextOperation(mqttUri(TOPIC_COMMAND, config), false); } diff --git a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java index b8023e7..cdf0af6 100644 --- a/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java +++ b/ros3rag.placeB/src/main/java/de/tudresden/inf/st/placeB/SimpleMainB.java @@ -188,7 +188,7 @@ public class SimpleMainB { /// Connect endpoints model.connectMyScene(mqttUri("TOPIC_MY_SCENE_UPDATE_FROM_ROS", config)); - model.connectOtherScene1(mqttUri("TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A", config)); + model.connectOtherScene(mqttUri("TOPIC_OTHER_SCENE_UPDATE_FROM_PLACE_A", config)); model.connectNextOperation(mqttUri("TOPIC_COMMANDS", config), false); System.out.println("before"); @@ -264,7 +264,7 @@ public class SimpleMainB { LogicalDropOffLocation otherGamma = new LogicalDropOffLocation().setName("placeGamma"); otherGamma.addContainedObject(otherObj1); otherScene.addLogicalDropOffLocation(otherGamma); - model.setOtherScene1(otherScene); + model.addOtherScene(otherScene); // printing and testing printModelInfos(model); diff --git a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestComputeOperations.java b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestComputeOperations.java index fe53722..8912c01 100644 --- a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestComputeOperations.java +++ b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestComputeOperations.java @@ -60,9 +60,11 @@ public class TestComputeOperations { LogicalDropOffLocation red = logicalScene.resolveLogicalObjectOfInterest("red").asLogicalDropOffLocation(); LogicalDropOffLocation blue = logicalScene.resolveLogicalObjectOfInterest("blue").asLogicalDropOffLocation(); Robot arm1 = model.findRobot("arm1").orElseThrow(); - DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, blue); + // object "x" shall be place at red or blue + DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, blue); List<Operation> operations = diff.computeOperations(); + assertThat(operations).isNotEmpty(); assertThat(operations).hasSize(1); Operation op = operations.get(0); @@ -90,9 +92,11 @@ public class TestComputeOperations { LogicalDropOffLocation green = logicalScene.resolveLogicalObjectOfInterest("green").asLogicalDropOffLocation(); Robot arm1 = model.findRobot("arm1").orElseThrow(); Robot arm2 = model.findRobot("arm2").orElseThrow(); - DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, green); + // object "x" shall be place at red or green + DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, green); List<Operation> operations = diff.computeOperations(); + assertThat(operations).isNotEmpty(); assertThat(operations).hasSize(2); Operation op1 = operations.get(0); @@ -137,9 +141,11 @@ public class TestComputeOperations { Robot arm2 = model.findRobot("arm2").orElseThrow(); Robot arm4 = model.findRobot("arm4").orElseThrow(); Robot arm5 = model.findRobot("arm5").orElseThrow(); - DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, purple); + // object "x" shall be place at red or purple + DifferenceObjectAtWrongPlace diff = createDifferenceObjectAtWrongPlace(x, emptyPreviousLocation ? null : red, purple); List<Operation> operations = diff.computeOperations(); + assertThat(operations).isNotEmpty(); assertThat(operations).hasSize(3); diff --git a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestDifference.java b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestDifference.java index fb2ffaa..3ab25fd 100644 --- a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestDifference.java +++ b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestDifference.java @@ -181,7 +181,6 @@ public class TestDifference { assertNotNull(diffs); assertEquals(2, diffs.getNumChild()); assertThat(diffs).allMatch(d -> d instanceof DifferenceObjectAtWrongPlace); - //noinspection unchecked assertThat(diffs).map(diff -> (DifferenceObjectAtWrongPlace) diff) .extracting(d -> d.getObject().getName(), d -> d.getPreviousLocation().getName(), d -> d.getNewLocation().getName()) .containsOnly(tuple("x", "blue", "red"), diff --git a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestMultiScenes.java b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestMultiScenes.java index dc1080a..b7e16fa 100644 --- a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestMultiScenes.java +++ b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestMultiScenes.java @@ -34,8 +34,8 @@ public class TestMultiScenes { @ValueSource(booleans = {true, false}) public void oneSceneNoContains(boolean scene1) { WorldModelB model = newModel(); - TestUtils.addOtherLocations(scene1 ? model.getOtherScene1() : model.getOtherScene2(), "red"); - TestUtils.addOtherObjects(scene1 ? model.getOtherScene1() : model.getOtherScene2(), "a"); + TestUtils.addOtherLocations(model.getOtherScene(scene1 ? 0 : 1), "red"); + TestUtils.addOtherObjects(model.getOtherScene(scene1 ? 0 : 1), "a"); LogicalScene actual = model.mergedOtherScene(); @@ -50,16 +50,16 @@ public class TestMultiScenes { WorldModelB model = newModel(); TestUtils.addOtherLocations(model, "red"); TestUtils.addOtherObjects(model, "a"); - TestUtils.addOtherLocations(model.getOtherScene2(), "blue"); - TestUtils.addOtherObjects(model.getOtherScene2(), "b"); + TestUtils.addOtherLocations(model.getOtherScene(1), "blue"); + TestUtils.addOtherObjects(model.getOtherScene(1), "b"); LogicalScene actual = model.mergedOtherScene(); assertThat(actual.getLogicalDropOffLocationList()) .size().isEqualTo(2); assertThat(actual.getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene2().getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(1).getLogicalDropOffLocationList()) .extracting("Name").containsOnly("red", "blue"); assertThat(actual.getLogicalDropOffLocationList()) .extracting("ContainedObjects").containsOnly(Collections.emptyList()); @@ -67,8 +67,8 @@ public class TestMultiScenes { assertThat(actual.getLogicalMovableObjectList()) .size().isEqualTo(2); assertThat(actual.getLogicalMovableObjectList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalMovableObjectList()) - .doesNotContainAnyElementsOf(model.getOtherScene2().getLogicalMovableObjectList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalMovableObjectList()) + .doesNotContainAnyElementsOf(model.getOtherScene(1).getLogicalMovableObjectList()) .extracting("Name").containsOnly("a", "b"); assertThat(actual.getLogicalMovableObjectList()) .extracting("LocatedAt").containsOnly((LogicalDropOffLocation) null); @@ -80,9 +80,9 @@ public class TestMultiScenes { WorldModelB model = newModel(); TestUtils.addOtherLocations(model, "red", "blue"); TestUtils.addOtherObjects(model, "a", "b"); - model.getOtherScene2().addLogicalDropOffLocation(new LogicalDropOffLocation().setName("red")); - model.getOtherScene2().addLogicalMovableObject(new LogicalMovableObject().setName("a")); - TestUtils.addContainedObjects(scene1 ? model.getOtherScene1() : model.getOtherScene2(), + model.getOtherScene(1).addLogicalDropOffLocation(new LogicalDropOffLocation().setName("red")); + model.getOtherScene(1).addLogicalMovableObject(new LogicalMovableObject().setName("a")); + TestUtils.addContainedObjects(model.getOtherScene(scene1 ? 0 : 1), "red", "a"); LogicalScene actual = model.mergedOtherScene(); @@ -90,8 +90,8 @@ public class TestMultiScenes { assertThat(actual.getLogicalDropOffLocationList()) .size().isEqualTo(2); assertThat(actual.getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene2().getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(1).getLogicalDropOffLocationList()) .extracting("Name").containsExactly("red", "blue"); LogicalDropOffLocation red = actual.resolveLogicalObjectOfInterest("red").asLogicalDropOffLocation(); assertThat(red.getContainedObjectList()) @@ -100,7 +100,7 @@ public class TestMultiScenes { assertThat(actual.getLogicalMovableObjectList()) .size().isEqualTo(2); assertThat(actual.getLogicalMovableObjectList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalMovableObjectList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalMovableObjectList()) .extracting("Name").containsOnly("a", "b"); LogicalMovableObject a = actual.resolveLogicalObjectOfInterest("a").asLogicalMovableObject(); assertThat(a.getLocatedAt()) @@ -114,17 +114,17 @@ public class TestMultiScenes { TestUtils.addOtherObjects(model, "a", "b"); TestUtils.addContainedObjects(model, "red", "a"); - TestUtils.addOtherLocations(model.getOtherScene2(), "red"); - TestUtils.addOtherObjects(model.getOtherScene2(), "a", "b"); - TestUtils.addContainedObjects(model.getOtherScene2(), "red", "a"); + TestUtils.addOtherLocations(model.getOtherScene(1), "red"); + TestUtils.addOtherObjects(model.getOtherScene(1), "a", "b"); + TestUtils.addContainedObjects(model.getOtherScene(1), "red", "a"); LogicalScene actual = model.mergedOtherScene(); assertThat(actual.getLogicalDropOffLocationList()) .size().isEqualTo(2); assertThat(actual.getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalDropOffLocationList()) - .doesNotContainAnyElementsOf(model.getOtherScene2().getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalDropOffLocationList()) + .doesNotContainAnyElementsOf(model.getOtherScene(1).getLogicalDropOffLocationList()) .extracting("Name").containsExactly("red", "blue"); LogicalDropOffLocation red = actual.resolveLogicalObjectOfInterest("red").asLogicalDropOffLocation(); assertThat(red.getContainedObjectList()) @@ -133,7 +133,7 @@ public class TestMultiScenes { assertThat(actual.getLogicalMovableObjectList()) .size().isEqualTo(2); assertThat(actual.getLogicalMovableObjectList()) - .doesNotContainAnyElementsOf(model.getOtherScene1().getLogicalMovableObjectList()) + .doesNotContainAnyElementsOf(model.getOtherScene(0).getLogicalMovableObjectList()) .extracting("Name").containsOnly("a", "b"); LogicalMovableObject a = actual.resolveLogicalObjectOfInterest("a").asLogicalMovableObject(); assertThat(a.getLocatedAt()) diff --git a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestUtils.java b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestUtils.java index 6e5f8fe..eea3aa3 100644 --- a/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestUtils.java +++ b/ros3rag.placeB/src/test/java/de/tudresden/inf/st/placeB/TestUtils.java @@ -12,8 +12,8 @@ public class TestUtils { WorldModelB model = new WorldModelB(); Scene scene = new Scene(); model.setMyScene(scene); - model.setOtherScene1(new LogicalScene()); - model.setOtherScene2(new LogicalScene()); + model.addOtherScene(new LogicalScene()); + model.addOtherScene(new LogicalScene()); return model; } @@ -70,7 +70,7 @@ public class TestUtils { } public static void addOtherObjects(WorldModelB model, String... names) { - addOtherObjects(model.getOtherScene1(), names); + addOtherObjects(model.getOtherScene(0), names); } public static void addOtherObjects(LogicalScene scene, String... names) { @@ -80,7 +80,7 @@ public class TestUtils { } public static void addOtherLocations(WorldModelB model, String... names) { - addOtherLocations(model.getOtherScene1(), names); + addOtherLocations(model.getOtherScene(0), names); } public static void addOtherLocations(LogicalScene scene, String... names) { @@ -90,7 +90,7 @@ public class TestUtils { } public static void addContainedObjects(WorldModelB model, String locationName, String... objectNames) { - addContainedObjects(model.getOtherScene1(), locationName, objectNames); + addContainedObjects(model.getOtherScene(0), locationName, objectNames); } public static void addContainedObjects(LogicalScene scene, String locationName, String... objectNames) { -- GitLab