Index: vtkBiQuadraticQuad.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Filtering/vtkBiQuadraticQuad.cxx,v
retrieving revision 1.7
diff -u -r1.7 vtkBiQuadraticQuad.cxx
--- vtkBiQuadraticQuad.cxx	31 Jul 2006 22:18:16 -0000	1.7
+++ vtkBiQuadraticQuad.cxx	1 Sep 2006 11:19:15 -0000
@@ -187,7 +187,7 @@
     for (int j=0; j<4; j++)
       {
       this->Quad->Points->SetPoint(j,this->Points->GetPoint(LinearQuads[i][j]));
-      this->Quad->PointIds->SetId(j,LinearQuads[i][j]);
+      this->Quad->PointIds->SetId(j,this->PointIds->GetId(LinearQuads[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearQuads[i][j]));
       }
 
@@ -211,7 +211,7 @@
     for ( int j=0; j<4; j++) //for each of the four vertices of the linear quad
       {
       this->Quad->Points->SetPoint(j,this->Points->GetPoint(LinearQuads[i][j]));
-      this->Quad->PointIds->SetId(j,LinearQuads[i][j]);
+      this->Quad->PointIds->SetId(j,this->PointIds->GetId(LinearQuads[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearQuads[i][j]));
       }
 
Index: vtkBiQuadraticQuadraticWedge.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Filtering/vtkBiQuadraticQuadraticWedge.cxx,v
retrieving revision 1.9
diff -u -r1.9 vtkBiQuadraticQuadraticWedge.cxx
--- vtkBiQuadraticQuadraticWedge.cxx	31 Jul 2006 22:18:16 -0000	1.9
+++ vtkBiQuadraticQuadraticWedge.cxx	1 Sep 2006 11:19:15 -0000
@@ -317,7 +317,7 @@
     for (int j=0; j<6; j++) //for each point of wedge
       {
       this->Wedge->Points->SetPoint(j,this->Points->GetPoint(LinearWedges[i][j]));
-      this->Wedge->PointIds->SetId(j,LinearWedges[i][j]);
+      this->Wedge->PointIds->SetId(j,this->PointIds->GetId(LinearWedges[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearWedges[i][j]));
       }
     this->Wedge->Contour(value,this->Scalars,locator,verts,lines,polys, inPd,outPd,inCd,cellId,outCd);
@@ -325,7 +325,7 @@
 }
 
 //----------------------------------------------------------------------------
-// Clip this quadratic wedge using scalar value provided. Like contouring, 
+// Clip this biquadratic wedge using scalar value provided. Like contouring, 
 // except that it cuts the wedge to produce tetrahedra.
 void
 vtkBiQuadraticQuadraticWedge::Clip (double value, vtkDataArray *cellScalars,
@@ -339,7 +339,7 @@
     for (int j=0; j<6; j++) //for each of the six vertices of the wedge
       {
       this->Wedge->Points->SetPoint(j,this->Points->GetPoint(LinearWedges[i][j]));
-      this->Wedge->PointIds->SetId(j,LinearWedges[i][j]);
+      this->Wedge->PointIds->SetId(j,this->PointIds->GetId(LinearWedges[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearWedges[i][j]));
       }
     this->Wedge->Clip(value,this->Scalars,locator,tets,inPd,outPd, inCd,cellId,outCd,insideOut);
Index: vtkQuadraticLinearWedge.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Filtering/vtkQuadraticLinearWedge.cxx,v
retrieving revision 1.9
diff -u -r1.9 vtkQuadraticLinearWedge.cxx
--- vtkQuadraticLinearWedge.cxx	31 Jul 2006 22:18:17 -0000	1.9
+++ vtkQuadraticLinearWedge.cxx	1 Sep 2006 11:19:15 -0000
@@ -70,7 +70,7 @@
 // We are using 4 linear wedge
 static int LinearWedges[4][6] = {
     {0, 6, 8,  3,  9, 11},
-    {8, 6, 7, 11,  9, 10},
+    {6, 7, 8,  9, 10, 11},
     {6, 1, 7,  9,  4, 10},
     {8, 7, 2, 11, 10,  5}
 };
@@ -334,7 +334,7 @@
     for (int j=0; j<6; j++) //for each point of wedge
       {
       this->Wedge->Points->SetPoint(j,this->Points->GetPoint(LinearWedges[i][j]));
-      this->Wedge->PointIds->SetId(j,LinearWedges[i][j]);
+      this->Wedge->PointIds->SetId(j,this->PointIds->GetId(LinearWedges[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearWedges[i][j]));
       }
       this->Wedge->Contour(value,this->Scalars,locator,verts,lines,polys,
@@ -343,7 +343,7 @@
 }
 
 //----------------------------------------------------------------------------
-// Clip this quadratic wedge using scalar value provided. Like contouring,
+// Clip this quadratic-linear wedge using scalar value provided. Like contouring,
 // except that it cuts the wedge to produce tetrahedra.
 void vtkQuadraticLinearWedge::Clip (double value, vtkDataArray *cellScalars,
              vtkPointLocator * locator, vtkCellArray * tets,
@@ -356,7 +356,7 @@
     for (int j=0; j<6; j++) //for each of the six vertices of the wedge
       {
       this->Wedge->Points->SetPoint(j,this->Points->GetPoint(LinearWedges[i][j]));
-      this->Wedge->PointIds->SetId(j,LinearWedges[i][j]);
+      this->Wedge->PointIds->SetId(j,this->PointIds->GetId(LinearWedges[i][j]));
       this->Scalars->SetValue(j,cellScalars->GetTuple1(LinearWedges[i][j]));
       }
       this->Wedge->Clip(value,this->Scalars,locator,tets,inPd,outPd,
Index: vtkTriQuadraticHexahedron.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Filtering/vtkTriQuadraticHexahedron.cxx,v
retrieving revision 1.8
diff -u -r1.8 vtkTriQuadraticHexahedron.cxx
--- vtkTriQuadraticHexahedron.cxx	31 Jul 2006 22:18:17 -0000	1.8
+++ vtkTriQuadraticHexahedron.cxx	1 Sep 2006 11:19:15 -0000
@@ -299,7 +299,7 @@
     for (int j = 0; j < 8; j++)
       {
       this->Hex->Points->SetPoint (j, this->Points->GetPoint (LinearHexs[i][j]));
-      this->Hex->PointIds->SetId (j, LinearHexs[i][j]);
+      this->Hex->PointIds->SetId (j, this->PointIds->GetId(LinearHexs[i][j]));
       this->Scalars->SetValue (j, cellScalars->GetTuple1 (LinearHexs[i][j]));
       }
     this->Hex->Contour (value, this->Scalars, locator, verts, lines, polys,
@@ -325,7 +325,7 @@
     for (int j = 0; j < 8; j++)
       {
       this->Hex->Points->SetPoint (j, this->Points->GetPoint (LinearHexs[i][j]));
-      this->Hex->PointIds->SetId (j, LinearHexs[i][j]);
+      this->Hex->PointIds->SetId (j, this->PointIds->GetId(LinearHexs[i][j]));
       this->Scalars->SetValue (j, cellScalars->GetTuple1 (LinearHexs[i][j]));
       }
     this->Hex->Clip (value, this->Scalars, locator, tets, inPd, outPd, inCd, cellId, outCd, insideOut);
Index: Testing/Cxx/quadCellConsistency.cxx
===================================================================
RCS file: /cvsroot/VTK/VTK/Filtering/Testing/Cxx/quadCellConsistency.cxx,v
retrieving revision 1.3
diff -u -r1.3 quadCellConsistency.cxx
--- Testing/Cxx/quadCellConsistency.cxx	8 May 2006 18:23:14 -0000	1.3
+++ Testing/Cxx/quadCellConsistency.cxx	1 Sep 2006 11:19:15 -0000
@@ -23,14 +23,20 @@
 #include "vtkQuadraticTriangle.h"
 #include "vtkQuad.h"
 #include "vtkQuadraticQuad.h"
+#include "vtkBiQuadraticQuad.h"
+#include "vtkQuadraticLinearQuad.h"
 #include "vtkTetra.h"
 #include "vtkQuadraticTetra.h"
 #include "vtkHexahedron.h"
 #include "vtkQuadraticHexahedron.h"
+#include "vtkTriQuadraticHexahedron.h"
+#include "vtkBiQuadraticQuadraticHexahedron.h"
 #include "vtkPyramid.h"
 #include "vtkQuadraticPyramid.h"
 #include "vtkWedge.h"
 #include "vtkQuadraticWedge.h"
+#include "vtkBiQuadraticQuadraticWedge.h"
+#include "vtkQuadraticLinearWedge.h"
 
 void InitializeCell(vtkCell *cell)
 {
@@ -80,8 +86,10 @@
     if( lFace->GetCellType() == VTK_TRIANGLE )
       sum += (qFace->GetCellType() != VTK_QUADRATIC_TRIANGLE);
     // Check that linear Quad match quad Quad
-    if( lFace->GetCellType() == VTK_QUAD )
-      sum += (qFace->GetCellType() != VTK_QUADRATIC_QUAD );
+    if( lFace->GetCellType() == VTK_QUAD &&
+      (qFace->GetCellType() != VTK_QUADRATIC_QUAD && qFace->GetCellType() != VTK_BIQUADRATIC_QUAD &&
+      qFace->GetCellType() != VTK_QUADRATIC_LINEAR_QUAD)  )
+      sum++;
     // Check that the points of the linear cell match the one from the quadratic one
     for( int i=0; i<n; i++)
       {
@@ -122,14 +130,24 @@
   // Quad
   vtkQuad *quad = vtkQuad::New();
   vtkQuadraticQuad *qquad = vtkQuadraticQuad::New();
+  vtkBiQuadraticQuad *biqquad = vtkBiQuadraticQuad::New();
+  vtkQuadraticLinearQuad *qlquad = vtkQuadraticLinearQuad::New();
 
   InitializeCell(quad);
   InitializeCell(qquad);
+  InitializeCell(biqquad);
+  InitializeCell(qlquad);
   ret += CompareCellEdges(quad, qquad);
   ret += CompareCellFaces(quad, qquad);
+  ret += CompareCellEdges(quad, biqquad);
+  ret += CompareCellFaces(quad, biqquad);
+  ret += CompareCellEdges(quad, qlquad);
+  ret += CompareCellFaces(quad, qlquad);
 
   quad->Delete();
   qquad->Delete();
+  biqquad->Delete();
+  qlquad->Delete();
 
   // Tetra
   vtkTetra *tetra = vtkTetra::New();
@@ -146,14 +164,24 @@
   // Hexhedron
   vtkHexahedron *hex = vtkHexahedron::New();
   vtkQuadraticHexahedron *qhex = vtkQuadraticHexahedron::New();
+  vtkTriQuadraticHexahedron *triqhex = vtkTriQuadraticHexahedron::New();
+  vtkBiQuadraticQuadraticHexahedron *biqqhex = vtkBiQuadraticQuadraticHexahedron::New();
 
   InitializeCell(hex);
   InitializeCell(qhex);
+  InitializeCell(triqhex);
+  InitializeCell(biqqhex);
   ret += CompareCellEdges(hex, qhex);
   ret += CompareCellFaces(hex, qhex);
+  ret += CompareCellEdges(hex, triqhex);
+  ret += CompareCellFaces(hex, triqhex);
+  ret += CompareCellEdges(hex, biqqhex);
+  ret += CompareCellFaces(hex, biqqhex);
 
   hex->Delete();
   qhex->Delete();
+  triqhex->Delete();
+  biqqhex->Delete();
 
   // Pyramid
   vtkPyramid *pyr= vtkPyramid::New();
@@ -170,14 +198,19 @@
   // Wedge cells
   vtkWedge *wedge = vtkWedge::New();
   vtkQuadraticWedge *qwedge = vtkQuadraticWedge::New();
+  vtkBiQuadraticQuadraticWedge *biqwedge = vtkBiQuadraticQuadraticWedge::New();
 
   InitializeCell(wedge);
   InitializeCell(qwedge);
+  InitializeCell(biqwedge);
   ret += CompareCellEdges(wedge, qwedge);
   ret += CompareCellFaces(wedge, qwedge);
+  ret += CompareCellEdges(wedge, biqwedge);
+  ret += CompareCellFaces(wedge, biqwedge);
 
   wedge->Delete();
   qwedge->Delete();
+  biqwedge->Delete();
 
   return ret;
 }
