private void GetLeafNodes(MarkNode markNode, IList <MarkNode> leafNodes) { if (markNode.Nodes.Count() == 0) { leafNodes.Add(markNode); return; } else { foreach (var node in markNode.Nodes) { GetLeafNodes(node, leafNodes); } } }
private void CreateProxy() { creatingSphere = true; //Destroy(markedSpace); //Destroy(proxySpace); //Destroy(proxyNode); //Destroy(markNode); markedSpace = Instantiate(ExitWarp); proxySpace = Instantiate(EntryWarp); proxyNode = proxySpace.GetComponent <ProxyNode>(); markNode = markedSpace.GetComponent <MarkNode>(); floorMarker = markedSpace.transform.Find("Cylinder").gameObject; floorMarker.SetActive(true); proxyNode.Marks.Add(markNode); proxyNode.SetCreationMode(true); SetActiveNodes(false); Vector3 pos = MarkPos(); float size = MarkSize(); Vector3 midPoint = (lIndexTipPos + rIndexTipPos) / 2.0f; float proxyFilteredSize = 0, markFilteredScale = 0; for (int i = 0; i < 100; i++) { markPosFilter.Filter(pos); proxyPosFilter.Filter(midPoint); proxyFilteredSize = proxyScaleFilter.Filter(0.01f); markFilteredScale = markScaleFilter.Filter(0.01f); } markedSpace.transform.position = pos; markedSpace.transform.localScale = new Vector3(markFilteredScale, markFilteredScale, markFilteredScale); proxySpace.transform.position = midPoint; proxySpace.transform.localScale = new Vector3(proxyFilteredSize, proxyFilteredSize, proxyFilteredSize); }
void Start() { mark = GetComponent <MarkNode>(); leftHand = mark.LeftHand; rightHand = mark.RightHand; grabSphere = transform.Find("GrabSphere").gameObject; grabSphere.SetActive(false); grabSphereMaterial = grabSphere.GetComponent <Renderer>().material; grabSphereAnchoring = grabSphere.GetComponent <PinchAnchor>(); grabSphereAnchoring.AllowAnchoring = false; grabSphereAnchoring.OnAnchoringSelection += (s, e) => { if (e != null) { mark.AnchorToCenter(e); } }; grabSphereLeap = grabSphere.GetComponent <InteractionBehaviour>(); grabSphereLeap.OnGraspBegin += GrabSphereGraspBegin; grabSphereLeap.OnGraspStay += GrabSphereGraspStay; grabSphereLeap.OnGraspEnd += GrabSphereGraspedEnd; }