public void AddBoxFilter(BoxFilter source) { if (Building) { throw new InvalidOperationException("Building"); } BoxFilters.Add(source); }
private bool SetActiveBoundsFilters(DtBoundingBox colliderBounds) { bool hasFilter = false; for (int i = 0; i < BoxFilters.Length; i++) { BoxFilter filter = BoxFilters[i]; if (DtBoundingBox.Intersects(ref filter.Bounds, ref colliderBounds)) { filter.Active = true; hasFilter = true; } else { filter.Active = false; } BoxFilters[i] = filter; } return(hasFilter); }
private bool ApplyAreaFilters(float3 v0, float3 v1, float3 v2, float3 v3) { if (HasAreaFilters) { for (int i = 0; i < BoundsSources.Length; i++) { BoxFilter source = BoundsSources[i]; if (!source.Active) { continue; } WorldBoxFilter box = source.WorldBoxFilter; if (box.ContainsPoint(v0) || box.ContainsPoint(v1) || box.ContainsPoint(v2) || box.ContainsPoint(v3)) { return(true); } } } return(false); }