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

from .vtkWidgetRepresentation import vtkWidgetRepresentation

class vtkCurveRepresentation(vtkWidgetRepresentation):
    """
    vtkCurveRepresentation - vtkWidgetRepresentation base class for a
    widget that represents an curve that connects control points.
    
    Superclass: vtkWidgetRepresentation
    
    Base class for widgets used to define curves from points, such as
    vtkPolyLineRepresentation and vtkSplineRepresentation.  This class
    uses handles, the number of which can be changed, to represent the
    points that define the curve. The handles can be picked can be picked
    on the curve itself to translate or rotate it in the scene.
    """
    def BuildRepresentation(self):
        """
        V.BuildRepresentation()
        C++: void BuildRepresentation() override = 0;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    def ClosedOff(self):
        """
        V.ClosedOff()
        C++: virtual void ClosedOff()
        
        Control whether the curve is open or closed. A closed forms a
        continuous loop: the first and last points are the same.  A
        minimum of 3 handles are required to form a closed loop.
        """
        ...
    
    def ClosedOn(self):
        """
        V.ClosedOn()
        C++: virtual void ClosedOn()
        
        Control whether the curve is open or closed. A closed forms a
        continuous loop: the first and last points are the same.  A
        minimum of 3 handles are required to form a closed loop.
        """
        ...
    
    def ComputeInteractionState(self, p_int, p_int_1, p_int_2):
        """
        V.ComputeInteractionState(int, int, int) -> int
        C++: int ComputeInteractionState(int X, int Y, int modify=0)
            override;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    def DirectionalLineOff(self):
        """
        V.DirectionalLineOff()
        C++: virtual void DirectionalLineOff()
        
        Sets the representation to be a directional curve with the end
        represented as a cone.
        """
        ...
    
    def DirectionalLineOn(self):
        """
        V.DirectionalLineOn()
        C++: virtual void DirectionalLineOn()
        
        Sets the representation to be a directional curve with the end
        represented as a cone.
        """
        ...
    
    def EndWidgetInteraction(self, p_float=..., p_float=...):
        """
        V.EndWidgetInteraction([float, float])
        C++: void EndWidgetInteraction(double e[2]) override;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    def GetBounds(self):
        """
        V.GetBounds() -> (float, float, float, float, float, float)
        C++: double *GetBounds() override;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    def GetClosed(self):
        """
        V.GetClosed() -> int
        C++: virtual vtkTypeBool GetClosed()
        
        Control whether the curve is open or closed. A closed forms a
        continuous loop: the first and last points are the same.  A
        minimum of 3 handles are required to form a closed loop.
        """
        ...
    
    def GetCurrentHandleIndex(self):
        """
        V.GetCurrentHandleIndex() -> int
        C++: virtual int GetCurrentHandleIndex()
        
        Get/Set the current handle index. Setting the current handle
        index will also result in the handle being highlighted. Set to
        `-1` to remove the highlight.
        """
        ...
    
    def GetDirectionalLine(self):
        """
        V.GetDirectionalLine() -> bool
        C++: virtual bool GetDirectionalLine()
        
        Sets the representation to be a directional curve with the end
        represented as a cone.
        """
        ...
    
    def GetHandlePosition(self, p_int, p_float=..., p_float=..., p_float=...):
        """
        V.GetHandlePosition(int, [float, float, float])
        C++: virtual void GetHandlePosition(int handle, double xyz[3])
        V.GetHandlePosition(int) -> (float, ...)
        C++: virtual double *GetHandlePosition(int handle)
        
        Set/Get the position of the handles. Call GetNumberOfHandles to
        determine the valid range of handle indices.
        """
        ...
    
    def GetHandlePositions(self):
        """
        V.GetHandlePositions() -> vtkDoubleArray
        C++: virtual vtkDoubleArray *GetHandlePositions()
        
        Set/Get the position of the handles. Call GetNumberOfHandles to
        determine the valid range of handle indices.
        """
        ...
    
    def GetHandleProperty(self):
        """
        V.GetHandleProperty() -> vtkProperty
        C++: virtual vtkProperty *GetHandleProperty()
        
        Set/Get the handle properties (the spheres are the handles). The
        properties of the handles when selected and unselected can be
        manipulated.
        """
        ...
    
    def GetLineProperty(self):
        """
        V.GetLineProperty() -> vtkProperty
        C++: virtual vtkProperty *GetLineProperty()
        
        Set/Get the line properties. The properties of the line when
        selected and unselected can be manipulated.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for instances of this class.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for instances of this class.
        """
        ...
    
    def GetNumberOfHandles(self):
        """
        V.GetNumberOfHandles() -> int
        C++: virtual int GetNumberOfHandles()
        
        Set/Get the number of handles for this widget.
        """
        ...
    
    def GetPolyData(self, vtkPolyData):
        """
        V.GetPolyData(vtkPolyData)
        C++: virtual void GetPolyData(vtkPolyData *pd)
        
        Grab the polydata (including points) that defines the
        interpolating curve. 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.
        """
        ...
    
    def GetProjectionNormal(self):
        """
        V.GetProjectionNormal() -> int
        C++: virtual int GetProjectionNormal()
        """
        ...
    
    def GetProjectionNormalMaxValue(self):
        """
        V.GetProjectionNormalMaxValue() -> int
        C++: virtual int GetProjectionNormalMaxValue()
        """
        ...
    
    def GetProjectionNormalMinValue(self):
        """
        V.GetProjectionNormalMinValue() -> int
        C++: virtual int GetProjectionNormalMinValue()
        """
        ...
    
    def GetProjectionPosition(self):
        """
        V.GetProjectionPosition() -> float
        C++: virtual double GetProjectionPosition()
        
        Set the position of poly line 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 poly line points
        when Projection normal is set to 3 for arbitrary plane
        orientations.
        """
        ...
    
    def GetProjectToPlane(self):
        """
        V.GetProjectToPlane() -> int
        C++: virtual vtkTypeBool GetProjectToPlane()
        
        Force the widget to be projected onto one of the orthogonal
        planes.  Remember that when the InteractionState changes, a
        ModifiedEvent is invoked.  This can be used to snap the curve 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.
        """
        ...
    
    def GetSelectedHandleProperty(self):
        """
        V.GetSelectedHandleProperty() -> vtkProperty
        C++: virtual vtkProperty *GetSelectedHandleProperty()
        
        Set/Get the handle properties (the spheres are the handles). The
        properties of the handles when selected and unselected can be
        manipulated.
        """
        ...
    
    def GetSelectedLineProperty(self):
        """
        V.GetSelectedLineProperty() -> vtkProperty
        C++: virtual vtkProperty *GetSelectedLineProperty()
        
        Set/Get the line properties. The properties of the line when
        selected and unselected can be manipulated.
        """
        ...
    
    def GetSummedLength(self):
        """
        V.GetSummedLength() -> float
        C++: virtual double GetSummedLength()
        
        Get the approximate vs. the true arc length of the curve.
        Calculated as the summed lengths of the individual straight line
        segments. Use SetResolution to control the accuracy.
        """
        ...
    
    def GetTranslationAxis(self):
        """
        V.GetTranslationAxis() -> int
        C++: virtual int GetTranslationAxis()
        
        Gets/Sets the constraint axis for translations. Returns
        Axis::NONE if none.
        """
        ...
    
    def GetTranslationAxisMaxValue(self):
        """
        V.GetTranslationAxisMaxValue() -> int
        C++: virtual int GetTranslationAxisMaxValue()
        
        Gets/Sets the constraint axis for translations. Returns
        Axis::NONE if none.
        """
        ...
    
    def GetTranslationAxisMinValue(self):
        """
        V.GetTranslationAxisMinValue() -> int
        C++: virtual int GetTranslationAxisMinValue()
        
        Gets/Sets the constraint axis for translations. Returns
        Axis::NONE if none.
        """
        ...
    
    def HasTranslucentPolygonalGeometry(self):
        """
        V.HasTranslucentPolygonalGeometry() -> int
        C++: vtkTypeBool HasTranslucentPolygonalGeometry() override;
        
        Methods supporting, and required by, the rendering process.
        """
        ...
    
    def InitializeHandles(self, vtkPoints):
        """
        V.InitializeHandles(vtkPoints)
        C++: virtual 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 curve sets Closed to the on InteractionState and disregards
        the last point, otherwise Closed remains unchanged.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for instances of this class.
        """
        ...
    
    def IsClosed(self):
        """
        V.IsClosed() -> int
        C++: vtkTypeBool IsClosed()
        
        Convenience method to determine whether the curve is closed in a
        geometric sense.  The widget may be set "closed" but still be
        geometrically open (e.g., a straight line).
        """
        ...
    
    def IsTranslationConstrained(self):
        """
        V.IsTranslationConstrained() -> bool
        C++: bool IsTranslationConstrained()
        
        Returns true if ContrainedAxis
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for instances of this class.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkCurveRepresentation
        C++: vtkCurveRepresentation *NewInstance()
        
        Standard methods for instances of this class.
        """
        ...
    
    def ProjectToPlaneOff(self):
        """
        V.ProjectToPlaneOff()
        C++: virtual void ProjectToPlaneOff()
        
        Force the widget to be projected onto one of the orthogonal
        planes.  Remember that when the InteractionState changes, a
        ModifiedEvent is invoked.  This can be used to snap the curve 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.
        """
        ...
    
    def ProjectToPlaneOn(self):
        """
        V.ProjectToPlaneOn()
        C++: virtual void ProjectToPlaneOn()
        
        Force the widget to be projected onto one of the orthogonal
        planes.  Remember that when the InteractionState changes, a
        ModifiedEvent is invoked.  This can be used to snap the curve 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.
        """
        ...
    
    def RegisterPickers(self):
        """
        V.RegisterPickers()
        C++: void RegisterPickers() override;
        
        Register internal Pickers in the Picking Manager. Must be
        reimplemented by concrete widget representations to register
        their pickers.
        """
        ...
    
    def ReleaseGraphicsResources(self, vtkWindow):
        """
        V.ReleaseGraphicsResources(vtkWindow)
        C++: void ReleaseGraphicsResources(vtkWindow *) override;
        
        Methods supporting, and required by, the rendering process.
        """
        ...
    
    def RenderOpaqueGeometry(self, vtkViewport):
        """
        V.RenderOpaqueGeometry(vtkViewport) -> int
        C++: int RenderOpaqueGeometry(vtkViewport *) override;
        
        Methods supporting, and required by, the rendering process.
        """
        ...
    
    def RenderOverlay(self, vtkViewport):
        """
        V.RenderOverlay(vtkViewport) -> int
        C++: int RenderOverlay(vtkViewport *) override;
        
        Methods supporting, and required by, the rendering process.
        """
        ...
    
    def RenderTranslucentPolygonalGeometry(self, vtkViewport):
        """
        V.RenderTranslucentPolygonalGeometry(vtkViewport) -> int
        C++: int RenderTranslucentPolygonalGeometry(vtkViewport *)
            override;
        
        Methods supporting, and required by, the rendering process.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkCurveRepresentation
        C++: static vtkCurveRepresentation *SafeDownCast(vtkObjectBase *o)
        
        Standard methods for instances of this class.
        """
        ...
    
    def SetClosed(self, p_int):
        """
        V.SetClosed(int)
        C++: void SetClosed(vtkTypeBool closed)
        
        Control whether the curve is open or closed. A closed forms a
        continuous loop: the first and last points are the same.  A
        minimum of 3 handles are required to form a closed loop.
        """
        ...
    
    def SetCurrentHandleIndex(self, p_int):
        """
        V.SetCurrentHandleIndex(int)
        C++: void SetCurrentHandleIndex(int index)
        
        Get/Set the current handle index. Setting the current handle
        index will also result in the handle being highlighted. Set to
        `-1` to remove the highlight.
        """
        ...
    
    def SetDirectionalLine(self, bool):
        """
        V.SetDirectionalLine(bool)
        C++: void SetDirectionalLine(bool val)
        
        Sets the representation to be a directional curve with the end
        represented as a cone.
        """
        ...
    
    def SetHandlePosition(self, p_int, p_float, p_float_1, p_float_2):
        """
        V.SetHandlePosition(int, float, float, float)
        C++: virtual void SetHandlePosition(int handle, double x,
            double y, double z)
        V.SetHandlePosition(int, [float, float, float])
        C++: virtual void SetHandlePosition(int handle, double xyz[3])
        
        Set/Get the position of the handles. Call GetNumberOfHandles to
        determine the valid range of handle indices.
        """
        ...
    
    def SetInteractionState(self, p_int):
        """
        V.SetInteractionState(int)
        C++: virtual void SetInteractionState(int _arg)
        
        Set the interaction state
        """
        ...
    
    def SetLineColor(self, p_float, p_float_1, p_float_2):
        """
        V.SetLineColor(float, float, float)
        C++: void SetLineColor(double r, double g, double b)
        
        Convenience method to set the line color. Ideally one should use
        GetLineProperty()->SetColor().
        """
        ...
    
    def SetNumberOfHandles(self, p_int):
        """
        V.SetNumberOfHandles(int)
        C++: virtual void SetNumberOfHandles(int npts)
        
        Set/Get the number of handles for this widget.
        """
        ...
    
    def SetPlaneSource(self, vtkPlaneSource):
        """
        V.SetPlaneSource(vtkPlaneSource)
        C++: void SetPlaneSource(vtkPlaneSource *plane)
        
        Set up a reference to a vtkPlaneSource that could be from another
        widget object, e.g. a vtkPolyDataSourceWidget.
        """
        ...
    
    def SetProjectionNormal(self, p_int):
        """
        V.SetProjectionNormal(int)
        C++: virtual void SetProjectionNormal(int _arg)
        """
        ...
    
    def SetProjectionNormalToOblique(self):
        """
        V.SetProjectionNormalToOblique()
        C++: void SetProjectionNormalToOblique()
        """
        ...
    
    def SetProjectionNormalToXAxes(self):
        """
        V.SetProjectionNormalToXAxes()
        C++: void SetProjectionNormalToXAxes()
        """
        ...
    
    def SetProjectionNormalToYAxes(self):
        """
        V.SetProjectionNormalToYAxes()
        C++: void SetProjectionNormalToYAxes()
        """
        ...
    
    def SetProjectionNormalToZAxes(self):
        """
        V.SetProjectionNormalToZAxes()
        C++: void SetProjectionNormalToZAxes()
        """
        ...
    
    def SetProjectionPosition(self, p_float):
        """
        V.SetProjectionPosition(float)
        C++: void SetProjectionPosition(double position)
        
        Set the position of poly line 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 poly line points
        when Projection normal is set to 3 for arbitrary plane
        orientations.
        """
        ...
    
    def SetProjectToPlane(self, p_int):
        """
        V.SetProjectToPlane(int)
        C++: virtual void SetProjectToPlane(vtkTypeBool _arg)
        
        Force the widget to be projected onto one of the orthogonal
        planes.  Remember that when the InteractionState changes, a
        ModifiedEvent is invoked.  This can be used to snap the curve 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.
        """
        ...
    
    def SetTranslationAxis(self, p_int):
        """
        V.SetTranslationAxis(int)
        C++: virtual void SetTranslationAxis(int _arg)
        
        Gets/Sets the constraint axis for translations. Returns
        Axis::NONE if none.
        """
        ...
    
    def SetTranslationAxisOff(self):
        """
        V.SetTranslationAxisOff()
        C++: void SetTranslationAxisOff()
        
        Toggles constraint translation axis on/off.
        """
        ...
    
    def SetXTranslationAxisOn(self):
        """
        V.SetXTranslationAxisOn()
        C++: void SetXTranslationAxisOn()
        
        Toggles constraint translation axis on/off.
        """
        ...
    
    def SetYTranslationAxisOn(self):
        """
        V.SetYTranslationAxisOn()
        C++: void SetYTranslationAxisOn()
        
        Toggles constraint translation axis on/off.
        """
        ...
    
    def SetZTranslationAxisOn(self):
        """
        V.SetZTranslationAxisOn()
        C++: void SetZTranslationAxisOn()
        
        Toggles constraint translation axis on/off.
        """
        ...
    
    def StartWidgetInteraction(self, p_float=..., p_float=...):
        """
        V.StartWidgetInteraction([float, float])
        C++: void StartWidgetInteraction(double e[2]) override;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    def WidgetInteraction(self, p_float=..., p_float=...):
        """
        V.WidgetInteraction([float, float])
        C++: void WidgetInteraction(double e[2]) override;
        
        These are methods that satisfy vtkWidgetRepresentation's API.
        Note that a version of place widget is available where the center
        and handle position are specified.
        """
        ...
    
    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__ = ...
    Erasing = ...
    Inserting = ...
    Moving = ...
    OnHandle = ...
    OnLine = ...
    Outside = ...
    Pushing = ...
    Scaling = ...
    Spinning = ...
    _InteractionState = ...
    __dict__ = ...
    __vtkname__ = ...


