# 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 vtkLineWidget(vtk3DWidget):
    """
    vtkLineWidget - 3D widget for manipulating a line
    
    Superclass: vtk3DWidget
    
    This 3D widget defines a line that can be interactively placed in a
    scene. The line has two handles (at its endpoints), plus the line can
    be picked to translate it in the scene.  A nice feature of the object
    is that the vtkLineWidget, like any 3D widget, will work with the
    current interactor style and any other widgets present in the scene.
    That is, if vtkLineWidget does not handle an event, then all other
    registered observers (including the interactor style) have an
    opportunity to process the event. Otherwise, the vtkLineWidget 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 vtkLineWidget will appear. (See superclass
    documentation for information about changing this behavior.) By
    grabbing one of the two end point handles (use the left mouse
    button), the line can be oriented and stretched (the other end point
    remains fixed). By grabbing the line itself, or using the middle
    mouse button, the entire line can be translated.  Scaling (about the
    center of the line) is achieved by using the right mouse button. By
    moving the mouse "up" the render window the line will be made bigger;
    by moving "down" the render window the widget will be made smaller.
    Turn off the widget by pressing the "i" key again (or invoke the
    Off() method). (Note: picking the line or either one of the two end
    point handles causes a vtkPointWidget to appear.  This widget has the
    ability to constrain motion to an axis by pressing the "shift" key
    while moving the mouse.)
    
    The vtkLineWidget has several methods that can be used in conjunction
    with other VTK objects. The Set/GetResolution() methods control the
    number of subdivisions of the line; the GetPolyData() method can be
    used to get the polygonal representation and can be used for things
    like seeding streamlines. 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 line. For example, you
    can set the property for the handles and line. In addition there are
    methods to constrain the line so that it is aligned along the x-y-z
    axes.
    
    @sa
    vtk3DWidget vtkBoxWidget vtkPlaneWidget
    """
    def ClampToBoundsOff(self): # real signature unknown; restored from __doc__
        """
        ClampToBoundsOff(self) -> None
        C++: virtual void ClampToBoundsOff()
        """
        pass

    def ClampToBoundsOn(self): # real signature unknown; restored from __doc__
        """
        ClampToBoundsOn(self) -> None
        C++: virtual void ClampToBoundsOn()
        """
        pass

    def GetAlign(self): # real signature unknown; restored from __doc__
        """
        GetAlign(self) -> int
        C++: virtual int GetAlign()
        """
        return 0

    def GetAlignMaxValue(self): # real signature unknown; restored from __doc__
        """
        GetAlignMaxValue(self) -> int
        C++: virtual int GetAlignMaxValue()
        """
        return 0

    def GetAlignMinValue(self): # real signature unknown; restored from __doc__
        """
        GetAlignMinValue(self) -> int
        C++: virtual int GetAlignMinValue()
        """
        return 0

    def GetClampToBounds(self): # real signature unknown; restored from __doc__
        """
        GetClampToBounds(self) -> int
        C++: virtual vtkTypeBool GetClampToBounds()
        """
        return 0

    def GetHandleProperty(self): # real signature unknown; restored from __doc__
        """
        GetHandleProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetHandleProperty()
        
        Get the handle properties (the little balls are the handles). The
        properties of the handles when selected and normal can be
        manipulated.
        """
        pass

    def GetLineProperty(self): # real signature unknown; restored from __doc__
        """
        GetLineProperty(self) -> vtkProperty
        C++: virtual vtkProperty *GetLineProperty()
        
        Get the line properties. The properties of the line when selected
        and unselected can be manipulated.
        """
        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 GetPoint1(self): # real signature unknown; restored from __doc__
        """
        GetPoint1(self) -> (float, float, float)
        C++: double *GetPoint1()
        GetPoint1(self, xyz:[float, float, float]) -> None
        C++: void GetPoint1(double xyz[3])
        """
        pass

    def GetPoint2(self): # real signature unknown; restored from __doc__
        """
        GetPoint2(self) -> (float, float, float)
        C++: double *GetPoint2()
        GetPoint2(self, xyz:[float, float, float]) -> None
        C++: void GetPoint2(double xyz[3])
        """
        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 line.  The
        polydata consists of n+1 points, where n is the resolution of the
        line. 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 polyline are
        added to it.
        """
        pass

    def GetResolution(self): # real signature unknown; restored from __doc__
        """
        GetResolution(self) -> int
        C++: 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 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) -> vtkLineWidget
        C++: vtkLineWidget *NewInstance()
        """
        return vtkLineWidget

    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 SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkLineWidget
        C++: static vtkLineWidget *SafeDownCast(vtkObjectBase *o)
        """
        return vtkLineWidget

    def SetAlign(self, _arg): # real signature unknown; restored from __doc__
        """
        SetAlign(self, _arg:int) -> None
        C++: virtual void SetAlign(int _arg)
        
        Force the line widget to be aligned with one of the x-y-z axes.
        Remember that when the state changes, a ModifiedEvent is invoked.
        This can be used to snap the line to the axes if it is originally
        not aligned.
        """
        pass

    def SetAlignToNone(self): # real signature unknown; restored from __doc__
        """
        SetAlignToNone(self) -> None
        C++: void SetAlignToNone()
        """
        pass

    def SetAlignToXAxis(self): # real signature unknown; restored from __doc__
        """
        SetAlignToXAxis(self) -> None
        C++: void SetAlignToXAxis()
        """
        pass

    def SetAlignToYAxis(self): # real signature unknown; restored from __doc__
        """
        SetAlignToYAxis(self) -> None
        C++: void SetAlignToYAxis()
        """
        pass

    def SetAlignToZAxis(self): # real signature unknown; restored from __doc__
        """
        SetAlignToZAxis(self) -> None
        C++: void SetAlignToZAxis()
        """
        pass

    def SetClampToBounds(self, _arg): # real signature unknown; restored from __doc__
        """
        SetClampToBounds(self, _arg:int) -> None
        C++: virtual void SetClampToBounds(vtkTypeBool _arg)
        
        Enable/disable clamping of the point end points to the bounding
        box of the data. The bounding box is defined from the last
        PlaceWidget() invocation, and includes the effect of the
        PlaceFactor which is used to gram/shrink the bounding box.
        """
        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 SetPoint1(self, x, y, z): # real signature unknown; restored from __doc__
        """
        SetPoint1(self, x:float, y:float, z:float) -> None
        C++: void SetPoint1(double x, double y, double z)
        SetPoint1(self, x:[float, float, float]) -> None
        C++: void SetPoint1(double x[3])
        
        Set/Get the position of first end point.
        """
        pass

    def SetPoint2(self, x, y, z): # real signature unknown; restored from __doc__
        """
        SetPoint2(self, x:float, y:float, z:float) -> None
        C++: void SetPoint2(double x, double y, double z)
        SetPoint2(self, x:[float, float, float]) -> None
        C++: void SetPoint2(double x[3])
        
        Set position of other end point.
        """
        pass

    def SetResolution(self, r): # real signature unknown; restored from __doc__
        """
        SetResolution(self, r:int) -> None
        C++: void SetResolution(int r)
        
        Set/Get the resolution (number of subdivisions) of the line.
        """
        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__\': \'vtkLineWidget\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetEnabled\': <method \'SetEnabled\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'PlaceWidget\': <method \'PlaceWidget\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetResolution\': <method \'SetResolution\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetResolution\': <method \'GetResolution\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetPoint1\': <method \'SetPoint1\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetPoint1\': <method \'GetPoint1\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetPoint2\': <method \'SetPoint2\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetPoint2\': <method \'GetPoint2\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetAlign\': <method \'SetAlign\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetAlignMinValue\': <method \'GetAlignMinValue\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetAlignMaxValue\': <method \'GetAlignMaxValue\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetAlign\': <method \'GetAlign\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetAlignToXAxis\': <method \'SetAlignToXAxis\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetAlignToYAxis\': <method \'SetAlignToYAxis\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetAlignToZAxis\': <method \'SetAlignToZAxis\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetAlignToNone\': <method \'SetAlignToNone\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'SetClampToBounds\': <method \'SetClampToBounds\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetClampToBounds\': <method \'GetClampToBounds\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'ClampToBoundsOn\': <method \'ClampToBoundsOn\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'ClampToBoundsOff\': <method \'ClampToBoundsOff\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetPolyData\': <method \'GetPolyData\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetHandleProperty\': <method \'GetHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetSelectedHandleProperty\': <method \'GetSelectedHandleProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetLineProperty\': <method \'GetLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'GetSelectedLineProperty\': <method \'GetSelectedLineProperty\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D653250>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkInteractionWidgets.vtkLineWidget\' objects>, \'__doc__\': \'vtkLineWidget - 3D widget for manipulating a line\\n\\nSuperclass: vtk3DWidget\\n\\nThis 3D widget defines a line that can be interactively placed in a\\nscene. The line has two handles (at its endpoints), plus the line can\\nbe picked to translate it in the scene.  A nice feature of the object\\nis that the vtkLineWidget, like any 3D widget, will work with the\\ncurrent interactor style and any other widgets present in the scene.\\nThat is, if vtkLineWidget does not handle an event, then all other\\nregistered observers (including the interactor style) have an\\nopportunity to process the event. Otherwise, the vtkLineWidget will\\nterminate the processing of the event that it handles.\\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 vtkLineWidget will appear. (See superclass\\ndocumentation for information about changing this behavior.) By\\ngrabbing one of the two end point handles (use the left mouse\\nbutton), the line can be oriented and stretched (the other end point\\nremains fixed). By grabbing the line itself, or using the middle\\nmouse button, the entire line can be translated.  Scaling (about the\\ncenter of the line) is achieved by using the right mouse button. By\\nmoving the mouse "up" the render window the line will be made bigger;\\nby moving "down" the render window the widget will be made smaller.\\nTurn off the widget by pressing the "i" key again (or invoke the\\nOff() method). (Note: picking the line or either one of the two end\\npoint handles causes a vtkPointWidget to appear.  This widget has the\\nability to constrain motion to an axis by pressing the "shift" key\\nwhile moving the mouse.)\\n\\nThe vtkLineWidget has several methods that can be used in conjunction\\nwith other VTK objects. The Set/GetResolution() methods control the\\nnumber of subdivisions of the line; the GetPolyData() method can be\\nused to get the polygonal representation and can be used for things\\nlike seeding streamlines. Typical usage of the widget is to make use\\nof the StartInteractionEvent, InteractionEvent, and\\nEndInteractionEvent events. The InteractionEvent is called on mouse\\nmotion; the other two events are called on button down and button up\\n(either left or right button).\\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 line. For example, you\\ncan set the property for the handles and line. In addition there are\\nmethods to constrain the line so that it is aligned along the x-y-z\\naxes.\\n\\n@sa\\nvtk3DWidget vtkBoxWidget vtkPlaneWidget\\n\\n\'})'
    __vtkname__ = 'vtkLineWidget'


