private void onCollision(Collidable c1, Spatial sp1, Collidable c2)
        {
            c1.health -= c2.damage;
            c2.health -= c1.damage;
            c1.onCollision(new eCollision(c1, c2));
            c2.onCollision(new eCollision(c1, c2));

            for (int i = 0; i < c2.children.Count; i++)
            {
                checkCollision(c1, sp1, c2.children[i], c2.children[i].getComponent<Spatial>());
            }
        }
        private void checkCollision(Collidable c1, Spatial sp1, Collidable c2, Spatial sp2)
        {
            Vector3[] points1 = new Vector3[2];
            Vector3[] points2 = new Vector3[2];
            points1[0] = Vector3.Transform(c1.boundingBox.Min, sp1.transform);
            points1[1] = Vector3.Transform(c1.boundingBox.Max, sp1.transform);
            points2[0] = Vector3.Transform(c2.boundingBox.Min, sp2.transform);
            points2[1] = Vector3.Transform(c2.boundingBox.Max, sp2.transform);
            BoundingBox collsionBoundingBox2 = BoundingBox.CreateFromPoints(points1);
            BoundingBox collsionBoundingBox1 = BoundingBox.CreateFromPoints(points2);

            if (collsionBoundingBox1.Intersects(collsionBoundingBox2))
            {
                Drawable3D dw1 = c1.getComponent<Drawable3D>();
                Drawable3D dw2 = c2.getComponent<Drawable3D>();
                if (dw1 != null && dw2 != null)
                {
                    foreach (BoundingBox bb1 in dw1.boundingBoxes)
                    {
                        points1[0] = Vector3.Transform(bb1.Min, sp1.transform);
                        points1[1] = Vector3.Transform(bb1.Max, sp1.transform);
                        collsionBoundingBox1 = BoundingBox.CreateFromPoints(points1);
                        foreach (BoundingBox bb2 in dw2.boundingBoxes)
                        {
                            points2[0] = Vector3.Transform(bb2.Min, sp2.transform);
                            points2[1] = Vector3.Transform(bb2.Max, sp2.transform);
                            collsionBoundingBox2 = BoundingBox.CreateFromPoints(points2);
                            if (collsionBoundingBox1.Intersects(collsionBoundingBox2))
                            {
                                onCollision(c1, sp1, c2);
                            }
                        }
                    }
                }
                else
                {
                    onCollision(c1, sp1, c2);
                }
            }
        }