static NarrowPhaseHelper() { Factories = new NarrowPhaseSystems.Factories(); collisionManagers = new Dictionary<TypePair, NarrowPhasePairFactory>(); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(ConvexCollidable<BoxShape>)), Factories.BoxBox); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(ConvexCollidable<SphereShape>)), Factories.BoxSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(ConvexCollidable<SphereShape>)), Factories.SphereSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(ConvexCollidable<TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(StaticMesh)), Factories.StaticMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(Terrain)), Factories.TerrainSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(InstancedMesh)), Factories.InstancedMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(CompoundCollidable)), Factories.CompoundCompound); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(StaticMesh)), Factories.CompoundStaticMesh); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(Terrain)), Factories.CompoundTerrain); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(InstancedMesh)), Factories.CompoundInstancedMesh); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshTriangle); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(MobileMeshCollidable)), Factories.CompoundMobileMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(StaticMesh)), Factories.MobileMeshStaticMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(InstancedMesh)), Factories.MobileMeshInstancedMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(Terrain)), Factories.MobileMeshTerrain); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(MobileMeshCollidable)), Factories.MobileMeshMobileMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(TriangleCollidable)), Factories.MobileMeshTriangle); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<SphereShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CapsuleShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TriangleShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<CylinderShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConeShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<TransformableShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<MinkowskiSumShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<WrappedShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable<ConvexHullShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(StaticGroup)), Factories.StaticGroupCompound); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(StaticGroup)), Factories.StaticGroupMobileMesh); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<BoxShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<SphereShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<CapsuleShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<TriangleShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<CylinderShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<ConeShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<TransformableShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<MinkowskiSumShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<WrappedShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable<ConvexHullShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(TriangleCollidable)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(MobileMeshCollidable)), Factories.DetectorVolumeMobileMesh); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(CompoundCollidable)), Factories.DetectorVolumeCompound); }
static NarrowPhaseHelper() { Factories = new NarrowPhaseSystems.Factories(); collisionManagers = new Dictionary <TypePair, NarrowPhasePairFactory>(); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(ConvexCollidable <BoxShape>)), Factories.BoxBox); //collisionManagers.Add(new TypePair(typeof(ConvexCollidable<BoxShape>), typeof(ConvexCollidable<SphereShape>)), Factories.BoxSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(ConvexCollidable <SphereShape>)), Factories.SphereSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(ConvexCollidable <TriangleShape>)), Factories.TriangleConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(StaticMesh)), Factories.StaticMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(StaticMesh)), Factories.StaticMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(Terrain)), Factories.TerrainSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(Terrain)), Factories.TerrainConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(InstancedMesh)), Factories.InstancedMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(InstancedMesh)), Factories.InstancedMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(CompoundCollidable)), Factories.CompoundConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(CompoundCollidable)), Factories.CompoundCompound); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(StaticMesh)), Factories.CompoundStaticMesh); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(Terrain)), Factories.CompoundTerrain); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(InstancedMesh)), Factories.CompoundInstancedMesh); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshSphere); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshTriangle); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(MobileMeshCollidable)), Factories.MobileMeshConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(MobileMeshCollidable)), Factories.CompoundMobileMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(StaticMesh)), Factories.MobileMeshStaticMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(InstancedMesh)), Factories.MobileMeshInstancedMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(Terrain)), Factories.MobileMeshTerrain); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(MobileMeshCollidable)), Factories.MobileMeshMobileMesh); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(TriangleCollidable)), Factories.MobileMeshTriangle); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <BoxShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <SphereShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CapsuleShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TriangleShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <CylinderShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConeShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <TransformableShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <MinkowskiSumShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <WrappedShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(ConvexCollidable <ConvexHullShape>), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(TriangleCollidable), typeof(StaticGroup)), Factories.StaticGroupConvex); collisionManagers.Add(new TypePair(typeof(CompoundCollidable), typeof(StaticGroup)), Factories.StaticGroupCompound); collisionManagers.Add(new TypePair(typeof(MobileMeshCollidable), typeof(StaticGroup)), Factories.StaticGroupMobileMesh); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <BoxShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <SphereShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <CapsuleShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <TriangleShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <CylinderShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <ConeShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <TransformableShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <MinkowskiSumShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <WrappedShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(ConvexCollidable <ConvexHullShape>)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(TriangleCollidable)), Factories.DetectorVolumeConvex); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(MobileMeshCollidable)), Factories.DetectorVolumeMobileMesh); collisionManagers.Add(new TypePair(typeof(DetectorVolume), typeof(CompoundCollidable)), Factories.DetectorVolumeCompound); }