public void HandleSubmapMessage(SubmapCloudMsg msg) { if (pending_submap != null) { GameObject obj; SubmapVisualizer vis; if (!submaps.ContainsKey(pending_submap.submap_index)) { obj = new GameObject(); obj.transform.parent = transform; vis = obj.AddComponent <SubmapVisualizer>(); submaps.Add(pending_submap.submap_index, vis); } else { vis = submaps[pending_submap.submap_index]; obj = vis.gameObject; } obj.transform.position = this.transform.position + (new Vector3( pending_submap.pose._position.GetX(), pending_submap.pose._position.GetY(), pending_submap.pose._position.GetZ())); obj.transform.rotation = this.transform.rotation * (new Quaternion( pending_submap.pose._orientation.GetX(), pending_submap.pose._orientation.GetY(), pending_submap.pose._orientation.GetZ(), pending_submap.pose._orientation.GetW())); vis.UpdateMap(msg.cloud.GetCloud()); submap_versions[pending_submap.submap_index] = pending_submap.submap_version; pending_submap = null; } }
public new static void JSONServiceCallBack(JSONNode node) { SubmapCloudMsg cloudMsg = new SubmapCloudMsg(node); SubmapManager mapManager = GameObject.Find("Submaps").GetComponent <SubmapManager>(); mapManager.HandleSubmapMessage(cloudMsg); }