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

import vtkmodules.vtkCommonExecutionModel as __vtkmodules_vtkCommonExecutionModel

class vtkDistancePolyDataFilter(__vtkmodules_vtkCommonExecutionModel.vtkPolyDataAlgorithm):
    """
    vtkDistancePolyDataFilter - Computes the signed distance from one
    vtkPolyData to another.
    
    Superclass: vtkPolyDataAlgorithm
    
    The signed distance to the second input is computed at every point in
    the first input using vtkImplicitPolyDataDistance. Optionally, the
    signed distance to the first input at every point in the second input
    can be computed. This may be enabled by calling
    ComputeSecondDistanceOn().
    
    If the signed distance is not desired, the unsigned distance can be
    computed by calling SignedDistanceOff(). The signed distance field
    may be negated by calling NegateDistanceOn();
    
    This code was contributed in the VTK Journal paper: "Boolean Operations on Surfaces in VTK Without External
    Libraries" by Cory Quammen, Chris Weigle C., Russ Taylor
    http://hdl.handle.net/10380/3262
    http://www.midasjournal.org/browse/publication/797
    """
    def ComputeCellCenterDistanceOff(self):
        """
        V.ComputeCellCenterDistanceOff()
        C++: virtual void ComputeCellCenterDistanceOff()
        
        Enable/disable computation of cell-center distance to the second
        poly data. Defaults to on for backwards compatibility.
        
        If the first poly data consists of just vertex cells, computing
        point and cell-center distances is redundant.
        """
        ...
    
    def ComputeCellCenterDistanceOn(self):
        """
        V.ComputeCellCenterDistanceOn()
        C++: virtual void ComputeCellCenterDistanceOn()
        
        Enable/disable computation of cell-center distance to the second
        poly data. Defaults to on for backwards compatibility.
        
        If the first poly data consists of just vertex cells, computing
        point and cell-center distances is redundant.
        """
        ...
    
    def ComputeSecondDistanceOff(self):
        """
        V.ComputeSecondDistanceOff()
        C++: virtual void ComputeSecondDistanceOff()
        
        Enable/disable computation of a second output poly data with the
        distance from the first poly data at each point. Defaults to on.
        """
        ...
    
    def ComputeSecondDistanceOn(self):
        """
        V.ComputeSecondDistanceOn()
        C++: virtual void ComputeSecondDistanceOn()
        
        Enable/disable computation of a second output poly data with the
        distance from the first poly data at each point. Defaults to on.
        """
        ...
    
    def GetComputeCellCenterDistance(self):
        """
        V.GetComputeCellCenterDistance() -> int
        C++: virtual vtkTypeBool GetComputeCellCenterDistance()
        
        Enable/disable computation of cell-center distance to the second
        poly data. Defaults to on for backwards compatibility.
        
        If the first poly data consists of just vertex cells, computing
        point and cell-center distances is redundant.
        """
        ...
    
    def GetComputeSecondDistance(self):
        """
        V.GetComputeSecondDistance() -> int
        C++: virtual vtkTypeBool GetComputeSecondDistance()
        
        Enable/disable computation of a second output poly data with the
        distance from the first poly data at each point. Defaults to on.
        """
        ...
    
    def GetNegateDistance(self):
        """
        V.GetNegateDistance() -> int
        C++: virtual vtkTypeBool GetNegateDistance()
        
        Enable/disable negation of the distance values. Defaults to off.
        Has no effect if SignedDistance is off.
        """
        ...
    
    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 GetSecondDistanceOutput(self):
        """
        V.GetSecondDistanceOutput() -> vtkPolyData
        C++: vtkPolyData *GetSecondDistanceOutput()
        
        Get the second output, which is a copy of the second input with
        an additional distance scalar field. Note this will return a
        valid data object only after this->Update() is called.
        """
        ...
    
    def GetSignedDistance(self):
        """
        V.GetSignedDistance() -> int
        C++: virtual vtkTypeBool GetSignedDistance()
        
        Enable/disable computation of the signed distance between the
        first poly data and the second poly data. Defaults to on.
        """
        ...
    
    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 NegateDistanceOff(self):
        """
        V.NegateDistanceOff()
        C++: virtual void NegateDistanceOff()
        
        Enable/disable negation of the distance values. Defaults to off.
        Has no effect if SignedDistance is off.
        """
        ...
    
    def NegateDistanceOn(self):
        """
        V.NegateDistanceOn()
        C++: virtual void NegateDistanceOn()
        
        Enable/disable negation of the distance values. Defaults to off.
        Has no effect if SignedDistance is off.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkDistancePolyDataFilter
        C++: vtkDistancePolyDataFilter *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkDistancePolyDataFilter
        C++: static vtkDistancePolyDataFilter *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def SetComputeCellCenterDistance(self, p_int):
        """
        V.SetComputeCellCenterDistance(int)
        C++: virtual void SetComputeCellCenterDistance(vtkTypeBool _arg)
        
        Enable/disable computation of cell-center distance to the second
        poly data. Defaults to on for backwards compatibility.
        
        If the first poly data consists of just vertex cells, computing
        point and cell-center distances is redundant.
        """
        ...
    
    def SetComputeSecondDistance(self, p_int):
        """
        V.SetComputeSecondDistance(int)
        C++: virtual void SetComputeSecondDistance(vtkTypeBool _arg)
        
        Enable/disable computation of a second output poly data with the
        distance from the first poly data at each point. Defaults to on.
        """
        ...
    
    def SetNegateDistance(self, p_int):
        """
        V.SetNegateDistance(int)
        C++: virtual void SetNegateDistance(vtkTypeBool _arg)
        
        Enable/disable negation of the distance values. Defaults to off.
        Has no effect if SignedDistance is off.
        """
        ...
    
    def SetSignedDistance(self, p_int):
        """
        V.SetSignedDistance(int)
        C++: virtual void SetSignedDistance(vtkTypeBool _arg)
        
        Enable/disable computation of the signed distance between the
        first poly data and the second poly data. Defaults to on.
        """
        ...
    
    def SignedDistanceOff(self):
        """
        V.SignedDistanceOff()
        C++: virtual void SignedDistanceOff()
        
        Enable/disable computation of the signed distance between the
        first poly data and the second poly data. Defaults to on.
        """
        ...
    
    def SignedDistanceOn(self):
        """
        V.SignedDistanceOn()
        C++: virtual void SignedDistanceOn()
        
        Enable/disable computation of the signed distance between the
        first poly data and the second poly data. Defaults to on.
        """
        ...
    
    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__ = ...


