/// <summary>
        /// Evaluates a single step in the refinementloop.
        /// </summary>
        protected virtual void RefinementStep(int x, int y, int z, int looplevel)
        {
            Vec3 origin = new Vec3(x * _step, y * _step, z * _step) + halfstepValues[looplevel];

            if (_useLogging)
            {
                _log.NewCube(origin, halfstepValues[looplevel].X);
            }
            if (Math.Abs(_obj.Distance(origin)) < lazyValue[looplevel])
            {
                if (looplevel == 0)
                {
                    PostStep(x, y, z, origin);
                }
                else
                {
                    RefinementLoop(x, y, z, looplevel - 1);
                }
            }
        }
示例#2
0
 public override float Distance(Vec3 p)
 {
     return(_complex.Distance(p));
 }