<html><head><style type="text/css"><!-- DIV {margin:0px;} --></style></head><body><div style="font-family:'times new roman', 'new york', times, serif;font-size:12pt"><div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">Hi Everyone,</span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span
class="Apple-style-span" style="font-size: 12px; "><br></span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">I'm having a heck of a time getting this little application to work correctly. Here's the problem I'm having: after splitting the polydata and assigning each part an actor. I'd like to get the world position of each actor so that I can then run an </span></font></span></font>vtkIterativeClosestPointTransform <font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">and know what the transformation matrix is
from one of the actors to another. </span></font><span class="Apple-style-span" style="font-family: Helvetica; font-size: 12px; ">So I've used vtkActor->GetPosition() which according to all the documentation I've found should return the actor's world coordinates. But each actor returns (0.0, 0.0, 0.0). Since they are not all on top of each other at the origin, I don't see how this could be correct. </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; "><br></span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font:
normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">I know I must be missing something... any help would be sincerely appreciated. </span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; "><br></span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal
normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">Thank you,</span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; ">Mark</span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font
class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; "><br></span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><font class="Apple-style-span" face="Helvetica" size="3"><span class="Apple-style-span" style="font-size: 12px; "><code snippet follows></span></font></span></font></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; font-size: medium; "><font class="Apple-style-span" color="#0000FF"><br></font></div><div
style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">def</span></span><span class="Apple-style-span" style="font-size: small;"> splitParts(polydata):</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn = vtk.vtkPolyDataConnectivityFilter()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.SetInput(polydata)</span></div><div style="margin-top: 0px; margin-right: 0px;
margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.SetExtractionModeToAllRegions()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.Update()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">
nregions = conn.GetNumberOfExtractedRegions()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.SetExtractionModeToSpecifiedRegions()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.Update()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal
11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> polydata_collection = []</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> </span><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span"
style="font-size: small;">for</span></span><span class="Apple-style-span" style="font-size: small;"> region </span><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">in</span></span><span class="Apple-style-span" style="font-size: small;"> xrange(nregions):</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.InitializeSpecifiedRegionList()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.AddSpecifiedRegion(region)</span></div><div style="margin-top: 0px; margin-right: 0px;
margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> conn.Update()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> p = vtk.vtkPolyData()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size:
small;"> p.DeepCopy(conn.GetOutput())</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> p.Update()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> polydata_collection.append(p)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px;
font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> </span><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">return</span></span><span class="Apple-style-span" style="font-size: small;"> polydata_collection</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal
normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">reader = vtk.vtkXMLPolyDataReader()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(0, 189, 0); font-family: Helvetica; "><span style="color: rgb(0, 0, 0); "><span class="Apple-style-span" style="font-size: small;">reader.SetFileName(</span></span><span class="Apple-style-span" style="font-size: small;">'Model.</span><span style="text-decoration: underline; "><span class="Apple-style-span" style="font-size: small;">vtp</span></span><span class="Apple-style-span" style="font-size: small;">'</span><span style="color: rgb(0, 0, 0); "><span class="Apple-style-span" style="font-size: small;">) </span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal
11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">reader.Update();</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">polydataCollection = splitParts(reader.GetOutput())</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">actorCollection = [] </span></div><div style="margin-top: 0px;
margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; min-height: 15px; font-family: Helvetica; "><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">for</span></span><span class="Apple-style-span" style="font-size: small;"> item </span><span style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">in</span></span><span class="Apple-style-span" style="font-size: small;"> xrange(len(polydataCollection)):</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span
class="Apple-style-span" style="font-size: small;"> mapper = vtk.vtkPolyDataMapper()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> mapper.SetInput(polydataCollection[item])</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; color: rgb(203, 203, 203); font-family: Helvetica; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); "><span class="Apple-style-span" style="font-size: small;"> </span></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;">
actor = vtk.vtkActor()</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> actor.SetMapper(mapper)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> actorCollection.append(actor)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> ren.AddActor(actor)</span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal
11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"><br></span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; font: normal normal normal 11px/normal Monaco; font-family: Helvetica; "><span class="Apple-style-span" style="font-size: small;"> </span><span class="Apple-style-span" style="color: rgb(0, 0, 255); "><span class="Apple-style-span" style="font-size: small;">print</span></span><span class="Apple-style-span" style="font-size: small;"> actor.GetPosition()</span></div></div><div><br></div><div style="position:fixed"></div>
</div><br>
</body></html>