Hey All,

I'm not sure if John has it exactly right, but he may not be that far off...

I was working today on a variant of the Clip filter which would not remove coincident points, and somehow in my ServerManger XML I ended up always exposing the Scalars input combo-box (which is used as input to vtkClipDataSet::SetInputArrayToProcess()) no matter whether I was clipping by plane, box, sphere or scalars. By default, vtkClipDataSet uses the active scalars on the first input for this array -- but using this combo box I could control this input even though I wasn't really "using" it (because I was clipping with a box or a plane).

The clip filter always keeps all the scalars from the block which contains the input to SetInputArrayToProcess(). The filter loses data from the other block, and it always seems to be the most recent array added to that data set -- i.e. the one which should be the "active scalars" in that block. This agrees with the behavior seen in my other examples in which the "second" data set highlighted before the Group filter is the one that loses a data array -- the active scalars of the first selected block are probably the ones being used for SetInputArrayToProcess().

I can't track it down to the type of SetActiveScalars() without a call to AddArray() that John is talking about, but it seems related since it is the "active" scalars that are getting lost.

If you think this is intelligible at all, I can add it to the bug report.

Talk to you later,
-Eric


On Feb 6, 2009, at 9:38 AM, John Biddiscombe wrote:

Eric et al,

I recently had a problem where a filter opreated normally when used normally, but when someone put a calculator in front of it, it stopped working. The filter in question instantiated other filters internally.

I tracked to the problem down to this.

Calculator calls SetActiveScalars(New data)
another filter later does a PointData()->PassData(blah)
->SetActiveScalars(More New data)

And the New data from before was lost. I do not like this SetActiveScalars function because it replaces (not adds) whatever scalar was there before. I cnaged the offending filter (in this case vtkSurfaceVectors) on my copy to do
PointData()->PassData(blah)
PointData()->AddArray(newData);
PointData()->SetActiveScalars(newData->GetName())

or something like that (from memory).

I have no idea if this is related to your problem, but I just thought I'd vent my spleen and start a campaigh to remove this SetActiveScalars(...) call as it is just rubbish. (At least it should be modified internally to not remove the old active slalars if they are are about to be wiped)

JB


Hey Utkarsh,

No, I've never seen the clip lose data on one dataset by itself.

The other interesting thing is that I can't always get this data loss to happen if the data was generated as part of a source from the Sources menu. It's much more likely to disappear when the data was generated by a filter or brought in by a reader.

For example, if you generate a Box and a Wavelet source, grouping and clipping them won't lose any data, but if you run Generate IDs on one of them, then select GenerateIds1 second before grouping, then clip, the "Ids" point data disappears...

Thanks,
-Eric


On Feb 6, 2009, at 7:37 AM, Utkarsh Ayachit wrote:

Eric,

Does the loss of arrays happen even if you clip the orginal dataset by
itself (without grouping it using the group filter)?

Utkarsh

On Wed, Feb 4, 2009 at 3:53 PM, Eric E. Monson <[email protected]> wrote:
Hello,

I'm creating a multi-block data set using the group filter and then clipping it. The results of the clip are always missing one of the scalars associated with the second data set that I highlighted before applying the group filter. This only seems to happen if one of the data sets has multiple scalars or vectors associated with it -- if they each only have one, nothing is lost in the clip. (ParaView 3.4 and CVS, OS X 10.5.6 and Windows XP
32-bit, no MPI)

I originally saw this with my own data, but I am able to easily replicate this by creating two point sources. I apply the Elevation filter to the first. Then, to the second I apply Brownian Vectors, plus a Calculator that computes the magnitude of those vectors. If I highlight Elevation and then Calculator, then Group and Clip, I lose the vector magnitude scalar at the Clip stage. If I highlight the Calculator and then the Elevation, then Group
and Clip, I lose the elevation scalar.

Please let me know if anyone has any ideas about where this could be coming
from.

Thanks a lot,
-Eric

------------------------------------------------------
Eric E Monson
Duke Visualization Technology Group


_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview


_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview


--
John Biddiscombe,                            email:biddisco @ cscs.ch
http://www.cscs.ch/
CSCS, Swiss National Supercomputing Centre  | Tel:  +41 (91) 610.82.07
Via Cantonale, 6928 Manno, Switzerland      | Fax:  +41 (91) 610.82.82


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to