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 < [email protected]> 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 <[email protected]>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 <[email protected]> >> * wrote: >> >> >> From: Sebastien Jourdain <[email protected]> >> >> Subject: Re: [Paraview] ParaviewWeb : Repeated calls to >> GetLookupTableForArray do not change the RGBpoints array >> To: "Rajvikram Singh" <[email protected]> >> Cc: "Utkarsh Ayachit" <[email protected]>, >> [email protected] >> 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 >> <[email protected]<http://mc/[email protected]> >> > 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 >> <[email protected]<http://mc/[email protected]> >> >* wrote: >> >> >> From: Utkarsh Ayachit >> <[email protected]<http://mc/[email protected]> >> > >> Subject: Re: [Paraview] ParaviewWeb : Repeated calls to >> GetLookupTableForArray do not change the RGBpoints array >> To: "Rajvikram Singh" >> <[email protected]<http://mc/[email protected]> >> > >> Cc: [email protected] <http://mc/[email protected]> >> 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 >> <[email protected]<http://mc/[email protected]> >> > 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 >> >> >> >
_______________________________________________ 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
