public static SepAxis GetSpaceSepAxis(Block block_a, Block block_b) { BB a = block_a.Bounds, b = block_b.Bounds; SepAxis sepAxis = SepAxis.Unknown; if (AreRangesDisjoint(a.PtMin.X, a.PtMax.X, b.PtMin.X, b.PtMax.X)) { sepAxis = SepAxis.X; } else if (AreRangesDisjoint(a.PtMin.Y, a.PtMax.Y, b.PtMin.Y, b.PtMax.Y)) { sepAxis = SepAxis.Y; } else if (AreRangesDisjoint(a.PtMin.Z, a.PtMax.Z, b.PtMin.Z, b.PtMax.Z)) { sepAxis = SepAxis.Z; } return(sepAxis); }
public static SepAxis GetIsoSepAxis(Block block_a, Block block_b, Camera camera) { IsoBB a = block_a.GetIsoBounds(camera); IsoBB b = block_b.GetIsoBounds(camera); SepAxis sepAxis = SepAxis.Unknown; if (AreRangesDisjoint(a.PosMin.X, a.PosMax.X, b.PosMin.X, b.PosMax.X)) { sepAxis = SepAxis.X; } if (AreRangesDisjoint(a.PosMin.Y, a.PosMax.Y, b.PosMin.Y, b.PosMax.Y)) { sepAxis = SepAxis.Y; } if (AreRangesDisjoint(a.PosMin.H, a.PosMax.H, b.PosMin.H, b.PosMax.H)) { sepAxis = SepAxis.H; } return(sepAxis); }