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

List:       vtkusers
Subject:    Re: [vtkusers] =?utf-8?q?OpenGL_errors_upon_move_from_6=2E3=2E0_to_7?=
From:       Richard Frank <rickfrank () me ! com>
Date:       2016-02-27 20:31:58
Message-ID: 7a8cb44f-5cc7-4870-8322-45f3c002649d () me ! com
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]



Hi,

I'm having a different problem now related to rendering an image volume using \
vtkOpenGLGPUVolumeRayCastMapper.

Tracing through the code I find that a shader fails to compile at line  
79 in vtkShader.cxx

The failure is handled:

// Handle shader compilation failures.
if (!isCompiled)
{
GLint length(0);
glGetShaderiv(handle, GL_INFO_LOG_LENGTH, &length);
if (length > 1)
{
char *logMessage = new char[length];
glGetShaderInfoLog(handle, length, NULL, logMessage);
this->Error = logMessage;
delete[] logMessage;
}
glDeleteShader(handle);
return false;

and the log message is

0(169) : error C1008: undefined variable "g_aspect".0(170) : error C1008: undefined \
variable "g_aspect".0(171) : error C1008: undefined variable "g_aspect"

later,  vtkOpenGLShaderCache::ReadyShaderProgram returns NULL:

// return NULL if there is an issue
vtkShaderProgram *vtkOpenGLShaderCache::ReadyShaderProgram(
vtkShaderProgram *shader)
{
if (!shader)
{
return NULL;
}

// compile if needed
if (!shader->GetCompiled() && !shader->CompileShader())
{
return NULL;
}

the null pointer  gets passed up to vtkOpenGLGPUVolumeRayCastMapper at line 2512 and \
crashes because at line 2514 the null pointer is accessed.

if (!this->Impl->ShaderProgram->GetCompiled())
{
vtkErrorMacro("Shader failed to compile");
}

I think the access of the pointer is a bug.   However, could anything on my side \
result in the failure of the shader to compile?

Thanks

Rick

Thanks

Rick

On Feb 27, 2016, at 12:08 PM, Ken Martin <ken.martin@kitware.com> wrote:

Awesome! I'll try to think about adding some sort of check for that condition. I can \
see it biting a number of folks.

Thanks
Ken

On Sat, Feb 27, 2016 at 9:48 AM, Richard Frank <rickfrank@me.com> wrote:
Hi,

We found the shared mapper, which was being copied during an object assignment \
operator. Problem solved. Thanks for the pointers! ( no pun, well maybe a small pun, \
intended)

Rick



Sent from my iPad

On Feb 24, 2016, at 12:16 PM, Ken Martin <ken.martin@kitware.com> wrote:

Thanks that helps. I am starting to wonder if the issue is related to multiple render \
windows. With multiple windows it is important to not share actors or mappers in the \
new OpenGL backend. Each window needs its own mappers and actors. They can share the \
same data source/readers but not the opengl pieces like actors/mappers. Does the \
problem still exist if you only have one renderWindow?

Thanks
Ken

On Wed, Feb 24, 2016 at 12:04 PM, Richard Frank <rickfrank@me.com> wrote:
I traced through the VTK code and then added a vtkOpenGLCheckErrorMacro :


vtkOpenGLPolyDataMapper::UpdateShaders(
vtkOpenGLHelper &cellBO, vtkRenderer* ren, vtkActor *actor)
{
vtkOpenGLRenderWindow *renWin = \
vtkOpenGLRenderWindow::SafeDownCast(ren->GetRenderWindow());

cellBO.VAO->Bind();
vtkOpenGLCheckErrorMacro("failed after cellBO.VAO->Bind()");



ERROR: In vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line 1390
vtkOpenGLPolyDataMapper (0000025BBD546CB0): failed after cellBO.VAO->Bind() 1 OpenGL \
errors detected 0 : (1282) Invalid operation

and the gl log has

GL ERROR - Function glBindVertexArray generated error GL_INVALID_OPERATION
GL ERROR - Function glDrawRangeElements generated error GL_OUT_OF_MEMORY

I'm guessing the glBindVertexArray is generating the error? Any ideas what might \
cause that?

The 6.3.0 code seemed to not use any shaders when rendering my model - when I \
launched the Shader Editor using 6.3.0 it was blank. When I launched the 7.0.0 code \
there were   a bunch of shaders being used.....


Thanks

Rick


On Feb 23, 2016, at 11:58 AM, Ken Martin <ken.martin@kitware.com> wrote:

Hmm something is really odd there.   16600 points/normals is trivially small. Even if \
you had 100 actors each with 16600 points that would be small. There are a couple \
ways to debug something like this. One is to go old school and sprinkle

   vtkOpenGLCheckErrorMacro("failed after something");

throughout the code to see where the issue is. Another option on windows is to use  

https://github.com/dtrebilco/glintercept

which produces a log showing the specific call that caused the problem and when run \
in the debugger it will break on opengl errors. There are other tools with similar \
capabilities available as well.  

If you can boil it down to something smaller I could try it out, my dev systems are \
all Qt4 though...

Ken






On Tue, Feb 23, 2016 at 11:37 AM, Richard Frank <rickfrank@me.com> wrote:
There are 16600 points and 16600 normals in each model, I'm using Qt 5.5 and  there \
are four of these models - 1 in each renderview -   (Sagital, Axial, Coronal, etc). \
Each model is composed of surfaces created with triangle strips.

Each model contains a number of actors for each surface, (variable, depends on \
anatomy) put together into an assembly.

It's a medical application. Works fine in VTK 6.3.0  

NVidia quadro K5200
Graphics Card should be beefy enough.

Rick


On Feb 22, 2016, at 09:44 PM, Ken Martin <ken.martin@kitware.com> wrote:

Out of memory is an unusual one. Maybe the mesh is too big to load all at once in the \
new backend. How big is the mesh you are trying to render (number of points, number \
of triangles) and does it use cell colors or cell normals?   That would help me get a \
feel if it is really just exceeding what the card can handle.

Thanks
Ken


On Mon, Feb 22, 2016 at 6:50 PM, Richard Frank <rickfrank@me.com> wrote:
Hi,

I get the following errors ( and my fairly complex polygon mesh fails to render ) \
                when using VTK 7.0.
ERROR: In

\vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line 1440
vtkOpenGLPolyDataMapper (0000016618EFD490): failed after UpdateShader 1 OpenGL errors \
detected 0 : (1282) Invalid operation



ERROR: In \vtk770\Rendering\OpenGL2\vtkOpenGLActor.cxx, line 91
vtkOpenGLActor (0000016619E228B0): failed after Render 1 OpenGL errors detected
0 : (1285) Out of memory


This is code is " works " fine in 6.3.0.

I'm using an NVidia quadro K5200 with 8G.

Any tips on how to debug this?
Thanks

Rick


Sent from my iPad
_______________________________________________
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 VTK FAQ at: \
http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtkusers



-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and legally \
privileged information, and it is intended only for the use of the addressee.   \
Access to this email by anyone else is unauthorized. If you are not the intended \
recipient, any disclosure, copying, distribution or any action taken in reliance on \
it is prohibited and may be unlawful. If you received this communication in error \
please notify us immediately and destroy the original message.   Thank you.



-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and legally \
privileged information, and it is intended only for the use of the addressee.   \
Access to this email by anyone else is unauthorized. If you are not the intended \
recipient, any disclosure, copying, distribution or any action taken in reliance on \
it is prohibited and may be unlawful. If you received this communication in error \
please notify us immediately and destroy the original message.   Thank you.



-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and legally \
privileged information, and it is intended only for the use of the addressee.   \
Access to this email by anyone else is unauthorized. If you are not the intended \
recipient, any disclosure, copying, distribution or any action taken in reliance on \
it is prohibited and may be unlawful. If you received this communication in error \
please notify us immediately and destroy the original message.   Thank you.



-- 
Ken Martin PhD
Chairman & CFO
Kitware Inc.
28 Corporate Drive
Clifton Park NY 12065
518 371 3971

This communication, including all attachments, contains confidential and legally \
privileged information, and it is intended only for the use of the addressee.   \
Access to this email by anyone else is unauthorized. If you are not the intended \
recipient, any disclosure, copying, distribution or any action taken in reliance on \
it is prohibited and may be unlawful. If you received this communication in error \
please notify us immediately and destroy the original message.   Thank you.


[Attachment #5 (multipart/related)]

[Attachment #7 (text/html)]

<html><body><div><br></div><div>Hi,</div><div><br data-mce-bogus="1"></div><div>I'm \
having a different problem now related to rendering an image volume using \
vtkOpenGLGPUVolumeRayCastMapper.</div><div><br data-mce-bogus="1"></div><div>Tracing \
through the code I find that a shader fails to compile at line&nbsp;</div><div>79 in \
vtkShader.cxx</div><div><br data-mce-bogus="1"></div><div>The failure is \
handled:</div><div><br data-mce-bogus="1"></div><div>// Handle shader compilation \
failures.<br> if (!isCompiled)<br> {<br> GLint length(0);<br> glGetShaderiv(handle, \
GL_INFO_LOG_LENGTH, &amp;length);<br> if (length &gt; 1)<br> {<br> char *logMessage = \
new char[length];<br> glGetShaderInfoLog(handle, length, NULL, logMessage);<br> \
this-&gt;Error = logMessage;<br> delete[] logMessage;<br> }<br> \
glDeleteShader(handle);<br> return false;</div><div><br \
data-mce-bogus="1"></div><div>and the log message is</div><div><br \
data-mce-bogus="1"></div><div>0(169) : error C1008: undefined variable \
"g_aspect".0(170) : error C1008: undefined variable "g_aspect".0(171) : error C1008: \
undefined variable "g_aspect"</div><div><br \
data-mce-bogus="1"></div><div>later,&nbsp;<span style="color: #000000; font-family: \
SFNSText, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; \
font-style: normal; font-variant: normal; font-weight: 300; letter-spacing: normal; \
line-height: 22.5px; orphans: auto; text-align: start; text-indent: 0px; \
text-transform: none; white-space: normal; widows: 1; word-spacing: 0px; \
-webkit-text-stroke-width: 0px; display: inline !important; float: none; \
background-color: #ffffff;" data-mce-style="color: #000000; font-family: SFNSText, \
'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; \
font-variant: normal; font-weight: 300; letter-spacing: normal; line-height: 22.5px; \
orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
display: inline !important; float: none; background-color: \
#ffffff;">vtkOpenGLShaderCache::ReadyShaderProgram returns \
NULL:</span></div><div><span style="color: #000000; font-family: SFNSText, 'Helvetica \
Neue', Helvetica, Arial, sans-serif; font-size: 15px; font-style: normal; \
font-variant: normal; font-weight: 300; letter-spacing: normal; line-height: 22.5px; \
orphans: auto; text-align: start; text-indent: 0px; text-transform: none; \
white-space: normal; widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; \
display: inline !important; float: none; background-color: #ffffff;" \
data-mce-style="color: #000000; font-family: SFNSText, 'Helvetica Neue', Helvetica, \
Arial, sans-serif; font-size: 15px; font-style: normal; font-variant: normal; \
font-weight: 300; letter-spacing: normal; line-height: 22.5px; orphans: auto; \
text-align: start; text-indent: 0px; text-transform: none; white-space: normal; \
widows: 1; word-spacing: 0px; -webkit-text-stroke-width: 0px; display: inline \
!important; float: none; background-color: #ffffff;"><br \
data-mce-bogus="1"></span></div><div>// return NULL if there is an \
issue<br>vtkShaderProgram *vtkOpenGLShaderCache::ReadyShaderProgram(<br> \
vtkShaderProgram *shader)<br>{<br> if (!shader)<br> {<br> return NULL;<br> }<br><br> \
// compile if needed<br> if (!shader-&gt;GetCompiled() &amp;&amp; \
!shader-&gt;CompileShader())<br> {<br> return NULL;<br> }</div><div><br \
data-mce-bogus="1"></div><div>the null pointer&nbsp;gets passed up to \
vtkOpenGLGPUVolumeRayCastMapper at line 2512 and crashes because at line 2514 the \
null pointer is accessed.</div><div><br data-mce-bogus="1"></div><div>if \
(!this-&gt;Impl-&gt;ShaderProgram-&gt;GetCompiled())<br> {<br> vtkErrorMacro("Shader \
failed to compile");<br> }</div><div><br data-mce-bogus="1"></div><div>I think the \
access of the pointer is a bug. &nbsp;However, could anything on my side result in \
the failure of the shader to compile?</div><div><br \
data-mce-bogus="1"></div><div>Thanks</div><div><br \
data-mce-bogus="1"></div><div>Rick</div><div><br \
data-mce-bogus="1"></div><div>Thanks</div><div><br \
data-mce-bogus="1"></div><div>Rick</div><div><br>On Feb 27, 2016, at 12:08 PM, Ken \
Martin &lt;ken.martin@kitware.com&gt; wrote:<br><br></div><div><blockquote \
type="cite"><div class="msg-quote"><div dir="ltr">Awesome! I'll try to think about \
adding some sort of check for that condition. I can see it biting a number of \
folks.<div><br></div><div>Thanks</div><div>Ken</div></div><div \
class="gmail_extra"><br><div class="gmail_quote">On Sat, Feb 27, 2016 at 9:48 AM, \
Richard Frank <span dir="ltr">&lt;<a href="mailto:rickfrank@me.com" \
data-mce-href="mailto:rickfrank@me.com">rickfrank@me.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;"><div \
dir="auto"><div>Hi,</div><div><br></div><div>We found the shared mapper, which was \
being copied during an object assignment operator. Problem solved. Thanks for the \
pointers! ( no pun, well maybe a small pun, \
intended)</div><div><br></div><div>Rick</div><div><br></div><div><br><br>Sent from my \
iPad</div><div><br>On Feb 24, 2016, at 12:16 PM, Ken Martin &lt;<a \
href="mailto:ken.martin@kitware.com" \
data-mce-href="mailto:ken.martin@kitware.com">ken.martin@kitware.com</a>&gt; \
wrote:<br><br></div><blockquote type="cite"><div><div dir="ltr">Thanks that helps. I \
am starting to wonder if the issue is related to multiple render windows. With \
multiple windows it is important to not share actors or mappers in the new OpenGL \
backend. Each window needs its own mappers and actors. They can share the same data \
source/readers but not the opengl pieces like actors/mappers. Does the problem still \
exist if you only have one \
renderWindow?<div><br></div><div>Thanks</div><div>Ken</div></div><div \
class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 24, 2016 at 12:04 PM, \
Richard Frank <span dir="ltr">&lt;<a href="mailto:rickfrank@me.com" \
data-mce-href="mailto:rickfrank@me.com">rickfrank@me.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;"><div><div>I traced through the VTK code and then \
added a vtkOpenGLCheckErrorMacro \
:</div><div><br></div><div><br></div><div>vtkOpenGLPolyDataMapper::UpdateShaders(<br> \
vtkOpenGLHelper &amp;cellBO, vtkRenderer* ren, vtkActor *actor)<br>{<br> \
vtkOpenGLRenderWindow *renWin = \
vtkOpenGLRenderWindow::SafeDownCast(ren-&gt;GetRenderWindow());<br><br> \
cellBO.VAO-&gt;Bind();<br> vtkOpenGLCheckErrorMacro("failed after \
cellBO.VAO-&gt;Bind()");</div><div><br></div><div><br></div><div><br></div><div>ERROR: \
In vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line \
1390<br>vtkOpenGLPolyDataMapper (0000025BBD546CB0): failed after \
cellBO.VAO-&gt;Bind() 1 OpenGL errors detected<br> 0 : (1282) Invalid \
operation<br></div><div><br></div><div>and the gl log has</div><div><br></div><div>GL \
ERROR - Function glBindVertexArray generated error GL_INVALID_OPERATION<br>GL ERROR - \
Function glDrawRangeElements generated error \
GL_OUT_OF_MEMORY</div><div><br></div><div>I'm guessing the glBindVertexArray is \
generating the error? Any ideas what might cause that?</div><div><br></div><div>The \
6.3.0 code seemed to not use any shaders when rendering my model - when I launched \
the Shader Editor using 6.3.0 it was blank. When I launched the 7.0.0 code there were \
&nbsp;a bunch of shaders being \
used.....</div><div><br></div><div><br></div><div>Thanks</div><div><br></div><div>Rick</div><div><br></div><div><br>On \
Feb 23, 2016, at 11:58 AM, Ken Martin &lt;<a href="mailto:ken.martin@kitware.com" \
data-mce-href="mailto:ken.martin@kitware.com">ken.martin@kitware.com</a>&gt; \
wrote:<br><br></div><div><blockquote type="cite"><div><div dir="ltr">Hmm something is \
really odd there. &nbsp;16600 points/normals is trivially small. Even if you had 100 \
actors each with 16600 points that would be small. There are a couple ways to debug \
something like this. One is to go old school and \
sprinkle<div><br></div><div><div>&nbsp; vtkOpenGLCheckErrorMacro("failed after \
something");</div></div><div><br></div><div>throughout the code to see where the \
issue is. Another option on windows is to use&nbsp;</div><div><br></div><div><a \
href="https://github.com/dtrebilco/glintercept" \
data-mce-href="https://github.com/dtrebilco/glintercept">https://github.com/dtrebilco/glintercept</a><br></div><div><br></div><div>which \
produces a log showing the specific call that caused the problem and when run in the \
debugger it will break on opengl errors. There are other tools with similar \
capabilities available as well.&nbsp;</div><div><br></div><div>If you can boil it \
down to something smaller I could try it out, my dev systems are all Qt4 \
though...</div><div><br></div><div>Ken</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div><div \
class="gmail_extra"><br><div class="gmail_quote">On Tue, Feb 23, 2016 at 11:37 AM, \
Richard Frank <span dir="ltr">&lt;<a href="mailto:rickfrank@me.com" \
data-mce-href="mailto:rickfrank@me.com">rickfrank@me.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;"><div><div>There are 16600 points and 16600 \
normals in each model, I'm using Qt 5.5 and&nbsp;there are four of these models - 1 \
in each renderview - &nbsp;(Sagital, Axial, Coronal, etc). Each model is composed of \
surfaces created with triangle strips.</div><div><br></div><div>Each model contains a \
number of actors for each surface, (variable, depends on anatomy) put together into \
an assembly.</div><div><br></div><div>It's a medical application. Works fine in VTK \
6.3.0&nbsp;</div><div><br></div><div>NVidia quadro K5200<br>Graphics Card should be \
beefy enough.</div><div><br></div><div>Rick</div><div><br></div><div><br>On Feb 22, \
2016, at 09:44 PM, Ken Martin &lt;<a href="mailto:ken.martin@kitware.com" \
data-mce-href="mailto:ken.martin@kitware.com">ken.martin@kitware.com</a>&gt; \
wrote:<br><br></div><div><blockquote type="cite"><div><div dir="ltr">Out of memory is \
an unusual one. Maybe the mesh is too big to load all at once in the new backend. How \
big is the mesh you are trying to render (number of points, number of triangles) and \
does it use cell colors or cell normals?&nbsp; That would help me get a feel if it is \
really just exceeding what the card can \
handle.<div><br></div><div>Thanks</div><div>Ken</div><div><br></div></div><div \
class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 22, 2016 at 6:50 PM, \
Richard Frank <span dir="ltr">&lt;<a href="mailto:rickfrank@me.com" \
data-mce-href="mailto:rickfrank@me.com">rickfrank@me.com</a>&gt;</span> \
wrote:<br><blockquote class="gmail_quote" style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;" data-mce-style="margin: 0 0 0 0.8ex; border-left: \
1px #ccc solid; padding-left: 1ex;">Hi,<br> <br> I get the following errors ( and my \
fairly complex polygon mesh fails to render ) when using VTK 7.0.<br> ERROR: In<br> \
<br> \vtk770\Rendering\OpenGL2\vtkOpenGLPolyDataMapper.cxx, line 1440<br> \
vtkOpenGLPolyDataMapper (0000016618EFD490): failed after UpdateShader 1 OpenGL errors \
detected<br> 0 : (1282) Invalid operation<br> <br> <br> <br> ERROR: In \
\vtk770\Rendering\OpenGL2\vtkOpenGLActor.cxx, line 91<br> vtkOpenGLActor \
(0000016619E228B0): failed after Render 1 OpenGL errors detected<br> 0 : (1285) Out \
of memory<br> <br> <br> This is code is " works " fine in 6.3.0.<br> <br> I'm using \
an NVidia quadro K5200 with 8G.<br> <br> Any tips on how to debug this?<br> \
Thanks<br> <br> Rick<br> <br> <br> Sent from my iPad<br> \
_______________________________________________<br> Powered by <a \
href="http://www.kitware.com" rel="noreferrer" \
data-mce-href="http://www.kitware.com">www.kitware.com</a><br> <br> Visit other \
Kitware open-source projects at <a \
href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" \
data-mce-href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><br> \
<br> Please keep messages on-topic and check the VTK FAQ at: <a \
href="http://www.vtk.org/Wiki/VTK_FAQ" rel="noreferrer" \
data-mce-href="http://www.vtk.org/Wiki/VTK_FAQ">http://www.vtk.org/Wiki/VTK_FAQ</a><br> \
<br> Search the list archives at: <a href="http://markmail.org/search/?q=vtkusers" \
rel="noreferrer" data-mce-href="http://markmail.org/search/?q=vtkusers">http://markmail.org/search/?q=vtkusers</a><br> \
<br> Follow this link to subscribe/unsubscribe:<br> <a \
href="http://public.kitware.com/mailman/listinfo/vtkusers" rel="noreferrer" \
data-mce-href="http://public.kitware.com/mailman/listinfo/vtkusers">http://public.kitware.com/mailman/listinfo/vtkusers</a><br></blockquote></div><br><br \
clear="all"><span><span color="#888888" data-mce-style="color: #888888;" \
style="color: #888888;"><span><span style="color: #888888;" data-mce-style="color: \
#888888;"><div><br></div>-- <br><div>Ken Martin PhD<div>Chairman &amp; CFO<br>Kitware \
Inc.<br>28 Corporate Drive<br>Clifton Park NY 12065<br><a>518 371 \
3971</a><div><br></div><div><span style="font-size: 10pt; font-family: 'tahoma' , \
sans-serif;" data-mce-style="font-size: 10pt; font-family: 'tahoma' , \
sans-serif;">This communication, including all attachments, contains confidential and \
legally privileged information, and it is intended only for the use of the \
addressee.&nbsp; Access to this email by anyone else is unauthorized. If you are not \
the intended recipient, any disclosure, copying, distribution or any action taken in \
reliance on it is prohibited and may be unlawful. If you received this communication \
in error please notify us immediately and destroy the original message.&nbsp; Thank \
you.</span></div></div></div></span></span></span></span></div></div></blockquote></div></div></blockquote></div><span><span \
color="#888888" data-mce-style="color: #888888;" style="color: #888888;"><br><br \
clear="all"><span class="HOEnZb"><span color="#888888" data-mce-style="color: \
#888888;" style="color: #888888;"><div><br></div>-- <br><div>Ken Martin \
PhD<div>Chairman &amp; CFO<br>Kitware Inc.<br>28 Corporate Drive<br>Clifton Park NY \
12065<br><a>518 371 3971</a><div><br></div><div><span style="font-size: 10pt; \
font-family: 'tahoma' , sans-serif;" data-mce-style="font-size: 10pt; font-family: \
'tahoma' , sans-serif;">This communication, including all attachments, contains \
confidential and legally privileged information, and it is intended only for the use \
of the addressee.&nbsp; Access to this email by anyone else is unauthorized. If you \
are not the intended recipient, any disclosure, copying, distribution or any action \
taken in reliance on it is prohibited and may be unlawful. If you received this \
communication in error please notify us immediately and destroy the original \
message.&nbsp; Thank \
you.</span></div></div></div></span></span></span></span></div></div></blockquote></div></div></blockquote></div><span \
class="HOEnZb"><span color="#888888" data-mce-style="color: #888888;" style="color: \
#888888;"><br><br clear="all"><div><br></div>-- <br><div>Ken Martin PhD<div>Chairman \
&amp; CFO<br>Kitware Inc.<br>28 Corporate Drive<br>Clifton Park NY 12065<br><a>518 \
371 3971</a><div><br></div><div><span style="font-size: 10pt; font-family: 'tahoma' , \



_______________________________________________
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 VTK FAQ at: http://www.vtk.org/Wiki/VTK_FAQ

Search the list archives at: http://markmail.org/search/?q=vtkusers

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/vtkusers


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

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