# HG changeset patch # User sugi # Date 1402922743 -32400 # Node ID e29cf08ad1f30a4086fab0235dcd5a69df0ed572 # Parent 4515fe620e3a73061e8cfbf61f142f93d57a5d77 add CalculatePosition CodeSegment diff -r 4515fe620e3a -r e29cf08ad1f3 src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java --- a/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java Mon Jun 16 21:44:25 2014 +0900 +++ b/src/main/java/alice/test/topology/aquarium/fx/CheckMyName.java Mon Jun 16 21:45:43 2014 +0900 @@ -26,8 +26,10 @@ // use view scope int num = new Integer(matcher.group(2)); // scope: A_n = 5 + 10(n - 1); - int scope = 5 + INNER_WIDTH * (num - 1); - ods.put("startX", scope); + int median = INNER_WIDTH * num; + ods.put("median", median); // node0 median : 0 + // node1 median : 10 + // node2 median : 20 if (num == 0){ // root node new RegisterList(); @@ -36,9 +38,10 @@ new ReceiveRegisterList(); } - FishInfo fishInfo = new FishInfo(0,0,0); + FishInfo fishInfo = new FishInfo(median,0,0); fishInfo.setName(name); - + + ods.put("OwnFishP", fishInfo.clone()); ods.put("fishData", fishInfo); new CreateObject(); diff -r 4515fe620e3a -r e29cf08ad1f3 src/main/java/alice/test/topology/aquarium/fx/CreateObject.java --- a/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java Mon Jun 16 21:44:25 2014 +0900 +++ b/src/main/java/alice/test/topology/aquarium/fx/CreateObject.java Mon Jun 16 21:45:43 2014 +0900 @@ -16,19 +16,22 @@ public class CreateObject extends CodeSegment{ private Receiver info = ids.create(CommandType.TAKE); - + private Receiver info1 = ids.create(CommandType.PEEK); + public CreateObject(){ info.setKey("fishData"); + info1.setKey("host"); } - + @Override public void run() { FishInfo fishInfo = info.asClass(FishInfo.class); - + String myName = info1.asString(); + BooleanProperty showWireframe = new SimpleBooleanProperty(false); ObjModelImporter objImporter = new ObjModelImporter(); objImporter.read(getClass().getClassLoader().getResource("objects/Scooter-smgrps.obj")); - + MeshView[] dukeMesh = objImporter.getImport(); objImporter.close(); @@ -41,13 +44,17 @@ obj.setScaleY(fishInfo.size); obj.setScaleZ(fishInfo.size); obj.setId(fishInfo.name); + + if (myName.equals(fishInfo.name)){ + new CalculatePosition(fishInfo.name); + } - new SetTranslate(fishInfo.name+"Fish"); + new SetTranslate(fishInfo.name+"Fish"); ods.put("addOffer", obj); ods.put("register", fishInfo); new SendDataOthers(info, "fishData"); new CreateObject(); } - + } diff -r 4515fe620e3a -r e29cf08ad1f3 src/main/java/alice/test/topology/aquarium/fx/FishInfo.java --- a/src/main/java/alice/test/topology/aquarium/fx/FishInfo.java Mon Jun 16 21:44:25 2014 +0900 +++ b/src/main/java/alice/test/topology/aquarium/fx/FishInfo.java Mon Jun 16 21:45:43 2014 +0900 @@ -52,5 +52,12 @@ public void setZ(double z){ this.z = z; - } + } + + public FishInfo clone(){ + FishInfo info = new FishInfo(this.x,this.y,this.z); + info.setName(this.name); + return info; + } + } diff -r 4515fe620e3a -r e29cf08ad1f3 src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java --- a/src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java Mon Jun 16 21:44:25 2014 +0900 +++ b/src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java Mon Jun 16 21:45:43 2014 +0900 @@ -9,14 +9,14 @@ public class SetTranslate extends CodeSegment { private Receiver info = ids.create(CommandType.TAKE); // object instance - private Receiver info1 = ids.create(CommandType.TAKE); // differential value - //private Receiver info2 = ids.create(CommandType.TAKE); // absolute fish position value - private Receiver info3 = ids.create(CommandType.PEEK); // start x + private Receiver info1 = ids.create(CommandType.TAKE); // absolute fish position value + private Receiver info2 = ids.create(CommandType.PEEK); // median private boolean executed = false; + public SetTranslate(String key) { info.setKey(key); - info1.setKey(key+"diffP"); - info3.setKey("startX"); + info1.setKey(key+"absoluteP"); + info2.setKey("median"); } @Override @@ -29,12 +29,12 @@ } else { Group fish = info.asClass(Group.class); FishInfo fp = info1.asClass(FishInfo.class); - //int scope = info3.asInteger(); - - fish.setTranslateX(fish.getTranslateX()+fp.getX()); - fish.setTranslateY(fish.getTranslateY()+fp.getY()); - fish.setTranslateZ(fish.getTranslateZ()+fp.getZ()); + int median = info2.asInteger(); + fish.setTranslateX(fp.getX() - median); + fish.setTranslateY(fp.getY()); + fish.setTranslateZ(fp.getZ()); ods.flip(info); + executed = false; new SetTranslate(info.key); }