<div dir="ltr">No Bill, this shows only the edge (outline) in surface and wireframe mode<br><br>I really understand the behaviour of fretureEdges.<br><br>see the attached screenshot.<br><br>Thanks,<br><br>Jothy<br><br><br>
<br><div class="gmail_quote">On Sat, Jun 5, 2010 at 6:25 PM, Bill Lorensen <span dir="ltr">&lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
If this does not work, I&#39;ll convert python to C++ (I am not a python<br>
guy). Maybe in the next day or so.<br>
<div><div></div><div class="h5"><br>
On Sat, Jun 5, 2010 at 1:24 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt; wrote:<br>
&gt; Try<br>
&gt; cutter-&gt;Stripper-&gt;cutPoly-&gt;TriangleFilter-&gt;FeatureEdges-&gt;Mapper<br>
&gt;<br>
&gt; On Sat, Jun 5, 2010 at 1:13 PM, Jothy &lt;<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>&gt; wrote:<br>
&gt;&gt; Here is the code<br>
&gt;&gt;<br>
&gt;&gt; # A simple script to demonstrate the vtkCutter function<br>
&gt;&gt; import vtk<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; #Create a cube<br>
&gt;&gt; cube=vtk.vtkSphereSource()<br>
&gt;&gt; cube.SetRadius(50)<br>
&gt;&gt; cube.SetThetaResolution(100)<br>
&gt;&gt; cube.SetPhiResolution(100)<br>
&gt;&gt; cubeMapper=vtk.vtkPolyDataMapper()<br>
&gt;&gt; cubeMapper.SetInputConnection(cube.GetOutputPort())<br>
&gt;&gt;<br>
&gt;&gt; #create a plane to cut,here it cuts in the XZ direction (xz<br>
&gt;&gt; normal=(1,0,0);XY =(0,0,1),YZ =(0,1,0)<br>
&gt;&gt; plane=vtk.vtkPlane()<br>
&gt;&gt; plane.SetOrigin(20,0,0)<br>
&gt;&gt; plane.SetNormal(1,0,0)<br>
&gt;&gt;<br>
&gt;&gt; #create cutter<br>
&gt;&gt; cutter=vtk.vtkCutter()<br>
&gt;&gt; cutter.SetCutFunction(plane)<br>
&gt;&gt; cutter.SetInput(cubeMapper.GetInput())<br>
&gt;&gt; cutter.Update()<br>
&gt;&gt;<br>
&gt;&gt; FeatureEdges=vtk.vtkFeatureEdges()<br>
&gt;&gt; FeatureEdges.SetInputConnection(cutter.GetOutputPort())<br>
&gt;&gt; FeatureEdges.BoundaryEdgesOn()<br>
&gt;&gt; FeatureEdges.FeatureEdgesOff()<br>
&gt;&gt; FeatureEdges.NonManifoldEdgesOff()<br>
&gt;&gt; FeatureEdges.ManifoldEdgesOff()<br>
&gt;&gt; FeatureEdges.Update()<br>
&gt;&gt;<br>
&gt;&gt; cutStrips=vtk.vtkStripper() ; #Forms loops (closed polylines) from cutter<br>
&gt;&gt; cutStrips.SetInputConnection(cutter.GetOutputPort())<br>
&gt;&gt; cutStrips.Update()<br>
&gt;&gt; cutPoly=vtk.vtkPolyData() ; #This trick defines polygons as polyline loop<br>
&gt;&gt; cutPoly.SetPoints((cutStrips.GetOutput()).GetPoints())<br>
&gt;&gt; cutPoly.SetPolys((cutStrips.GetOutput()).GetLines())<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; cutMapper=vtk.vtkPolyDataMapper()<br>
&gt;&gt; #cutMapper.SetInput(FeatureEdges.GetOutput())<br>
&gt;&gt; cutMapper.SetInput(cutPoly)<br>
&gt;&gt; cutActor=vtk.vtkActor()<br>
&gt;&gt; cutActor.GetProperty().SetColor(1,1,0)<br>
&gt;&gt; cutActor.GetProperty().SetEdgeColor(0,1,0)<br>
&gt;&gt; cutActor.GetProperty().SetLineWidth(2)<br>
&gt;&gt; cutActor.GetProperty().EdgeVisibilityOn()<br>
&gt;&gt; ##cutActor.GetProperty().SetOpacity(0.7)<br>
&gt;&gt; cutActor.SetMapper(cutMapper)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; #create renderers and add actors of plane and cube<br>
&gt;&gt; ren = vtk.vtkRenderer()<br>
&gt;&gt; ren.AddActor(cutActor)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; #Add renderer to renderwindow and render<br>
&gt;&gt; renWin = vtk.vtkRenderWindow()<br>
&gt;&gt; renWin.AddRenderer(ren)<br>
&gt;&gt; renWin.SetSize(600, 600)<br>
&gt;&gt; iren = vtk.vtkRenderWindowInteractor()<br>
&gt;&gt; iren.SetRenderWindow(renWin)<br>
&gt;&gt; ren.SetBackground(0,0,0)<br>
&gt;&gt; renWin.Render()<br>
&gt;&gt;<br>
&gt;&gt; What&#39;s the problem then?<br>
&gt;&gt;<br>
&gt;&gt; Thank you,<br>
&gt;&gt;<br>
&gt;&gt; Jothy<br>
&gt;&gt;<br>
&gt;&gt; On Sat, Jun 5, 2010 at 6:10 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt; wrote:<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; No, it should not modify its input.<br>
&gt;&gt;&gt;<br>
&gt;&gt;&gt; On Sat, Jun 5, 2010 at 12:34 PM, Jothy &lt;<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt; Got it Bill!<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; There is a trick<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; pipeline is as I uesd before from capCow.tcl but introducin<br>
&gt;&gt;&gt; &gt; vtkfeatureEdges<br>
&gt;&gt;&gt; &gt; after vtkCutter and setting the stripper input from cutter not from<br>
&gt;&gt;&gt; &gt; featureEdges.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I am bit confused, does this featureedges modifies the cutter output<br>
&gt;&gt;&gt; &gt;  and makes this modified outpur available to cutter-&gt;GetOutput()<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Seems to be  special type of operation ( or is it a bug!).<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Here is the screenshot<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; I will add an example to wiki.<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; Thanks,<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt; On Sat, Jun 5, 2010 at 5:03 PM, Bill Lorensen &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; Can you post an image of what you get?<br>
&gt;&gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; On Sat, Jun 5, 2010 at 11:34 AM, Jothy &lt;<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; &gt; Here is it!<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; # A simple script to demonstrate the vtkCutter function<br>
&gt;&gt;&gt; &gt;&gt; &gt; import vtk<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #Create a cube<br>
&gt;&gt;&gt; &gt;&gt; &gt; cube=vtk.vtkSphereSource()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cube.SetRadius(50)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cube.SetThetaResolution(200)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cube.SetPhiResolution(200)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cubeMapper=vtk.vtkPolyDataMapper()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cubeMapper.SetInputConnection(cube.GetOutputPort())<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #create a plane to cut,here it cuts in the XZ direction (xz<br>
&gt;&gt;&gt; &gt;&gt; &gt; normal=(1,0,0);XY =(0,0,1),YZ =(0,1,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt; plane=vtk.vtkPlane()<br>
&gt;&gt;&gt; &gt;&gt; &gt; plane.SetOrigin(10,0,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt; plane.SetNormal(1,0,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #create cutter<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutter=vtk.vtkCutter()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutter.SetCutFunction(plane)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutter.SetInput(cubeMapper.GetInput())<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutter.Update()<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges=vtk.vtkFeatureEdges()<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.SetInputConnection(cutter.GetOutputPort())<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.BoundaryEdgesOn()<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.FeatureEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.NonManifoldEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.ManifoldEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt; FeatureEdges.Update()<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutMapper=vtk.vtkPolyDataMapper()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutMapper.SetInput(FeatureEdges.GetOutput())<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor=vtk.vtkActor()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.GetProperty().SetColor(1,1,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.GetProperty().SetEdgeColor(1,0.5,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.GetProperty().SetLineWidth(2)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.GetProperty().EdgeVisibilityOn()<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.GetProperty().SetOpacity(0.7)<br>
&gt;&gt;&gt; &gt;&gt; &gt; cutActor.SetMapper(cutMapper)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #create renderers and add actors of plane and cube<br>
&gt;&gt;&gt; &gt;&gt; &gt; ren = vtk.vtkRenderer()<br>
&gt;&gt;&gt; &gt;&gt; &gt; ren.AddActor(cutActor)<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; #Add renderer to renderwindow and render<br>
&gt;&gt;&gt; &gt;&gt; &gt; renWin = vtk.vtkRenderWindow()<br>
&gt;&gt;&gt; &gt;&gt; &gt; renWin.AddRenderer(ren)<br>
&gt;&gt;&gt; &gt;&gt; &gt; renWin.SetSize(600, 600)<br>
&gt;&gt;&gt; &gt;&gt; &gt; iren = vtk.vtkRenderWindowInteractor()<br>
&gt;&gt;&gt; &gt;&gt; &gt; iren.SetRenderWindow(renWin)<br>
&gt;&gt;&gt; &gt;&gt; &gt; ren.SetBackground(0,0,0)<br>
&gt;&gt;&gt; &gt;&gt; &gt; renWin.Render()<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; On Fri, Jun 4, 2010 at 10:07 PM, Bill Lorensen<br>
&gt;&gt;&gt; &gt;&gt; &gt; &lt;<a href="mailto:bill.lorensen@gmail.com">bill.lorensen@gmail.com</a>&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; From the output of vtkCutter, insert vtkFeatureEdges with<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; BoundaryEdgesOn()<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; FeatureEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; NonManifoldEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; ManifoldEdgesOff()<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; On Fri, Jun 4, 2010 at 4:16 PM, Jothy &lt;<a href="mailto:jothybasu@gmail.com">jothybasu@gmail.com</a>&gt; wrote:<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Hi all,<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; With the help of CapCow.tcl example I am able to fill the contour<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; I<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; got<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; from<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; vtkCutter. But, the problem is I am the edge to be visible, so I<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; set<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; edge<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; visibility on, it makes all the triangle edges on. I want only the<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; outline<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; on.<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Any suggestions?<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Jothy<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Powered by <a href="http://www.kitware.com" target="_blank">www.kitware.com</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Visit other Kitware open-source projects at<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.kitware.com/opensource/opensource.html" target="_blank">http://www.kitware.com/opensource/opensource.html</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Please keep messages on-topic and check the VTK FAQ at:<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.vtk.org/Wiki/VTK_FAQ" target="_blank">http://www.vtk.org/Wiki/VTK_FAQ</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; Follow this link to subscribe/unsubscribe:<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt; <a href="http://www.vtk.org/mailman/listinfo/vtkusers" target="_blank">http://www.vtk.org/mailman/listinfo/vtkusers</a><br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;<br>
</div></div></blockquote></div><br></div>