<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style>
<!--
@font-face
{font-family:SimSun}
@font-face
{font-family:SimSun}
@font-face
{font-family:Calibri}
@font-face
{font-family:Tahoma}
@font-face
{font-family:"\@SimSun"}
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif"}
a:link, span.MsoHyperlink
{color:blue;
text-decoration:underline}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline}
span.E-MailFormatvorlage17
{font-family:"Calibri","sans-serif";
color:windowtext}
.MsoChpDefault
{font-family:"Calibri","sans-serif"}
@page WordSection1
{margin:70.85pt 70.85pt 2.0cm 70.85pt}
div.WordSection1
{}
-->
</style>
</head>
<body lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Tahoma","sans-serif"">How to Get Active Selection and Extract it?</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Hello,</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">I’m struggling with a problem.</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">I want to write a filter, that copies selected points form a vtkPolyData into a vtkDataObject without using the apply button, I try to use 3 custom buttons in order to copy
the data into different Objects. Aim is to access the point data of the selected points. I’ve already tried this in Python and it works as expected.
</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Doing the same in C++ doesn’t seem as straight forward as it was in Python…</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">How can I pass the output port from a vtkSMSourceProxy to a vtkAlgorithm input port. Is there any way to do that?</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">My code looks very similar to this:</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMProxyManager* pxm = vtkSMProxyManager::GetProxyManager();</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">
</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMSessionProxyManager* spxm = pxm->GetActiveSessionProxyManager();</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMProxySelectionModel* selmodel = spxm->GetSelectionModel("ActiveSources");</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSmartPointer<vtkSMSourceProxy> FilterProxy =</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMSourceProxy::SafeDownCast(selmodel->GetCurrentProxy());</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSmartPointer<vtkSMSourceProxy> SourceProxy =</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMSourceProxy::SafeDownCast(FilterProxy->GetProducerProxy((uint)0));</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSmartPointer<vtkSMSourceProxy> active_selection =</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSMSourceProxy::SafeDownCast(SourceProxy->GetSelectionInput(0));</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> vtkSmartPointer<vtkExtractSelection> ExtrSelFltr = vtkSmartPointer<vtkExtractSelection>::New();</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> ExtrSelFltr-></span>
<span style="font-size:10.0pt; font-family:"Arial","sans-serif"">SetInputConnection(0, this->GetInputAlgorithm()->GetOutputPort((uint)0));</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> ExtrSelFltr-></span>
<span style="font-size:10.0pt; font-family:"Arial","sans-serif"">SetInputConnection(1, active_selection->GetOutputPort((uint)0)); //Not the right way!</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> ExtrSelFltr->Update();</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">The functionality I want to implement written in Python:</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">def GetSelectionSource(proxy=None):</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> """If a selection has exists for the proxy (if proxy is not specified then</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> the active source is used), returns that selection source"""</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> if not proxy:</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> proxy = GetActiveSource()</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> if not proxy:</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> raise RuntimeError, \</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> "GetSelectionSource() needs a proxy argument of that an active source is set."</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> return proxy.GetSelectionInput(proxy.Port)</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">
</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">active_selection = GetSelectionSource()</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""># Create extract selection</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Extr_Sel = ExtractSelection(Selection=active_selection)</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""># Access raw data of Extr_Sel</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Extr_Sel_raw = servermanager.Fetch(Extr_Sel)</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Any comment is appreciated and</span></p>
<p class="MsoNormal"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">thanks in advance.</span></p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif"">Mit freundlichen Gruessen / Best regards<b></b></span></p>
<p class="MsoNormal" style="text-autospace:none"><b><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></b></p>
<p class="MsoNormal" style="text-autospace:none"><b><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Martin Schröder,</span></b><span style="font-size:10.0pt; font-family:"Arial","sans-serif""> FIEA</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">MTU Aero Engines GmbH</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Engineering Systems (CAE)</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif"">Dachauer Str. 665</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif"">80995 Muenchen</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif"">Germany</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif""> </span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif"">Tel +49 (0)89 14 89 57 20</span></p>
<p class="MsoNormal" style="text-autospace:none"><span style="font-size:10.0pt; font-family:"Arial","sans-serif"">Fax +49 (0)89 14 89-96 89 4</span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif""><a href="mailto:martin.schroeder@mtu.de"><span lang="EN-US" style="color:blue">mailto:martin.schroeder@mtu.de</span></a></span><span style="font-size:10.0pt; font-family:"Arial","sans-serif""></span></p>
<p class="MsoNormal" style="text-autospace:none"><span lang="DE" style="font-size:10.0pt; font-family:"Arial","sans-serif""><a href="http://www.mtu.de"><span style="color:blue">http://www.mtu.de</span></a><br>
<br>
<b></b></span></p>
<p class="MsoNormal"> </p>
</div>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">--</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver"><strong>MTU Aero Engines GmbH</strong></span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Geschaeftsfuehrung/Board of Management: Egon W. Behle, Vorsitzender/CEO; Dr. Rainer Martens, Dr. Stefan Weingartner, Reiner Winkler</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Vorsitzender des Aufsichtsrats/Chairman of the Supervisory Board: Klaus Eberhardt</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Sitz der Gesellschaft/Registered Office: Muenchen</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Handelsregister/Commercial Register: Muenchen HRB 154230</span><br>
<br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Diese E-Mail sowie ihre Anhaenge enthalten MTU-eigene vertrauliche oder rechtlich geschuetzte Informationen.</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Wenn Sie nicht der beabsichtigte Empfaenger sind, informieren Sie bitte den Absender und loeschen Sie diese</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">E-Mail sowie die Anhaenge. Das unbefugte Speichern, Kopieren oder Weiterleiten ist nicht gestattet.</span><br>
<br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">This e-mail and any attached documents are proprietary to MTU, confidential or protected by law.</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">If you are not the intended recipient, please advise the sender and delete this message and its attachments.</span><br>
<span style="font-size:8.0pt; font-family:"Arial"; color:silver">Any unauthorised storing, copying or distribution is prohibited.</span><br>
</body>
</html>