"""
This type stub file was generated by pyright.
"""

from .vtkPolyDataSourceWidget import vtkPolyDataSourceWidget

class vtkImagePlaneWidget(vtkPolyDataSourceWidget):
    """
    vtkImagePlaneWidget - 3D widget for reslicing image data
    
    Superclass: vtkPolyDataSourceWidget
    
    This 3D widget defines a plane that can be interactively placed in an
    image volume. A nice feature of the object is that the
    vtkImagePlaneWidget, like any 3D widget, will work with the current
    interactor style. That is, if vtkImagePlaneWidget does not handle an
    event, then all other registered observers (including the interactor
    style) have an opportunity to process the event. Otherwise, the
    vtkImagePlaneWidget will terminate the processing of the event that
    it handles.
    
    The core functionality of the widget is provided by a vtkImageReslice
    object which passes its output onto a texture mapping pipeline for
    fast slicing through volumetric data. See the key methods:
    GenerateTexturePlane() and UpdatePlane() for implementation details.
    
    To use this object, just invoke SetInteractor() with the argument of
    the method a vtkRenderWindowInteractor.  You may also wish to invoke
    "PlaceWidget()" to initially position the widget. If the "i" key (for
    "interactor") is pressed, the vtkImagePlaneWidget will appear. (See
    superclass documentation for information about changing this
    behavior.)
    
    Selecting the widget with the middle mouse button with and without
    holding the shift or control keys enables complex reslicing
    capablilites. To facilitate use, a set of 'margins' (left, right,
    top, bottom) are shown as a set of plane-axes aligned lines, the
    properties of which can be changed as a group. Without keyboard
    modifiers: selecting in the middle of the margins enables translation
    of the plane along its normal. Selecting one of the corners within
    the margins enables spinning around the plane's normal at its center.
     Selecting within a margin allows rotating about the center of the
    plane around an axis aligned with the margin (i.e., selecting left
    margin enables rotating around the plane's local y-prime axis). With
    control key modifier: margin selection enables edge translation
    (i.e., a constrained form of scaling). Selecting within the margins
    enables translation of the entire plane. With shift key modifier:
    uniform plane scaling is enabled.  Moving the mouse up enlarges the
    plane while downward movement shrinks it.
    
    Window-level is achieved by using the right mouse button. 
    Window-level values can be reset by shift + 'r' or control + 'r'
    while regular reset camera is maintained with 'r' or 'R'. The left
    mouse button can be used to query the underlying image data with a
    snap-to cross-hair cursor.  Currently, the nearest point in the input
    image data to the mouse cursor generates the cross-hairs.  With
    oblique slicing, this behaviour may appear unsatisfactory. Text
    display of window-level and image coordinates/data values are
    provided by a text actor/mapper pair.
    
    Events that occur outside of the widget (i.e., no part of the widget
    is picked) are propagated to any other registered obsevers (such as
    the interaction style). Turn off the widget by pressing the "i" key
    again (or invoke the Off() method). To support interactive
    manipulation of objects, this class invokes the events
    StartInteractionEvent, InteractionEvent, and EndInteractionEvent as
    well as StartWindowLevelEvent, WindowLevelEvent, EndWindowLevelEvent
    and ResetWindowLevelEvent.
    
    The vtkImagePlaneWidget has several methods that can be used in
    conjunction with other VTK objects. The GetPolyData() method can be
    used to get the polygonal representation of the plane and can be used
    as input for other VTK objects. Typical usage of the widget is to
    make use of the StartInteractionEvent, InteractionEvent, and
    EndInteractionEvent events. The InteractionEvent is called on mouse
    motion; the other two events are called on button down and button up
    (either left or right button).
    
    Some additional features of this class include the ability to control
    the properties of the widget. You can set the properties of: the
    selected and unselected representations of the plane's outline; the
    text actor via its vtkTextProperty; the cross-hair cursor. In
    addition there are methods to constrain the plane so that it is
    aligned along the x-y-z axes.  Finally, one can specify the degree of
    interpolation (vtkImageReslice): nearest neighbour, linear, and
    cubic.
    
    @par Thanks: Thanks to Dean Inglis for developing and contributing
    this class. Based on the Python SlicePlaneFactory from Atamai, Inc.
    
    @sa
    vtk3DWidget vtkBoxWidget vtkLineWidget  vtkPlaneWidget vtkPointWidget
    vtkPolyDataSourceWidget vtkSphereWidget vtkImplicitPlaneWidget
    """
    def DisplayTextOff(self):
        """
        V.DisplayTextOff()
        C++: virtual void DisplayTextOff()
        
        Enable/disable text display of window-level, image coordinates
        and scalar values in a render window.
        """
        ...
    
    def DisplayTextOn(self):
        """
        V.DisplayTextOn()
        C++: virtual void DisplayTextOn()
        
        Enable/disable text display of window-level, image coordinates
        and scalar values in a render window.
        """
        ...
    
    def GetCenter(self):
        """
        V.GetCenter() -> (float, float, float)
        C++: double *GetCenter()
        V.GetCenter([float, float, float])
        C++: void GetCenter(double xyz[3])
        
        Get the center of the plane.
        """
        ...
    
    def GetColorMap(self):
        """
        V.GetColorMap() -> vtkImageMapToColors
        C++: virtual vtkImageMapToColors *GetColorMap()
        
        Convenience method to get the vtkImageMapToColors filter used by
        this widget.  The user can properly render other transparent
        actors in a scene by calling the filter's SetOutputFormatToRGB
        and PassAlphaToOutputOff.
        """
        ...
    
    def GetCurrentCursorPosition(self):
        """
        V.GetCurrentCursorPosition() -> (float, float, float)
        C++: virtual double *GetCurrentCursorPosition()
        
        Get the current cursor position.  To be used in conjunction with
        GetCursorDataStatus.
        """
        ...
    
    def GetCurrentImageValue(self):
        """
        V.GetCurrentImageValue() -> float
        C++: virtual double GetCurrentImageValue()
        
        Get the current image value at the current cursor position.  To
        be used in conjunction with GetCursorDataStatus.  The value is
        VTK_DOUBLE_MAX when the data is invalid.
        """
        ...
    
    def GetCursorData(self, p_float=..., p_float=..., p_float=..., p_float=...):
        """
        V.GetCursorData([float, float, float, float]) -> int
        C++: int GetCursorData(double xyzv[4])
        
        Get the image coordinate position and voxel value.  Currently
        only supports single component image data.
        """
        ...
    
    def GetCursorDataStatus(self):
        """
        V.GetCursorDataStatus() -> int
        C++: int GetCursorDataStatus()
        
        Get the status of the cursor data.  If this returns 1 the
        CurrentCursorPosition and CurrentImageValue will have current
        data.  If it returns 0, these values are invalid.
        """
        ...
    
    def GetCursorProperty(self):
        """
        V.GetCursorProperty() -> vtkProperty
        C++: virtual vtkProperty *GetCursorProperty()
        
        Set the properties of the cross-hair cursor.
        """
        ...
    
    def GetDisplayText(self):
        """
        V.GetDisplayText() -> int
        C++: virtual vtkTypeBool GetDisplayText()
        
        Enable/disable text display of window-level, image coordinates
        and scalar values in a render window.
        """
        ...
    
    def GetInteraction(self):
        """
        V.GetInteraction() -> int
        C++: virtual vtkTypeBool GetInteraction()
        
        Enable/disable mouse interaction so the widget remains on
        display.
        """
        ...
    
    def GetLeftButtonAction(self):
        """
        V.GetLeftButtonAction() -> int
        C++: virtual int GetLeftButtonAction()
        
        Set action associated to buttons.
        """
        ...
    
    def GetLeftButtonActionMaxValue(self):
        """
        V.GetLeftButtonActionMaxValue() -> int
        C++: virtual int GetLeftButtonActionMaxValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetLeftButtonActionMinValue(self):
        """
        V.GetLeftButtonActionMinValue() -> int
        C++: virtual int GetLeftButtonActionMinValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetLeftButtonAutoModifier(self):
        """
        V.GetLeftButtonAutoModifier() -> int
        C++: virtual int GetLeftButtonAutoModifier()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetLeftButtonAutoModifierMaxValue(self):
        """
        V.GetLeftButtonAutoModifierMaxValue() -> int
        C++: virtual int GetLeftButtonAutoModifierMaxValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetLeftButtonAutoModifierMinValue(self):
        """
        V.GetLeftButtonAutoModifierMinValue() -> int
        C++: virtual int GetLeftButtonAutoModifierMinValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetLevel(self):
        """
        V.GetLevel() -> float
        C++: double GetLevel()
        
        Set/Get the current window and level values.  SetWindowLevel
        should only be called after SetInput.  If a shared lookup table
        is being used, a callback is required to update the window level
        values without having to update the lookup table again.
        """
        ...
    
    def GetLookupTable(self):
        """
        V.GetLookupTable() -> vtkLookupTable
        C++: virtual vtkLookupTable *GetLookupTable()
        
        Set/Get the internal lookuptable (lut) to one defined by the
        user, or, alternatively, to the lut of another
        vtkImgePlaneWidget.  In this way, a set of three orthogonal
        planes can share the same lut so that window-levelling is
        performed uniformly among planes.  The default internal lut can
        be re- set/allocated by setting to 0 (nullptr).
        """
        ...
    
    def GetMarginProperty(self):
        """
        V.GetMarginProperty() -> vtkProperty
        C++: virtual vtkProperty *GetMarginProperty()
        
        Set the properties of the margins.
        """
        ...
    
    def GetMarginSizeX(self):
        """
        V.GetMarginSizeX() -> float
        C++: virtual double GetMarginSizeX()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMarginSizeXMaxValue(self):
        """
        V.GetMarginSizeXMaxValue() -> float
        C++: virtual double GetMarginSizeXMaxValue()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMarginSizeXMinValue(self):
        """
        V.GetMarginSizeXMinValue() -> float
        C++: virtual double GetMarginSizeXMinValue()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMarginSizeY(self):
        """
        V.GetMarginSizeY() -> float
        C++: virtual double GetMarginSizeY()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMarginSizeYMaxValue(self):
        """
        V.GetMarginSizeYMaxValue() -> float
        C++: virtual double GetMarginSizeYMaxValue()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMarginSizeYMinValue(self):
        """
        V.GetMarginSizeYMinValue() -> float
        C++: virtual double GetMarginSizeYMinValue()
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def GetMiddleButtonAction(self):
        """
        V.GetMiddleButtonAction() -> int
        C++: virtual int GetMiddleButtonAction()
        
        Set action associated to buttons.
        """
        ...
    
    def GetMiddleButtonActionMaxValue(self):
        """
        V.GetMiddleButtonActionMaxValue() -> int
        C++: virtual int GetMiddleButtonActionMaxValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetMiddleButtonActionMinValue(self):
        """
        V.GetMiddleButtonActionMinValue() -> int
        C++: virtual int GetMiddleButtonActionMinValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetMiddleButtonAutoModifier(self):
        """
        V.GetMiddleButtonAutoModifier() -> int
        C++: virtual int GetMiddleButtonAutoModifier()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetMiddleButtonAutoModifierMaxValue(self):
        """
        V.GetMiddleButtonAutoModifierMaxValue() -> int
        C++: virtual int GetMiddleButtonAutoModifierMaxValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetMiddleButtonAutoModifierMinValue(self):
        """
        V.GetMiddleButtonAutoModifierMinValue() -> int
        C++: virtual int GetMiddleButtonAutoModifierMinValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetNormal(self):
        """
        V.GetNormal() -> (float, float, float)
        C++: double *GetNormal()
        V.GetNormal([float, float, float])
        C++: void GetNormal(double xyz[3])
        
        Get the normal to the plane.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        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.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> 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.
        """
        ...
    
    def GetOrigin(self):
        """
        V.GetOrigin() -> (float, float, float)
        C++: double *GetOrigin()
        V.GetOrigin([float, float, float])
        C++: void GetOrigin(double xyz[3])
        
        Set/Get the origin of the plane.
        """
        ...
    
    def GetPlaneOrientation(self):
        """
        V.GetPlaneOrientation() -> int
        C++: virtual int GetPlaneOrientation()
        
        Convenience method sets the plane orientation normal to the x, y,
        or z axes.  Default is XAxes (0).
        """
        ...
    
    def GetPlaneProperty(self):
        """
        V.GetPlaneProperty() -> vtkProperty
        C++: virtual vtkProperty *GetPlaneProperty()
        
        Set/Get the plane's outline properties. The properties of the
        plane's outline when selected and unselected can be manipulated.
        """
        ...
    
    def GetPoint1(self):
        """
        V.GetPoint1() -> (float, float, float)
        C++: double *GetPoint1()
        V.GetPoint1([float, float, float])
        C++: void GetPoint1(double xyz[3])
        
        Set/Get the position of the point defining the first axis of the
        plane.
        """
        ...
    
    def GetPoint2(self):
        """
        V.GetPoint2() -> (float, float, float)
        C++: double *GetPoint2()
        V.GetPoint2([float, float, float])
        C++: void GetPoint2(double xyz[3])
        
        Set/Get the position of the point defining the second axis of the
        plane.
        """
        ...
    
    def GetPolyData(self, vtkPolyData):
        """
        V.GetPolyData(vtkPolyData)
        C++: void GetPolyData(vtkPolyData *pd)
        
        Grab the polydata (including points) that defines the plane.  The
        polydata consists of (res+1)*(res+1) points, and res*res
        quadrilateral polygons, where res is the resolution of the plane.
        These point values are guaranteed to be up-to-date when either
        the InteractionEvent or EndInteraction events are invoked. The
        user provides the vtkPolyData and the points and polygons are
        added to it.
        """
        ...
    
    def GetPolyDataAlgorithm(self):
        """
        V.GetPolyDataAlgorithm() -> vtkPolyDataAlgorithm
        C++: vtkPolyDataAlgorithm *GetPolyDataAlgorithm() override;
        
        Satisfies superclass API.  This returns a pointer to the
        underlying vtkPolyData.  Make changes to this before calling the
        initial PlaceWidget() to have the initial placement follow suit. 
        Or, make changes after the widget has been initialised and call
        UpdatePlacement() to realise.
        """
        ...
    
    def GetReslice(self):
        """
        V.GetReslice() -> vtkImageReslice
        C++: virtual vtkImageReslice *GetReslice()
        
        Get the current reslice class and reslice axes
        """
        ...
    
    def GetResliceAxes(self):
        """
        V.GetResliceAxes() -> vtkMatrix4x4
        C++: virtual vtkMatrix4x4 *GetResliceAxes()
        
        Get the current reslice class and reslice axes
        """
        ...
    
    def GetResliceInterpolate(self):
        """
        V.GetResliceInterpolate() -> int
        C++: virtual int GetResliceInterpolate()
        
        Set the interpolation to use when texturing the plane.
        """
        ...
    
    def GetResliceOutput(self):
        """
        V.GetResliceOutput() -> vtkImageData
        C++: vtkImageData *GetResliceOutput()
        
        Convenience method to get the vtkImageReslice output.
        """
        ...
    
    def GetRestrictPlaneToVolume(self):
        """
        V.GetRestrictPlaneToVolume() -> int
        C++: virtual vtkTypeBool GetRestrictPlaneToVolume()
        
        Make sure that the plane remains within the volume. Default is
        On.
        """
        ...
    
    def GetRightButtonAction(self):
        """
        V.GetRightButtonAction() -> int
        C++: virtual int GetRightButtonAction()
        
        Set action associated to buttons.
        """
        ...
    
    def GetRightButtonActionMaxValue(self):
        """
        V.GetRightButtonActionMaxValue() -> int
        C++: virtual int GetRightButtonActionMaxValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetRightButtonActionMinValue(self):
        """
        V.GetRightButtonActionMinValue() -> int
        C++: virtual int GetRightButtonActionMinValue()
        
        Set action associated to buttons.
        """
        ...
    
    def GetRightButtonAutoModifier(self):
        """
        V.GetRightButtonAutoModifier() -> int
        C++: virtual int GetRightButtonAutoModifier()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetRightButtonAutoModifierMaxValue(self):
        """
        V.GetRightButtonAutoModifierMaxValue() -> int
        C++: virtual int GetRightButtonAutoModifierMaxValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetRightButtonAutoModifierMinValue(self):
        """
        V.GetRightButtonAutoModifierMinValue() -> int
        C++: virtual int GetRightButtonAutoModifierMinValue()
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def GetSelectedPlaneProperty(self):
        """
        V.GetSelectedPlaneProperty() -> vtkProperty
        C++: virtual vtkProperty *GetSelectedPlaneProperty()
        
        Set/Get the plane's outline properties. The properties of the
        plane's outline when selected and unselected can be manipulated.
        """
        ...
    
    def GetSliceIndex(self):
        """
        V.GetSliceIndex() -> int
        C++: int GetSliceIndex()
        
        Get the slice position in terms of the data extent.
        """
        ...
    
    def GetSlicePosition(self):
        """
        V.GetSlicePosition() -> float
        C++: double GetSlicePosition()
        
        Get the position of the slice along its normal.
        """
        ...
    
    def GetTextProperty(self):
        """
        V.GetTextProperty() -> vtkTextProperty
        C++: vtkTextProperty *GetTextProperty()
        
        Set/Get the text property for the image data and window-level
        annotation.
        """
        ...
    
    def GetTexture(self):
        """
        V.GetTexture() -> vtkTexture
        C++: vtkTexture *GetTexture()
        
        Convenience method to get the texture used by this widget.  This
        can be used in external slice viewers.
        """
        ...
    
    def GetTextureInterpolate(self):
        """
        V.GetTextureInterpolate() -> int
        C++: virtual vtkTypeBool GetTextureInterpolate()
        
        Specify whether to interpolate the texture or not. When off, the
        reslice interpolation is nearest neighbour regardless of how the
        interpolation is set through the API. Set before setting the
        vtkImageData input. Default is On.
        """
        ...
    
    def GetTexturePlaneProperty(self):
        """
        V.GetTexturePlaneProperty() -> vtkProperty
        C++: virtual vtkProperty *GetTexturePlaneProperty()
        
        Set/Get the property for the resliced image.
        """
        ...
    
    def GetTextureVisibility(self):
        """
        V.GetTextureVisibility() -> int
        C++: virtual vtkTypeBool GetTextureVisibility()
        
        Control the visibility of the actual texture mapped reformatted
        plane. in some cases you may only want the plane outline for
        example.
        """
        ...
    
    def GetUseContinuousCursor(self):
        """
        V.GetUseContinuousCursor() -> int
        C++: virtual vtkTypeBool GetUseContinuousCursor()
        
        Choose between voxel centered or continuous cursor probing.  With
        voxel centered probing, the cursor snaps to the nearest voxel and
        the reported cursor coordinates are extent based.  With
        continuous probing, voxel data is interpolated using
        vtkDataSetAttributes' InterpolatePoint method and the reported
        coordinates are 3D spatial continuous.
        """
        ...
    
    def GetUserControlledLookupTable(self):
        """
        V.GetUserControlledLookupTable() -> int
        C++: virtual vtkTypeBool GetUserControlledLookupTable()
        
        Let the user control the lookup table. NOTE: apply this method
        BEFORE applying the SetLookupTable method. Default is Off.
        """
        ...
    
    def GetVector1(self, p_float=..., p_float=..., p_float=...):
        """
        V.GetVector1([float, float, float])
        C++: void GetVector1(double v1[3])
        
        Get the vector from the plane origin to point1.
        """
        ...
    
    def GetVector2(self, p_float=..., p_float=..., p_float=...):
        """
        V.GetVector2([float, float, float])
        C++: void GetVector2(double v2[3])
        
        Get the vector from the plane origin to point2.
        """
        ...
    
    def GetWindow(self):
        """
        V.GetWindow() -> float
        C++: double GetWindow()
        
        Set/Get the current window and level values.  SetWindowLevel
        should only be called after SetInput.  If a shared lookup table
        is being used, a callback is required to update the window level
        values without having to update the lookup table again.
        """
        ...
    
    def GetWindowLevel(self, p_float=..., p_float=...):
        """
        V.GetWindowLevel([float, float])
        C++: void GetWindowLevel(double wl[2])
        
        Set/Get the current window and level values.  SetWindowLevel
        should only be called after SetInput.  If a shared lookup table
        is being used, a callback is required to update the window level
        values without having to update the lookup table again.
        """
        ...
    
    def InteractionOff(self):
        """
        V.InteractionOff()
        C++: virtual void InteractionOff()
        
        Enable/disable mouse interaction so the widget remains on
        display.
        """
        ...
    
    def InteractionOn(self):
        """
        V.InteractionOn()
        C++: virtual void InteractionOn()
        
        Enable/disable mouse interaction so the widget remains on
        display.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> 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.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> 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.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkImagePlaneWidget
        C++: vtkImagePlaneWidget *NewInstance()
        """
        ...
    
    def PlaceWidget(self, p_float=..., p_float=..., p_float=..., p_float=..., p_float=..., p_float=...):
        """
        V.PlaceWidget([float, float, float, float, float, float])
        C++: void PlaceWidget(double bounds[6]) override;
        V.PlaceWidget()
        C++: void PlaceWidget() override;
        V.PlaceWidget(float, float, float, float, float, float)
        C++: void PlaceWidget(double xmin, double xmax, double ymin,
            double ymax, double zmin, double zmax) override;
        
        Methods that satisfy the superclass' API.
        """
        ...
    
    def RestrictPlaneToVolumeOff(self):
        """
        V.RestrictPlaneToVolumeOff()
        C++: virtual void RestrictPlaneToVolumeOff()
        
        Make sure that the plane remains within the volume. Default is
        On.
        """
        ...
    
    def RestrictPlaneToVolumeOn(self):
        """
        V.RestrictPlaneToVolumeOn()
        C++: virtual void RestrictPlaneToVolumeOn()
        
        Make sure that the plane remains within the volume. Default is
        On.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkImagePlaneWidget
        C++: static vtkImagePlaneWidget *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetColorMap(self, vtkImageMapToColors):
        """
        V.SetColorMap(vtkImageMapToColors)
        C++: virtual void SetColorMap(vtkImageMapToColors *)
        
        Convenience method to get the vtkImageMapToColors filter used by
        this widget.  The user can properly render other transparent
        actors in a scene by calling the filter's SetOutputFormatToRGB
        and PassAlphaToOutputOff.
        """
        ...
    
    def SetCursorProperty(self, vtkProperty):
        """
        V.SetCursorProperty(vtkProperty)
        C++: virtual void SetCursorProperty(vtkProperty *)
        
        Set the properties of the cross-hair cursor.
        """
        ...
    
    def SetDisplayText(self, p_int):
        """
        V.SetDisplayText(int)
        C++: virtual void SetDisplayText(vtkTypeBool _arg)
        
        Enable/disable text display of window-level, image coordinates
        and scalar values in a render window.
        """
        ...
    
    def SetEnabled(self, p_int):
        """
        V.SetEnabled(int)
        C++: void SetEnabled(int) override;
        
        Methods that satisfy the superclass' API.
        """
        ...
    
    def SetInputConnection(self, vtkAlgorithmOutput):
        """
        V.SetInputConnection(vtkAlgorithmOutput)
        C++: void SetInputConnection(vtkAlgorithmOutput *aout) override;
        
        Set the vtkImageData* input for the vtkImageReslice.
        """
        ...
    
    def SetInteraction(self, p_int):
        """
        V.SetInteraction(int)
        C++: void SetInteraction(vtkTypeBool interact)
        
        Enable/disable mouse interaction so the widget remains on
        display.
        """
        ...
    
    def SetLeftButtonAction(self, p_int):
        """
        V.SetLeftButtonAction(int)
        C++: virtual void SetLeftButtonAction(int _arg)
        
        Set action associated to buttons.
        """
        ...
    
    def SetLeftButtonAutoModifier(self, p_int):
        """
        V.SetLeftButtonAutoModifier(int)
        C++: virtual void SetLeftButtonAutoModifier(int _arg)
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def SetLookupTable(self, vtkLookupTable):
        """
        V.SetLookupTable(vtkLookupTable)
        C++: virtual void SetLookupTable(vtkLookupTable *)
        
        Set/Get the internal lookuptable (lut) to one defined by the
        user, or, alternatively, to the lut of another
        vtkImgePlaneWidget.  In this way, a set of three orthogonal
        planes can share the same lut so that window-levelling is
        performed uniformly among planes.  The default internal lut can
        be re- set/allocated by setting to 0 (nullptr).
        """
        ...
    
    def SetMarginProperty(self, vtkProperty):
        """
        V.SetMarginProperty(vtkProperty)
        C++: virtual void SetMarginProperty(vtkProperty *)
        
        Set the properties of the margins.
        """
        ...
    
    def SetMarginSizeX(self, p_float):
        """
        V.SetMarginSizeX(float)
        C++: virtual void SetMarginSizeX(double _arg)
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def SetMarginSizeY(self, p_float):
        """
        V.SetMarginSizeY(float)
        C++: virtual void SetMarginSizeY(double _arg)
        
        Set the size of the margins based on a percentage of the plane's
        width and height, limited between 0 and 50%.
        """
        ...
    
    def SetMiddleButtonAction(self, p_int):
        """
        V.SetMiddleButtonAction(int)
        C++: virtual void SetMiddleButtonAction(int _arg)
        
        Set action associated to buttons.
        """
        ...
    
    def SetMiddleButtonAutoModifier(self, p_int):
        """
        V.SetMiddleButtonAutoModifier(int)
        C++: virtual void SetMiddleButtonAutoModifier(int _arg)
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def SetOrigin(self, p_float, p_float_1, p_float_2):
        """
        V.SetOrigin(float, float, float)
        C++: void SetOrigin(double x, double y, double z)
        V.SetOrigin([float, float, float])
        C++: void SetOrigin(double xyz[3])
        
        Set/Get the origin of the plane.
        """
        ...
    
    def SetPicker(self, vtkAbstractPropPicker):
        """
        V.SetPicker(vtkAbstractPropPicker)
        C++: void SetPicker(vtkAbstractPropPicker *)
        
        Set the internal picker to one defined by the user.  In this way,
        a set of three orthogonal planes can share the same picker so
        that picking is performed correctly.  The default internal picker
        can be re-set/allocated by setting to 0 (nullptr).
        """
        ...
    
    def SetPlaneOrientation(self, p_int):
        """
        V.SetPlaneOrientation(int)
        C++: void SetPlaneOrientation(int)
        
        Convenience method sets the plane orientation normal to the x, y,
        or z axes.  Default is XAxes (0).
        """
        ...
    
    def SetPlaneOrientationToXAxes(self):
        """
        V.SetPlaneOrientationToXAxes()
        C++: void SetPlaneOrientationToXAxes()
        
        Convenience method sets the plane orientation normal to the x, y,
        or z axes.  Default is XAxes (0).
        """
        ...
    
    def SetPlaneOrientationToYAxes(self):
        """
        V.SetPlaneOrientationToYAxes()
        C++: void SetPlaneOrientationToYAxes()
        
        Convenience method sets the plane orientation normal to the x, y,
        or z axes.  Default is XAxes (0).
        """
        ...
    
    def SetPlaneOrientationToZAxes(self):
        """
        V.SetPlaneOrientationToZAxes()
        C++: void SetPlaneOrientationToZAxes()
        
        Convenience method sets the plane orientation normal to the x, y,
        or z axes.  Default is XAxes (0).
        """
        ...
    
    def SetPlaneProperty(self, vtkProperty):
        """
        V.SetPlaneProperty(vtkProperty)
        C++: virtual void SetPlaneProperty(vtkProperty *)
        
        Set/Get the plane's outline properties. The properties of the
        plane's outline when selected and unselected can be manipulated.
        """
        ...
    
    def SetPoint1(self, p_float, p_float_1, p_float_2):
        """
        V.SetPoint1(float, float, float)
        C++: void SetPoint1(double x, double y, double z)
        V.SetPoint1([float, float, float])
        C++: void SetPoint1(double xyz[3])
        
        Set/Get the position of the point defining the first axis of the
        plane.
        """
        ...
    
    def SetPoint2(self, p_float, p_float_1, p_float_2):
        """
        V.SetPoint2(float, float, float)
        C++: void SetPoint2(double x, double y, double z)
        V.SetPoint2([float, float, float])
        C++: void SetPoint2(double xyz[3])
        
        Set/Get the position of the point defining the second axis of the
        plane.
        """
        ...
    
    def SetResliceInterpolate(self, p_int):
        """
        V.SetResliceInterpolate(int)
        C++: void SetResliceInterpolate(int)
        
        Set the interpolation to use when texturing the plane.
        """
        ...
    
    def SetResliceInterpolateToCubic(self):
        """
        V.SetResliceInterpolateToCubic()
        C++: void SetResliceInterpolateToCubic()
        
        Set the interpolation to use when texturing the plane.
        """
        ...
    
    def SetResliceInterpolateToLinear(self):
        """
        V.SetResliceInterpolateToLinear()
        C++: void SetResliceInterpolateToLinear()
        
        Set the interpolation to use when texturing the plane.
        """
        ...
    
    def SetResliceInterpolateToNearestNeighbour(self):
        """
        V.SetResliceInterpolateToNearestNeighbour()
        C++: void SetResliceInterpolateToNearestNeighbour()
        
        Set the interpolation to use when texturing the plane.
        """
        ...
    
    def SetRestrictPlaneToVolume(self, p_int):
        """
        V.SetRestrictPlaneToVolume(int)
        C++: virtual void SetRestrictPlaneToVolume(vtkTypeBool _arg)
        
        Make sure that the plane remains within the volume. Default is
        On.
        """
        ...
    
    def SetRightButtonAction(self, p_int):
        """
        V.SetRightButtonAction(int)
        C++: virtual void SetRightButtonAction(int _arg)
        
        Set action associated to buttons.
        """
        ...
    
    def SetRightButtonAutoModifier(self, p_int):
        """
        V.SetRightButtonAutoModifier(int)
        C++: virtual void SetRightButtonAutoModifier(int _arg)
        
        Set the auto-modifiers associated to buttons. This allows users
        to bind some buttons to actions that are usually triggered by a
        key modifier. For example, if you do not need cursoring, you can
        bind the left button action to VTK_SLICE_MOTION_ACTION (see
        above) and the left button auto modifier to VTK_CONTROL_MODIFIER:
        you end up with the left button controlling panning without
        pressing a key.
        """
        ...
    
    def SetSelectedPlaneProperty(self, vtkProperty):
        """
        V.SetSelectedPlaneProperty(vtkProperty)
        C++: virtual void SetSelectedPlaneProperty(vtkProperty *)
        
        Set/Get the plane's outline properties. The properties of the
        plane's outline when selected and unselected can be manipulated.
        """
        ...
    
    def SetSliceIndex(self, p_int):
        """
        V.SetSliceIndex(int)
        C++: void SetSliceIndex(int index)
        
        Set the slice position in terms of the data extent.
        """
        ...
    
    def SetSlicePosition(self, p_float):
        """
        V.SetSlicePosition(float)
        C++: void SetSlicePosition(double position)
        
        Set the position of the slice along its normal.
        """
        ...
    
    def SetTextProperty(self, vtkTextProperty):
        """
        V.SetTextProperty(vtkTextProperty)
        C++: void SetTextProperty(vtkTextProperty *tprop)
        
        Set/Get the text property for the image data and window-level
        annotation.
        """
        ...
    
    def SetTextureInterpolate(self, p_int):
        """
        V.SetTextureInterpolate(int)
        C++: virtual void SetTextureInterpolate(vtkTypeBool _arg)
        
        Specify whether to interpolate the texture or not. When off, the
        reslice interpolation is nearest neighbour regardless of how the
        interpolation is set through the API. Set before setting the
        vtkImageData input. Default is On.
        """
        ...
    
    def SetTexturePlaneProperty(self, vtkProperty):
        """
        V.SetTexturePlaneProperty(vtkProperty)
        C++: virtual void SetTexturePlaneProperty(vtkProperty *)
        
        Set/Get the property for the resliced image.
        """
        ...
    
    def SetTextureVisibility(self, p_int):
        """
        V.SetTextureVisibility(int)
        C++: virtual void SetTextureVisibility(vtkTypeBool)
        
        Control the visibility of the actual texture mapped reformatted
        plane. in some cases you may only want the plane outline for
        example.
        """
        ...
    
    def SetUseContinuousCursor(self, p_int):
        """
        V.SetUseContinuousCursor(int)
        C++: virtual void SetUseContinuousCursor(vtkTypeBool _arg)
        
        Choose between voxel centered or continuous cursor probing.  With
        voxel centered probing, the cursor snaps to the nearest voxel and
        the reported cursor coordinates are extent based.  With
        continuous probing, voxel data is interpolated using
        vtkDataSetAttributes' InterpolatePoint method and the reported
        coordinates are 3D spatial continuous.
        """
        ...
    
    def SetUserControlledLookupTable(self, p_int):
        """
        V.SetUserControlledLookupTable(int)
        C++: virtual void SetUserControlledLookupTable(vtkTypeBool _arg)
        
        Let the user control the lookup table. NOTE: apply this method
        BEFORE applying the SetLookupTable method. Default is Off.
        """
        ...
    
    def SetWindowLevel(self, p_float, p_float_1, p_int):
        """
        V.SetWindowLevel(float, float, int)
        C++: void SetWindowLevel(double window, double level, int copy=0)
        
        Set/Get the current window and level values.  SetWindowLevel
        should only be called after SetInput.  If a shared lookup table
        is being used, a callback is required to update the window level
        values without having to update the lookup table again.
        """
        ...
    
    def TextureInterpolateOff(self):
        """
        V.TextureInterpolateOff()
        C++: virtual void TextureInterpolateOff()
        
        Specify whether to interpolate the texture or not. When off, the
        reslice interpolation is nearest neighbour regardless of how the
        interpolation is set through the API. Set before setting the
        vtkImageData input. Default is On.
        """
        ...
    
    def TextureInterpolateOn(self):
        """
        V.TextureInterpolateOn()
        C++: virtual void TextureInterpolateOn()
        
        Specify whether to interpolate the texture or not. When off, the
        reslice interpolation is nearest neighbour regardless of how the
        interpolation is set through the API. Set before setting the
        vtkImageData input. Default is On.
        """
        ...
    
    def TextureVisibilityOff(self):
        """
        V.TextureVisibilityOff()
        C++: virtual void TextureVisibilityOff()
        
        Control the visibility of the actual texture mapped reformatted
        plane. in some cases you may only want the plane outline for
        example.
        """
        ...
    
    def TextureVisibilityOn(self):
        """
        V.TextureVisibilityOn()
        C++: virtual void TextureVisibilityOn()
        
        Control the visibility of the actual texture mapped reformatted
        plane. in some cases you may only want the plane outline for
        example.
        """
        ...
    
    def UpdatePlacement(self):
        """
        V.UpdatePlacement()
        C++: void UpdatePlacement(void) override;
        
        Satisfies superclass API.  This will change the state of the
        widget to match changes that have been made to the underlying
        vtkPolyDataSource
        """
        ...
    
    def UseContinuousCursorOff(self):
        """
        V.UseContinuousCursorOff()
        C++: virtual void UseContinuousCursorOff()
        
        Choose between voxel centered or continuous cursor probing.  With
        voxel centered probing, the cursor snaps to the nearest voxel and
        the reported cursor coordinates are extent based.  With
        continuous probing, voxel data is interpolated using
        vtkDataSetAttributes' InterpolatePoint method and the reported
        coordinates are 3D spatial continuous.
        """
        ...
    
    def UseContinuousCursorOn(self):
        """
        V.UseContinuousCursorOn()
        C++: virtual void UseContinuousCursorOn()
        
        Choose between voxel centered or continuous cursor probing.  With
        voxel centered probing, the cursor snaps to the nearest voxel and
        the reported cursor coordinates are extent based.  With
        continuous probing, voxel data is interpolated using
        vtkDataSetAttributes' InterpolatePoint method and the reported
        coordinates are 3D spatial continuous.
        """
        ...
    
    def UserControlledLookupTableOff(self):
        """
        V.UserControlledLookupTableOff()
        C++: virtual void UserControlledLookupTableOff()
        
        Let the user control the lookup table. NOTE: apply this method
        BEFORE applying the SetLookupTable method. Default is Off.
        """
        ...
    
    def UserControlledLookupTableOn(self):
        """
        V.UserControlledLookupTableOn()
        C++: virtual void UserControlledLookupTableOn()
        
        Let the user control the lookup table. NOTE: apply this method
        BEFORE applying the SetLookupTable method. Default is Off.
        """
        ...
    
    def __delattr__(self, *args, **kwargs):
        """ Implement delattr(self, name). """
        ...
    
    def __getattribute__(self, *args, **kwargs):
        """ Return getattr(self, name). """
        ...
    
    def __init__(self, *args, **kwargs) -> None:
        ...
    
    @staticmethod
    def __new__(*args, **kwargs):
        """ Create and return a new object.  See help(type) for accurate signature. """
        ...
    
    def __repr__(self, *args, **kwargs):
        """ Return repr(self). """
        ...
    
    def __setattr__(self, *args, **kwargs):
        """ Implement setattr(self, name, value). """
        ...
    
    def __str__(self, *args, **kwargs) -> str:
        """ Return str(self). """
        ...
    
    __this__ = ...
    VTK_CONTROL_MODIFIER = ...
    VTK_CURSOR_ACTION = ...
    VTK_NO_MODIFIER = ...
    VTK_SHIFT_MODIFIER = ...
    VTK_SLICE_MOTION_ACTION = ...
    VTK_WINDOW_LEVEL_ACTION = ...
    __dict__ = ...
    __vtkname__ = ...


