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;
        }
    }
Ejemplo n.º 2
0
    public new static void JSONServiceCallBack(JSONNode node)
    {
        SubmapCloudMsg cloudMsg   = new SubmapCloudMsg(node);
        SubmapManager  mapManager = GameObject.Find("Submaps").GetComponent <SubmapManager>();

        mapManager.HandleSubmapMessage(cloudMsg);
    }