コード例 #1
0
ファイル: ShaderComputation.py プロジェクト: jcfr/CommonGL
  def __init__(self, shaderComputation, textureUnit, volumeNode):
    FieldSampler.__init__(self, shaderComputation, textureUnit, volumeNode)
    self.shiftScale = vtk.vtkImageShiftScale()

    try:
      from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
    except ImportError:
      import vtkAddon
      vtkOpenGLTextureImage=vtkAddon.vtkOpenGLTextureImage
    self.textureImage=vtkOpenGLTextureImage()
    self.textureImage.SetShaderComputation(self.shaderComputation)

    self.updateFromMRML()
コード例 #2
0
    def __init__(self, shaderComputation, textureUnit, volumeNode):
        FieldSampler.__init__(self, shaderComputation, textureUnit, volumeNode)
        self.shiftScale = vtk.vtkImageShiftScale()

        try:
            from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
        except ImportError:
            import vtkAddon
            vtkOpenGLTextureImage = vtkAddon.vtkOpenGLTextureImage
        self.textureImage = vtkOpenGLTextureImage()
        self.textureImage.SetShaderComputation(self.shaderComputation)

        self.updateFromMRML()
コード例 #3
0
ファイル: ShaderComputation.py プロジェクト: jcfr/CommonGL
  def __init__(self, shaderComputation, textureUnit, node):
    self.shaderComputation = shaderComputation
    self.textureUnit = textureUnit
    self.node = node

    self.dummyImage = vtk.vtkImageData()
    self.dummyImage.SetDimensions(1,1,1)
    self.dummyImage.AllocateScalars(vtk.VTK_SHORT, 1)
    try:
      from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
    except ImportError:
      import vtkAddon
      vtkOpenGLTextureImage=vtkAddon.vtkOpenGLTextureImage
    self.textureImage=vtkOpenGLTextureImage()
    self.textureImage.SetShaderComputation(self.shaderComputation)
    self.textureImage.SetImageData(self.dummyImage)
コード例 #4
0
    def __init__(self, shaderComputation, textureUnit, node):
        self.shaderComputation = shaderComputation
        self.textureUnit = textureUnit
        self.node = node

        self.dummyImage = vtk.vtkImageData()
        self.dummyImage.SetDimensions(1, 1, 1)
        self.dummyImage.AllocateScalars(vtk.VTK_SHORT, 1)
        try:
            from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
        except ImportError:
            import vtkAddon
            vtkOpenGLTextureImage = vtkAddon.vtkOpenGLTextureImage
        self.textureImage = vtkOpenGLTextureImage()
        self.textureImage.SetShaderComputation(self.shaderComputation)
        self.textureImage.SetImageData(self.dummyImage)
コード例 #5
0
ファイル: Isobrush.py プロジェクト: pieper/CommonGL
    def __init__(self, sliceWidget):
        self.initialized = False
        super(IsobrushEffectTool, self).__init__(sliceWidget)
        # create a logic instance to do the non-gui work
        self.logic = IsobrushEffectLogic(self.sliceWidget.sliceLogic())

        # interaction state variables - track if painting or not
        self.actionState = None

        self.mode = 'isograph'  # TODO: could be a node setting controlled by gui

        #
        # cursor actor (paint preview)
        #
        self.cursorMapper = vtk.vtkImageMapper()
        self.cursorDummyImage = vtk.vtkImageData()
        self.cursorDummyImage.AllocateScalars(vtk.VTK_UNSIGNED_INT, 1)
        self.cursorMapper.SetInputData(self.cursorDummyImage)
        self.cursorActor = vtk.vtkActor2D()
        self.cursorActor.VisibilityOff()
        self.cursorActor.SetMapper(self.cursorMapper)
        self.cursorMapper.SetColorWindow(255)
        self.cursorMapper.SetColorLevel(128)

        self.actors.append(self.cursorActor)

        self.renderer.AddActor2D(self.cursorActor)

        #
        # Shader computation
        # - need to import class from module here since it may not be in sys.path
        #   at startup time
        # - uses dummy render window for framebuffer object context
        #
        try:
            from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLShaderComputation
            from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
        except ImportError:
            import vtkAddon
            vtkOpenGLShaderComputation = vtkAddon.vtkOpenGLShaderComputation
            vtkOpenGLTextureImage = vtkAddon.vtkOpenGLTextureImage
        self.shaderComputation = vtkOpenGLShaderComputation()
        self.backgroundTextureImage = vtkOpenGLTextureImage()
        self.labelTextureImage = vtkOpenGLTextureImage()
        self.resultImageTexture = vtkOpenGLTextureImage()
        self.iterationImageTexture = vtkOpenGLTextureImage()
        self.backgroundTextureImage.SetShaderComputation(
            self.shaderComputation)
        self.labelTextureImage.SetShaderComputation(self.shaderComputation)
        self.resultImageTexture.SetShaderComputation(self.shaderComputation)
        self.iterationImageTexture.SetShaderComputation(self.shaderComputation)

        self.shaderComputation.SetVertexShaderSource("""
      #version 120
      attribute vec3 vertexAttribute;
      attribute vec2 textureCoordinateAttribute;
      varying vec3 interpolatedTextureCoordinate;
      void main()
      {
        interpolatedTextureCoordinate = vec3(textureCoordinateAttribute, .5);
        gl_Position = vec4(vertexAttribute, 1.);
      }
    """)

        self.initialized = True

        self.previewOn()
