private void ExtractSquare(int r, Int16Triple p, MeshBuilder_IntegerVertex mb)
        {
            int         p0x, p0y, p0z, p1x, p1y, p1z, p2x, p2y, p2z;//
            Int16Triple deltaA0 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][0].X];
            Int16Triple deltaA1 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][0].Y];
            Int16Triple deltaA2 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][0].Z];

            p0x = p.X + deltaA0.X;
            p0y = p.Y + deltaA0.Y;
            p0z = p.Z + deltaA0.Z;
            p1x = p.X + deltaA1.X;
            p1y = p.Y + deltaA1.Y;
            p1z = p.Z + deltaA1.Z;
            p2x = p.X + deltaA2.X;
            p2y = p.Y + deltaA2.Y;
            p2z = p.Z + deltaA2.Z;
            mb.AddTriangle(new Int16Triple(p0x, p0y, p0z), new Int16Triple(p1x, p1y, p1z), new Int16Triple(p2x, p2y, p2z));


            Int16Triple deltaB0 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][1].X];
            Int16Triple deltaB1 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][1].Y];
            Int16Triple deltaB2 = VertexIndexToPositionDelta[AdjIndexToVertexIndices[r][1].Z];

            p0x = p.X + deltaB0.X;
            p0y = p.Y + deltaB0.Y;
            p0z = p.Z + deltaB0.Z;
            p1x = p.X + deltaB1.X;
            p1y = p.Y + deltaB1.Y;
            p1z = p.Z + deltaB1.Z;
            p2x = p.X + deltaB2.X;
            p2y = p.Y + deltaB2.Y;
            p2z = p.Z + deltaB2.Z;
            mb.AddTriangle(new Int16Triple(p0x, p0y, p0z), new Int16Triple(p1x, p1y, p1z), new Int16Triple(p2x, p2y, p2z));
        }