[vtkusers] Filling contour with edge visibility on

Jothy jothybasu at gmail.com
Sat Jun 5 13:13:53 EDT 2010


Here is the code

# A simple script to demonstrate the vtkCutter function
import vtk


#Create a cube
cube=vtk.vtkSphereSource()
cube.SetRadius(50)
cube.SetThetaResolution(100)
cube.SetPhiResolution(100)
cubeMapper=vtk.vtkPolyDataMapper()
cubeMapper.SetInputConnection(cube.GetOutputPort())

#create a plane to cut,here it cuts in the XZ direction (xz
normal=(1,0,0);XY =(0,0,1),YZ =(0,1,0)
plane=vtk.vtkPlane()
plane.SetOrigin(20,0,0)
plane.SetNormal(1,0,0)

#create cutter
cutter=vtk.vtkCutter()
cutter.SetCutFunction(plane)
cutter.SetInput(cubeMapper.GetInput())
cutter.Update()

FeatureEdges=vtk.vtkFeatureEdges()
FeatureEdges.SetInputConnection(cutter.GetOutputPort())
FeatureEdges.BoundaryEdgesOn()
FeatureEdges.FeatureEdgesOff()
FeatureEdges.NonManifoldEdgesOff()
FeatureEdges.ManifoldEdgesOff()
FeatureEdges.Update()

cutStrips=vtk.vtkStripper() ; #Forms loops (closed polylines) from cutter
cutStrips.SetInputConnection(cutter.GetOutputPort())
cutStrips.Update()
cutPoly=vtk.vtkPolyData() ; #This trick defines polygons as polyline loop
cutPoly.SetPoints((cutStrips.GetOutput()).GetPoints())
cutPoly.SetPolys((cutStrips.GetOutput()).GetLines())


cutMapper=vtk.vtkPolyDataMapper()
#cutMapper.SetInput(FeatureEdges.GetOutput())
cutMapper.SetInput(cutPoly)
cutActor=vtk.vtkActor()
cutActor.GetProperty().SetColor(1,1,0)
cutActor.GetProperty().SetEdgeColor(0,1,0)
cutActor.GetProperty().SetLineWidth(2)
cutActor.GetProperty().EdgeVisibilityOn()
##cutActor.GetProperty().SetOpacity(0.7)
cutActor.SetMapper(cutMapper)


#create renderers and add actors of plane and cube
ren = vtk.vtkRenderer()
ren.AddActor(cutActor)


#Add renderer to renderwindow and render
renWin = vtk.vtkRenderWindow()
renWin.AddRenderer(ren)
renWin.SetSize(600, 600)
iren = vtk.vtkRenderWindowInteractor()
iren.SetRenderWindow(renWin)
ren.SetBackground(0,0,0)
renWin.Render()

What's the problem then?

Thank you,

Jothy

On Sat, Jun 5, 2010 at 6:10 PM, Bill Lorensen <bill.lorensen at gmail.com>wrote:

