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

from .vtkPointInterpolator import vtkPointInterpolator

class vtkPointInterpolator2D(vtkPointInterpolator):
    """
    vtkPointInterpolator2D - interpolate point cloud attribute data onto
    x-y plane using various kernels
    
    Superclass: vtkPointInterpolator
    
    vtkPointInterpolator2D probes a point cloud Pc (the filter Source)
    with a set of points P (the filter Input), interpolating the data
    values from Pc onto P. Note however that the descriptive phrase "point
    cloud" is a misnomer: Pc can be represented by any vtkDataSet type,
    with the points of the dataset forming Pc. Similarly, the output P
    can also be represented by any vtkDataSet type; and the
    topology/geometry structure of P is passed through to the output
    along with the newly interpolated arrays. However, this filter
    presumes that P lies on a plane z=0.0, thus z-coordinates are set
    accordingly during the interpolation process.
    
    The optional boolean flag InterpolateZ is provided for convenience.
    In effect it turns the source z coordinates into an additional array
    that is interpolated onto the output data. For example, if the source
    is a x-y-z LIDAR point cloud, then z can be interpolated onto the
    output dataset as a vertical elevation(z-coordinate).
    
    A key input to this filter is the specification of the interpolation
    kernel, and the parameters which control the associated interpolation
    process. Interpolation kernels include Voronoi, Gaussian, Shepard,
    and SPH (smoothed particle hydrodynamics), with additional kernels to
    be added in the future. See vtkPointInterpolator for more
    information.
    
    @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.
    
    @warning
    For widely spaced points in Pc, or when p is located outside the
    bounding region of Pc, the interpolation may behave badly and the
    interpolation process will adapt as necessary to produce output. For
    example, if the N closest points within R are requested to
    interpolate p, if N=0 then the interpolation will switch to a
    different strategy (which can be controlled as in the
    NullPointsStrategy).
    
    @sa
    vtkPointInterpolator
    """
    def GetInterpolateZ(self):
        """
        V.GetInterpolateZ() -> bool
        C++: virtual bool GetInterpolateZ()
        
        Specify whether to take the z-coordinate values of the source
        points as attributes to be interpolated. This is in addition to
        any other point attribute data associated with the source. By
        default this is enabled.
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def GetZArrayName(self):
        """
        V.GetZArrayName() -> string
        C++: virtual vtkStdString GetZArrayName()
        
        Specify the name of the output array containing z values. This
        method is only applicable when InterpolateZ is enabled. By
        default the output array name is "Elevation".
        """
        ...
    
    def InterpolateZOff(self):
        """
        V.InterpolateZOff()
        C++: virtual void InterpolateZOff()
        
        Specify whether to take the z-coordinate values of the source
        points as attributes to be interpolated. This is in addition to
        any other point attribute data associated with the source. By
        default this is enabled.
        """
        ...
    
    def InterpolateZOn(self):
        """
        V.InterpolateZOn()
        C++: virtual void InterpolateZOn()
        
        Specify whether to take the z-coordinate values of the source
        points as attributes to be interpolated. This is in addition to
        any other point attribute data associated with the source. By
        default this is enabled.
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkPointInterpolator2D
        C++: vtkPointInterpolator2D *NewInstance()
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkPointInterpolator2D
        C++: static vtkPointInterpolator2D *SafeDownCast(vtkObjectBase *o)
        
        Standard methods for instantiating, obtaining type information,
        and printing.
        """
        ...
    
    def SetInterpolateZ(self, bool):
        """
        V.SetInterpolateZ(bool)
        C++: virtual void SetInterpolateZ(bool _arg)
        
        Specify whether to take the z-coordinate values of the source
        points as attributes to be interpolated. This is in addition to
        any other point attribute data associated with the source. By
        default this is enabled.
        """
        ...
    
    def SetZArrayName(self, string):
        """
        V.SetZArrayName(string)
        C++: virtual void SetZArrayName(vtkStdString _arg)
        
        Specify the name of the output array containing z values. This
        method is only applicable when InterpolateZ is enabled. By
        default the output array name is "Elevation".
        """
        ...
    
    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__ = ...


