diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index dc34528..093fef2 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -1,7 +1,8 @@ - + + + - diff --git a/src/main/java/cactusServer/entities/Angle.java b/src/main/java/cactusServer/entities/Angle.java deleted file mode 100644 index 3edb57f..0000000 --- a/src/main/java/cactusServer/entities/Angle.java +++ /dev/null @@ -1,51 +0,0 @@ -package cactusServer.entities; - -public class Angle { - private double vx; - private double vy; - private double vz; - private double a; - - private Angle() { - // JSONDecode���̌Ăяo���p - } - - public Angle(double vx, double vy, double vz, double a) { - setVx(vx); - setVy(vy); - setVz(vz); - setA(a); - } - - public double getVx() { - return vx; - } - - public double getVy() { - return vy; - } - - public double getVz() { - return vz; - } - - public double getA() { - return a; - } - - public void setVx(double vx) { - this.vx = vx; - } - - public void setVy(double vy) { - this.vy = vy; - } - - public void setVz(double vz) { - this.vz = vz; - } - - public void setA(double a) { - this.a = a; - } -} diff --git a/src/main/java/cactusServer/entities/CameraState.java b/src/main/java/cactusServer/entities/CameraState.java index e4704db..fc98f7c 100644 --- a/src/main/java/cactusServer/entities/CameraState.java +++ b/src/main/java/cactusServer/entities/CameraState.java @@ -1,8 +1,10 @@ package cactusServer.entities; +import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; + public class CameraState { private double distance; // �L��������̋��� - private Angle angle; + private Quaternion3D angle; private double tilt; // �`���g(rad) private double fov; // ����p(rad) @@ -10,7 +12,7 @@ // JSONDecode���̌Ăяo���p } - public CameraState(double distance, Angle angle, double tilt, double fov) { + public CameraState(double distance, Quaternion3D angle, double tilt, double fov) { setDistance(distance); setAngle(angle); setTilt(tilt); @@ -21,7 +23,7 @@ return distance; } - public Angle getAngle() { + public Quaternion3D getAngle() { return angle; } @@ -37,7 +39,7 @@ this.distance = distance; } - public void setAngle(Angle angle) { + public void setAngle(Quaternion3D angle) { this.angle = angle; } diff --git a/src/main/java/cactusServer/resources/ObjectsRest.java b/src/main/java/cactusServer/resources/ObjectsRest.java index b64726d..a8b9e41 100644 --- a/src/main/java/cactusServer/resources/ObjectsRest.java +++ b/src/main/java/cactusServer/resources/ObjectsRest.java @@ -9,6 +9,7 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; @@ -16,7 +17,6 @@ import org.ntlab.radishforandroidstudio.framework.physics.AngularVelocity3D; import org.ntlab.radishforandroidstudio.framework.physics.Velocity3D; -import cactusServer.entities.Angle; import cactusServer.entities.Instance; import cactusServer.entities.Object; import cactusServer.entities.Object.Attribute; @@ -25,7 +25,6 @@ @Path("/instances/{instanceId}/objects") public class ObjectsRest { - // @Path("/{instanceId}/objects/{objectId}") @Path("/{objectId}") @GET @Produces(MediaType.APPLICATION_JSON) @@ -43,7 +42,6 @@ return Instances.getInstance().getInstance(instanceId).getObjects(); } - // @Path("/{instanceId}/objects") @POST @Produces(MediaType.APPLICATION_JSON) public HashMap createObject(@PathParam("instanceId") String instanceId, @@ -60,15 +58,24 @@ } return uriMap; } - // // @Path("/{instance-id}/objects/{object-id}") - // @Path("/{object-id}") - // @PUT - // @Produces(MediaType.APPLICATION_JSON) - // public Object updateObject(@FormParam("objectId") String objectId, - // @FormParam("position") Position3D position, - // @FormParam("velocity") Velocity3D velocity, - // @FormParam("angularVelocity") AngularVelocity3D angularVelocity, - // @FormParam("angle") Quaternion3D angle) { - // - // } + + @Path("/{objectId}") + @PUT + @Produces(MediaType.APPLICATION_JSON) + public Object updateObject(@PathParam("instanceId") String instanceId, @PathParam("objectId") String objectId, + @FormParam("position") Position3D position, @FormParam("velocity") Velocity3D velocity, + @FormParam("angularVelocity") AngularVelocity3D angularVelocity, @FormParam("angle") Quaternion3D angle) { + Instance instance = Instances.getInstance().getInstance(instanceId); + if (instance != null) { + Object object = instance.getObject(objectId); + if (object != null) { + object.setAngle(angle); + object.setAngularVelocity(angularVelocity); + object.setPosition(position); + object.setVelocity(velocity); + return object; + } + } + throw new WebApplicationException(400); + } } diff --git a/src/main/java/cactusServer/resources/PlayersRest.java b/src/main/java/cactusServer/resources/PlayersRest.java index 4f49faa..b648beb 100644 --- a/src/main/java/cactusServer/resources/PlayersRest.java +++ b/src/main/java/cactusServer/resources/PlayersRest.java @@ -9,6 +9,7 @@ import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; @@ -40,17 +41,13 @@ @Path("/{playerId}") @GET @Produces(MediaType.APPLICATION_JSON) - public Player getPlayer(@PathParam("instanceId") String instanceId, @PathParam("playerId") String playerId) { - Instances instances = Instances.getInstance(); - if (instances != null) { - return instances.getPlayer(playerId); - } - return null; + public Player getPlayer(@PathParam("playerId") String playerId) { + return Instances.getInstance().getPlayer(playerId); } @GET @Produces(MediaType.APPLICATION_JSON) - public HashMap getPlayers(@PathParam("instanceId") String instanceId) { + public HashMap getPlayers(@QueryParam("instanceId") String instanceId) { return Instances.getInstance().getPlayers(instanceId); }