view src/main/java/alice/test/topology/aquarium/fx/SetTranslate.java @ 387:1cbac5818dca multicast

add scope dataSegment
author sugi
date Mon, 16 Jun 2014 16:59:39 +0900
parents 878d397904da
children e29cf08ad1f3
line wrap: on
line source

package alice.test.topology.aquarium.fx;

import javafx.application.Platform;
import javafx.scene.Group;
import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

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 boolean executed = false;
	public SetTranslate(String key) {
		info.setKey(key);
		info1.setKey(key+"diffP");
		info3.setKey("startX");
	}

	@Override
	public void run() {
		if (!executed) {
			executed = true;
			new SendDataOthers(info1, info1.key);
			// javafx's Scene can be accessed only FX application thread.
			Platform.runLater(this);
		} 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());
        	ods.flip(info);
        	executed = false;
    		new SetTranslate(info.key);
		}		
	}

}