Example #1
0
  def testThreshold(self):
    global args
    writefiles = "SaveData" in args

    renderer = vtk.vtkRenderer()
    renwin = vtk.vtkRenderWindow()
    renwin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renwin)
    renwin.Render()

    if "GPURender" in args:
        vtk.vtkPistonMapper.InitCUDAGL(renwin)

    src = vtk.vtkImageMandelbrotSource()
    src.SetWholeExtent(0,10,0,10,0,10)

    #scale and bias until piston's threshold understands origin and spacing
    src.Update()
    inputdata = src.GetOutput()
    if "Normalize" in args:
         testdata1 = inputdata.NewInstance()
         testdata1.ShallowCopy(inputdata)
         testdata1.SetSpacing(1,1,1)
         testdata1.SetOrigin(0,0,0)
         inputdata = testdata1

    d2p = vtk.vtkDataSetToPiston()
    d2p.SetInputData(inputdata)
    #d2p.SetInputConnection(src.GetOutputPort())

    threshF = vtk.vtkPistonThreshold()
    threshF.SetInputConnection(d2p.GetOutputPort())
    threshF.SetMinValue(0)
    threshF.SetMaxValue(80)

    p2d = vtk.vtkPistonToDataSet()
    p2d.SetInputConnection(threshF.GetOutputPort())
    p2d.SetOutputDataSetType(vtk.VTK_POLY_DATA)

    if writefiles:
        writeFile(p2d, "piston_threshold.vtk")

    mapper = vtk.vtkPistonMapper()
    mapper.SetInputConnection(threshF.GetOutputPort())
    mapper.Update()

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    renderer.AddActor(actor)

    renderer.ResetCamera()
    renwin.Render()

    img_file = "TestThreshold.png"
    Testing.compareImage(renwin, Testing.getAbsImagePath(img_file))

    if Testing.isInteractive():
        iren.Start()
    def testThreshold(self):
        global args
        writefiles = "SaveData" in args

        renderer = vtk.vtkRenderer()
        renwin = vtk.vtkRenderWindow()
        renwin.AddRenderer(renderer)
        iren = vtk.vtkRenderWindowInteractor()
        iren.SetRenderWindow(renwin)
        renwin.Render()

        if "GPURender" in args:
            vtk.vtkPistonMapper.InitCUDAGL(renwin)

        src = vtk.vtkImageMandelbrotSource()
        src.SetWholeExtent(0, 10, 0, 10, 0, 10)

        #scale and bias until piston's threshold understands origin and spacing
        src.Update()
        inputdata = src.GetOutput()
        if "Normalize" in args:
            testdata1 = inputdata.NewInstance()
            testdata1.ShallowCopy(inputdata)
            testdata1.SetSpacing(1, 1, 1)
            testdata1.SetOrigin(0, 0, 0)
            inputdata = testdata1

        d2p = vtk.vtkDataSetToPiston()
        d2p.SetInputData(inputdata)
        #d2p.SetInputConnection(src.GetOutputPort())

        threshF = vtk.vtkPistonThreshold()
        threshF.SetInputConnection(d2p.GetOutputPort())
        threshF.SetMinValue(0)
        threshF.SetMaxValue(80)

        p2d = vtk.vtkPistonToDataSet()
        p2d.SetInputConnection(threshF.GetOutputPort())
        p2d.SetOutputDataSetType(vtk.VTK_POLY_DATA)

        if writefiles:
            writeFile(p2d, "piston_threshold.vtk")

        mapper = vtk.vtkPistonMapper()
        mapper.SetInputConnection(threshF.GetOutputPort())
        mapper.Update()

        actor = vtk.vtkActor()
        actor.SetMapper(mapper)

        renderer.AddActor(actor)

        renderer.ResetCamera()
        renwin.Render()

        img_file = "TestThreshold.png"
        Testing.compareImage(renwin, Testing.getAbsImagePath(img_file))

        if Testing.isInteractive():
            iren.Start()
Example #3
0
  def testRendering(self):
    global args

    renderer = vtk.vtkRenderer()
    renwin = vtk.vtkRenderWindow()
    renwin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renwin)
    renwin.Render()

    if "GPURender" in args:
        print "Testing GPU direct render path"
        vtk.vtkPistonMapper.InitCUDAGL(renwin)
    else:
        print "Testing CPU indirect render path"

    src = vtk.vtkSphereSource()

    d2p = vtk.vtkDataSetToPiston()
    d2p.SetInputConnection(src.GetOutputPort())

    mapper = vtk.vtkPistonMapper()
    mapper.SetInputConnection(d2p.GetOutputPort())
    mapper.Update() #TODO: shouldn't need this

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    renderer.AddActor(actor)

    renderer.ResetCamera()
    renwin.Render()

    img_file = "TestRendering.png"
    Testing.compareImage(renwin, Testing.getAbsImagePath(img_file))

    if Testing.isInteractive():
        iren.Start()
Example #4
0
  def testRendering(self):
    global args

    renderer = vtk.vtkRenderer()
    renwin = vtk.vtkRenderWindow()
    renwin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renwin)
    renwin.Render()

    if "GPURender" in args:
        print "Testing GPU direct render path"
        vtk.vtkPistonMapper.InitCudaGL(renwin)
    else:
        print "Testing CPU indirect render path"

    src = vtk.vtkSphereSource()

    d2p = vtk.vtkDataSetToPiston()
    d2p.SetInputConnection(src.GetOutputPort())

    mapper = vtk.vtkPistonMapper()
    mapper.SetInputConnection(d2p.GetOutputPort())
    mapper.Update() #TODO: shouldn't need this

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    renderer.AddActor(actor)

    renderer.ResetCamera()
    renwin.Render()

    img_file = "TestRendering.png"
    Testing.compareImage(renwin, Testing.getAbsImagePath(img_file))

    if Testing.isInteractive():
        iren.Start()
