[prev in list] [next in list] [prev in thread] [next in thread] 

List:       paraview
Subject:    Re: [Paraview] Question about writing custom reader for paraview
From:       "Moreland, Kenneth" <kmorel () sandia ! gov>
Date:       2009-03-31 13:36:39
Message-ID: C5F77887.7897%kmorel () sandia ! gov
[Download RAW message or body]

I assume you are referring to the Doxygen of the classes located at \
http://www.vtk.org/doc/release/5.2/html/.  There is some trickery in the vtkDataArray \
classes like vtkDoubleArray and vtkIntArray to make them seem like they inherit \
directly from vtkDataArray when in fact they really inherit from \
vtkDataArrayTemplate.  The Allocate method is in vtkDataArrayTemplate and is also \
available in vtkDoubleArray/vtkIntArray regardless of what the documentation tells \
you.

InsertNextValue is really just a convienience method that is the equivalent of \
calling InsertValue with an index at the end of the array.  Thus, in your example \
below the two will behave the same.  However, if you are preallocating the data and \
computing indices anyway, I personally prefer the following code for readability, \
although there should be no real impact to performance.

 vtkIntArray *castkey = vtkIntArray::New();
  castkey->SetName("cast_type");
  castkey->SetNumberOfComponents(1);
  castkey->SetNumberOfTuples(numPts);
  for (int i = 0; i < L; i++)
    {
    for (int j = 0; j < M; j++)
      {
      for (int k = 0; k < N; k++)
        {
        int idx = i*M*N+j*N+k;
        castkey->SetTupleValue(idx, &(sgn.GetData()[idx]));
        }
      }
    }
  output->GetPointData()->AddArray(castkey);
  castkey->Delete(); // Does not really delete, just decrement reference count.

-Ken

On 3/30/09 7:52 PM, "shenyanwen" <shenyanwen@gmail.com> wrote:

Hello! I just read the reference of VTK5.2, and I foud that there are no Allocate() \
method in the class of vtkDoubleArray or vtkIntArray. And can I use the InsertValue \
instead of InsertNextValue if I specify the actual point ID? Can I use it like this:

vtkIntArray *castkey = vtkIntArray::New();
    castkey->SetName("cast_type");
    castkey->Allocate(numPts);   // Allocate the memory
    for (int i=0; i<L; i++) for (int j=0;j<M; j++)    for (int k=0; k<N; k++)
    {
        int idx = i*M*N+j*N+k;
        castkey->InsertValue(idx, sgn.GetData()[idx] );
    }
    output->GetPointData()->AddArray(castkey);


-Shenyanwen


2009/3/30 Moreland, Kenneth <kmorel@sandia.gov>
InsertNextValue will work just fine so long as you are careful about inserting all \
the components for each tuple.  Most of the time I would recommend using \
InsertNextTupleValue instead.  However, in either case before filling the array I \
recommend calling Allocate first so that the memory will already be allocated.  This \
will make InsertNextValue more efficient because it will not have to reallocate the \
array.  Alternatively, you can call SetNumberOfComponents and then SetNumberOfTuples \
and then call SetTupleValue.  The choice between the two approaches is based on how \
you are using them and your own coding style.

-Ken


On 3/26/09 7:49 PM, "shenyanwen" <shenyanwen@gmail.com <http://shenyanwen@gmail.com> \
> wrote:

Thank you !
As you described, I can add more than one type of scalars by AddArray(type_name), and \
the ParaView will distinguish them by the names I set to them. I've got it.
There is one more question. I use pressure->InsertNextValue(pressure[idx]) to add \
saclar value to each point . I do not know whether this method is right or there is \
another method to add the scalar value to each point ! Thanks so much!

-Seven


2009/3/27 Moreland, Kenneth <kmorel@sandia.gov <http://kmorel@sandia.gov> >
You can add more fields by simply adding them to the point data of the output data \
object.

 output->GetPointData()->AddArray(pressure);

Make sure that you set a name for the arrays (using the SetName method of \
vtkDataArray).  That is how ParaView/VTK differentiates the fields.

