Esempio n. 1
0
        public static string CreateCollisionSet(string firstobjects, string secondobjects, double nmDistance)
        {
            Station station = Project.ActiveProject as Station;

            nmDistance = nmDistance / 1000;

            GraphicComponent a, b;

            station.GraphicComponents.TryGetGraphicComponent(firstobjects, out a);
            station.GraphicComponents.TryGetGraphicComponent(secondobjects, out b);
            Vector3 aPoint, bPoint;

            CollisionType colType = CollisionDetector.CheckCollision(a, b, nmDistance);

            switch (colType)
            {
            case CollisionType.Collision:
                Logger.AddMessage(new LogMessage("Part: " + a.Name + " and part: " + b.Name + " is colliding!"));
                break;

            case CollisionType.NearMiss:
                Logger.AddMessage(new LogMessage("There is a near miss between part: " + a.Name + " and part: " + b.Name + "."));
                Logger.AddMessage(new LogMessage("The distance between them are: "
                                                 + CollisionDetector.MinimumDistance(a, b, out aPoint, out bPoint)));
                Logger.AddMessage(new LogMessage("The closest points are: "));
                Logger.AddMessage(new LogMessage("For part: " + a.Name + " x: " + aPoint.x
                                                 + " y: " + aPoint.y + " z: " + aPoint.z));
                Logger.AddMessage(new LogMessage("For part: " + b.Name + " x: " + bPoint.x
                                                 + " y: " + bPoint.y + " z: " + bPoint.z));
                break;

            case CollisionType.None:
                Logger.AddMessage(new LogMessage("No collisions!"));
                break;
            }

            CollisionDetector.Collision += new CollisionEventHandler(MyCollisionEventHandler);
            CollisionSet cs = new CollisionSet();

            cs.Name             = "CSet";
            cs.NearMissDistance = nmDistance;

            cs.Active = true;
            station.CollisionSets.Add(cs);



            cs.FirstGroup.Add(a);
            cs.SecondGroup.Add(b);

            CollisionDetector.CheckCollisions(station);
            CollisionDetector.CheckCollisions(cs);
            return("Collisionset Created. Checking collisions.");
        }
Esempio n. 2
0
 public bool Collided(CollisionSet s)
 {
     return s.Collided(this);
 }