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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkFlyingEdgesPlaneCutter(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkFlyingEdgesPlaneCutter - cut a volume with a plane and generate a
    polygonal cut surface
    
    Superclass: vtkPolyDataAlgorithm
    
    vtkFlyingEdgesPlaneCutter is a specialization of the FlyingEdges
    algorithm to cut a volume with a single plane. It is designed for
    performance and an exploratory, fast workflow.
    
    This algorithm is not only fast because it uses flying edges, but
    also because it plays some "tricks" during processing. For example,
    rather than evaluate the cut (plane) function on all volume points
    like vtkCutter and its ilk do, this algorithm intersects the volume
    x-edges against the plane to (potentially) generate the single
    intersection point. It then quickly classifies the voxel edges as
    above, below, or straddling the cut plane. Thus the number of plane
    evaluations is greatly reduced.
    
    For more information see vtkFlyingEdges3D and/or 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 3D volumes. This implementation can
    produce degenerate triangles (i.e., zero-area triangles).
    
    @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
    vtkFlyingEdges2D vtkFlyingEdges3D
    """
    def ComputeNormalsOff(self):
        """
        V.ComputeNormalsOff()
        C++: virtual void ComputeNormalsOff()
        
        Set/Get the computation of normals. The normal generated is
        simply the cut plane normal. By default this is disabled.
        """
        ...
    
    def ComputeNormalsOn(self):
        """
        V.ComputeNormalsOn()
        C++: virtual void ComputeNormalsOn()
        
        Set/Get the computation of normals. The normal generated is
        simply the cut plane normal. By default this is disabled.
        """
        ...
    
    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 GetComputeNormals(self):
        """
        V.GetComputeNormals() -> int
        C++: virtual vtkTypeBool GetComputeNormals()
        
        Set/Get the computation of normals. The normal generated is
        simply the cut plane normal. By default this is disabled.
        """
        ...
    
    def GetInterpolateAttributes(self):
        """
        V.GetInterpolateAttributes() -> int
        C++: virtual vtkTypeBool GetInterpolateAttributes()
        
        Indicate whether to interpolate other attribute data besides the
        input scalars (which are required). That is, as the isosurface is
        generated, interpolate all other point attribute data across
        intersected edges.
        """
        ...
    
    def GetMTime(self):
        """
        V.GetMTime() -> int
        C++: vtkMTimeType GetMTime() override;
        
        The modified time depends on the delegated cut plane.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard construction and print methods.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard construction and print methods.
        """
        ...
    
    def GetPlane(self):
        """
        V.GetPlane() -> vtkPlane
        C++: virtual vtkPlane *GetPlane()
        
        Specify the plane (an implicit function) to perform the cutting.
        The definition of the plane (its origin and normal) is controlled
        via this instance of vtkPlane.
        """
        ...
    
    def InterpolateAttributesOff(self):
        """
        V.InterpolateAttributesOff()
        C++: virtual void InterpolateAttributesOff()
        
        Indicate whether to interpolate other attribute data besides the
        input scalars (which are required). That is, as the isosurface is
        generated, interpolate all other point attribute data across
        intersected edges.
        """
        ...
    
    def InterpolateAttributesOn(self):
        """
        V.InterpolateAttributesOn()
        C++: virtual void InterpolateAttributesOn()
        
        Indicate whether to interpolate other attribute data besides the
        input scalars (which are required). That is, as the isosurface is
        generated, interpolate all other point attribute data across
        intersected edges.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard construction and print methods.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard construction and print methods.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkFlyingEdgesPlaneCutter
        C++: vtkFlyingEdgesPlaneCutter *NewInstance()
        
        Standard construction and print methods.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkFlyingEdgesPlaneCutter
        C++: static vtkFlyingEdgesPlaneCutter *SafeDownCast(
            vtkObjectBase *o)
        
        Standard construction and print methods.
        """
        ...
    
    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 SetComputeNormals(self, p_int):
        """
        V.SetComputeNormals(int)
        C++: virtual void SetComputeNormals(vtkTypeBool _arg)
        
        Set/Get the computation of normals. The normal generated is
        simply the cut plane normal. By default this is disabled.
        """
        ...
    
    def SetInterpolateAttributes(self, p_int):
        """
        V.SetInterpolateAttributes(int)
        C++: virtual void SetInterpolateAttributes(vtkTypeBool _arg)
        
        Indicate whether to interpolate other attribute data besides the
        input scalars (which are required). That is, as the isosurface is
        generated, interpolate all other point attribute data across
        intersected edges.
        """
        ...
    
    def SetPlane(self, vtkPlane):
        """
        V.SetPlane(vtkPlane)
        C++: virtual void SetPlane(vtkPlane *)
        
        Specify the plane (an implicit function) to perform the cutting.
        The definition of the plane (its origin and normal) is controlled
        via this instance of vtkPlane.
        """
        ...
    
    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__ = ...


