public bool Intersect(LineTestData intersectData, out EntityID entity) { entity = this.entity; //First test if the bounds intersect if (!AABox.Intersect(box, intersectData.TestBounds)) { return(false); } //Then test if the ray intersects float rayTime; if (!AABox.Intersect(box, intersectData.TestRay, out rayTime)) { return(false); } //Then test if that ray was still within the line return(intersectData.TestLine.SqrMagnitude >= (rayTime * rayTime)); }
public bool Intersect(AABox box, out EntityID entity) { if (AABox.Intersect(volume, box)) { for (int i = 0; i < children.Count; i++) { if (children[i].Intersect(box, out entity)) { return(true); } } for (int i = 0; i < entries.Count; i++) { if (entries[i].Intersect(box, out entity)) { return(true); } } } entity = 0; return(false); }
public bool Intersect(LineTestData intersectData, out EntityID entity) { if (AABox.Intersect(volume, intersectData.TestBounds)) { for (int i = 0; i < children.Count; i++) { if (children[i].Intersect(intersectData, out entity)) { return(true); } } for (int i = 0; i < entries.Count; i++) { if (entries[i].Intersect(intersectData, out entity)) { return(true); } } } entity = 0; return(false); }
public bool Intersect(AABox box, out EntityID entity) { entity = this.entity; return(AABox.Intersect(this.box, box)); }
public bool Intersect(AABox box) => AABox.Intersect(this.box, box);