public QuadTree(NiTriShapeData data, int quadLevel)
 {
     this.sampleSize = Game.sampleSize;
     // water
     if (data.GetBSNumUVSets() == 0)
     {
         this.sampleSize = 1;
         this.isLand = false;
     }
     else
     {
         isLand = true;
     }
     this.vertices = data.GetVertices();
     this.boundingBox = new BBox();
     this.boundingBox.Set(float.MaxValue, float.MinValue, float.MaxValue, float.MinValue, float.MaxValue, float.MinValue);
     this.segments = new QuadTreeLeaf[(int)(this.sampleSize * quadLevel * this.sampleSize * quadLevel)];
     for (int index = 0; index < (this.sampleSize * quadLevel) * (this.sampleSize * quadLevel); index++)
     {
         this.segments[index] = this.CreateSegment(index, quadLevel, data.GetTriangles(), data.GetVertices());
         boundingBox.GrowByBox(this.segments[index].boundingBox);
     }
     QuadTreeLeaf quadTreeLeaf = new QuadTreeLeaf();
     List<Triangle> triangles = data.GetTriangles();
     quadTreeLeaf.boundingBox.GrowByBox(boundingBox);
     quadTreeLeaf.triangles = triangles;
     this.entirequad = quadTreeLeaf;
 }