private float MinDistanceBetweenAdjacentVerts() { float min = float.MaxValue; for (int i = 0; i < _verts.Length - 1; i++) { for (int j = i + 1; j < _verts.Length; j++) { float a = XVector3.Distance(_verts[i], _verts[j]); if (min > a) { min = a; } } } return(min); }
private void GetDimensions() { int step = ExponentialSearch(Start, Corner); if (step > 0) { Corner = BisectionSearch(Start, Corner, Exp(step - 1), Exp(step)); } Length = XVector3.Distance(Start, Corner); //unity.Message(Start +" " + Corner); End = Start - Corner; End = new XVector3(-End.z, End.y, End.x); End = Corner + End.normalized;// * MinDistanceBetweenAdjacentVerts(); step = ExponentialSearch(Corner, End); if (step > 0) { End = BisectionSearch(Corner, End, Exp(step - 1), Exp(step)); } Width = XVector3.Distance(Corner, End); /* refPoint -> lineEnd -> lineEnd2 ALWAYS clockwise; vertices[i++] ALWAYS clockwise */ }