public QuadTree(NiTriShapeData data, BBox boundingBox)
        {
            this.nodes    = new QuadTreeNode[4];
            this.vertices = data.GetVertices();
            BBox  boundingBox1 = new BBox();
            BBox  boundingBox2 = new BBox();
            BBox  boundingBox3 = new BBox();
            BBox  boundingBox4 = new BBox();
            float num1         = (float)(((double)boundingBox.px2 - (double)boundingBox.px1) / 2.0);
            float num2         = (float)(((double)boundingBox.py2 - (double)boundingBox.py1) / 2.0);

            boundingBox1.Set(boundingBox.px1, boundingBox.px1 + num1, boundingBox.py1, boundingBox.py1 + num2, 0.0f, 0.0f);
            boundingBox2.Set(boundingBox.px1 + num1, boundingBox.px2, boundingBox.py1, boundingBox.py1 + num2, 0.0f, 0.0f);
            boundingBox3.Set(boundingBox.px1, boundingBox.px1 + num1, boundingBox.py1 + num2, boundingBox.py2, 0.0f, 0.0f);
            boundingBox4.Set(boundingBox.px1 + num1, boundingBox.px2, boundingBox.py1 + num2, boundingBox.py2, 0.0f, 0.0f);
            this.nodes[0] = this.CreateQuadNode(data.GetTriangles(), data.GetVertices(), boundingBox1);
            this.nodes[1] = this.CreateQuadNode(data.GetTriangles(), data.GetVertices(), boundingBox2);
            this.nodes[2] = this.CreateQuadNode(data.GetTriangles(), data.GetVertices(), boundingBox3);
            this.nodes[3] = this.CreateQuadNode(data.GetTriangles(), data.GetVertices(), boundingBox4);
        }