# encoding: utf-8
# module vtkmodules.vtkInteractionWidgets
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkInteractionWidgets.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel
import vtkmodules.vtkFiltersSources as __vtkmodules_vtkFiltersSources
import vtkmodules.vtkRenderingContext2D as __vtkmodules_vtkRenderingContext2D
import vtkmodules.vtkRenderingCore as __vtkmodules_vtkRenderingCore


from .vtkAbstractWidget import vtkAbstractWidget

class vtkContourWidget(vtkAbstractWidget):
    """
    vtkContourWidget - create a contour with a set of points
    
    Superclass: vtkAbstractWidget
    
    The vtkContourWidget is used to select a set of points, and draw
    lines between these points. The contour may be opened or closed,
    depending on how the last point is added. The widget handles all
    processing of widget events (that are triggered by VTK events). The
    vtkContourRepresentation is responsible for all placement of the
    points, calculation of the lines, and contour manipulation. This is
    done through two main helper classes: vtkPointPlacer and
    vtkContourLineInterpolator. The representation is also responsible
    for drawing the points and lines.
    
    @par Event Bindings: By default, the widget responds to the following
    VTK events (i.e., it watches the vtkRenderWindowInteractor for these
    events):
    
    
      LeftButtonPressEvent - triggers a Select event
      RightButtonPressEvent - triggers a AddFinalPoint event
      MouseMoveEvent - triggers a Move event
      LeftButtonReleaseEvent - triggers an EndSelect event
      Delete key event - triggers a Delete event
      Shift + Delete key event - triggers a Reset event 
    
    @par Event Bindings: Note that the event bindings described above can
    be changed using this class's vtkWidgetEventTranslator. This class
    translates VTK events into the vtkContourWidget's widget events:
    
    
      vtkWidgetEvent::Select
           widget state is:
               Start or
               Define: If we already have at least 2 nodes, test
                    whether the current (X,Y) location is near an
    existing
                    node. If so, close the contour and change to
    Manipulate
                    state. Otherwise, attempt to add a node at this (X,Y)
                    location.
               Manipulate: If this (X,Y) location activates a node, then
                    set the current operation to Translate. Otherwise, if
                    this location is near the contour, attempt to add a
                    new node on the contour at this (X,Y) location.
    
    @par Event Bindings:
      vtkWidgetEvent::AddFinalPoint
           widget state is:
               Start: Do nothing.
               Define: If we already have at least 2 nodes, test
                    whether the current (X,Y) location is near an
    existing
                    node. If so, close the contour and change to
    Manipulate
                    state. Otherwise, attempt to add a node at this (X,Y)
                    location. If we do, then leave the contour open and
                    change to Manipulate state.
               Manipulate: Do nothing.
    
    @par Event Bindings:
      vtkWidgetEvent::Move
           widget state is:
               Start or
               Define: Do nothing.
               Manipulate: If our operation is Translate, then invoke
                     WidgetInteraction() on the representation. If our
                     operation is Inactive, then just attempt to activate
                     a node at this (X,Y) location.
    
    @par Event Bindings:
      vtkWidgetEvent::EndSelect
           widget state is:
               Start or
               Define: Do nothing.
               Manipulate: If our operation is not Inactive, set it to
                     Inactive.
    
    @par Event Bindings:
      vtkWidgetEvent::Delete
           widget state is:
               Start: Do nothing.
               Define: Remove the last point on the contour.
               Manipulate: Attempt to activate a node at (X,Y). If
                      we do activate a node, delete it. If we now
                      have less than 3 nodes, go back to Define state.
    
    @par Event Bindings:
      vtkWidgetEvent::Reset
           widget state is:
               Start: Do nothing.
               Define: Remove all points and line segments of the
    contour.
                    Essentially calls Initialize(nullptr)
               Manipulate: Do nothing. 
    
    @par Event Bindings: This widget invokes the following VTK events on
    itself (which observers can listen for):
    
    
      vtkCommand::StartInteractionEvent (beginning to interact)
      vtkCommand::EndInteractionEvent (completing interaction)
      vtkCommand::InteractionEvent (moving after selecting something)
      vtkCommand::PlacePointEvent (after point is positioned;
                                   call data includes handle id (0,1))
      vtkCommand::WidgetValueChangedEvent (Invoked when the contour is
    closed
                                           for the first time. ) 
    
    @sa
    vtkHandleWidget
    """
    def AllowNodePickingOff(self): # real signature unknown; restored from __doc__
        """
        AllowNodePickingOff(self) -> None
        C++: virtual void AllowNodePickingOff()
        """
        pass

    def AllowNodePickingOn(self): # real signature unknown; restored from __doc__
        """
        AllowNodePickingOn(self) -> None
        C++: virtual void AllowNodePickingOn()
        """
        pass

    def CloseLoop(self): # real signature unknown; restored from __doc__
        """
        CloseLoop(self) -> None
        C++: void CloseLoop()
        
        Convenient method to close the contour loop.
        """
        pass

    def ContinuousDrawOff(self): # real signature unknown; restored from __doc__
        """
        ContinuousDrawOff(self) -> None
        C++: virtual void ContinuousDrawOff()
        """
        pass

    def ContinuousDrawOn(self): # real signature unknown; restored from __doc__
        """
        ContinuousDrawOn(self) -> None
        C++: virtual void ContinuousDrawOn()
        """
        pass

    def CreateDefaultRepresentation(self): # real signature unknown; restored from __doc__
        """
        CreateDefaultRepresentation(self) -> None
        C++: void CreateDefaultRepresentation() override;
        
        Create the default widget representation if one is not set.
        """
        pass

    def FollowCursorOff(self): # real signature unknown; restored from __doc__
        """
        FollowCursorOff(self) -> None
        C++: virtual void FollowCursorOff()
        """
        pass

    def FollowCursorOn(self): # real signature unknown; restored from __doc__
        """
        FollowCursorOn(self) -> None
        C++: virtual void FollowCursorOn()
        """
        pass

    def GetAllowNodePicking(self): # real signature unknown; restored from __doc__
        """
        GetAllowNodePicking(self) -> int
        C++: virtual vtkTypeBool GetAllowNodePicking()
        """
        return 0

    def GetContinuousDraw(self): # real signature unknown; restored from __doc__
        """
        GetContinuousDraw(self) -> int
        C++: virtual vtkTypeBool GetContinuousDraw()
        """
        return 0

    def GetContourRepresentation(self): # real signature unknown; restored from __doc__
        """
        GetContourRepresentation(self) -> vtkContourRepresentation
        C++: vtkContourRepresentation *GetContourRepresentation()
        
        Return the representation as a vtkContourRepresentation.
        """
        return vtkContourRepresentation

    def GetFollowCursor(self): # real signature unknown; restored from __doc__
        """
        GetFollowCursor(self) -> int
        C++: virtual vtkTypeBool GetFollowCursor()
        """
        return 0

    def GetNumberOfGenerationsFromBase(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBase(self, type:str) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def GetNumberOfGenerationsFromBaseType(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBaseType(type:str) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def GetWidgetState(self): # real signature unknown; restored from __doc__
        """
        GetWidgetState(self) -> int
        C++: virtual int GetWidgetState()
        
        Convenient method to determine the state of the method
        """
        return 0

    def Initialize(self, poly, state=1, idList, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        Initialize(self, poly:vtkPolyData, state:int=1,
            idList:vtkIdList=...) -> None
        C++: virtual void Initialize(vtkPolyData *poly, int state=1,
            vtkIdList *idList=nullptr)
        Initialize(self) -> None
        C++: virtual void Initialize()
        
        Initialize the contour widget from a user supplied set of points.
        The state of the widget decides if you are still defining the
        widget, or if you've finished defining (added the last point) are
        manipulating it. Note that if the polydata supplied is closed,
        the state will be set to manipulate. State: Define = 0,
        Manipulate = 1.
        """
        pass

    def IsA(self, type): # real signature unknown; restored from __doc__
        """
        IsA(self, type:str) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def IsTypeOf(self, type): # real signature unknown; restored from __doc__
        """
        IsTypeOf(type:str) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        return 0

    def NewInstance(self): # real signature unknown; restored from __doc__
        """
        NewInstance(self) -> vtkContourWidget
        C++: vtkContourWidget *NewInstance()
        """
        return vtkContourWidget

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkContourWidget
        C++: static vtkContourWidget *SafeDownCast(vtkObjectBase *o)
        """
        return vtkContourWidget

    def SetAllowNodePicking(self, __a): # real signature unknown; restored from __doc__
        """
        SetAllowNodePicking(self, __a:int) -> None
        C++: void SetAllowNodePicking(vtkTypeBool)
        
        Set / Get the AllowNodePicking value. This ivar indicates whether
        the nodes and points between nodes can be picked/un-picked by
        Ctrl+Click on the node.
        """
        pass

    def SetContinuousDraw(self, _arg): # real signature unknown; restored from __doc__
        """
        SetContinuousDraw(self, _arg:int) -> None
        C++: virtual void SetContinuousDraw(vtkTypeBool _arg)
        
        Define a contour by continuously drawing with the mouse cursor.
        Press and hold the left mouse button down to continuously draw.
        Releasing the left mouse button switches into a snap drawing
        mode. Terminate the contour by pressing the right mouse button. 
        If you do not want to see the nodes as they are added to the
        contour, set the opacity to 0 of the representation's property. 
        If you do not want to see the last active node as it is being
        added, set the opacity to 0 of the representation's active
        property.
        """
        pass

    def SetEnabled(self, __a): # real signature unknown; restored from __doc__
        """
        SetEnabled(self, __a:int) -> None
        C++: void SetEnabled(int) override;
        
        The method for activating and deactivating this widget. This
        method must be overridden because it is a composite widget and
        does more than its superclasses' vtkAbstractWidget::SetEnabled()
        method.
        """
        pass

    def SetFollowCursor(self, _arg): # real signature unknown; restored from __doc__
        """
        SetFollowCursor(self, _arg:int) -> None
        C++: virtual void SetFollowCursor(vtkTypeBool _arg)
        
        Follow the cursor ? If this is ON, during definition, the last
        node of the contour will automatically follow the cursor, without
        waiting for the point to be dropped. This may be useful for some
        interpolators, such as the live-wire interpolator to see the
        shape of the contour that will be placed as you move the mouse
        cursor.
        """
        pass

    def SetRepresentation(self, r): # real signature unknown; restored from __doc__
        """
        SetRepresentation(self, r:vtkContourRepresentation) -> None
        C++: void SetRepresentation(vtkContourRepresentation *r)
        
        Specify an instance of vtkWidgetRepresentation used to represent
        this widget in the scene. Note that the representation is a
        subclass of vtkProp so it can be added to the renderer
        independent of the widget.
        """
        pass

    def SetWidgetState(self, _arg): # real signature unknown; restored from __doc__
        """
        SetWidgetState(self, _arg:int) -> None
        C++: virtual void SetWidgetState(int _arg)
        
        Convenient method to change what state the widget is in.
        """
        pass

    def __delattr__(self, *args, **kwargs): # real signature unknown
        """ Implement delattr(self, name). """
        pass

    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __setattr__(self, *args, **kwargs): # real signature unknown
        """ Implement setattr(self, name, value). """
        pass

    def __str__(self, *args, **kwargs): # real signature unknown
        """ Return str(self). """
        pass

    __this__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """Pointer to the C++ object."""


    Define = 1
    Manipulate = 2
    Start = 0
    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkContourWidget\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetEnabled\': <method \'SetEnabled\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetRepresentation\': <method \'SetRepresentation\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetContourRepresentation\': <method \'GetContourRepresentation\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'CreateDefaultRepresentation\': <method \'CreateDefaultRepresentation\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'CloseLoop\': <method \'CloseLoop\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetWidgetState\': <method \'SetWidgetState\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetWidgetState\': <method \'GetWidgetState\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetAllowNodePicking\': <method \'SetAllowNodePicking\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetAllowNodePicking\': <method \'GetAllowNodePicking\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'AllowNodePickingOn\': <method \'AllowNodePickingOn\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'AllowNodePickingOff\': <method \'AllowNodePickingOff\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetFollowCursor\': <method \'SetFollowCursor\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetFollowCursor\': <method \'GetFollowCursor\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'FollowCursorOn\': <method \'FollowCursorOn\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'FollowCursorOff\': <method \'FollowCursorOff\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'SetContinuousDraw\': <method \'SetContinuousDraw\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'GetContinuousDraw\': <method \'GetContinuousDraw\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'ContinuousDrawOn\': <method \'ContinuousDrawOn\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'ContinuousDrawOff\': <method \'ContinuousDrawOff\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'Initialize\': <method \'Initialize\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'Start\': 0, \'Define\': 1, \'Manipulate\': 2, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D643200>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkInteractionWidgets.vtkContourWidget\' objects>, \'__doc__\': "vtkContourWidget - create a contour with a set of points\\n\\nSuperclass: vtkAbstractWidget\\n\\nThe vtkContourWidget is used to select a set of points, and draw\\nlines between these points. The contour may be opened or closed,\\ndepending on how the last point is added. The widget handles all\\nprocessing of widget events (that are triggered by VTK events). The\\nvtkContourRepresentation is responsible for all placement of the\\npoints, calculation of the lines, and contour manipulation. This is\\ndone through two main helper classes: vtkPointPlacer and\\nvtkContourLineInterpolator. The representation is also responsible\\nfor drawing the points and lines.\\n\\n@par Event Bindings: By default, the widget responds to the following\\nVTK events (i.e., it watches the vtkRenderWindowInteractor for these\\nevents):\\n\\n\\n  LeftButtonPressEvent - triggers a Select event\\n  RightButtonPressEvent - triggers a AddFinalPoint event\\n  MouseMoveEvent - triggers a Move event\\n  LeftButtonReleaseEvent - triggers an EndSelect event\\n  Delete key event - triggers a Delete event\\n  Shift + Delete key event - triggers a Reset event \\n\\n@par Event Bindings: Note that the event bindings described above can\\nbe changed using this class\'s vtkWidgetEventTranslator. This class\\ntranslates VTK events into the vtkContourWidget\'s widget events:\\n\\n\\n  vtkWidgetEvent::Select\\n       widget state is:\\n           Start or\\n           Define: If we already have at least 2 nodes, test\\n                whether the current (X,Y) location is near an\\nexisting\\n                node. If so, close the contour and change to\\nManipulate\\n                state. Otherwise, attempt to add a node at this (X,Y)\\n                location.\\n           Manipulate: If this (X,Y) location activates a node, then\\n                set the current operation to Translate. Otherwise, if\\n                this location is near the contour, attempt to add a\\n                new node on the contour at this (X,Y) location.\\n\\n@par Event Bindings:\\n  vtkWidgetEvent::AddFinalPoint\\n       widget state is:\\n           Start: Do nothing.\\n           Define: If we already have at least 2 nodes, test\\n                whether the current (X,Y) location is near an\\nexisting\\n                node. If so, close the contour and change to\\nManipulate\\n                state. Otherwise, attempt to add a node at this (X,Y)\\n                location. If we do, then leave the contour open and\\n                change to Manipulate state.\\n           Manipulate: Do nothing.\\n\\n@par Event Bindings:\\n  vtkWidgetEvent::Move\\n       widget state is:\\n           Start or\\n           Define: Do nothing.\\n           Manipulate: If our operation is Translate, then invoke\\n                 WidgetInteraction() on the representation. If our\\n                 operation is Inactive, then just attempt to activate\\n                 a node at this (X,Y) location.\\n\\n@par Event Bindings:\\n  vtkWidgetEvent::EndSelect\\n       widget state is:\\n           Start or\\n           Define: Do nothing.\\n           Manipulate: If our operation is not Inactive, set it to\\n                 Inactive.\\n\\n@par Event Bindings:\\n  vtkWidgetEvent::Delete\\n       widget state is:\\n           Start: Do nothing.\\n           Define: Remove the last point on the contour.\\n           Manipulate: Attempt to activate a node at (X,Y). If\\n                  we do activate a node, delete it. If we now\\n                  have less than 3 nodes, go back to Define state.\\n\\n@par Event Bindings:\\n  vtkWidgetEvent::Reset\\n       widget state is:\\n           Start: Do nothing.\\n           Define: Remove all points and line segments of the\\ncontour.\\n                Essentially calls Initialize(nullptr)\\n           Manipulate: Do nothing. \\n\\n@par Event Bindings: This widget invokes the following VTK events on\\nitself (which observers can listen for):\\n\\n\\n  vtkCommand::StartInteractionEvent (beginning to interact)\\n  vtkCommand::EndInteractionEvent (completing interaction)\\n  vtkCommand::InteractionEvent (moving after selecting something)\\n  vtkCommand::PlacePointEvent (after point is positioned;\\n                               call data includes handle id (0,1))\\n  vtkCommand::WidgetValueChangedEvent (Invoked when the contour is\\nclosed\\n                                       for the first time. ) \\n\\n@sa\\nvtkHandleWidget\\n\\n"})'
    __vtkname__ = 'vtkContourWidget'


