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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkContourLoopExtraction(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkContourLoopExtraction - extract closed loops (polygons) from lines
    and polylines
    
    Superclass: vtkPolyDataAlgorithm
    
    This filter takes an input consisting of lines and polylines and
    constructs polygons (i.e., closed loops) from them. It combines some
    of the capability of connectivity filters and the line stripper to
    produce manifold loops that are suitable for geometric operations.
    For example, the vtkCookieCutter works well with this filter.
    
    Note that the input structure for this filter consists of points and
    line or polyline cells. All other topological types (verts, polygons,
    triangle strips) are ignored. The output of this filter is by default
    manifold polygons. Note however, that optionally polyline loops may
    also be output if requested.
    
    @warning
    Although the loops are constructed in 3-space, a normal vector must
    be supplied to help choose a turn direction when multiple choices are
    possible. By default the normal vector is n={0,0,1} but may be user
    specified. Note also that some filters require that the loops are
    located in the z=constant or z=0 plane. Hence a transform filter of
    some sort may be necesssary to project the loops to a plane.
    
    @warning
    Note that lines that do not close in on themselves can be optionally
    forced closed. This occurs when for example, 2D contours end and
    begin at the boundaries of data. By forcing closure, the last point
    is joined to the first point (with boundary points possibly added).
    Note that there are different closure modes: 1) do not close (and
    hence reject the polygon);
    2) close along the dataset boundaries (i.e., the bounding box of a
       dataset used to generate the contour lines); and 3) close all open
    loops by connectiong the first and last point. If Option #2 is
       chosen, only loops that start and end on either a horizontal or
       vertical boundary are closed.
    
    @warning
    Scalar thresholding can be enabled. If enabled, then only those loops
    with
    *any" scalar point data within the thresholded range are extracted.
    
    @warning
    Any detached lines forming degenerate loops of defined by two points
    or less are discarded. Non-manifold junctions are broken into
    separate, independent loops.
    
    @warning
    Boundary closure only works if the end points are both on a vertical
    boundary or horizontal boundary. Otherwise new points would have to
    be added which this filter does not (currently) do.
    
    @sa
    vtkCookieCutter vtkFlyingEdges2D vtkMarchingSquares vtkFeatureEdges
    vtkConnectivityFilter vtkPolyDataConnectivityFilter
    vtkDiscreteFlyingEdges2D vtkStripper
    """
    def GetLoopClosure(self):
        """
        V.GetLoopClosure() -> int
        C++: virtual int GetLoopClosure()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def GetLoopClosureAsString(self):
        """
        V.GetLoopClosureAsString() -> string
        C++: const char *GetLoopClosureAsString()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def GetLoopClosureMaxValue(self):
        """
        V.GetLoopClosureMaxValue() -> int
        C++: virtual int GetLoopClosureMaxValue()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def GetLoopClosureMinValue(self):
        """
        V.GetLoopClosureMinValue() -> int
        C++: virtual int GetLoopClosureMinValue()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def GetNormal(self):
        """
        V.GetNormal() -> (float, float, float)
        C++: virtual double *GetNormal()
        
        Set the normal vector used to orient the algorithm (controlling
        turns around the loop). By default the normal points in the +z
        direction.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def GetOutputMode(self):
        """
        V.GetOutputMode() -> int
        C++: virtual int GetOutputMode()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def GetOutputModeAsString(self):
        """
        V.GetOutputModeAsString() -> string
        C++: const char *GetOutputModeAsString()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def GetOutputModeMaxValue(self):
        """
        V.GetOutputModeMaxValue() -> int
        C++: virtual int GetOutputModeMaxValue()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def GetOutputModeMinValue(self):
        """
        V.GetOutputModeMinValue() -> int
        C++: virtual int GetOutputModeMinValue()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def GetScalarRange(self):
        """
        V.GetScalarRange() -> (float, float)
        C++: virtual double *GetScalarRange()
        
        Set the scalar range to use to extract loop based on scalar
        thresholding.  If any scalar, point data, in the loop falls into
        the scalar range given, then the loop is extracted.
        """
        ...
    
    def GetScalarThresholding(self):
        """
        V.GetScalarThresholding() -> bool
        C++: virtual bool GetScalarThresholding()
        
        Turn on/off the extraction of loops based on scalar thresholding.
         Loops with scalar values in a specified range can be extracted.
        If no scalars are available from the input than this data member
        is ignored.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkContourLoopExtraction
        C++: vtkContourLoopExtraction *NewInstance()
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkContourLoopExtraction
        C++: static vtkContourLoopExtraction *SafeDownCast(
            vtkObjectBase *o)
        
        Standard methods to instantiate, print and provide type
        information.
        """
        ...
    
    def ScalarThresholdingOff(self):
        """
        V.ScalarThresholdingOff()
        C++: virtual void ScalarThresholdingOff()
        
        Turn on/off the extraction of loops based on scalar thresholding.
         Loops with scalar values in a specified range can be extracted.
        If no scalars are available from the input than this data member
        is ignored.
        """
        ...
    
    def ScalarThresholdingOn(self):
        """
        V.ScalarThresholdingOn()
        C++: virtual void ScalarThresholdingOn()
        
        Turn on/off the extraction of loops based on scalar thresholding.
         Loops with scalar values in a specified range can be extracted.
        If no scalars are available from the input than this data member
        is ignored.
        """
        ...
    
    def SetLoopClosure(self, p_int):
        """
        V.SetLoopClosure(int)
        C++: virtual void SetLoopClosure(int _arg)
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def SetLoopClosureToAll(self):
        """
        V.SetLoopClosureToAll()
        C++: void SetLoopClosureToAll()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def SetLoopClosureToBoundary(self):
        """
        V.SetLoopClosureToBoundary()
        C++: void SetLoopClosureToBoundary()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def SetLoopClosureToOff(self):
        """
        V.SetLoopClosureToOff()
        C++: void SetLoopClosureToOff()
        
        Specify whether to close loops or not. All non-closed loops can
        be rejected; boundary loops (end points lie on vertical or
        horizontal porions of the boundary) can be closed (default); or
        all loops can be forced closed by connecting first and last
        points.
        """
        ...
    
    def SetNormal(self, p_float, p_float_1, p_float_2):
        """
        V.SetNormal(float, float, float)
        C++: virtual void SetNormal(double _arg1, double _arg2,
            double _arg3)
        V.SetNormal((float, float, float))
        C++: virtual void SetNormal(const double _arg[3])
        
        Set the normal vector used to orient the algorithm (controlling
        turns around the loop). By default the normal points in the +z
        direction.
        """
        ...
    
    def SetOutputMode(self, p_int):
        """
        V.SetOutputMode(int)
        C++: virtual void SetOutputMode(int _arg)
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def SetOutputModeToBoth(self):
        """
        V.SetOutputModeToBoth()
        C++: void SetOutputModeToBoth()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def SetOutputModeToPolygons(self):
        """
        V.SetOutputModeToPolygons()
        C++: void SetOutputModeToPolygons()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def SetOutputModeToPolylines(self):
        """
        V.SetOutputModeToPolylines()
        C++: void SetOutputModeToPolylines()
        
        Specify the form of the output. Polygons can be output (default);
        polylines can be output (the first and last point is repeated);
        or both can be output.
        """
        ...
    
    def SetScalarRange(self, p_float, p_float_1):
        """
        V.SetScalarRange(float, float)
        C++: virtual void SetScalarRange(double _arg1, double _arg2)
        V.SetScalarRange((float, float))
        C++: void SetScalarRange(const double _arg[2])
        
        Set the scalar range to use to extract loop based on scalar
        thresholding.  If any scalar, point data, in the loop falls into
        the scalar range given, then the loop is extracted.
        """
        ...
    
    def SetScalarThresholding(self, bool):
        """
        V.SetScalarThresholding(bool)
        C++: virtual void SetScalarThresholding(bool _arg)
        
        Turn on/off the extraction of loops based on scalar thresholding.
         Loops with scalar values in a specified range can be extracted.
        If no scalars are available from the input than this data member
        is ignored.
        """
        ...
    
    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__ = ...
    __dict__ = ...
    __vtkname__ = ...


