I have written the code to visualize the Directed graph which works fine if I use some default layout and fails if I provide vtkPoints and use pass through strategy i.e. I get undirected graph <br><br>The following is my code snippet: <br>
<br><span style="color:#008000">//DirectedG->SetPoints(points);</span>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">DirectedG</span><span style="color:#000000">-></span>GetVertexData<span style="color:#000000">()-></span>AddArray<span style="color:#000000">(</span><span style="color:#000000">label</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#800000">DirectedG</span><span style="color:#000000">-></span>GetEdgeData<span style="color:#000000">()-></span>AddArray<span style="color:#000000">(</span><span style="color:#000000">edgeColors</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphLayout<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">layout</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphLayout<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkSimple2DLayoutStrategy<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">strategy</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkSimple2DLayoutStrategy<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"><br></span><span style="color:#008000"></span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">layout</span><span style="color:#000000">-></span>SetInput<span style="color:#000000">(</span><span style="color:#800000">DirectedG</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">layout</span><span style="color:#000000">-></span>SetLayoutStrategy<span style="color:#000000">(</span><span style="color:#000000">strategy</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">layout</span><span style="color:#000000">-></span>Update<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"><br></span><span style="color:#008000"></span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphLayoutView<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphLayoutView<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetLayoutStrategyToPassThrough<span style="color:#000000">();</span></pre>
<br><pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetEdgeLayoutStrategyToPassThrough<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>ScaledGlyphsOn<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetScalingArrayName<span style="color:#000000">(</span><span style="color:#008000">"Scales"</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetEdgeColorArrayName<span style="color:#000000">(</span><span style="color:#008000">"Color"</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>ColorEdgesOn<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Add</span><span style="color:#c0c0c0"> </span><span style="color:#008000">the</span><span style="color:#c0c0c0"> </span><span style="color:#008000">graph</span><span style="color:#c0c0c0"> </span><span style="color:#008000">to</span><span style="color:#c0c0c0"> </span><span style="color:#008000">the</span><span style="color:#c0c0c0"> </span><span style="color:#008000">view.</span><span style="color:#c0c0c0"> </span><span style="color:#008000">This</span><span style="color:#c0c0c0"> </span><span style="color:#008000">will</span><span style="color:#c0c0c0"> </span><span style="color:#008000">render</span><span style="color:#c0c0c0"> </span><span style="color:#008000">vertices</span><span style="color:#c0c0c0"> </span><span style="color:#008000">and</span><span style="color:#c0c0c0"> </span><span style="color:#008000">edges,</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//</span><span style="color:#c0c0c0"> </span><span style="color:#008000">but</span><span style="color:#c0c0c0"> </span><span style="color:#008000">not</span><span style="color:#c0c0c0"> </span><span style="color:#008000">edge</span><span style="color:#c0c0c0"> </span><span style="color:#008000">arrows.</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>AddRepresentationFromInputConnection<span style="color:#000000">(</span><span style="color:#000000">layout</span><span style="color:#000000">-></span>GetOutputPort<span style="color:#000000">());</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//graphLayoutView->AddRepresentationFromInput(DirectedG);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphToPolyData<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGraphToPolyData<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#000000">-></span>SetInputConnection<span style="color:#000000">(</span><span style="color:#000000">layout</span><span style="color:#000000">-></span>GetOutputPort<span style="color:#000000">());</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//graphToPoly->SetInput(DirectedG);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#000000">-></span>EdgeGlyphOutputOn<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#000000">-></span>SetEdgeGlyphPosition<span style="color:#000000">(</span><span style="color:#000080">0.98</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#000000">-></span>Update<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Make</span><span style="color:#c0c0c0"> </span><span style="color:#008000">a</span><span style="color:#c0c0c0"> </span><span style="color:#008000">simple</span><span style="color:#c0c0c0"> </span><span style="color:#008000">edge</span><span style="color:#c0c0c0"> </span><span style="color:#008000">arrow</span><span style="color:#c0c0c0"> </span><span style="color:#008000">for</span><span style="color:#c0c0c0"> </span><span style="color:#008000">glyphing.</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGlyphSource2D<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGlyphSource2D<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#000000">-></span>SetGlyphTypeToEdgeArrow<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#000000">-></span>SetScale<span style="color:#000000">(</span><span style="color:#000080">0.1</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#000000">-></span>SetColor<span style="color:#000000">(</span><span style="color:#000080">1</span><span style="color:#000000">,</span><span style="color:#000080">0</span><span style="color:#000000">,</span><span style="color:#000080">0</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#000000">-></span>Update<span style="color:#000000">();</span></pre>
<br><pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGlyph3D<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowGlyph</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkGlyph3D<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowGlyph</span><span style="color:#000000">-></span>SetInputConnection<span style="color:#000000">(</span><span style="color:#000080">0</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">graphToPoly</span><span style="color:#000000">-></span>GetOutputPort<span style="color:#000000">(</span><span style="color:#000080">1</span><span style="color:#000000">));</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowGlyph</span><span style="color:#000000">-></span>SetInputConnection<span style="color:#000000">(</span><span style="color:#000080">1</span><span style="color:#000000">,</span><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowSource</span><span style="color:#000000">-></span>GetOutputPort<span style="color:#000000">());</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowGlyph</span><span style="color:#000000">-></span>Update<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//</span><span style="color:#c0c0c0"> </span><span style="color:#008000">Add</span><span style="color:#c0c0c0"> </span><span style="color:#008000">the</span><span style="color:#c0c0c0"> </span><span style="color:#008000">edge</span><span style="color:#c0c0c0"> </span><span style="color:#008000">arrow</span><span style="color:#c0c0c0"> </span><span style="color:#008000">actor</span><span style="color:#c0c0c0"> </span><span style="color:#008000">to</span><span style="color:#c0c0c0"> </span><span style="color:#008000">the</span><span style="color:#c0c0c0"> </span><span style="color:#008000">view.</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkPolyDataMapper<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowMapper</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkPolyDataMapper<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowMapper</span><span style="color:#000000">-></span>SetInputConnection<span style="color:#000000">(</span><span style="color:#000000">arrowGlyph</span><span style="color:#000000">-></span>GetOutputPort<span style="color:#000000">());</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//arrowMapper->SetInputConnection(graphToPolyData->GetOutputPort());</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkActor<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowActor</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkActor<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">arrowActor</span><span style="color:#000000">-></span>SetMapper<span style="color:#000000">(</span><span style="color:#000000">arrowMapper</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#008000">//arrowActor->GetProperty()->SetColor(0,0,1);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetVertexLabelVisibility<span style="color:#000000">(</span><span style="color:#808000">true</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>SetVertexLabelArrayName<span style="color:#000000">(</span><span style="color:#008000">"node</span><span style="color:#c0c0c0"> </span><span style="color:#008000">label"</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>GetRenderer<span style="color:#000000">()-></span>AddActor<span style="color:#000000">(</span><span style="color:#000000">arrowActor</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkViewTheme<span style="color:#000000">></span><span style="color:#c0c0c0"> </span><span style="color:#000000">theme</span><span style="color:#c0c0c0"> </span><span style="color:#000000">=</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span>vtkSmartPointer<span style="color:#000000"><</span>vtkViewTheme<span style="color:#000000">>::</span>New<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">theme</span><span style="color:#000000">-></span>SetCellLookupTable<span style="color:#000000">(</span><span style="color:#000000">lookupTable</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>ApplyViewTheme<span style="color:#000000">(</span><span style="color:#000000">theme</span><span style="color:#000000">);</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>ResetCamera<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>Render<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><span style="color:#c0c0c0"> </span><span style="color:#000000">graphLayoutView</span><span style="color:#000000">-></span>GetInteractor<span style="color:#000000">()-></span>Start<span style="color:#000000">();</span></pre>
<pre style="margin-top:0px;margin-bottom:0px;margin-left:0px;margin-right:0px;text-indent:0px"><br></pre><br>It works fine with default layout and when I uncomment <span style="color:#008000">DirectedG->SetPoints(points); <br>
<br>line I do get new points position but then I don't get directed graph. I tried to use the same code without using Graphlayout too i.e. trying to render the polydata in the renderwindow but no success. <br></span>