public TerrainNode(TerrainNode parent, Quadrant quad, LatLon bl, LatLon tl, LatLon tr, LatLon br) { Parent = parent; Quadrant = quad; corners = new LatLon[4] { bl, tl, tr, br }; latLonExtents = new Extent(BL.Longitude, BL.Latitude, TR.Longitude, TR.Latitude); var mercBL = RenderWGS84.ToGoogleBing(BL.Longitude, BL.Latitude); var mercTR = RenderWGS84.ToGoogleBing(TR.Longitude, TR.Latitude); meterExtents = new Extent(mercBL.X, mercBL.Y, mercTR.X, mercTR.Y); center = LatLon.Average(corners); splitDepth = 0; Vector3D[] transformed = transformCorners(); this.aabb = BoundingBox.FromPoints(transformed.Select(vec => vec.ToVector3()).ToArray()); generateSplitBox(); }