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

Sebastien Jourdain sebastien.jourdain at kitware.com
Thu May 19 14:28:56 EDT 2011


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/4a83a782/attachment.htm>


More information about the ParaView mailing list