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]> 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
ThanksRaj
--- On Thu, 19/5/11, Utkarsh Ayachit <[email protected]> wrote:
From: Utkarsh Ayachit <[email protected]>
Subject: Re: [Paraview] ParaviewWeb : Repeated calls to GetLookupTableForArray
do not change the RGBpoints array
To: "Rajvikram Singh" <[email protected]>
Cc: [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]> 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