[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