コード例 #6
0
ファイル: Isobrush.py プロジェクト: jcfr/CommonGL
  def __init__(self, sliceWidget):
    self.initialized = False
    super(IsobrushEffectTool,self).__init__(sliceWidget)
    # create a logic instance to do the non-gui work
    self.logic = IsobrushEffectLogic(self.sliceWidget.sliceLogic())

    # interaction state variables - track if painting or not
    self.actionState = None

    #
    # cursor actor (paint preview)
    #
    self.cursorMapper = vtk.vtkImageMapper()
    self.cursorDummyImage = vtk.vtkImageData()
    self.cursorDummyImage.AllocateScalars(vtk.VTK_UNSIGNED_INT, 1)
    self.cursorMapper.SetInputData( self.cursorDummyImage )
    self.cursorActor = vtk.vtkActor2D()
    self.cursorActor.VisibilityOff()
    self.cursorActor.SetMapper( self.cursorMapper )
    self.cursorMapper.SetColorWindow( 255 )
    self.cursorMapper.SetColorLevel( 128 )

    self.actors.append( self.cursorActor )

    self.renderer.AddActor2D( self.cursorActor )

    #
    # Shader computation
    # - need to import class from module here since it may not be in sys.path
    #   at startup time
    # - uses dummy render window for framebuffer object context
    #
    try:
      from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLShaderComputation
      from vtkSlicerShadedActorModuleLogicPython import vtkOpenGLTextureImage
    except ImportError:
      import vtkAddon
      vtkOpenGLShaderComputation=vtkAddon.vtkOpenGLShaderComputation
      vtkOpenGLTextureImage=vtkAddon.vtkOpenGLTextureImage
    self.shaderComputation=vtkOpenGLShaderComputation()
    self.backgroundTextureImage=vtkOpenGLTextureImage()
    self.labelTextureImage=vtkOpenGLTextureImage()
    self.resultImageTexture=vtkOpenGLTextureImage()
    self.iterationImageTexture=vtkOpenGLTextureImage()
    self.backgroundTextureImage.SetShaderComputation(self.shaderComputation)
    self.labelTextureImage.SetShaderComputation(self.shaderComputation)
    self.resultImageTexture.SetShaderComputation(self.shaderComputation)
    self.iterationImageTexture.SetShaderComputation(self.shaderComputation)

    self.shaderComputation.SetVertexShaderSource("""
      #version 120
      attribute vec3 vertexAttribute;
      attribute vec2 textureCoordinateAttribute;
      varying vec3 interpolatedTextureCoordinate;
      void main()
      {
        interpolatedTextureCoordinate = vec3(textureCoordinateAttribute, .5);
        gl_Position = vec4(vertexAttribute, 1.);
      }
    """)

    self.initialized = True

    self.previewOn()