public void Test2MaterialsUnion()
        {
            var mat1 = new DCVoxelMaterial()
            {
                Texture = DCFiles.UVCheckerMap10_512
            };
            var mat2 = new DCVoxelMaterial()
            {
                Texture = DCFiles.UVCheckerMap11_512
            };

            var mesh1 =
                new DensityFunctionHermiteGrid(
                    v => DensityHermiteGridTest.SphereDensityFunction(v, 2, new Vector3(2)), new Point3(20, 20, 20),
                    v => mat1);

            var mesh2 =
                new DensityFunctionHermiteGrid(
                    v => DensityHermiteGridTest.SphereDensityFunction(v, 2, new Vector3(2)), new Point3(10, 10, 10),
                    v => mat2);

            var grid = new UnionGrid(mesh1, mesh2, new Point3(1, 1, 1));



            surfaceRenderer.CreateSurface(grid, Matrix.Translation(0, 0, 0));
        }
        private void testDensityFunction(Func <Vector3, float> densityFunction, Point3 dimensions)
        {
            AbstractHermiteGrid grid = null;

            grid = new DensityFunctionHermiteGrid(densityFunction, dimensions);
            var terrGen = PerformanceHelper.Measure(() =>
            {
                grid = HermiteDataGrid.CopyGrid(grid);
            });



            var testEnv = new DualContouringTestEnvironment();

            testEnv.Grid = grid;

            testEnv.AdditionalText = "Terrain to Hermite: " + terrGen.PrettyPrint();


            testEnv.AddToEngine(EngineFactory.CreateEngine());
        }
        public TerrainLodEnvironment()
        {

            tree = new LodOctree();

            var size = 32 * (1 << 10);
            rootNode = tree.Create(size, size);

            //octreeOffset = new Vector3(0, size, 0);
            octreeOffset = new Vector3(0, 0, 0);


            density = VoxelTerrainGenerationTest.createDensityFunction5Perlin(17, size / 2);
            //density = v => DensityHermiteGridTest.SineXzDensityFunction(v, 1/5f, size/2, 3);
            density = densityFunction;
            densityGrid = new DensityFunctionHermiteGrid(density, new Point3(size, size, size));
            minNodeSize = 32;




        }