示例#1
0
        DuMixNodeJSONFrame FillSceneGraph(DuMixNodeJSONFrame frame, DuMixCaseType type)
        {
            var converter = new DuMixNodeConvertor();

            if (type == DuMixCaseType.SLAM)
            {
                Debug.Log("转换SLAM场景");
                // Convert 3D coordinate parts
                var scene = Object.FindObjectOfType <DuMixCMPTSlamScene>();
                // SLAM坐标系转换需先将3D坐标系绕X轴旋转90度
                var rootGroup = new DuMixNodeGroup
                {
                    name     = "slam_root",
                    rotation = "90,0,0"
                };
                frame.nodeList.Add(rootGroup);
                foreach (Transform child in scene.gameObject.transform)
                {
                    var node = child.gameObject.GetComponent <DuMixCMPT3DObject>();
                    if (node != null)
                    {
                        var childDuMixNode = node.ToDuMixNode(converter);
                        Debug.Log("转换 " + node.name + " 节点");
                        rootGroup.children.Add(childDuMixNode);
                    }
                }
            }
            else if (type == DuMixCaseType.TRACK2D)
            {
                // TODO
            }
            else if (type == DuMixCaseType.IMU)
            {
                // TODO
            }

            // Convert HUD Coordinate parts
            var uiCanvas = Object.FindObjectOfType <DuMixCMPTUICanvas>();

            foreach (Transform child in uiCanvas.gameObject.transform)
            {
                var node = child.gameObject.GetComponent <DuMixCMPTUIObject>();
                if (node != null)
                {
                    var duMixNode = node.ToDuMixNode(converter);
                    Debug.Log("转换 " + node.name + " 节点");
                    frame.nodeList.Add(duMixNode);
                }
            }
            return(frame);
        }
示例#2
0
        public override DuMixNode ToDuMixNode(DuMixNodeConvertor convertor)
        {
            var duMixNode = convertor.Convert3DVideo(this);

            foreach (Transform child in this.gameObject.transform)
            {
                var node = child.gameObject.GetComponent <DuMixCMPT3DObject>();
                if (node != null)
                {
                    var childDuMixNode = node.ToDuMixNode(convertor);
                    duMixNode.children.Add(childDuMixNode);
                }
            }
            return(duMixNode);
        }
示例#3
0
 override public DuMixNode ToDuMixNode(DuMixNodeConvertor convertor)
 {
     return(convertor.ConvertUIPlane(this));
 }
示例#4
0
 // 将节点转换为DuMix定义的数据格式,由子类具体实现
 virtual public DuMixNode ToDuMixNode(DuMixNodeConvertor convertor)
 {
     return(new DuMixNode());
 }