diff --git a/src/main/java/cactusServer/entities/Instance.java b/src/main/java/cactusServer/entities/Instance.java index ce51517..5874cce 100644 --- a/src/main/java/cactusServer/entities/Instance.java +++ b/src/main/java/cactusServer/entities/Instance.java @@ -140,10 +140,10 @@ } public HashMap createObject(Position3D position, Velocity3D velocity, - AngularVelocity3D angularVelocity, Quaternion3D angle, Attribute attribute, String model) { + AngularVelocity3D angularVelocity, Quaternion3D angle, Attribute attribute, int modelID) { String id = RandomStringGenerator.generateUniqueString(Object.UNIQUE_ID_LENGTH, RandomStringGenerator.ALPHA_NUMERIC, objMap.keySet()); - Object object = new Object(position, velocity, angularVelocity, angle, attribute, model); + Object object = new Object(position, velocity, angularVelocity, angle, attribute, modelID); objMap.put(id, object); universe.place(object.getPlaceable()); HashMap returnedMap = new HashMap<>(); diff --git a/src/main/java/cactusServer/entities/Object.java b/src/main/java/cactusServer/entities/Object.java index d3ae812..722cd9f 100644 --- a/src/main/java/cactusServer/entities/Object.java +++ b/src/main/java/cactusServer/entities/Object.java @@ -1,10 +1,15 @@ package cactusServer.entities; +import org.ntlab.radishforandroidstudio.framework.model3D.Model3D; +import org.ntlab.radishforandroidstudio.framework.model3D.Object3D; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; +import org.ntlab.radishforandroidstudio.java3d.Box; +import org.ntlab.radishforandroidstudio.java3d.Primitive; +import cactusServer.models.ObjectModelManager; //import framework.model3D.Position3D; //import framework.physics.AngularVelocity3D; //import framework.physics.Velocity3D; @@ -16,7 +21,8 @@ private AngularVelocity3D angularVelocity; private Quaternion3D angle; private Attribute attribute; - private String model; + private Model3D model; + private Primitive prim = new Box(); @JSONHint(ignore = true) public static final int UNIQUE_ID_LENGTH = 12; @@ -27,13 +33,15 @@ } public Object(Position3D position, Velocity3D velocity, AngularVelocity3D angularVelocity, Quaternion3D angle, - Attribute attribute, String model) { + Attribute attribute, int modelID) { setPosition(position); setVelocity(velocity); setAngularVelocity(angularVelocity); setAngle(angle); setAttribute(attribute); - setModel(model); + setModel(modelID); + Object3D object = new Object3D("",prim); + setPlaceable(object); } public Position3D getPosition() { @@ -51,12 +59,12 @@ public Quaternion3D getAngle() { return angle; } - + public Attribute getAttribute() { return attribute; } - public String getModel() { + public Model3D getModel() { return model; } @@ -80,8 +88,8 @@ this.attribute = attribute; } - public void setModel(String model) { - this.model = model; + public void setModel(int modelID) { + this.model = ObjectModelManager.getInstance().getObject(modelID); } public static class Attribute { @@ -89,9 +97,9 @@ private double cof; // ���C�W�� private Attribute() { - + } - + public Attribute(boolean moveable, double cof) { setMoveable(moveable); setCof(cof); diff --git a/src/main/java/cactusServer/resources/ObjectsRest.java b/src/main/java/cactusServer/resources/ObjectsRest.java index d7dc3da..200610c 100644 --- a/src/main/java/cactusServer/resources/ObjectsRest.java +++ b/src/main/java/cactusServer/resources/ObjectsRest.java @@ -28,7 +28,7 @@ @Path("/{objectId}") @GET - //@Produces(MediaType.APPLICATION_JSON) + // @Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String getObject(@PathParam("instanceId") String instanceId, @PathParam("objectId") String objectId) { Instance instance = Instances.getInstance().getInstance(instanceId); @@ -39,22 +39,22 @@ } @GET - //@Produces(MediaType.APPLICATION_JSON) + // @Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String getObjects(@PathParam("instanceId") String instanceId) { return JSON.encode(Instances.getInstance().getInstance(instanceId).getObjects()); } @POST - //@Produces(MediaType.APPLICATION_JSON) + // @Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) - public String createObject(@PathParam("instanceId") String instanceId, - @FormParam("position") Position3D position, @FormParam("velocity") Velocity3D velocity, - @FormParam("angularVelocity") AngularVelocity3D angularVelocity, @FormParam("angle") Quaternion3D angle, - @FormParam("attribute") Attribute attribute, @FormParam("model") String model) { + public String createObject(@PathParam("instanceId") String instanceId, @FormParam("position") Position3D position, + @FormParam("velocity") Velocity3D velocity, @FormParam("angularVelocity") AngularVelocity3D angularVelocity, + @FormParam("angle") Quaternion3D angle, @FormParam("attribute") Attribute attribute, + @FormParam("model") int modelID) { Instance instance = Instances.getInstance().getInstance(instanceId); HashMap idMap = instance.createObject(position, velocity, angularVelocity, angle, attribute, - model); + modelID); HashMap uriMap = new HashMap<>(); for (String id : idMap.keySet()) { String uri = (InstancesRest.INSTANCES_URI + "/" + instanceId + "/objects/") + id; @@ -65,7 +65,7 @@ @Path("/{objectId}") @PUT - //@Produces(MediaType.APPLICATION_JSON) + // @Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.TEXT_PLAIN) public String updateObject(@PathParam("instanceId") String instanceId, @PathParam("objectId") String objectId, @FormParam("position") Position3D position, @FormParam("velocity") Velocity3D velocity, diff --git a/src/main/java/cactusServer/utils/App.java b/src/main/java/cactusServer/utils/App.java index 9bdf828..0e7f785 100644 --- a/src/main/java/cactusServer/utils/App.java +++ b/src/main/java/cactusServer/utils/App.java @@ -30,6 +30,7 @@ @ApplicationPath("/rest") public class App extends ResourceConfig implements Runnable { private ScheduledThreadPoolExecutor task = new ScheduledThreadPoolExecutor(4); + private int instancesSize; public App() { ObjectModelManager.getInstance(); @@ -45,6 +46,17 @@ @Override public void run() { //System.out.println("�^�X�N�����s"); + instancesSize = Instances.getInstance().getInstances().size(); + for(int i=0;i