Beispiel #1
0
        //private Vector3 MinVertex;
        //private Vector3 MaxVertex;
        public QuadTreeNode(QuadTreeNode parent, TerrainTile tile, int tileSize, int depth, bool checkFrustum, Vector2 offset, params Vector4[] v)
        {
            this.tile = tile;
            this.checkFrustum = checkFrustum;
            this.depth = depth;
            this.tileSize = tileSize;
            this.Offset = offset;

            //if (parent != null)
            //{
            //    //TileOffset = parent.TileOffset;
            //}
            //else
            //{
            //    // get tile offset in world space
            //    TileOffset = Vector4.Transform(new Vector4(0f,0f,0f,1f), tile.InverseModelMatrix);
            //}

            for (int i = 0; i < 8; i++)
            {
                vertex[i] = v[i];
            }

            BottomCentre = (vertex[(int)Corner.BottomNearLeft] + vertex[(int)Corner.BottomFarRight]) * 0.5f;
            TopCentre = (vertex[(int)Corner.TopNearLeft] + vertex[(int)Corner.TopFarRight]) * 0.5f;
        }
Beispiel #2
0
        public IEnumerable<PatchDescriptor> GetPatches(TerrainTile tile, Frustum f, Vector3 eyeWorld)
        {
            // create root node
            var root = new QuadTreeNode(tile);

            return root.GetPatches(eyeWorld,f);
        }