public override void IntersectDF(AABBTreeNode cdTree, List <DirectDetectData> res) { //if (aAABB.Intersect(cdTree.aAABB)) if (children != null) { for (int i = 0; i < children.Length; i++) { AABBTreeNode ch = (AABBTreeNode)children[i]; if (MathEx.AABBIntersects(ref cdTree.aabb, ref ch.aabb)) //(cdTree.aAABB.Intersect(ref ch.aAABB)) { cdTree.IntersectDF(ch, res); //相互遍历 } } } else { Triangle t = (Triangle)faceData; cdTree.IntersectDF(ref t, res); } }
public override void IntersectDF(AABBTreeNode cdTree, List <DirectDetectData> res) { //if (bBall.Intersect(cdTree.aAABB)) if (children != null) { for (int i = 0; i < children.Length; i++) { BBTreeNode ch = (BBTreeNode)children[i]; //if (ch.bBall.Intersect(ref cdTree.aAABB)) if (MathEx.BoundingSphereIntersects(ref ch.ball, ref cdTree.aabb)) { cdTree.IntersectDF(ch, res); //相互遍历 } } } else { Triangle t = (Triangle)faceData; cdTree.IntersectDF(ref t, res); } }