diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 1d1275b..51575bb 100644 --- a/.idea/caches/build_file_checksums.ser +++ b/.idea/caches/build_file_checksums.ser Binary files differ diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 388aa06..a083902 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -32,14 +32,14 @@ - - - - - - - - + + + + + + diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/CharactersConnection.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/CharactersConnection.java index 3732526..04fb867 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/CharactersConnection.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/connections/CharactersConnection.java @@ -6,4 +6,5 @@ public CharactersConnection(String instanceId) { super("http://nitta-lab-www2.is.konan-u.ac.jp:8080/CactusServer/rest/instances/" + instanceId + "/characters"); } + } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java index 68af751..ff4b005 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/OtherPlayerCharactersModel.java @@ -11,6 +11,7 @@ import org.ntlab.radishforandroidstudio.framework.model3D.Property3D; import org.ntlab.radishforandroidstudio.framework.network.CallBack; +import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -43,17 +44,20 @@ nextConnectRenaimdTime -= interval; if (nextConnectRenaimdTime <= 0) { nextConnectRenaimdTime += connectInterval; - con.doAnything(); +// con.doAnything(); + con.doGet(); } } @Override public void onResponse(String response) { JSON json = new JSON(); - PlayersPojo m = json.decode(response, PlayersPojo.class); - for (PlayerPojo map : m.getPlayerPojo()) { - ArrayList prop = new ArrayList<>(); - // 状態更新 + ArrayList m = json.decode(response); + for (Map player : m) { + System.out.println(player.get("name")); + Map position = (Map)player.get("position"); + Position3D positionProp = new Position3D(((BigDecimal)position.get("x")).doubleValue(), ((BigDecimal)position.get("y")).doubleValue(), ((BigDecimal)position.get("z")).doubleValue()); + } } } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/tests/StartFragment.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/tests/StartFragment.java index 61c2011..39cb5fc 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/tests/StartFragment.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/tests/StartFragment.java @@ -32,10 +32,10 @@ public void onClick(View view) { FragmentManager manager = getFragmentManager(); FragmentTransaction transaction = manager.beginTransaction(); -// transaction.replace(R.id.framelayout_field, new SampleUiFragment()); + transaction.replace(R.id.framelayout_field, new SampleUiFragment()); // transaction.replace(R.id.framelayout_field, new SampleGameFragment()); // transaction.replace(R.id.framelayout_field,new SampleGame2Fragment()); - transaction.replace(R.id.framelayout_field,new PlayerFragment()); +// transaction.replace(R.id.framelayout_field,new PlayerFragment()); transaction.addToBackStack(null); transaction.commit(); } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/PlayerId.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/PlayerId.java deleted file mode 100644 index 3bc3da6..0000000 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/PlayerId.java +++ /dev/null @@ -1,16 +0,0 @@ -package org.ntlab.radishforandroidstudio.cactusClient.types; - -import android.support.annotation.NonNull; - -import org.ntlab.radishforandroidstudio.framework.common.CommonId; - -/** - * Player IDの管理クラス - * - * @author s.iwatani - */ -public class PlayerId extends CommonId { - public PlayerId(@NonNull Integer id) { - super(id); - } -} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/AnglePojo.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/AnglePojo.java new file mode 100644 index 0000000..be11bde --- /dev/null +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/AnglePojo.java @@ -0,0 +1,37 @@ +package org.ntlab.radishforandroidstudio.cactusClient.types.pojo; + +public class AnglePojo { + public double getVx() { + return vx; + } + + public void setVx(double vx) { + this.vx = vx; + } + + public double getVy() { + return vy; + } + + public void setVy(double vy) { + this.vy = vy; + } + + public double getVz() { + return vz; + } + + public void setVz(double vz) { + this.vz = vz; + } + + public double getA() { + return a; + } + + public void setA(double a) { + this.a = a; + } + + double vx, vy, vz, a; +} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayerPojo.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayerPojo.java index eaac851..2686ccd 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayerPojo.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayerPojo.java @@ -1,72 +1,58 @@ package org.ntlab.radishforandroidstudio.cactusClient.types.pojo; -import net.arnx.jsonic.JSONHint; - -import org.ntlab.radishforandroidstudio.framework.model3D.Position3D; -import org.ntlab.radishforandroidstudio.framework.model3D.Quaternion3D; - public class PlayerPojo { private String accountURI; private String areaURI; private String name; - private Position3D position; - private Quaternion3D angle; - private int modelID; - - private PlayerPojo() { - // JSONDecode時の呼び出し用 - } - - public PlayerPojo(String instanceId, String accountURI, String name, Position3D position, Quaternion3D angle, - int modelID) { - setAccountURI(accountURI); - setName(name); - setPosition(position); - setQuaternion3D(angle); - setModelID(modelID); - } + private PositionPojo position; + private AnglePojo angle; + private int modelId; public String getAccountURI() { return accountURI; } - public String getName() { - return name; - } - - public Position3D getPosition() { - return position; - } - - public Quaternion3D getQuaternion3D() { - return angle; - } - - public int getModelID() { - return modelID; - } - - public String getAreaURI() { - return areaURI; - } - public void setAccountURI(String accountURI) { this.accountURI = accountURI; } + public String getAreaURI() { + return areaURI; + } + + public void setAreaURI(String areaURI) { + this.areaURI = areaURI; + } + + public String getName() { + return name; + } + public void setName(String name) { this.name = name; } - public void setPosition(Position3D position) { + public PositionPojo getPosition() { + return position; + } + + public void setPosition(PositionPojo position) { this.position = position; } - public void setQuaternion3D(Quaternion3D angle) { + public AnglePojo getAngle() { + return angle; + } + + public void setAngle(AnglePojo angle) { this.angle = angle; } - public void setModelID(int modelID) { - this.modelID = modelID; + public int getModelId() { + return modelId; + } + + public void setModelId(int modelId) { + this.modelId = modelId; } } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayersPojo.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayersPojo.java index 0d0fc90..cc7279d 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayersPojo.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PlayersPojo.java @@ -3,19 +3,13 @@ import java.util.ArrayList; public class PlayersPojo { - private ArrayList playerPojo; + private ArrayList players; - private PlayersPojo() {} - - public PlayersPojo(ArrayList playerPojo) { - setPlayerPojo(playerPojo); + public void setPlayers(ArrayList players) { + this.players = players; } - public void setPlayerPojo(ArrayList playerPojo) { - this.playerPojo = playerPojo; - } - - public ArrayList getPlayerPojo() { - return playerPojo; + public ArrayList getPlayers() { + return players; } } diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PositionPojo.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PositionPojo.java new file mode 100644 index 0000000..de6689a --- /dev/null +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/types/pojo/PositionPojo.java @@ -0,0 +1,29 @@ +package org.ntlab.radishforandroidstudio.cactusClient.types.pojo; + +public class PositionPojo { + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } + + public double getZ() { + return z; + } + + public void setZ(double z) { + this.z = z; + } + + double x, y, z; +} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/common/CommonId.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/common/CommonId.java deleted file mode 100644 index 7e01ab6..0000000 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/common/CommonId.java +++ /dev/null @@ -1,35 +0,0 @@ -package org.ntlab.radishforandroidstudio.framework.common; - -import android.support.annotation.NonNull; - -/** - * Id管理の基底クラス - * - * @author s.iwatani - * @param - */ -public abstract class CommonId { - private IdType id = null; - - public CommonId(@NonNull IdType id) { - setId(id); - } - - public IdType getId() { - return id; - } - - public void setId(IdType id) { - this.id = id; - } - - - /** - * 比較演算子 == と != - * - * @param rhs 比較対象 - * @return boolean - */ - public boolean isEqual(CommonId rhs) { return id.equals(rhs); }; - public boolean isNotEqual(CommonId rhs) { return !id.equals(rhs); }; -} diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/model3D/Universe.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/model3D/Universe.java index 7f75c9d..d6db575 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/model3D/Universe.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/model3D/Universe.java @@ -1,6 +1,5 @@ package org.ntlab.radishforandroidstudio.framework.model3D; -import org.ntlab.radishforandroidstudio.framework.common.CommonId; import org.ntlab.radishforandroidstudio.framework.physics.Ground; import org.ntlab.radishforandroidstudio.java3d.BranchGroup; import org.ntlab.radishforandroidstudio.java3d.Group; @@ -21,7 +20,7 @@ private BackgroundBox skyBox = null; private Ground ground = null; private ArrayList movableList = new ArrayList(); - private Map objMap = new HashMap<>(); + private Map objMap = new HashMap<>(); public Universe() { root = new BranchGroup(); @@ -64,8 +63,8 @@ } } - public void apply(HashMap> properties) { - for (Map.Entry> entry : properties.entrySet()) { + public void apply(HashMap> properties) { + for (Map.Entry> entry : properties.entrySet()) { Object3D target = objMap.get(entry.getKey()); for (Property3D prop : entry.getValue()) { target.apply(prop, false); @@ -80,7 +79,7 @@ * @param properties * @return boolean 存在しないなどで更新できなければfalse, できればtrue */ - public boolean apply(CommonId id, ArrayList properties) { + public boolean apply(Object id, ArrayList properties) { Object3D target = objMap.get(id); if (target == null) return false; for (Property3D prop : properties) { @@ -116,7 +115,7 @@ root.addChild(node); } - public void place(Object3D obj, CommonId id) { + public void place(Object3D obj, Object id) { objMap.put(id, obj); } @@ -168,7 +167,7 @@ root.removeChild(node); } - public void displace(CommonId id) { objMap.remove(id); } + public void displace(Object id) { objMap.remove(id); } public ArrayList getLights() { return lights; diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java index 2ea170b..bb20b75 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/framework/network/HttpAsyncConnection.java @@ -78,61 +78,43 @@ // request public void doAnything() { - callBack.onResponse("[\n" + - " {\n" + - " \"accountURI\": \"http://hogehoge.com\",\n" + - " \"areaURI\": \"http://areahogehoge.com\",\n" + - " \"name\": \"Totori Tori\",\n" + - "\t\"position\": {\"x\": 0.5, \"y\": 1.2, \"z\": 1.2},\n" + - "\t\"angle\": {\"vx\": 0, \"vy\": 0, \"vz\": 0, \"a\": 0},\n" + - "\t\"modelID\": \"5\"\n" + - " },\n" + - " {\n" + - " \"accountURI\": \"http://hogehoge.com\",\n" + - " \"areaURI\": \"http://areahogehoge.com\",\n" + - " \"name\": \"Tataru Taru\",\n" + - "\t\"position\": {\"x\": 1.2, \"y\": 1.2, \"z\": 1.2},\n" + - "\t\"angle\": {\"vx\": 0, \"vy\": 0, \"vz\": 0, \"a\": 0},\n" + - "\t\"modelID\": \"5\"\n" + - " }\n" + - "]");return; -// try { -// if(conn == null) { -// if(queryParams == null || queryParams.length() == 0){ -// conn = (HttpURLConnection) new URL(baseUrl + pathParams).openConnection(); -// } else { -// conn = (HttpURLConnection) new URL(baseUrl + pathParams + "?" + queryParams).openConnection(); -// } -// } -// conn.setReadTimeout(10000 /* milliseconds */); -// conn.setConnectTimeout(15000 /* milliseconds */); -// // POST or GET or PUT or DELETE -// conn.setRequestMethod(method); -// -// if (formParams.length() > 0) { -// conn.setDoOutput(true); -// if(clientSessionID != null) { -// conn.setRequestProperty("Cookie", clientSessionID); -// } -// OutputStream out = conn.getOutputStream(); -// out.write(formParams.getBytes("UTF-8")); -// out.flush(); -// out.close(); -// formParams = ""; -// } -// pathParams = ""; -// queryParams = ""; -// -// conn.connect(); -// -// if(clientSessionID == null ) { -// clientSessionID = conn.getHeaderField("Set-Cookie"); -// -// } -// } catch (IOException e) { -// notConnection(); -// e.printStackTrace(); -// } + try { + if(conn == null) { + if(queryParams == null || queryParams.length() == 0){ + conn = (HttpURLConnection) new URL(baseUrl + pathParams).openConnection(); + } else { + conn = (HttpURLConnection) new URL(baseUrl + pathParams + "?" + queryParams).openConnection(); + } + } + conn.setReadTimeout(10000 /* milliseconds */); + conn.setConnectTimeout(15000 /* milliseconds */); + // POST or GET or PUT or DELETE + conn.setRequestMethod(method); + + if (formParams.length() > 0) { + conn.setDoOutput(true); + if(clientSessionID != null) { + conn.setRequestProperty("Cookie", clientSessionID); + } + OutputStream out = conn.getOutputStream(); + out.write(formParams.getBytes("UTF-8")); + out.flush(); + out.close(); + formParams = ""; + } + pathParams = ""; + queryParams = ""; + + conn.connect(); + + if(clientSessionID == null ) { + clientSessionID = conn.getHeaderField("Set-Cookie"); + + } + } catch (IOException e) { + notConnection(); + e.printStackTrace(); + } } // response @@ -179,4 +161,25 @@ public void addPathParam(String param){ pathParams += "/" + param; } + + public void test() { + callBack.onResponse("[\n" + + " {\n" + + " \"accountURI\": \"http://hogehoge.com\",\n" + + " \"areaURI\": \"http://areahogehoge.com\",\n" + + " \"name\": \"Totori Tori\",\n" + + "\t\"position\": {\"x\": 0.5, \"y\": 1.2, \"z\": 1.2},\n" + + "\t\"angle\": {\"vx\": 0, \"vy\": 0, \"vz\": 0, \"a\": 0},\n" + + "\t\"modelID\": \"5\"\n" + + " },\n" + + " {\n" + + " \"accountURI\": \"http://hogehoge.com\",\n" + + " \"areaURI\": \"http://areahogehoge.com\",\n" + + " \"name\": \"Tataru Taru\",\n" + + "\t\"position\": {\"x\": 1.2, \"y\": 1.2, \"z\": 1.2},\n" + + "\t\"angle\": {\"vx\": 0, \"vy\": 0, \"vz\": 0, \"a\": 0},\n" + + "\t\"modelID\": \"5\"\n" + + " }\n" + + "]");return; + } }