Pathfinding.BBTree.SearchBox C# (CSharp) Method

SearchBox() public method

public SearchBox ( BBTreeBox box, Vector3 p, NNConstraint constraint, NNInfo &nnInfo ) : void
box BBTreeBox
p Vector3
constraint NNConstraint
nnInfo NNInfo
return void
		public void SearchBox (BBTreeBox box, Vector3 p, NNConstraint constraint, ref NNInfo nnInfo) {//, int intendentLevel = 0) {
			
			if (box.node != null) {
				//Leaf node
				if (box.node.ContainsPoint ((Int3)p)) {
					//Update the NNInfo
					
					if (nnInfo.node == null) {
						nnInfo.node = box.node;
					} else if (Mathf.Abs(((Vector3)box.node.position).y - p.y) < Mathf.Abs (((Vector3)nnInfo.node.position).y - p.y)) {
						nnInfo.node = box.node;
					}
					if (constraint.Suitable (box.node)) {
						if (nnInfo.constrainedNode == null) {
							nnInfo.constrainedNode = box.node;
						} else if (Mathf.Abs(box.node.position.y - p.y) < Mathf.Abs (nnInfo.constrainedNode.position.y - p.y)) {
							nnInfo.constrainedNode = box.node;
						}
					}
				}
				return;
			}
			
			//Search children
			if (RectContains (box.c1.rect,p)) {
				SearchBox (box.c1,p, constraint, ref nnInfo);
			}
			
			if (RectContains (box.c2.rect,p)) {
				SearchBox (box.c2,p, constraint, ref nnInfo);
			}
		}