> No, it should not modify its input.
>
> On Sat, Jun 5, 2010 at 12:34 PM, Jothy <jothybasu at gmail.com> wrote:
> > Got it Bill!
> >
> > There is a trick
> >
> > pipeline is as I uesd before from capCow.tcl but introducin
> vtkfeatureEdges
> > after vtkCutter and setting the stripper input from cutter not from
> > featureEdges.
> >
> > I am bit confused, does this featureedges modifies the cutter output
> >  and makes this modified outpur available to cutter->GetOutput()
> >
> > Seems to be  special type of operation ( or is it a bug!).
> >
> > Here is the screenshot
> >
> > I will add an example to wiki.
> >
> >
> > Thanks,
> >
> >
> > On Sat, Jun 5, 2010 at 5:03 PM, Bill Lorensen <bill.lorensen at gmail.com>
> > wrote:
> >>
> >> Can you post an image of what you get?
> >>
> >> On Sat, Jun 5, 2010 at 11:34 AM, Jothy <jothybasu at gmail.com> wrote:
> >> > Here is it!
> >> >
> >> > # A simple script to demonstrate the vtkCutter function
> >> > import vtk
> >> >
> >> >
> >> > #Create a cube
> >> > cube=vtk.vtkSphereSource()
> >> > cube.SetRadius(50)
> >> > cube.SetThetaResolution(200)
> >> > cube.SetPhiResolution(200)
> >> > cubeMapper=vtk.vtkPolyDataMapper()
> >> > cubeMapper.SetInputConnection(cube.GetOutputPort())
> >> >
> >> > #create a plane to cut,here it cuts in the XZ direction (xz
> >> > normal=(1,0,0);XY =(0,0,1),YZ =(0,1,0)
> >> > plane=vtk.vtkPlane()
> >> > plane.SetOrigin(10,0,0)
> >> > plane.SetNormal(1,0,0)
> >> >
> >> > #create cutter
> >> > cutter=vtk.vtkCutter()
> >> > cutter.SetCutFunction(plane)
> >> > cutter.SetInput(cubeMapper.GetInput())
> >> > cutter.Update()
> >> >
> >> > FeatureEdges=vtk.vtkFeatureEdges()
> >> > FeatureEdges.SetInputConnection(cutter.GetOutputPort())
> >> > FeatureEdges.BoundaryEdgesOn()
> >> > FeatureEdges.FeatureEdgesOff()
> >> > FeatureEdges.NonManifoldEdgesOff()
> >> > FeatureEdges.ManifoldEdgesOff()
> >> > FeatureEdges.Update()
> >> >
> >> >
> >> >
> >> >
> >> > cutMapper=vtk.vtkPolyDataMapper()
> >> > cutMapper.SetInput(FeatureEdges.GetOutput())
> >> > cutActor=vtk.vtkActor()
> >> > cutActor.GetProperty().SetColor(1,1,0)
> >> > cutActor.GetProperty().SetEdgeColor(1,0.5,0)
> >> > cutActor.GetProperty().SetLineWidth(2)
> >> > cutActor.GetProperty().EdgeVisibilityOn()
> >> > cutActor.GetProperty().SetOpacity(0.7)
> >> > cutActor.SetMapper(cutMapper)
> >> >
> >> >
> >> > #create renderers and add actors of plane and cube
> >> > ren = vtk.vtkRenderer()
> >> > ren.AddActor(cutActor)
> >> >
> >> >
> >> > #Add renderer to renderwindow and render
> >> > renWin = vtk.vtkRenderWindow()
> >> > renWin.AddRenderer(ren)
> >> > renWin.SetSize(600, 600)
> >> > iren = vtk.vtkRenderWindowInteractor()
> >> > iren.SetRenderWindow(renWin)
> >> > ren.SetBackground(0,0,0)
> >> > renWin.Render()
> >> >
> >> > On Fri, Jun 4, 2010 at 10:07 PM, Bill Lorensen <
> bill.lorensen at gmail.com>
> >> > wrote:
> >> >>
> >> >> From the output of vtkCutter, insert vtkFeatureEdges with
> >> >> BoundaryEdgesOn()
> >> >> FeatureEdgesOff()
> >> >> NonManifoldEdgesOff()
> >> >> ManifoldEdgesOff()
> >> >>
> >> >>
> >> >>
> >> >> On Fri, Jun 4, 2010 at 4:16 PM, Jothy <jothybasu at gmail.com> wrote:
> >> >> > Hi all,
> >> >> >
> >> >> > With the help of CapCow.tcl example I am able to fill the contour I
> >> >> > got
> >> >> > from
> >> >> > vtkCutter. But, the problem is I am the edge to be visible, so I
> set
> >> >> > edge
> >> >> > visibility on, it makes all the triangle edges on. I want only the
> >> >> > outline
> >> >> > on.
> >> >> >
> >> >> > Any suggestions?
> >> >> >
> >> >> > Thanks,
> >> >> >
> >> >> > Jothy
> >> >> >
> >> >> > _______________________________________________
> >> >> > Powered by www.kitware.com
> >> >> >
> >> >> > Visit other Kitware open-source projects at
> >> >> > http://www.kitware.com/opensource/opensource.html
> >> >> >
> >> >> > Please keep messages on-topic and check the VTK FAQ at:
> >> >> > http://www.vtk.org/Wiki/VTK_FAQ
> >> >> >
> >> >> > Follow this link to subscribe/unsubscribe:
> >> >> > http://www.vtk.org/mailman/listinfo/vtkusers
> >> >> >
> >> >> >
> >> >
> >> >
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.vtk.org/pipermail/vtkusers/attachments/20100605/e87073ad/attachment.htm>


More information about the vtkusers mailing list