public void Select(fRectangle selectionBox) { if (selectionBox.contains(m_AABB)) { m_selectionBox.SetActive(true); } else { m_selectionBox.SetActive(false); } }
static public Vector3 getClosestPositionOutsideAABB(fRectangle AABB, Vector3 unitPosition, Vector3 centrePosition, float offSet) { Assert.IsNotNull(AABB); Vector3 direction = (unitPosition - centrePosition).normalized; Vector3 position = centrePosition; int distance = 1; while (AABB.contains(position)) { position += direction * distance; } position += direction * offSet; return(new Vector3(position.x, 1, position.z)); }
static public Vector3 getRandomPositionOutsideAABB(fRectangle AABB, Vector3 centrePosition, float offSet) { Assert.IsNotNull(AABB); Vector3 direction = new Vector3(Random.Range(-1.0f, 1.0f), 1, Random.Range(-1.0f, 1.0f)).normalized; Vector3 position = centrePosition; int distance = 1; while (AABB.contains(position)) { position += direction * distance; } position += direction * offSet; return(new Vector3(position.x, 1, position.z)); }
public bool contains(Vector3 position) { return(m_AABB.contains(Utilities.convertToGridPosition(position))); }