override public float CalculateDistance(Vector3 hitPoint, float deltaTime)
        {
            base.CalculateDistance(hitPoint, deltaTime);
            float ret = CalculatedDistance;

            ret = RayMarcher.Op_Union(ret, hitPoint.X + 15.0f);
            ret = RayMarcher.Op_Union(ret, -hitPoint.X + 15.0f);
            return(ret);
        }
 override public float CalculateDistance(Vector3 hitPoint, float deltaTime)
 {
     base.CalculateDistance(hitPoint, deltaTime);
     return(RayMarcher.Op_Union(CalculatedDistance,
                                RayMarcher.DistanceSphere(hitPoint -
                                                          new Vector3((float)Math.Sin(RayMarcher.TotalTime * 0.4) * 3 + 2,
                                                                      (float)Math.Sin(RayMarcher.TotalTime * 6) * 1,
                                                                      7 + (float)Math.Cos(RayMarcher.TotalTime * 0.4) * 6),
                                                          1.0f)));
 }
 override public float CalculateDistance(Vector3 hitPoint, float deltaTime)
 {
     base.CalculateDistance(hitPoint, deltaTime);
     return
         (RayMarcher.Op_Union(
              CalculatedDistance,
              RayMarcher.DistanceBox((hitPoint - new Vector3(2.5f, 0, 10))
                                     * Matrix3.CreateRotationY(RayMarcher.TotalTime * 1f)
                                     * Matrix3.CreateRotationX(RayMarcher.TotalTime * 1f)
                                     ,
                                     new Vector3(1, 1, 1))));
 }
        override public float CalculateDistance(Vector3 hitPoint, float deltaTime)
        {
            hitPoint -= new Vector3(-3.5f, 2, 30 + 20.0f * (float)Math.Sin(RayMarcher.TotalTime));

            hitPoint *= Matrix3.CreateRotationY(RayMarcher.TotalTime * 2.2f);
            hitPoint *= Matrix3.CreateRotationZ(RayMarcher.TotalTime * 2.4f);
            base.CalculateDistance(hitPoint, deltaTime);
            float ret = CalculatedDistance;

            ret = RayMarcher.Op_Union(ret, RayMarcher.DistanceTorus(hitPoint, new Vector2(2, 1)));
            // ret = RayMarcher.Op_Union(ret, -hitPoint.X + 15.0f);
            return(ret);
        }