public int GetDevBoundId(Vector3 devLocalPos) { PhysicalTopology[] childAreas = TopoNode.Children; if (childAreas == null) { return(NodeID); } Vector3 cadPos = LocationManager.UnityToCadPos(devLocalPos, true); foreach (var child in childAreas) { Bound initBound = child.InitBound; if (initBound == null || child.Name.Contains("测试范围")) { continue; } bool isXField = cadPos.x > initBound.MinX && cadPos.x < initBound.MaxX ? true : false; bool isZField = cadPos.z > initBound.MinY && cadPos.z < initBound.MaxY ? true : false; if (isXField && isZField) { //initBound.Id不是机房对应的ID Debug.Log(string.Format("设备所属区域:{0} 区域ID:{1}", child.Id, child.Name)); if (ChildNodes.Find(i => i.NodeID == child.Id) != null) { return(child.Id); } else { break; } } } return(NodeID); }
public void Initialize(WordNode parentNode, string characters) { if (string.IsNullOrEmpty(characters)) { return; } var firstChar = characters[0]; var node = ChildNodes.Find(r => r.Character == firstChar); if (node == null) { var newChild = new WordNode(characters.Remove(0, 1)) { Character = firstChar }; newChild.Parent = parentNode; if (characters.Length == 1) { newChild.IsWord = true; } ChildNodes.Add(newChild); } else { node.Initialize(node, characters.Remove(0, 1)); } }
public bool IsValidWord(string word) { if (word.Length == 1) { return(Character == word[0] && IsWord); } var nextChar = word[1]; var node = ChildNodes.Find(r => r.Character == nextChar); return(node != null && node.IsValidWord(word.Remove(0, 1))); }