diff --git a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/MovableObjectModel.java b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/MovableObjectModel.java index 5f0e14d..87b5e63 100644 --- a/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/MovableObjectModel.java +++ b/app/src/main/java/org/ntlab/radishforandroidstudio/cactusClient/models/MovableObjectModel.java @@ -16,7 +16,9 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; import java.util.Map; +import java.util.Set; /** * オブジェクトを管理するモデル @@ -29,8 +31,7 @@ private int nextConnectRenaimdTime = 0; private int connectInterval = 300; private String instanceId; - private String objectId; - private Map visibleobject = new HashMap<>(); + private Map visibleobject = new HashMap<>(); public MovableObjectModel(RealTime3DFragment fragment, Universe universe,String instanceId) { this.fragment = fragment; @@ -44,9 +45,6 @@ this.instanceId = instanceId; } - public void setObjectId(String objectId) { - this.objectId = objectId; - } /** * オブジェクトの状態更新 @@ -68,26 +66,20 @@ @Override public void onResponse(String response) { - Map lastvisibleobject = new HashMap<>(visibleobject); - visibleobject.clear(); JSON json = new JSON(); Map o = json.decode(response, new TypeReference>() { }); for (Map.Entry entry : o.entrySet()) { - visibleobject.put(entry.getKey(), 1); ArrayList properties = new ArrayList<>(); Object object = entry.getValue(); - // 自分自身は無視する - System.out.println(entry.getKey() + ", " + objectId); - if (entry.getKey().equals(objectId)) continue; properties.add(object.getPosition()); properties.add(object.getAngle()); - if (!universe.doHaveObj(entry.getKey())) { + if (!visibleobject.containsKey(entry.getKey())) { Appearance ap1 = new Appearance(); Material mat = new Material(); mat.setDiffuseColor(0.0f, 0.3f, 1.0f); @@ -99,12 +91,13 @@ Object3D objBody = null; try { - objBody = ModelFactory.loadModel(fragment.getResources(), "cube-ascii.stl", ap1).createObject(); + objBody = ModelFactory.loadModel(fragment.getResources(), "cube-binary.stl", ap1).createObject(); } catch (Exception e) { e.printStackTrace(); } MovableObject object1 = new MovableObject(objBody); + visibleobject.put(entry.getKey(), object1); universe.place(entry.getKey(), object1); universe.place(object1); @@ -112,9 +105,9 @@ universe.apply(entry.getKey(), properties); } - for (String key : lastvisibleobject.keySet()) { - if (visibleobject.get(key) == null) { - universe.displace(key); + for (String key : visibleobject.keySet()) { + if (!o.containsKey(key)) { + universe.displace(visibleobject.get(key)); } }