示例#1
0
        public override Application setup(Tree target)
        {
            float     radius     = worldRadius / target.voxelSize();
            Vector3   radiusCube = new Vector3(radius, radius, radius);
            Vector3   center     = target.globalToVoxelPosition(worldPosition);
            Vector3   exactMin   = center - radiusCube;
            Vector3   exactMax   = center + radiusCube;
            SphereApp app        = new SphereApp();

            app.tree     = target;
            app.min      = new Index(target.maxDetail, (uint)exactMin.x, (uint)exactMin.y, (uint)exactMin.z);
            app.max      = new Index(target.maxDetail, (uint)exactMax.x, (uint)exactMax.y, (uint)exactMax.z);
            app.position = center;
            app.radius   = radius;
            return(app);
        }
示例#2
0
        public override Application setup(Tree target)
        {
            Vector3 halfDimension = worldDimensions / target.voxelSize() / 2f;
            Vector3 center        = target.transform.InverseTransformPoint(worldPosition) / target.voxelSize();
            Vector3 exactMin      = center - halfDimension;
            Vector3 exactMax      = center + halfDimension;

            CubeApp app = new CubeApp();

            app.tree          = target;
            app.halfDimension = halfDimension;
            app.min           = new Index(target.maxDetail, (uint)exactMin.x, (uint)exactMin.y, (uint)exactMin.z);
            app.max           = new Index(target.maxDetail, (uint)exactMax.x, (uint)exactMax.y, (uint)exactMax.z);
            app.position      = center;
            return(app);
        }
示例#3
0
        public override Application setup(Tree target)
        {
            float   radius     = worldRadius / target.voxelSize();
            Vector3 radiusCube = new Vector3(radius, radius, radius);
            Vector3 center     = target.transform.InverseTransformPoint(worldPosition) / target.voxelSize();
            Vector3 exactMin   = center - radiusCube;
            Vector3 exactMax   = center + radiusCube;
            BlurApp app        = new BlurApp();

            app.tree      = target;
            app.min       = new Index(target.maxDetail, (uint)exactMin.x, (uint)exactMin.y, (uint)exactMin.z);
            app.max       = new Index(target.maxDetail, (uint)exactMax.x, (uint)exactMax.y, (uint)exactMax.z);
            app.minRadius = radius - 1;
            app.maxRadius = radius + 1;
            app.position  = center;
            app.radius    = radius;
            app.setOriginal(target);
            return(app);
        }