view src/main/java/alice/test/topology/aquarium/fx/CreateObject.java @ 384:56d4f93a3921 multicast

add RegisterList
author sugi
date Wed, 11 Jun 2014 15:49:59 +0900
parents 878d397904da
children e29cf08ad1f3
line wrap: on
line source

package alice.test.topology.aquarium.fx;

import javafx.beans.binding.When;
import javafx.beans.property.BooleanProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.scene.Group;
import javafx.scene.shape.DrawMode;
import javafx.scene.shape.MeshView;

import com.interactivemesh.jfx.importer.obj.ObjModelImporter;

import alice.codesegment.CodeSegment;
import alice.datasegment.CommandType;
import alice.datasegment.Receiver;

public class CreateObject extends CodeSegment{

	private Receiver info = ids.create(CommandType.TAKE);
	
	public CreateObject(){
		info.setKey("fishData");
	}
	
	@Override
	public void run() {
		FishInfo fishInfo = info.asClass(FishInfo.class);
		
		BooleanProperty showWireframe = new SimpleBooleanProperty(false);
		ObjModelImporter objImporter = new ObjModelImporter();
		objImporter.read(getClass().getClassLoader().getResource("objects/Scooter-smgrps.obj"));
		
		MeshView[] dukeMesh = objImporter.getImport();
		objImporter.close();

		Group obj = new Group();
		for (MeshView _dukeMesh : dukeMesh) {
			obj.getChildren().addAll(_dukeMesh);
			_dukeMesh.drawModeProperty().bind(new When(showWireframe).then(DrawMode.LINE).otherwise(DrawMode.FILL));
		}
		obj.setScaleX(fishInfo.size); // twice size
		obj.setScaleY(fishInfo.size);
		obj.setScaleZ(fishInfo.size);
		obj.setId(fishInfo.name);
		
		new SetTranslate(fishInfo.name+"Fish");
		ods.put("addOffer", obj);
		ods.put("register", fishInfo);
		new SendDataOthers(info, "fishData");
		new CreateObject();
	}
	

}