Exemple #1
0
 private void Allocate(SgtTerrainCube cube)
 {
     foreach (var quad in cube.Quads)
     {
         Allocate(quad);
     }
 }
Exemple #2
0
 private void Dispose(SgtTerrainCube cube)
 {
     foreach (var quad in cube.Quads)
     {
         Dispose(quad);
     }
 }
        public SgtTerrainQuad(SgtTerrainCube newCube, int newFace, double newTwist, double3 newCubeC, double3 newCubeH, double3 newCubeV)
        {
            cube  = newCube;
            face  = newFace;
            twist = newTwist;
            cubeC = SgtTerrainTopology.Tilt(newCubeC);
            cubeH = SgtTerrainTopology.Tilt(newCubeH);
            cubeV = SgtTerrainTopology.Tilt(newCubeV);
            cubeO = math.cross(math.normalize(cubeH), cubeV);

            Allocate();
        }
Exemple #4
0
        private void UpdateLists()
        {
            var distanceCount = GetDepth(smallestTriangleSize);

            if (distanceCount > distances.Count)
            {
                for (var i = distances.Count; i < distanceCount; i++)
                {
                    distances.Add(0.0);
                }
            }
            else if (distances.Count > distanceCount)
            {
                for (var i = distances.Count - 1; i >= distanceCount; i--)
                {
                    distances.RemoveAt(i);
                }
            }

            var cubeCount = distanceCount + 1;

            if (cubeCount > cubes.Count)
            {
                for (var i = cubes.Count; i < cubeCount; i++)
                {
                    var cube = new SgtTerrainCube(this);

                    cubes.Add(cube);

                    Allocate(cube);
                }
            }
            else if (cubes.Count > cubeCount)
            {
                for (var i = cubes.Count - 1; i >= cubeCount; i--)
                {
                    Dispose(cubes[i]);

                    cubes.RemoveAt(i);
                }
            }

            for (var i = 0; i < cubeCount; i++)
            {
                cubes[i].Setup(i, resolution << i);
            }
        }