-Ken



On 3/23/09 12:40 AM, "shenyanwen" <shenyanwen@gmail.com <http://shenyanwen@gmail.com> \
<http://shenyanwen@gmail.com> > wrote:

Hi, thanks so much for your help!
I have changed my code just like what you said.
Now, I should add more than one type scalar like pressure, vol1, vol2, vol3 and so \
on. So, how can I add these scalars into my output Data?
I have already read these scalars into some variables like m_pressure[numPts], \
m_vol1[numPts],m_vol[numPts] and m_vol3[numPts], and how can I add these variables \
into my output Data? Thanks so much!

--Seven

2009/3/20 Moreland, Kenneth <kmorel@sandia.gov <http://kmorel@sandia.gov>  \
<http://kmorel@sandia.gov> > What you are using is not quite right.  First, it sounds \
like you really want to create a vtkImageData.  This data holds a 1D, 2D, or 3D grid \
of points with origin and uniform spacing on each axis.  Thus, you would inherit from \
vtkImageAlgorithm and cast your output to vtkImageData.

Second, the only thing you directly set in the output information is the \
WHOLE_EXTENT().  You do this in RequestInformation so that the downstream pipeline \
can make decisions about what to load before the data is actually loaded.  So, the \
first line you have below is correct, assuming you put it in RequestInformation.

Now, you don't set UPDATE_EXTENT, you get it.  Someone downstream will set this the \
region of data in which it wants you to load.  You don't actually have to get this \
directly from the output information; you can get it from the output object.  So in \
RequestData, you would have code like this:

 vtkImageData *output = vtkImageData::GetData(outInfo);
  int *extent = output->GetUpdateExtent();

Now you can set the actual extent, spacing, origin, and data itself directly into the \
data object.

 output->SetExtent(extent);
  output->SetOrigin(origin);
  output->SetSpacing(ar);

You can then set the data either by allocating and getting scalar data through the \
vtkImageData or by adding data to the image data's point data structure (retrieved \
with GetPointData()).  More details are in The VTK User's Guide.

-Ken



On 3/19/09 1:08 AM, "shenyanwen" <shenyanwen@gmail.com <http://shenyanwen@gmail.com>  \
<http://shenyanwen@gmail.com>  <http://shenyanwen@gmail.com> > wrote:





Hi, I am writing a custom reader for paraview to read my own data file which paraview \
hasn't have. I have known that the most important method is RequestInformation and \
RequestData, and I just want to write a reader that can output the data type of \
StructuredPoints with Scalar and some vectors.I have already use : \
outInfo->Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),  \
0,dim[1]-1,0,dim[1]-1,0,dim[2]-1);  \
outInfo->Set(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(),  \
0,dim[1]-1,0,dim[1]-1,0,dim[2]-1); and:outInfo->Set(vtkDataObject::SPACING(), ar, 3);
outInfo->Set(vtkDataObject::ORIGIN(), origin, 3);
and how can I read the scalar data just like the file-format describes:
SCALAR dataName dataType numComp
LOOKUP_TABLE tableName
s0
s1
s2
...
s(n-1)

which method or function can I use to read the s0,s1,...,s(n-1) into the variable and \
set to the outInfo. Thanks so much!





   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel@sandia.gov <http://kmorel@sandia.gov>  \
                <http://kmorel@sandia.gov>  <http://kmorel@sandia.gov>
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel <http://www.cs.unm.edu/%7Ekmorel>  \
<http://www.cs.unm.edu/%7Ekmorel>  <http://www.cs.unm.edu/%7Ekmorel>





   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel@sandia.gov <http://kmorel@sandia.gov>  \
                <http://kmorel@sandia.gov>
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel <http://www.cs.unm.edu/%7Ekmorel>  \
<http://www.cs.unm.edu/%7Ekmorel>





   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel@sandia.gov <http://kmorel@sandia.gov>
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel <http://www.cs.unm.edu/%7Ekmorel>





   ****      Kenneth Moreland
    ***      Sandia National Laboratories
