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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkFlyingEdges2D(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkFlyingEdges2D - generate isoline(s) from a structured points
    (image) dataset
    
    Superclass: vtkPolyDataAlgorithm
    
    vtkFlyingEdges2D is a reference implementation of the 2D version of
    the flying edges algorithm. It is designed to be highly scalable
    (i.e., parallelizable) for large data. It implements certain
    performance optimizations including computational trimming to rapidly
    eliminate processing of data regions, packed bit representation of
    case table values, single edge intersection, elimination of point
    merging, and elimination of any reallocs (due to dynamic data
    insertion). Note that computational trimming is a method to reduce
    total computational cost in which partial computational results can
    be used to eliminate future computations.
    
    This is a four-pass algorithm. The first pass processes all x-edges
    and builds x-edge case values (which, when the two x-edges defining a
    pixel are combined, are equivalent to vertex-based case table except
    edge-based approaches are separable to parallel computing). Next
    x-pixel rows are processed to gather information from y-edges
    (basically to count the number of edge intersections and lines
    generated). In the third pass a prefix sum is used to count and
    allocate memory for the output primitives. Finally in the fourth pass
    output primitives are generated into pre-allocated arrays. This
    implementation uses pixel cell axes (a x-y dyad located at the pixel
    origin) to ensure that each edge is intersected at most one time.
    
    See the paper "Flying Edges: A High-Performance Scalable
    Isocontouring Algorithm" by Schroeder, Maynard, Geveci. Proc. of LDAV
    2015. Chicago, IL.
    
    @warning
    This filter is specialized to 2D images. This implementation can
    produce degenerate line segments (i.e., zero-length line segments).
    
    @warning
    If you are interested in extracting segmented regions from a label
    mask, consider using vtkDiscreteFlyingEdges2D.
    
    @warning
    This class has been threaded with vtkSMPTools. Using TBB or other
    non-sequential type (set in the CMake variable
    VTK_SMP_IMPLEMENTATION_TYPE) may improve performance significantly.
    
    @sa
    vtkFlyingEdges3D vtkContourFilter vtkSynchronizedTemplates2D
    vtkMarchingSquares vtkDiscreteFlyingEdges2D
    """
    def ComputeScalarsOff(self):
        """
        V.ComputeScalarsOff()
        C++: virtual void ComputeScalarsOff()
        
        Option to set the point scalars of the output.  The scalars will
        be the iso value of course.  By default this flag is on.
        """
        ...
    
    def ComputeScalarsOn(self):
        """
        V.ComputeScalarsOn()
        C++: virtual void ComputeScalarsOn()
        
        Option to set the point scalars of the output.  The scalars will
        be the iso value of course.  By default this flag is on.
        """
        ...
    
    def GenerateValues(self, p_int, p_float=..., p_float=...):
        """
        V.GenerateValues(int, [float, float])
        C++: void GenerateValues(int numContours, double range[2])
        V.GenerateValues(int, float, float)
        C++: void GenerateValues(int numContours, double rangeStart,
            double rangeEnd)
        
        Generate numContours equally spaced contour values between
        specified range. Contour values will include min/max range
        values.
        """
        ...
    
    def GetArrayComponent(self):
        """
        V.GetArrayComponent() -> int
        C++: virtual int GetArrayComponent()
        
        Set/get which component of the scalar array to contour on;
        defaults to 0.
        """
        ...
    
    def GetComputeScalars(self):
        """
        V.GetComputeScalars() -> int
        C++: virtual vtkTypeBool GetComputeScalars()
        
        Option to set the point scalars of the output.  The scalars will
        be the iso value of course.  By default this flag is on.
        """
        ...
    
    def GetMTime(self):
        """
        V.GetMTime() -> int
        C++: vtkMTimeType GetMTime() override;
        
        Because we delegate to vtkContourValues.
        """
        ...
    
    def GetNumberOfContours(self):
        """
        V.GetNumberOfContours() -> int
        C++: vtkIdType GetNumberOfContours()
        
        Get the number of contours in the list of contour values.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Given a the name of a base class of this class type, return the
        distance of inheritance between this class type and the named
        class (how many generations of inheritance are there between this
        class and the named class). If the named class is not in this
        class's inheritance tree, return a negative value. Valid
        responses will always be nonnegative. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def GetValue(self, p_int):
        """
        V.GetValue(int) -> float
        C++: double GetValue(int i)
        
        Get the ith contour value.
        """
        ...
    
    def GetValues(self):
        """
        V.GetValues() -> (float, ...)
        C++: double *GetValues()
        V.GetValues([float, ...])
        C++: void GetValues(double *contourValues)
        
        Get a pointer to an array of contour values. There will be
        GetNumberOfContours() values in the list.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Return 1 if this class is the same type of (or a subclass of) the
        named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Return 1 if this class type is the same type of (or a subclass
        of) the named class. Returns 0 otherwise. This method works in
        combination with vtkTypeMacro found in vtkSetGet.h.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkFlyingEdges2D
        C++: vtkFlyingEdges2D *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkFlyingEdges2D
        C++: static vtkFlyingEdges2D *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetArrayComponent(self, p_int):
        """
        V.SetArrayComponent(int)
        C++: virtual void SetArrayComponent(int _arg)
        
        Set/get which component of the scalar array to contour on;
        defaults to 0.
        """
        ...
    
    def SetComputeScalars(self, p_int):
        """
        V.SetComputeScalars(int)
        C++: virtual void SetComputeScalars(vtkTypeBool _arg)
        
        Option to set the point scalars of the output.  The scalars will
        be the iso value of course.  By default this flag is on.
        """
        ...
    
    def SetNumberOfContours(self, p_int):
        """
        V.SetNumberOfContours(int)
        C++: void SetNumberOfContours(int number)
        
        Set the number of contours to place into the list. You only
        really need to use this method to reduce list size. The method
        SetValue() will automatically increase list size as needed.
        """
        ...
    
    def SetValue(self, p_int, p_float):
        """
        V.SetValue(int, float)
        C++: void SetValue(int i, double value)
        
        Set a particular contour value at contour number i. The index i
        ranges between 0<=i<NumberOfContours.
        """
        ...
    
    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__ = ...


