[vtkusers] Problems with visualizing multiple scalars on vtkDataSetMapper

Sarah Macumber S.Macumber at QuestReliability.com
Fri Jul 11 17:36:27 EDT 2008


Hi Gerrick, I figured it out.
 
vtkDoubleArray is not calling Modified() internally after calls like Initialize() SetTuple() or SetArray() .  An explicit call to Modified() fixes the issue.  I am not clear why this is not being done.
 
I am developing in Dot Net.
 
Sarah

________________________________

From: Gerrick Bivins [mailto:gbivins at objectreservoir.com]
Sent: Fri 7/11/2008 4:07 PM
To: Sarah Macumber; VTK-users
Subject: Re: [vtkusers] Problems with visualizing multiple scalars on vtkDataSetMapper



Hey, what lang are you using, C++,Java, something else?

When are you calling the "getRange" method?
I could probably explain it better if I could see your setup code.
Gerrick

On 7/11/08 3:56 PM, "Sarah Macumber" <S.Macumber at QuestReliability.com>
wrote:

> Hi Gerrick thanks for the helpful reply, do you know why
> 
>    scalars.setArray(double, length,1);
>    double [] range = scalars.getRange();
> 
> the range of the data is not updated after you have set a new array?  Even if
> I call ComputeRange I the value passed by from GetRange is not updated and I
> have to manually (for loop) compute my scalar range for the call,
> 
> mapper.SetScalarRange( range);
>
> Thanks, Sarah
>
> ________________________________
>
> From: Gerrick Bivins [mailto:gbivins at objectreservoir.com]
> Sent: Fri 7/11/2008 1:33 PM
> To: Sarah Macumber; VTK-users
> Subject: Re: [vtkusers] Problems with visualizing multiple scalars on
> vtkDataSetMapper
>
>
>
> No Prob.
> I actually use vtkPointData interface  which inherits from
> vtkDatasetAttribute rather than vtkFieldData
> http://www.vtk.org/doc/nightly/html/classvtkDataSetAttributes.html
>
> and then add my scalar arrays to that. For example:
>
>  vtkFloatArray[] scalars = new vtkFloatArray[ numberOfScalars ];
> ...
>        for( int f = 0; f < numberOfScalars; ++f )
>        {
>           
>                 scalars [f] = new vtkFloatArray();
>                 scalars [f].SetName( scalarComponents.get(f).GetName() );
>                 dataset.GetPointData().AddArray( scalars [f] );
>        }
> ...
>
> Gerrick
>
> On 7/11/08 12:51 PM, "Sarah Macumber" <S.Macumber at QuestReliability.com>
> wrote:
>
>> Hey Gerrick thanks for the quick reply, can you please say more.  How do you
>> connect your field data to begin with?  Also I am using a vtkDataSetMapper
>> because I have 3D data and I think it may have issues with visualizing more
>> than the 0th scalar.  When I try your code I get it to render correctly on
>> the
>> first pass but if I try to switch scalars I get a solid color rendering so it
>> is not switching to the other field.
>>
>> If you can send some code which shows how you connect your "field data" to
>> your polydata / grid that would be very useful.
>>
>> Thanks Sarah
>>
>> ________________________________
>>
>> From: Gerrick Bivins [mailto:gbivins at objectreservoir.com]
>> Sent: Fri 7/11/2008 12:08 PM
>> To: Sarah Macumber; VTK-users
>> Subject: Re: [vtkusers] Problems with visualizing multiple scalars on
>> vtkDataSetMapper
>>
>>
>>
>> Hi Sarah,
>> How are you setting up your mapper?
>>
>> I use a lookup table and setup my mapper something like this:
>> ...
>>  lut = new vtkLookupTable();
>>  lut.SetNumberOfTableValues(256);
>>  lut.SetHueRange( 2.0f / 3.0f, 0.0f );
>>      
>>  mapper = new vtkPolyDataMapper();
>>  mapper.SetLookupTable( lut );
>>  mapper.SetScalarModeToUsePointFieldData();
>> ...
>>
>> Then anytime I change the current scalar, I update the mapper:
>>
>> void updateCurrentScalarForMapper( String currentScalar,
>>                                    double [] currentScalarRange )
>> {
>>    mapper.SelectColorArray( currentScalar );
>>    mapper.SetScalarRange( currentScalarRange );
>> }
>>
>>
>>
>> Gerrick
>>
>>
>> On 7/11/08 11:46 AM, "Sarah Macumber" <S.Macumber at QuestReliability.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I have 2D / 3D data so I am using an vtkUnstructuredGrid & a
>>> vtkDataSetMapper
>>> to visualize my data.  My data has several associated scalar values which I
>>> want to be able to switch between for coloring purposes.  Calling SetScalars
>>> with the new scalar value does not update the visualization pipeline as
>>> described in this thread :
>>> Grid.GetCellData().SetScalars(currentScalars);
>>>
>>> http://www.vtk.org/pipermail/vtk-developers/2007-September/004700.html
>>> <http://www.vtk.org/pipermail/vtk-developers/2007-September/004700.html>
>>>
>>> but I still don't fully understand what to do about it.
>>>
>>> What is the best way to switch your viewable scalar value on a
>>> vtkUnstructuredGrid?
>>>
>>> Thanks, Sarah
>>>
>>> _______________________________________________
>>> This is the private VTK discussion list.
>>> Please keep messages on-topic. Check the FAQ at:
>>> http://www.vtk.org/Wiki/VTK_FAQ
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>>
>>
>
>
>






More information about the vtkusers mailing list