Olá,<br>
<br>
experimentei o código e mesmo assim não funciona... começo a pensar que
talvez seja do modelo que eu estou a importar, poderia-me fornecer um
modelo que tenha testado para eu tirar as dúvidas?<br>
<br>
Desde já o meu obrigado<br>
<br>
Ricardo Seco<br>
Universidade de Aveiro<br><br><div><span class="gmail_quote">On 1/23/07, <b class="gmail_sendername">Paulo José Correia Bernardes</b> <<a href="mailto:pbernardes@uaum.uminho.pt">pbernardes@uaum.uminho.pt</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="purple" lang="PT">
<div>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">Viva,</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">O código que lhe envio está
a funcionar…</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">Veja se lhe serve.</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">Cumprimentos,</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">Paulo Bernardes</span></font><font face="Courier New" size="2"><span style="font-size: 10pt;"></span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">vtkAppendPolyData
*appendDataFromVRMLFile ( vtkVRMLImporter *vrmlData )</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;">{</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> vtkAppendPolyData
*apd=vtkAppendPolyData::New();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB">vtkPolyData *vrmlPolyData=vtkPolyData::New();
</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> vtkActorCollection
*actorCollection=vtkActorCollection::New();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> vtkActor
*actorOfCollection=vtkActor::New();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> actorCollection
= vrmlData->GetRenderer()->GetActors();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> actorCollection->InitTraversal();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> actorOfCollection
= actorCollection->GetNextActor();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> <font color="blue"><span style="color: blue;">while</span></font>( actorOfCollection !=
NULL )</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> {</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> vrmlPolyData
= <font color="blue"><span style="color: blue;">reinterpret_cast</span></font><vtkPolyData
*>(actorOfCollection->GetMapper()->GetInput());</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> apd->AddInput(vrmlPolyData);</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> actorOfCollection
= actorCollection->GetNextActor();</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;" lang="EN-GB"> </span></font><font face="Courier New" size="2"><span style="font-size: 10pt;">}</span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> </span></font></p>
<p style=""><font face="Courier New" size="2"><span style="font-size: 10pt;"> <font color="blue"><span style="color: blue;">return</span></font> apd;</span></font></p>
<p><font face="Courier New" size="2"><span style="font-size: 10pt;">}</span></font><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>
<div>
<div style="text-align: center;" align="center"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">
<hr align="center" size="2" width="100%">
</span></font></div>
<p><b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma; font-weight: bold;">De:</span></font></b><font face="Tahoma" size="2"><span style="font-size: 10pt; font-family: Tahoma;">
vtkusers-bounces+pbernardes=<a href="mailto:uaum.uminho.pt@vtk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">uaum.uminho.pt@vtk.org</a>
[mailto:<a href="mailto:vtkusers-bounces+pbernardes=uaum.uminho.pt@vtk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vtkusers-bounces+pbernardes=uaum.uminho.pt@vtk.org</a>] <b><span style="font-weight: bold;">
Em nome de </span></b>Secolas UA<br>
<b><span style="font-weight: bold;">Enviada:</span></b> terça-feira, 23 de
Janeiro de 2007 15:57<br>
<b><span style="font-weight: bold;">Para:</span></b> <a href="mailto:vtkusers@vtk.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">vtkusers@vtk.org</a><br>
<b><span style="font-weight: bold;">Assunto:</span></b> [vtkusers] AppendPolyData
Problem</span></font></p>
</div><div><span class="e" id="q_1104fb17f5763bed_1">
<p><font face="Times New Roman" size="3"><span style="font-size: 12pt;"> </span></font></p>
<p style="margin-bottom: 12pt;"><font face="Times New Roman" size="3"><span style="font-size: 12pt;">Hello! <br>
<br>
I am importing a Vrml Model and i want to append to the same polydata the
polydata information of all the actors, but I have a problem when I do the<br>
appendSet->Update(); the following message appears Unhandled exception at
0x004771b7 in Visualization_Tool.exe: 0xC00000FD: Stack overflow.<br>
<br>
I think i'm doing everything right, so i'll put the relevant part of the code
hoping that someone will have a solution.<br>
<br>
Thanks <br>
Ricardo Seco<br>
University of Aveiro<br>
<br>
...<br>
if (NumberOfActors >0)<br>
{<br>
// Obtenção dos actores da cena<br>
<br>
ActColection = ren1->GetActors();<br>
<br>
tmpData = (vtkPolyData *)
((vtkActor*)ActColection->GetLastActor())->GetMapper()->GetInput();<br>
<br>
appendSet->AddInput(tmpData);<br>
<br>
ActColection->InitTraversal();<br>
<br>
// Para cada iteração ...<br>
for (int i=0;i<NumberOfActors;i++)<br>
{<br>
auxiliar++;<br>
<br>
// Obter esse actor<br>
<br>
Act =
ActColection->GetNextActor();<br>
<br>
if (Act!=NULL)<br>
{<br>
if
(Act->GetMapper()!=NULL)<br>
{<br>
printf("------------------------------------------------------------------
\n"); <br>
<br>
// Este código consoante o indice do actor<br>
// que "engloba" o modelo torna-o ou não<br>
// pickable. No caso de só existir um actor<br>
// este é sempre pickable<br>
<br>
if ((auxiliar==1) && (NumberOfActors>1))<br>
{<br>
Act->PickableOff();<br>
Act->GetProperty()->SetOpacity(0.5);<br>
}<br>
<br>
// Vai buscar ao Mapper os dados poligonais<br>
tmpData = (vtkPolyData* ) Act->GetMapper()->GetInput();<br>
<br>
appendSet->AddInput(appendSet->GetOutput());<br>
<br>
appendSet->AddInput(tmpData);<br>
<br>
appendSet->Update(); //-> Stack OverFlow<br>
<br>
polyData = (vtkPolyData* )appendSet->GetOutput();<br>
...</span></font></p>
</span></div></div>
</div>
</blockquote></div><br>