***********
*** *** ***  email: kmorel@sandia.gov
**  ***  **  phone: (505) 844-8919
    ***      web:   http://www.cs.unm.edu/~kmorel


[Attachment #3 (text/html)]

<HTML>
<HEAD>
<TITLE>Re: [Paraview] Question about writing custom reader for paraview</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I assume \
you are referring to the Doxygen of the classes located at <a \
href="http://www.vtk.org/doc/release/5.2/html/">http://www.vtk.org/doc/release/5.2/html/</a>. \
&nbsp;There is some trickery in the vtkDataArray classes like vtkDoubleArray and \
vtkIntArray to make them seem like they inherit directly from vtkDataArray when in \
fact they really inherit from vtkDataArrayTemplate. &nbsp;The Allocate method is in \
vtkDataArrayTemplate and is also available in vtkDoubleArray/vtkIntArray regardless \
of what the documentation tells you.<BR> <BR>
InsertNextValue is really just a convienience method that is the equivalent of \
calling InsertValue with an index at the end of the array. &nbsp;Thus, in your \
example below the two will behave the same. &nbsp;However, if you are preallocating \
the data and computing indices anyway, I personally prefer the following code for \
readability, although there should be no real impact to performance.<BR> <BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN \
STYLE='font-size:10pt'> &nbsp;vtkIntArray *castkey = vtkIntArray::New();<BR> \
&nbsp;&nbsp;castkey-&gt;SetName(&#8220;cast_type&#8221;);<BR> \
&nbsp;&nbsp;castkey-&gt;SetNumberOfComponents(1);<BR> \
&nbsp;&nbsp;castkey-&gt;SetNumberOfTuples(numPts);<BR> &nbsp;&nbsp;for (int i = 0; i \
&lt; L; i++)<BR> &nbsp;&nbsp;&nbsp;&nbsp;{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;for (int j = 0; j &lt; M; j++)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for (int k = 0; k &lt; N; k++)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int idx = i*M*N+j*N+k;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;castkey-&gt;SetTupleValue(idx, \
&amp;(sgn.GetData()[idx]));<BR> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;&nbsp;&nbsp;}<BR>
&nbsp;&nbsp;output-&gt;GetPointData()-&gt;AddArray(castkey);<BR>
&nbsp;&nbsp;castkey-&gt;Delete(); // Does not really delete, just decrement reference \
count.<BR> </SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
                STYLE='font-size:11pt'><BR>
-Ken<BR>
<BR>
On 3/30/09 7:52 PM, &quot;shenyanwen&quot; &lt;<a \
href="shenyanwen@gmail.com">shenyanwen@gmail.com</a>&gt; wrote:<BR> <BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>Hello! I just read the reference of VTK5.2, and I foud that \
there are no Allocate() method in the class of vtkDoubleArray or vtkIntArray. And can \
I use the InsertValue instead of InsertNextValue if I specify the actual point \
ID?<BR> Can I use it like this:<BR>
<BR>
vtkIntArray *castkey = vtkIntArray::New();<BR>
    castkey-&gt;SetName(&quot;cast_type&quot;);<BR>
    castkey-&gt;Allocate(numPts);   // Allocate the memory <BR>
    for (int i=0; i&lt;L; i++) for (int j=0;j&lt;M; j++)    for (int k=0; k&lt;N; \
k++)<BR>  {       <BR>
        int idx = i*M*N+j*N+k;<BR>
        castkey-&gt;InsertValue(idx, sgn.GetData()[idx] );           <BR>
    }<BR>
    output-&gt;GetPointData()-&gt;AddArray(castkey);<BR>
<BR>
<BR>
-Shenyanwen<BR>
<BR>
<BR>
2009/3/30 Moreland, Kenneth &lt;<a \
href="kmorel@sandia.gov">kmorel@sandia.gov</a>&gt;<BR> \
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>InsertNextValue will work just fine so long as you are careful \
about inserting all the components for each tuple.  Most of the time I would \
recommend using InsertNextTupleValue instead.  However, in either case before filling \
the array I recommend calling Allocate first so that the memory will already be \
allocated.  This will make InsertNextValue more efficient because it will not have to \
reallocate the array.  Alternatively, you can call SetNumberOfComponents and then \
SetNumberOfTuples and then call SetTupleValue.  The choice between the two approaches \
is based on how you are using them and your own coding style.<BR> <BR>
-Ken<BR>
<BR>
<BR>
On 3/26/09 7:49 PM, &quot;shenyanwen&quot; &lt;<a \
href="shenyanwen@gmail.com">shenyanwen@gmail.com</a> &lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt; &gt; \
wrote:<BR> <BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>Thank you !<BR> As you described, I can add more than one type \
of scalars by AddArray(type_name), and the ParaView will distinguish them by<BR> the \
names I set to them. I've got it.<BR> There is one more question. I use \
pressure-&gt;InsertNextValue(pressure[idx]) to add saclar value to each point . I do \
not know whether this method is right or there is another method to add the scalar \
value to each point ! <BR> Thanks so much!<BR>
<BR>
-Seven<BR>
<BR>
<BR>
2009/3/27 Moreland, Kenneth &lt;<a href="kmorel@sandia.gov">kmorel@sandia.gov</a> \
&lt;<a href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; &gt;<BR> \
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>You can add more fields by simply adding them to the point \
data of the output data object.<BR> <BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN \
STYLE='font-size:10pt'>  output-&gt;GetPointData()-&gt;AddArray(pressure);<BR> \
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> Make sure that you set a name for the arrays (using the \
SetName method of vtkDataArray).  That is how ParaView/VTK differentiates the \
fields.<BR> <BR>
-Ken<BR>
<BR>
<BR>
<BR>
On 3/23/09 12:40 AM, &quot;shenyanwen&quot; &lt;<a \
href="shenyanwen@gmail.com">shenyanwen@gmail.com</a> &lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt; &nbsp;&lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt; &gt; \
wrote:<BR> <BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>Hi, thanks so much for your help!<BR> I have changed my code \
just like what you said.<BR> Now, I should add more than one type scalar like \
pressure, vol1, vol2, vol3 and so on.<BR> So, how can I add these scalars into my \
output Data? <BR> I have already read these scalars into some variables like \
m_pressure[numPts], m_vol1[numPts],m_vol[numPts] and m_vol3[numPts], and how can I \
add these variables into my output Data?<BR> Thanks so much!<BR>
<BR>
--Seven<BR>
<BR>
2009/3/20 Moreland, Kenneth &lt;<a href="kmorel@sandia.gov">kmorel@sandia.gov</a> \
&lt;<a href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; &nbsp;&lt;<a \
href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; &gt;<BR> \
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'>What you are using is not quite right.  First, it sounds like \
you really want to create a vtkImageData.  This data holds a 1D, 2D, or 3D grid of \
points with origin and uniform spacing on each axis.  Thus, you would inherit from \
vtkImageAlgorithm and cast your output to vtkImageData.<BR> <BR>
Second, the only thing you directly set in the output information is the \
WHOLE_EXTENT().  You do this in RequestInformation so that the downstream pipeline \
can make decisions about what to load before the data is actually loaded.  So, the \
first line you have below is correct, assuming you put it in RequestInformation.<BR> \
<BR> Now, you don&#8217;t set UPDATE_EXTENT, you get it.  Someone downstream will set \
this the region of data in which it wants you to load.  You don&#8217;t actually have \
to get this directly from the output information; you can get it from the output \
object.  So in RequestData, you would have code like this:<BR> <BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN \
STYLE='font-size:10pt'>  vtkImageData *output = vtkImageData::GetData(outInfo);<BR>  \
int *extent = output-&gt;GetUpdateExtent();<BR> </SPAN></FONT></FONT><FONT \
FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR> Now you \
can set the actual extent, spacing, origin, and data itself directly into the data \
object.<BR> <BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN \
STYLE='font-size:10pt'>  output-&gt;SetExtent(extent);<BR>  \
output-&gt;SetOrigin(origin);<BR>  output-&gt;SetSpacing(ar);<BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> You can then set the data either by allocating and \
getting scalar data through the vtkImageData or by adding data to the image \
data&#8217;s point data structure (retrieved with GetPointData()).  More details are \
in <I>The VTK User&#8217;s Guide</I>.<BR> <BR>
-Ken<BR>
<BR>
<BR>
<BR>
On 3/19/09 1:08 AM, &quot;shenyanwen&quot; &lt;<a \
href="shenyanwen@gmail.com">shenyanwen@gmail.com</a> &lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt; &nbsp;&lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt;  &lt;<a \
href="http://shenyanwen@gmail.com">http://shenyanwen@gmail.com</a>&gt; &gt; \
wrote:<BR> <BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> <BR>
<BR>
<BR>
Hi, I am writing a custom reader for paraview to read my own data file which paraview \
hasn't have.<BR> I have known that the most important method is RequestInformation \
and RequestData, and I just want to write a reader that can output the data type of \
StructuredPoints with Scalar and some vectors.I have already use :<BR> \
outInfo-&gt;Set(vtkStreamingDemandDrivenPipeline::WHOLE_EXTENT(),<BR>  \
0,dim[1]-1,0,dim[1]-1,0,dim[2]-1);<BR>  \
outInfo-&gt;Set(vtkStreamingDemandDrivenPipeline::UPDATE_EXTENT(),<BR>  \
0,dim[1]-1,0,dim[1]-1,0,dim[2]-1);<BR> and:outInfo-&gt;Set(vtkDataObject::SPACING(), \
ar, 3);<BR> outInfo-&gt;Set(vtkDataObject::ORIGIN(), origin, 3);<BR>
and how can I read the scalar data just like the file-format describes:<BR>
SCALAR dataName dataType numComp<BR>
LOOKUP_TABLE tableName<BR>
s0<BR>
s1<BR>
s2<BR>
...<BR>
s(n-1)<BR>
<BR>
which method or function can I use to read the s0,s1,...,s(n-1) into the variable and \
set to the outInfo.<BR> Thanks so much!<BR>
<FONT COLOR="#888888"><BR>
</FONT><BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, \
                Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a> &lt;<a \
href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; &nbsp;&lt;<a \
href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt;  &lt;<a \
                href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; <BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a \
href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a> &lt;<a \
href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; \
&nbsp;&lt;<a href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; \
&lt;<a href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; \
<BR> </SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, \
Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR> <BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT><FONT SIZE="1"><FONT FACE="Monaco, Courier \
                New"><SPAN STYLE='font-size:7pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a> &lt;<a \
href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; &nbsp;&lt;<a \
                href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; <BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a \
href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a> &lt;<a \
href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; \
&nbsp;&lt;<a href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; \
<BR> </SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, \
Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR> <BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, \
                Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
   ****      Kenneth Moreland<BR>
    ***      Sandia National Laboratories<BR>
***********  <BR>
*** *** ***  email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a> &lt;<a \
                href="http://kmorel@sandia.gov">http://kmorel@sandia.gov</a>&gt; <BR>
**  ***  **  phone: (505) 844-8919<BR>
    ***      web:   <a \
href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a> &lt;<a \
href="http://www.cs.unm.edu/%7Ekmorel">http://www.cs.unm.edu/%7Ekmorel</a>&gt; <BR> \
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, \
Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR> <BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, \
Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR> &nbsp;&nbsp;&nbsp;**** \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kenneth Moreland<BR> &nbsp;&nbsp;&nbsp;&nbsp;*** \
                &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sandia National Laboratories<BR>
*********** &nbsp;<BR>
*** *** *** &nbsp;email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
** &nbsp;*** &nbsp;** &nbsp;phone: (505) 844-8919<BR>
&nbsp;&nbsp;&nbsp;&nbsp;*** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web: &nbsp;&nbsp;<a \
href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR> \
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN \
STYLE='font-size:11pt'><BR> </SPAN></FONT>
</BODY>
</HTML>



_______________________________________________
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

--===============1032039622==--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic