# 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 .vtk3DWidget import vtk3DWidget

class vtkSplineWidget(vtk3DWidget):
    """
    vtkSplineWidget - 3D widget for manipulating a spline
    
    Superclass: vtk3DWidget
    
    This 3D widget defines a spline that can be interactively placed in a
    scene. The spline has handles, the number of which can be changed,
    plus it can be picked on the spline itself to translate or rotate it
    in the scene. A nice feature of the object is that the
    vtkSplineWidget, like any 3D widget, will work with the current
    interactor style. That is, if vtkSplineWidget does not handle an
    event, then all other registered observers (including the interactor
    style) have an opportunity to process the event. Otherwise, the
    vtkSplineWidget will terminate the processing of the event that it
    handles.
    
    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. The interactor will
    act normally until the "i" key (for "interactor") is pressed, at
    which point the vtkSplineWidget will appear. (See superclass
    documentation for information about changing this behavior.) 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).
    
    The button actions and key modifiers are as follows for controlling
    the widget:
    1) left button down on and drag one of the spherical handles to
       change the shape of the spline: the handles act as "control
       points".
    2) left button or middle button down on a line segment forming the
       spline allows uniform translation of the widget.
    3) ctrl + middle button down on the widget enables spinning of the
       widget about its center.
    4) right button down on the widget enables scaling of the widget. By
       moving the mouse "up" the render window the spline will be made
       bigger; by moving "down" the render window the widget will be made
    smaller.
    5) ctrl key + right button down on any handle will erase it providing
    there will be two or more points remaining to form a spline.
    6) shift key + right button down on any line segment will insert a
       handle onto the spline at the cursor position.
    
    The vtkSplineWidget has several methods that can be used in
    conjunction with other VTK objects. The Set/GetResolution() methods
    control the number of subdivisions of the spline; the GetPolyData()
    method can be used to get the polygonal representation and can be
    used for things like seeding streamlines or probing other data sets.
    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 spline. For example,
    you can set the property for the handles and spline. In addition
    there are methods to constrain the spline so that it is aligned with
    a plane.  Note that a simple ruler widget can be derived by setting
    the resolution to 1, the number of handles to 2, and calling the
    GetSummedLength method!
    
    @par Thanks: Thanks to Dean Inglis for developing and contributing
    this class.
    
    @sa
    vtk3DWidget vtkBoxWidget vtkLineWidget vtkPointWidget vtkSphereWidget
    vtkImagePlaneWidget vtkImplicitPlaneWidget vtkPlaneWidget
    """
    def ClosedOff(self): # real signature unknown; restored from __doc__
        """
        ClosedOff(self) -> None
        C++: virtual void ClosedOff()
        """
        pass

    def ClosedOn(self): # real signature unknown; restored from __doc__
        """
        ClosedOn(self) -> None
        C++: virtual void ClosedOn()
        """
        pass

    def GetClosed(self): # real signature unknown; restored from __doc__
        """
        GetClosed(self) -> int
        C++: virtual vtkTypeBool GetClosed()
        """
        return 0

    def GetHandlePosition(self, handle, xyz, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        GetHandlePosition(self, handle:int, xyz:[float, float, float])
            -> None
        C++: void GetHandlePosition(int handle, double xyz[3])
        GetHandlePosition(self, handle:int) -> (float, float, float)
        C++: double *GetHandlePosition(int handle)
        """
        pass

    def GetHandleProperty(self): # real signature unknown; restored from __doc__
        """
        GetHandleProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetHandleProperty()
        """
        pass

    def GetLineProperty(self): # real signature unknown; restored from __doc__
        """
        GetLineProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetLineProperty()
        """
        pass

    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 GetNumberOfHandles(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfHandles(self) -> int
        C++: virtual int GetNumberOfHandles()
        """
        return 0

    def GetParametricSpline(self): # real signature unknown; restored from __doc__
        """
        GetParametricSpline(self) -> vtkParametricSpline
        C++: virtual vtkParametricSpline *GetParametricSpline()
        """
        pass

    def GetPolyData(self, pd): # real signature unknown; restored from __doc__
        """
        GetPolyData(self, pd:vtkPolyData) -> None
        C++: void GetPolyData(vtkPolyData *pd)
        
        Grab the polydata (including points) that defines the spline. 
        The polydata consists of points and line segments numbering
        Resolution + 1 and Resoltuion, respectively. Points 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 polyline are added to it.
        """
        pass

    def GetProcessEvents(self): # real signature unknown; restored from __doc__
        """
        GetProcessEvents(self) -> int
        C++: virtual vtkTypeBool GetProcessEvents()
        """
        return 0

    def GetProcessEventsMaxValue(self): # real signature unknown; restored from __doc__
        """
        GetProcessEventsMaxValue(self) -> int
        C++: virtual vtkTypeBool GetProcessEventsMaxValue()
        """
        return 0

    def GetProcessEventsMinValue(self): # real signature unknown; restored from __doc__
        """
        GetProcessEventsMinValue(self) -> int
        C++: virtual vtkTypeBool GetProcessEventsMinValue()
        """
        return 0

    def GetProjectionNormal(self): # real signature unknown; restored from __doc__
        """
        GetProjectionNormal(self) -> int
        C++: virtual int GetProjectionNormal()
        """
        return 0

    def GetProjectionNormalMaxValue(self): # real signature unknown; restored from __doc__
        """
        GetProjectionNormalMaxValue(self) -> int
        C++: virtual int GetProjectionNormalMaxValue()
        """
        return 0

    def GetProjectionNormalMinValue(self): # real signature unknown; restored from __doc__
        """
        GetProjectionNormalMinValue(self) -> int
        C++: virtual int GetProjectionNormalMinValue()
        """
        return 0

    def GetProjectionPosition(self): # real signature unknown; restored from __doc__
        """
        GetProjectionPosition(self) -> float
        C++: virtual double GetProjectionPosition()
        """
        return 0.0

    def GetProjectToPlane(self): # real signature unknown; restored from __doc__
        """
        GetProjectToPlane(self) -> int
        C++: virtual vtkTypeBool GetProjectToPlane()
        """
        return 0

    def GetResolution(self): # real signature unknown; restored from __doc__
        """
        GetResolution(self) -> int
        C++: virtual int GetResolution()
        """
        return 0

    def GetSelectedHandleProperty(self): # real signature unknown; restored from __doc__
        """
        GetSelectedHandleProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetSelectedHandleProperty()
        """
        pass

    def GetSelectedLineProperty(self): # real signature unknown; restored from __doc__
        """
        GetSelectedLineProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetSelectedLineProperty()
        """
        pass

    def GetSummedLength(self): # real signature unknown; restored from __doc__
        """
        GetSummedLength(self) -> float
        C++: double GetSummedLength()
        
        Get the approximate vs. the true arc length of the spline.
        Calculated as the summed lengths of the individual straight line
        segments. Use SetResolution to control the accuracy.
        """
        return 0.0

    def InitializeHandles(self, points): # real signature unknown; restored from __doc__
        """
        InitializeHandles(self, points:vtkPoints) -> None
        C++: void InitializeHandles(vtkPoints *points)
        
        Convenience method to allocate and set the handles from a
        vtkPoints instance.  If the first and last points are the same,
        the spline sets Closed to the on state and disregards the last
        point, otherwise Closed remains unchanged.
        """
        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 IsClosed(self): # real signature unknown; restored from __doc__
        """
        IsClosed(self) -> int
        C++: int IsClosed()
        
        Convenience method to determine whether the spline is closed in a
        geometric sense.  The widget may be set "closed" but still be
        geometrically open (e.g., a straight line).
        """
        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) -> vtkSplineWidget
        C++: vtkSplineWidget *NewInstance()
        """
        return vtkSplineWidget

    def PlaceWidget(self, bounds, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        PlaceWidget(self, bounds:[float, float, float, float, float,
            float]) -> None
        C++: void PlaceWidget(double bounds[6]) override;
        PlaceWidget(self) -> None
        C++: void PlaceWidget() override;
        PlaceWidget(self, xmin:float, xmax:float, ymin:float, ymax:float,
            zmin:float, zmax:float) -> None
        C++: void PlaceWidget(double xmin, double xmax, double ymin,
            double ymax, double zmin, double zmax) override;
        
        This method is used to initially place the widget.  The placement
        of the widget depends on whether a Prop3D or input dataset is
        provided. If one of these two is provided, they will be used to
        obtain a bounding box, around which the widget is placed.
        Otherwise, you can manually specify a bounds with the
        PlaceWidget(bounds) method. Note: PlaceWidget(bounds) is required
        by all subclasses; the other methods are provided as convenience
        methods.
        """
        pass

    def ProcessEventsOff(self): # real signature unknown; restored from __doc__
        """
        ProcessEventsOff(self) -> None
        C++: virtual void ProcessEventsOff()
        """
        pass

    def ProcessEventsOn(self): # real signature unknown; restored from __doc__
        """
        ProcessEventsOn(self) -> None
        C++: virtual void ProcessEventsOn()
        """
        pass

    def ProjectToPlaneOff(self): # real signature unknown; restored from __doc__
        """
        ProjectToPlaneOff(self) -> None
        C++: virtual void ProjectToPlaneOff()
        """
        pass

    def ProjectToPlaneOn(self): # real signature unknown; restored from __doc__
        """
        ProjectToPlaneOn(self) -> None
        C++: virtual void ProjectToPlaneOn()
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkSplineWidget
        C++: static vtkSplineWidget *SafeDownCast(vtkObjectBase *o)
        """
        return vtkSplineWidget

    def SetClosed(self, closed): # real signature unknown; restored from __doc__
        """
        SetClosed(self, closed:int) -> None
        C++: void SetClosed(vtkTypeBool closed)
        
        Control whether the spline is open or closed. A closed spline
        forms a continuous loop: the first and last points are the same,
        and derivatives are continuous.  A minimum of 3 handles are
        required to form a closed loop.  This method enforces consistency
        with user supplied subclasses of vtkSpline.
        """
        pass

    def SetEnabled(self, __a): # real signature unknown; restored from __doc__
        """
        SetEnabled(self, __a:int) -> None
        C++: void SetEnabled(int) override;
        
        Methods that satisfy the superclass' API.
        """
        pass

    def SetHandlePosition(self, handle, x, y, z): # real signature unknown; restored from __doc__
        """
        SetHandlePosition(self, handle:int, x:float, y:float, z:float)
            -> None
        C++: void SetHandlePosition(int handle, double x, double y,
            double z)
        SetHandlePosition(self, handle:int, xyz:[float, float, float])
            -> None
        C++: void SetHandlePosition(int handle, double xyz[3])
        
        Set/Get the position of the spline handles. Call
        GetNumberOfHandles to determine the valid range of handle
        indices.
        """
        pass

    def SetHandleProperty(self, __a): # real signature unknown; restored from __doc__
        """
        SetHandleProperty(self, __a:vtkProperty) -> None
        C++: virtual void SetHandleProperty(vtkProperty *)
        
        Set/Get the handle properties (the spheres are the handles). The
        properties of the handles when selected and unselected can be
        manipulated.
        """
        pass

    def SetLineProperty(self, __a): # real signature unknown; restored from __doc__
        """
        SetLineProperty(self, __a:vtkProperty) -> None
        C++: virtual void SetLineProperty(vtkProperty *)
        
        Set/Get the line properties. The properties of the line when
        selected and unselected can be manipulated.
        """
        pass

    def SetNumberOfHandles(self, npts): # real signature unknown; restored from __doc__
        """
        SetNumberOfHandles(self, npts:int) -> None
        C++: virtual void SetNumberOfHandles(int npts)
        
        Set/Get the number of handles for this widget.
        """
        pass

    def SetParametricSpline(self, __a): # real signature unknown; restored from __doc__
        """
        SetParametricSpline(self, __a:vtkParametricSpline) -> None
        C++: virtual void SetParametricSpline(vtkParametricSpline *)
        
        Set the parametric spline object. Through vtkParametricSpline's
        API, the user can supply and configure one of currently two types
        of spline: vtkCardinalSpline, vtkKochanekSpline. The widget
        controls the open or closed configuration of the spline. WARNING:
        The widget does not enforce internal consistency so that all
        three are of the same type.
        """
        pass

    def SetPlaneSource(self, plane): # real signature unknown; restored from __doc__
        """
        SetPlaneSource(self, plane:vtkPlaneSource) -> None
        C++: void SetPlaneSource(vtkPlaneSource *plane)
        
        Set up a reference to a vtkPlaneSource that could be from another
        widget object, e.g. a vtkPolyDataSourceWidget.
        """
        pass

    def SetProcessEvents(self, _arg): # real signature unknown; restored from __doc__
        """
        SetProcessEvents(self, _arg:int) -> None
        C++: virtual void SetProcessEvents(vtkTypeBool _arg)
        
        Turn on / off event processing for this widget. If off, the
        widget will not respond to user interaction
        """
        pass

    def SetProjectionNormal(self, _arg): # real signature unknown; restored from __doc__
        """
        SetProjectionNormal(self, _arg:int) -> None
        C++: virtual void SetProjectionNormal(int _arg)
        """
        pass

    def SetProjectionNormalToOblique(self): # real signature unknown; restored from __doc__
        """
        SetProjectionNormalToOblique(self) -> None
        C++: void SetProjectionNormalToOblique()
        """
        pass

    def SetProjectionNormalToXAxes(self): # real signature unknown; restored from __doc__
        """
        SetProjectionNormalToXAxes(self) -> None
        C++: void SetProjectionNormalToXAxes()
        """
        pass

    def SetProjectionNormalToYAxes(self): # real signature unknown; restored from __doc__
        """
        SetProjectionNormalToYAxes(self) -> None
        C++: void SetProjectionNormalToYAxes()
        """
        pass

    def SetProjectionNormalToZAxes(self): # real signature unknown; restored from __doc__
        """
        SetProjectionNormalToZAxes(self) -> None
        C++: void SetProjectionNormalToZAxes()
        """
        pass

    def SetProjectionPosition(self, position): # real signature unknown; restored from __doc__
        """
        SetProjectionPosition(self, position:float) -> None
        C++: void SetProjectionPosition(double position)
        
        Set the position of spline handles and points in terms of a
        plane's position. i.e., if ProjectionNormal is 0, all of the
        x-coordinate values of the points are set to position. Any value
        can be passed (and is ignored) to update the spline points when
        Projection normal is set to 3 for arbitrary plane orientations.
        """
        pass

    def SetProjectToPlane(self, _arg): # real signature unknown; restored from __doc__
        """
        SetProjectToPlane(self, _arg:int) -> None
        C++: virtual void SetProjectToPlane(vtkTypeBool _arg)
        
        Force the spline widget to be projected onto one of the
        orthogonal planes. Remember that when the state changes, a
        ModifiedEvent is invoked. This can be used to snap the spline to
        the plane if it is originally not aligned.  The normal in
        SetProjectionNormal is 0,1,2 for YZ,XZ,XY planes respectively and
        3 for arbitrary oblique planes when the widget is tied to a
        vtkPlaneSource.
        """
        pass

    def SetResolution(self, resolution): # real signature unknown; restored from __doc__
        """
        SetResolution(self, resolution:int) -> None
        C++: void SetResolution(int resolution)
        
        Set/Get the number of line segments representing the spline for
        this widget.
        """
        pass

    def SetSelectedHandleProperty(self, __a): # real signature unknown; restored from __doc__
        """
        SetSelectedHandleProperty(self, __a:vtkProperty) -> None
        C++: virtual void SetSelectedHandleProperty(vtkProperty *)
        """
        pass

    def SetSelectedLineProperty(self, __a): # real signature unknown; restored from __doc__
        """
        SetSelectedLineProperty(self, __a:vtkProperty) -> None
        C++: virtual void SetSelectedLineProperty(vtkProperty *)
        """
        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."""


    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkSplineWidget\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetEnabled\': <method \'SetEnabled\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'PlaceWidget\': <method \'PlaceWidget\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectToPlane\': <method \'SetProjectToPlane\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProjectToPlane\': <method \'GetProjectToPlane\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ProjectToPlaneOn\': <method \'ProjectToPlaneOn\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ProjectToPlaneOff\': <method \'ProjectToPlaneOff\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetPlaneSource\': <method \'SetPlaneSource\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionNormal\': <method \'SetProjectionNormal\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProjectionNormalMinValue\': <method \'GetProjectionNormalMinValue\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProjectionNormalMaxValue\': <method \'GetProjectionNormalMaxValue\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProjectionNormal\': <method \'GetProjectionNormal\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionNormalToXAxes\': <method \'SetProjectionNormalToXAxes\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionNormalToYAxes\': <method \'SetProjectionNormalToYAxes\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionNormalToZAxes\': <method \'SetProjectionNormalToZAxes\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionNormalToOblique\': <method \'SetProjectionNormalToOblique\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProjectionPosition\': <method \'SetProjectionPosition\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProjectionPosition\': <method \'GetProjectionPosition\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetPolyData\': <method \'GetPolyData\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetHandleProperty\': <method \'SetHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetHandleProperty\': <method \'GetHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetSelectedHandleProperty\': <method \'SetSelectedHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetSelectedHandleProperty\': <method \'GetSelectedHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetLineProperty\': <method \'SetLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetLineProperty\': <method \'GetLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetSelectedLineProperty\': <method \'SetSelectedLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetSelectedLineProperty\': <method \'GetSelectedLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetNumberOfHandles\': <method \'SetNumberOfHandles\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetNumberOfHandles\': <method \'GetNumberOfHandles\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetResolution\': <method \'SetResolution\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetResolution\': <method \'GetResolution\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetParametricSpline\': <method \'SetParametricSpline\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetParametricSpline\': <method \'GetParametricSpline\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetHandlePosition\': <method \'SetHandlePosition\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetHandlePosition\': <method \'GetHandlePosition\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetClosed\': <method \'SetClosed\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetClosed\': <method \'GetClosed\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ClosedOn\': <method \'ClosedOn\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ClosedOff\': <method \'ClosedOff\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'IsClosed\': <method \'IsClosed\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetSummedLength\': <method \'GetSummedLength\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'InitializeHandles\': <method \'InitializeHandles\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'SetProcessEvents\': <method \'SetProcessEvents\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProcessEventsMinValue\': <method \'GetProcessEventsMinValue\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProcessEventsMaxValue\': <method \'GetProcessEventsMaxValue\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'GetProcessEvents\': <method \'GetProcessEvents\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ProcessEventsOn\': <method \'ProcessEventsOn\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'ProcessEventsOff\': <method \'ProcessEventsOff\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D6654A0>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkInteractionWidgets.vtkSplineWidget\' objects>, \'__doc__\': \'vtkSplineWidget - 3D widget for manipulating a spline\\n\\nSuperclass: vtk3DWidget\\n\\nThis 3D widget defines a spline that can be interactively placed in a\\nscene. The spline has handles, the number of which can be changed,\\nplus it can be picked on the spline itself to translate or rotate it\\nin the scene. A nice feature of the object is that the\\nvtkSplineWidget, like any 3D widget, will work with the current\\ninteractor style. That is, if vtkSplineWidget does not handle an\\nevent, then all other registered observers (including the interactor\\nstyle) have an opportunity to process the event. Otherwise, the\\nvtkSplineWidget will terminate the processing of the event that it\\nhandles.\\n\\nTo use this object, just invoke SetInteractor() with the argument of\\nthe method a vtkRenderWindowInteractor.  You may also wish to invoke\\n"PlaceWidget()" to initially position the widget. The interactor will\\nact normally until the "i" key (for "interactor") is pressed, at\\nwhich point the vtkSplineWidget will appear. (See superclass\\ndocumentation for information about changing this behavior.) Events\\nthat occur outside of the widget (i.e., no part of the widget is\\npicked) are propagated to any other registered obsevers (such as the\\ninteraction style).  Turn off the widget by pressing the "i" key\\nagain (or invoke the Off() method).\\n\\nThe button actions and key modifiers are as follows for controlling\\nthe widget:\\n1) left button down on and drag one of the spherical handles to\\n   change the shape of the spline: the handles act as "control\\n   points".\\n2) left button or middle button down on a line segment forming the\\n   spline allows uniform translation of the widget.\\n3) ctrl + middle button down on the widget enables spinning of the\\n   widget about its center.\\n4) right button down on the widget enables scaling of the widget. By\\n   moving the mouse "up" the render window the spline will be made\\n   bigger; by moving "down" the render window the widget will be made\\nsmaller.\\n5) ctrl key + right button down on any handle will erase it providing\\nthere will be two or more points remaining to form a spline.\\n6) shift key + right button down on any line segment will insert a\\n   handle onto the spline at the cursor position.\\n\\nThe vtkSplineWidget has several methods that can be used in\\nconjunction with other VTK objects. The Set/GetResolution() methods\\ncontrol the number of subdivisions of the spline; the GetPolyData()\\nmethod can be used to get the polygonal representation and can be\\nused for things like seeding streamlines or probing other data sets.\\nTypical usage of the widget is to make use of the\\nStartInteractionEvent, InteractionEvent, and EndInteractionEvent\\nevents. The InteractionEvent is called on mouse motion; the other two\\nevents are called on button down and button up (either left or right\\nbutton).\\n\\nSome additional features of this class include the ability to control\\nthe properties of the widget. You can set the properties of the\\nselected and unselected representations of the spline. For example,\\nyou can set the property for the handles and spline. In addition\\nthere are methods to constrain the spline so that it is aligned with\\na plane.  Note that a simple ruler widget can be derived by setting\\nthe resolution to 1, the number of handles to 2, and calling the\\nGetSummedLength method!\\n\\n@par Thanks: Thanks to Dean Inglis for developing and contributing\\nthis class.\\n\\n@sa\\nvtk3DWidget vtkBoxWidget vtkLineWidget vtkPointWidget vtkSphereWidget\\nvtkImagePlaneWidget vtkImplicitPlaneWidget vtkPlaneWidget\\n\\n\'})'
    __vtkname__ = 'vtkSplineWidget'


