[Paraview] ParaviewWeb : Repeated calls to GetLookupTableForArray do not change the RGBpoints array

Utkarsh Ayachit utkarsh.ayachit at kitware.com
Thu May 19 15:05:28 EDT 2011


Indeed that's what you should do. GetLookupTableForArray's documentation
states that: "...Keyword arguments can be passed in to initialize the LUT if
a new one is created.". Hence the arguments are used only the first time
when the LUT is created.

Utkarsh

On Thu, May 19, 2011 at 2:28 PM, Sebastien Jourdain <
sebastien.jourdain at kitware.com> wrote:

> Hi Raj,
>
> why don't you get the LUT the first time and then just change the values on
> it.
>
>  Lut.setRGBPoints(rgbPoints) ?
>
> Seb
>
>
> On Thu, May 19, 2011 at 2:20 PM, Rajvikram Singh <rajvikrams at yahoo.com>wrote:
>
>> Hi Sebastien
>>
>> Here are the two javascript functions used for setting up the volume
>> visualization. The second one (loadXMLColorMap()) is where Jquery is used to
>> read the colormaps from the XML file. The variables Lut, Sof and
>> CurrColormapFile are global. CurrColormapFile is the XML file chosen by the
>> user from the UI :
>>
>>         //
>> **********************************************************************************************
>>         // set displayProperties for a particular data to show as volume
>>         //
>> **********************************************************************************************
>>         this.setupVolumeView = function (_data, _view) {
>>
>>             // load and setup the LUT and SOF before changing
>> representation
>>             this.loadXMLColorMap("./colormaps/" + CurrColormapFile);
>>
>>             pv.SetDisplayProperties( {
>>             proxy : _data,
>>             view  : _view,
>>             SelectMapper : 'GPU',
>>             Representation : 'Volume',
>>             LookupTable : Lut,
>>             ColorArrayName : 'ImageFile',
>>             ScalarOpacityFunction : Sof
>>             } );
>>
>>         } // end of setDisplayToVolume()
>>
>>
>>         //
>> **********************************************************************************************
>>         // Load a Paraview color map from an XML file
>>         //
>> **********************************************************************************************
>>         this.loadXMLColorMap = function(_file) {
>>
>>             var colorSpace = 'None';
>>             var nanField;
>>             var rgbPointsIdx = 0;
>>             var sofPointsIdx = 0;
>>             var i, x, o, r, g, b;
>>
>>             var nanColor = new Array();
>>             var rgbPoints = new Array();
>>             var sofPoints = new Array();
>>
>>             jQuery.ajax({
>>                 url : _file,
>>                 success : function(data) {
>>                     // get the color space
>>                     colorSpace =
>> jQuery(data).find("ColorMap").attr("space");
>>
>>                     // get the values to create LUT and SOF
>>                     jQuery(data).find("Point").each(function() {
>>                         i = jQuery(this);
>>                         x = parseFloat(i.attr("x"));
>>                         o = parseFloat(i.attr("o"));
>>                         r = parseFloat(i.attr("r"));
>>                         g = parseFloat(i.attr("g"));
>>                         b = parseFloat(i.attr("b"));
>>
>>                         // Populate the rgbPoints array
>>                         rgbPoints[rgbPointsIdx++] = x;
>>                         rgbPoints[rgbPointsIdx++] = r;
>>                         rgbPoints[rgbPointsIdx++] = g;
>>                         rgbPoints[rgbPointsIdx++] = b;
>>
>>                         //Populate the sof Points array
>>                         sofPoints[sofPointsIdx++] = x;
>>                         sofPoints[sofPointsIdx++] = o;
>>
>>                     });
>>
>>                     nanField = jQuery(data).find("NaN");
>>                     nanColor[0] = parseFloat(nanField.attr("r"));
>>                     nanColor[1] = parseFloat(nanField.attr("g"));
>>                     nanColor[2] = parseFloat(nanField.attr("b"));
>>                     },
>>
>>                 async : false
>>             });
>>
>>
>>
>>             // Create the LUT and SOF needed for the transfer function
>>
>>             Lut = pv.GetLookupTableForArray({arrayname : "ImageFile",
>> num_components : 1, HSVWrap : 0, NanColor : nanColor, RGBPoints : rgbPoints,
>> ColorSpace : colorSpace});
>>
>>             Sof = pv.CreatePiecewiseFunction( {Points: sofPoints});
>>
>>
>>         } // End of loadXMLColorMap()
>>
>>
>>
>> Thanks again.
>> - Raj
>>
>>
>> --- On *Thu, 19/5/11, Sebastien Jourdain <sebastien.jourdain at kitware.com>
>> * wrote:
>>
>>
>> From: Sebastien Jourdain <sebastien.jourdain at kitware.com>
>>
>> Subject: Re: [Paraview] ParaviewWeb : Repeated calls to
>> GetLookupTableForArray do not change the RGBpoints array
>> To: "Rajvikram Singh" <rajvikrams at yahoo.com>
>> Cc: "Utkarsh Ayachit" <utkarsh.ayachit at kitware.com>,
>> paraview at paraview.org
>> Date: Thursday, 19 May, 2011, 10:37 PM
>>
>>
>> Hi Raj,
>>
>> could you send the piece of code that update those RGBPoints values ?
>>
>> Thanks,
>>
>> Seb
>>
>> On Thu, May 19, 2011 at 12:58 PM, Rajvikram Singh <rajvikrams at yahoo.com<http://mc/compose?to=rajvikrams@yahoo.com>
>> > wrote:
>>
>> Hi Utkarsh
>>     I'm using Jquery to load the .XML files. It works without any problems
>> the first time and RGBPoints extracted from the XML are applied correctly.
>>
>> The problem arises when the users selects a different XML file (different
>> colormap). When the GetLookupTableForArray is called again with the new set
>> of RGBPoints, the visualization does not look correct. It looks like the the
>> lookuptable maintained the earlier RGBPoints and merged the new set with the
>> old.
>>
>> I was wondering if this was a bug or if their was a way to reset the lut
>> to forget the old RGBPoints
>>
>> Thanks
>> Raj
>>
>>
>> --- On *Thu, 19/5/11, Utkarsh Ayachit <utkarsh.ayachit at kitware.com<http://mc/compose?to=utkarsh.ayachit@kitware.com>
>> >* wrote:
>>
>>
>> From: Utkarsh Ayachit <utkarsh.ayachit at kitware.com<http://mc/compose?to=utkarsh.ayachit@kitware.com>
>> >
>> Subject: Re: [Paraview] ParaviewWeb : Repeated calls to
>> GetLookupTableForArray do not change the RGBpoints array
>> To: "Rajvikram Singh" <rajvikrams at yahoo.com<http://mc/compose?to=rajvikrams@yahoo.com>
>> >
>> Cc: paraview at paraview.org <http://mc/compose?to=paraview@paraview.org>
>> Date: Thursday, 19 May, 2011, 6:49 PM
>>
>>
>> How are you loading the default.xml? Do the best of my knowledge, ParaView
>> Python API has no call to setup LUTs from XML.
>>
>> Utkarsh
>>
>> On Wed, May 18, 2011 at 8:45 PM, Rajvikram Singh <rajvikrams at yahoo.com<http://mc/compose?to=rajvikrams@yahoo.com>
>> > wrote:
>>
>> Hi
>>    I've a case where the users can load .xml files saved from the
>> Paraview's 'Edit Color Map' widget and apply the color maps (containing
>> R,G,B and Opacity values) to volume rendering.
>>
>> When I start the application a call is made is load a "default.xml" file
>> and then do a :
>>
>> Lut = pv.GetLookupTableForArray({arrayname : "ImageFile", num_components :
>> 1, HSVWrap : 0, NanColor : nanColor, RGBPoints : rgbPoints, ColorSpace :
>> colorSpace});
>>
>> Sof = pv.CreatePiecewiseFunction( {Points: sofPoints});
>>
>> The variables nanColor, rgbPoints, sofPoints etc are populated by the XML
>> file data. Then the Lookuptable is applied to the DisplayProperties for
>> volume rendering. This part works well.
>>
>> However when the user changes the .xml color map file from a drop down,
>> the same code is called again and this time it does something funny. It
>> seems to retain the previous RGBPoints information and adds the new color
>> map to it. So the two lookup tables look like they are merged. Is this
>> expected ?
>>
>> Is there a way to reset the lookup table ? I did not see any obvious call
>> within simple.py or pwsimple.py.
>>
>> Thanks
>> Raj
>>
>> _______________________________________________
>> 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
>>
>>
>>
>> _______________________________________________
>> 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
>>
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20110519/18320d07/attachment-0001.htm>


More information about the ParaView mailing list