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); }
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); }
override public DuMixNode ToDuMixNode(DuMixNodeConvertor convertor) { return(convertor.ConvertUIPlane(this)); }
// 将节点转换为DuMix定义的数据格式,由子类具体实现 virtual public DuMixNode ToDuMixNode(DuMixNodeConvertor convertor) { return(new DuMixNode()); }