vtkPlanes bug
This issue was created automatically from an original Mantis Issue. Further discussion may take place here.
The old "GetPlane() always returns the same object" kind of problem is pervasive in VTK.
A vtkPlanes object has exactly one Plane, and when you call GetPlane(i), it simply sets the Normal and Origin of that plane as appropriate, and then returns it. This is what caused the problem you were seeing.
Digging a bit deeper, this problem did not occur in VTK 4.2, since back then GetPlane() would create a new plane via vtkPlane::New(), and then return that new plane after setting the Origin and Normal. Of course, returning a New'ly created object results in a memory leak.
The solution would be for vtkPlanes to have a different internal plane for each index i (any volunteers?).
Note that vtkPolyData::GetCell() has the same problem, as do a multitude of vtk Get methods.
It's generally safe to assume, for any Get(int i) method that returns a vtkObject, that the same object instance will be returned for all values of i, unless you are Get'ing the object from some sort of collection. Read the source whenever you're not certain.
Also, Dean, note that as Mathieu said, you can simplify your code by just doing
box->GetPlanes(planes); mapper->SetClippingPlanes(planes);