Hi John,<br><br>Thanks for the answer.<br><br>I tried this approack also but on my machine I never see the 2d actor with this one... No idea what is going on. I think I will use Qt to draw all the overlay props which is a shame as I could have used the picking functionality in VTK.
<br><br>Thanks,<br><br>Anja<br><br><div><span class="gmail_quote">On 14/10/06, <b class="gmail_sendername">John Platt</b> <<a href="mailto:jcplatt@dsl.pipex.com">jcplatt@dsl.pipex.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div link="blue" vlink="blue" lang="EN-US">
<div>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">Hi Anja,</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I ran your code using VTK 5 compiled by
VS6 on XP. The 3d actor is always on top.</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">I also removed the 2 renderers, replacing
by</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> vtkRenderer* ren = vtkRenderer::New();
</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> ren->AddActor(actor3d);
</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> ren->AddActor2D(actor2d);
</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> vtkRenderWindow* renWin
= vtkRenderWindow::New(); </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> renWin->AddRenderer(ren);</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">which puts the 2D actor on top.</span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">HTH</span></font></p><span class="sg">
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;">John.</span></font></p></span><div><span class="e" id="q_10e489aeae7d5cff_2">
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p><font color="navy" face="Arial" size="2"><span style="font-size: 10pt; font-family: Arial; color: navy;"> </span></font></p>
<p style="margin-left: 36pt;"><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">-----Original Message-----<br>
<b><span style="font-weight: bold;">From:</span></b>
vtkusers-bounces+jcplatt=<a href="mailto:dsl.pipex.com@vtk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">dsl.pipex.com@vtk.org</a>
[mailto:<a href="mailto:vtkusers-bounces+jcplatt=dsl.pipex.com@vtk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vtkusers-bounces+jcplatt=dsl.pipex.com@vtk.org</a>] <b><span style="font-weight: bold;">
On Behalf Of </span></b>Anja Ende<br>
<b><span style="font-weight: bold;">Sent:</span></b> 14 October 2006 11:55<br>
<b><span style="font-weight: bold;">To:</span></b> VTK<br>
<b><span style="font-weight: bold;">Subject:</span></b> [vtkusers] 2d actors,
vtkImageActor and multiple rendering layers</span></font></p>
<p style="margin-left: 36pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<p style="margin-left: 36pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">Hi again,<br>
<br>
As per my previous problem of mixing 2d and 3d actors in the same scene, I
thought it might be a graphics card problem. So, I managed to get another
windows machine (I was using Linux before) but I still see the same problem....
the 2d actor only gets displayed when I do a pick operation on the 3d actor....
This is completely bizarre and after several days I have come with no
explanation for that. I have stepped through the renderer code multiple times
during debug, but see nothing that could offer some kind of explanation. <br>
<br>
I really wish someone here would take a look at this very trivial code and see
if they could point something out. I tried to convert everything in my code to
3d actors but that presents another set of complications, unfortunately. <br>
<br>
I am attaching the code again. I really request someone to please help me. It
will not take too much of your time. The code is really small and functional.<br>
<br>
#include "vtkImageData.h"<br>
#include " vtkImageActor.h"<br>
#include "vtkActor2D.h"<br>
#include "vtkRenderWindow.h"<br>
#include "vtkRenderer.h"<br>
#include "vtkRenderWindowInteractor.h"<br>
#include "vtkImageMapper.h "<br>
#include "vtkPNGReader.h"<br>
#include "vtkImageChangeInformation.h"<br>
<br>
int main ()<br>
{<br>
// Read the image<br>
vtkPNGReader * cursorImage = vtkPNGReader::New();<br>
// Please replace with your own path <br>
cursorImage->SetFileName("C:\\crosshair.png");<br>
cursorImage->Update();<br>
// Shift center to image data oigin<br>
vtkImageChangeInformation * imageChange =
vtkImageChangeInformation::New(); <br>
imageChange->SetInput(cursorImage->GetOutput());<br>
imageChange->CenterImageOn();
<br>
<br>
// create actor2d<br>
vtkImageMapper * mapper = vtkImageMapper::New();<br>
mapper->SetInput(imageChange->GetOutput()); <br>
mapper->SetColorWindow(256.0);<br>
mapper->SetColorLevel(128.0);<br>
vtkActor2D * actor2d = vtkActor2D::New();<br>
actor2d->SetMapper(mapper);<br>
actor2d->SetPosition(120.0, 100.0);<br>
<br>
// create actor 3d<br>
vtkImageActor * actor3d = vtkImageActor::New();<br>
actor3d->SetInput(imageChange->GetOutput());<br>
<br>
// following lines creates our 2 layers of
renderers <br>
vtkRenderer *ren1 = vtkRenderer::New(); // 2d
actor <br>
ren1->AddViewProp(actor2d);
<br>
ren1->SetLayer(0); // bottom layer <br>
<br>
vtkRenderer *ren2 = vtkRenderer::New();<br>
ren2->AddViewProp(actor3d); // 3d actor
<br>
ren2->SetLayer(1); // top layer <br>
<br>
vtkRenderWindow *renWin =
vtkRenderWindow::New(); <br>
renWin->SetNumberOfLayers(2); // we have 2 layers of
renderers in our window
<br>
renWin->AddRenderer(ren1);<br>
renWin->AddRenderer(ren2); <br>
<br>
vtkRenderWindowInteractor *iren =
vtkRenderWindowInteractor::New(); // an interactor<br>
iren->SetRenderWindow(renWin);<br>
renWin->Render(); <br>
iren->Start();<br>
<br>
// We will not bother with deletions...program is ending
anyways... <br>
return 0;<br>
} <br>
<br>
The crosshair.png image can be downloaded from here...<br>
<br>
<a href="http://pligame.sourceforge.net/images/crosshair.png" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://pligame.sourceforge.net/images/crosshair.png</a><br>
<br>
<br>
Cheers,<br>
<br>
Anja </span></font></p>
</span></div></div>
</div>
</blockquote></div><br><br clear="all"><br>-- <br>Cheers,<br><br>Anja