Example #5
0
    def testSlice(self):
        global plane, filter, args
        writefiles = "SaveData" in args

        renderer = vtk.vtkRenderer()
        renwin = vtk.vtkRenderWindow()
        renwin.AddRenderer(renderer)
        iren = vtk.vtkRenderWindowInteractor()
        iren.SetRenderWindow(renwin)
        renwin.Render()

        if "GPURender" in args:
            vtk.vtkPistonMapper.InitCUDAGL(renwin)

        src = vtk.vtkImageMandelbrotSource()
        src.SetWholeExtent(0, 20, 0, 20, 0, 20)

        #scale and bias until piston understands origin and spacing
        src.Update()
        inputdata = src.GetOutput()
        if "Normalize" in args:
            testdata1 = inputdata.NewInstance()
            testdata1.ShallowCopy(inputdata)
            testdata1.SetSpacing(1, 1, 1)
            testdata1.SetOrigin(0, 0, 0)
            inputdata = testdata1

        bounds = inputdata.GetBounds()
        center = [(bounds[1] - bounds[0]) / 2 + bounds[0],
                  (bounds[3] - bounds[2]) / 2 + bounds[2],
                  (bounds[5] - bounds[4]) / 2 + bounds[4]]

        d2p = vtk.vtkDataSetToPiston()
        d2p.SetInputData(inputdata)
        #d2p.SetInputConnection(src.GetOutputPort())

        plane = vtk.vtkPlane()
        plane.SetOrigin(center)
        plane.SetNormal(0, 0, 1)

        filter = vtk.vtkPistonSlice()
        filter.SetInputConnection(d2p.GetOutputPort())
        filter.SetClippingPlane(plane)
        filter.SetOffset(0.0)

        p2d = vtk.vtkPistonToDataSet()
        p2d.SetOutputDataSetType(vtk.VTK_POLY_DATA)
        p2d.SetInputConnection(filter.GetOutputPort())
        if writefiles:
            writeFile(p2d, "piston_slice.vtk")

        mapper = vtk.vtkPistonMapper()
        mapper.SetInputConnection(filter.GetOutputPort())
        mapper.Update()  #TODO why is this necessary

        actor = vtk.vtkActor()
        actor.SetMapper(mapper)

        renderer.AddActor(actor)

        widget = vtk.vtkImplicitPlaneWidget()
        widget.PlaceWidget(bounds)
        widget.SetOrigin([plane.GetOrigin()[x] for x in 0, 1, 2])
        widget.SetNormal([plane.GetNormal()[x] for x in 0, 1, 2])
        widget.SetInteractor(iren)
        widget.AddObserver("InteractionEvent", widgetCallBack)
        widget.SetEnabled(1)
        widget.DrawPlaneOff()

        renderer.ResetCamera()
        renwin.Render()

        img_file = "TestSlice.png"
        Testing.compareImage(renwin, Testing.getAbsImagePath(img_file))

        if Testing.isInteractive():
            widget.DrawPlaneOn()
            iren.Start()
Example #6
0
  def testSlice(self):
    global plane, filter, args
    writefiles = "SaveData" in args

    renderer = vtk.vtkRenderer()
    renwin = vtk.vtkRenderWindow()
    renwin.AddRenderer(renderer)
    iren = vtk.vtkRenderWindowInteractor()
    iren.SetRenderWindow(renwin)
    renwin.Render()

    if "GPURender" in args:
        vtk.vtkPistonMapper.InitCUDAGL(renwin)

    src = vtk.vtkImageMandelbrotSource()
    src.SetWholeExtent(0,20,0,20,0,20)

    #scale and bias until piston understands origin and spacing
    src.Update()
    inputdata = src.GetOutput()
    if "Normalize" in args:
         testdata1 = inputdata.NewInstance()
         testdata1.ShallowCopy(inputdata)
         testdata1.SetSpacing(1,1,1)
         testdata1.SetOrigin(0,0,0)
         inputdata = testdata1

    bounds = inputdata.GetBounds()
    center = [(bounds[1]-bounds[0])/2+bounds[0],
              (bounds[3]-bounds[2])/2+bounds[2],
              (bounds[5]-bounds[4])/2+bounds[4]]

    d2p = vtk.vtkDataSetToPiston()
    d2p.SetInputData(inputdata)
    #d2p.SetInputConnection(src.GetOutputPort())

    plane = vtk.vtkPlane()
    plane.SetOrigin(center)
    plane.SetNormal(0,0,1)

    filter = vtk.vtkPistonSlice()
    filter.SetInputConnection(d2p.GetOutputPort())
    filter.SetClippingPlane(plane)
    filter.SetOffset(0.0)

    p2d = vtk.vtkPistonToDataSet()
    p2d.SetOutputDataSetType(vtk.VTK_POLY_DATA)
    p2d.SetInputConnection(filter.GetOutputPort())
    if writefiles:
        writeFile(p2d, "piston_slice.vtk")

    mapper = vtk.vtkPistonMapper()
    mapper.SetInputConnection(filter.GetOutputPort())
    mapper.Update() #TODO why is this necessary

    actor = vtk.vtkActor()
    actor.SetMapper(mapper)

    renderer.AddActor(actor)

    widget = vtk.vtkImplicitPlaneWidget()
    widget.PlaceWidget(bounds)
    widget.SetOrigin([plane.GetOrigin()[x] for x in 0,1,2])