# encoding: utf-8
# module vtkmodules.vtkCommonDataModel
# from C:\Users\xukai\Downloads\发票2\venv\Lib\site-packages\vtkmodules\vtkCommonDataModel.cp311-win_amd64.pyd
# by generator 1.147
# no doc

# imports
import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore
import vtkmodules.vtkCommonMath as __vtkmodules_vtkCommonMath
import vtkmodules.vtkCommonTransforms as __vtkmodules_vtkCommonTransforms


class vtkReebGraphSimplificationMetric(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkReebGraphSimplificationMetric - abstract class for custom Reeb
    graph simplification metric design.
    
    Superclass: vtkObject
    
    This class makes it possible to design customized simplification
    metric evaluation algorithms, enabling the user to control the
    definition of what should be considered as noise or signal in the
    topological filtering process.
    
    References: "Topological persistence and simplification", H.
    Edelsbrunner, D. Letscher, and A. Zomorodian, Discrete Computational
    Geometry, 28:511-533, 2002.
    
    "Extreme elevation on a 2-manifold", P.K. Agarwal, H. Edelsbrunner,
    J. Harer, and Y. Wang, ACM Symposium on Computational Geometry, pp.
    357-365, 2004.
    
    "Simplifying flexible isosurfaces using local geometric measures", H.
    Carr, J. Snoeyink, M van de Panne, IEEE Visualization, 497-504, 2004
    
    "Loop surgery for volumetric meshes: Reeb graphs reduced to contour
    trees", J. Tierny, A. Gyulassy, E. Simon, V. Pascucci, IEEE Trans. on
    Vis. and Comp. Graph. (Proc of IEEE VIS), 15:1177-1184, 2009.
    
    See Graphics/Testing/Cxx/TestReebGraph.cxx for an example of concrete
    implementation.
    """
    def ComputeMetric(self, mesh, field, startCriticalPoint, vertexList, endCriticalPoint): # real signature unknown; restored from __doc__
        """
        ComputeMetric(self, mesh:vtkDataSet, field:vtkDataArray,
            startCriticalPoint:int, vertexList:vtkAbstractArray,
            endCriticalPoint:int) -> float
        C++: virtual double ComputeMetric(vtkDataSet *mesh,
            vtkDataArray *field, vtkIdType startCriticalPoint,
            vtkAbstractArray *vertexList, vtkIdType endCriticalPoint)
        
        Function to implement in your simplification metric algorithm.
        Given the input mesh and the Ids of the vertices living on the
        Reeb graph arc to consider for removal, you should return a value
        between 0 and 1 (the smallest the more likely the arc will be
        removed, depending on the user-defined simplification threshold).
        """
        return 0.0

    def GetLowerBound(self): # real signature unknown; restored from __doc__
        """
        GetLowerBound(self) -> float
        C++: virtual double GetLowerBound()
        """
        return 0.0

    def GetNumberOfGenerationsFromBase(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBase(self, type:str) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Given 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.
        """
        return 0

    def GetNumberOfGenerationsFromBaseType(self, type): # real signature unknown; restored from __doc__
        """
        GetNumberOfGenerationsFromBaseType(type:str) -> 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.
        """
        return 0

    def GetUpperBound(self): # real signature unknown; restored from __doc__
        """
        GetUpperBound(self) -> float
        C++: virtual double GetUpperBound()
        """
        return 0.0

    def IsA(self, type): # real signature unknown; restored from __doc__
        """
        IsA(self, type:str) -> 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.
        """
        return 0

    def IsTypeOf(self, type): # real signature unknown; restored from __doc__
        """
        IsTypeOf(type:str) -> 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.
        """
        return 0

    def NewInstance(self): # real signature unknown; restored from __doc__
        """
        NewInstance(self) -> vtkReebGraphSimplificationMetric
        C++: vtkReebGraphSimplificationMetric *NewInstance()
        """
        return vtkReebGraphSimplificationMetric

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkReebGraphSimplificationMetric
        C++: static vtkReebGraphSimplificationMetric *SafeDownCast(
            vtkObjectBase *o)
        """
        return vtkReebGraphSimplificationMetric

    def SetLowerBound(self, _arg): # real signature unknown; restored from __doc__
        """
        SetLowerBound(self, _arg:float) -> None
        C++: virtual void SetLowerBound(double _arg)
        
        Set the lowest possible value for the custom metric space. This
        value can be set prior to launching the Reeb graph simplification
        and then used inside the ComputeMetric call to make sure the
        returned value of ComputeMetric call is indeed between 0 and 1.
        """
        pass

    def SetUpperBound(self, _arg): # real signature unknown; restored from __doc__
        """
        SetUpperBound(self, _arg:float) -> None
        C++: virtual void SetUpperBound(double _arg)
        
        Set the highest possible value for the custom metric space. This
        value can be set prior to launching the Reeb graph simplification
        and then used inside the ComputeMetric call to make sure the
        returned value of ComputeMetric call is indeed between 0 and 1.
        """
        pass

    def __delattr__(self, *args, **kwargs): # real signature unknown
        """ Implement delattr(self, name). """
        pass

    def __getattribute__(self, *args, **kwargs): # real signature unknown
        """ Return getattr(self, name). """
        pass

    def __init__(self, *args, **kwargs): # real signature unknown
        pass

    @staticmethod # known case of __new__
    def __new__(*args, **kwargs): # real signature unknown
        """ Create and return a new object.  See help(type) for accurate signature. """
        pass

    def __repr__(self, *args, **kwargs): # real signature unknown
        """ Return repr(self). """
        pass

    def __setattr__(self, *args, **kwargs): # real signature unknown
        """ Implement setattr(self, name, value). """
        pass

    def __str__(self, *args, **kwargs): # real signature unknown
        """ Return str(self). """
        pass

    __this__ = property(lambda self: object(), lambda self, v: None, lambda self: None)  # default
    """Pointer to the C++ object."""


    __dict__ = None # (!) real value is 'mappingproxy({\'__vtkname__\': \'vtkReebGraphSimplificationMetric\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'SetLowerBound\': <method \'SetLowerBound\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'GetLowerBound\': <method \'GetLowerBound\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'SetUpperBound\': <method \'SetUpperBound\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'GetUpperBound\': <method \'GetUpperBound\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'ComputeMetric\': <method \'ComputeMetric\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D64ACF0>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkReebGraphSimplificationMetric\' objects>, \'__doc__\': \'vtkReebGraphSimplificationMetric - abstract class for custom Reeb\\ngraph simplification metric design.\\n\\nSuperclass: vtkObject\\n\\nThis class makes it possible to design customized simplification\\nmetric evaluation algorithms, enabling the user to control the\\ndefinition of what should be considered as noise or signal in the\\ntopological filtering process.\\n\\nReferences: "Topological persistence and simplification", H.\\nEdelsbrunner, D. Letscher, and A. Zomorodian, Discrete Computational\\nGeometry, 28:511-533, 2002.\\n\\n"Extreme elevation on a 2-manifold", P.K. Agarwal, H. Edelsbrunner,\\nJ. Harer, and Y. Wang, ACM Symposium on Computational Geometry, pp.\\n357-365, 2004.\\n\\n"Simplifying flexible isosurfaces using local geometric measures", H.\\nCarr, J. Snoeyink, M van de Panne, IEEE Visualization, 497-504, 2004\\n\\n"Loop surgery for volumetric meshes: Reeb graphs reduced to contour\\ntrees", J. Tierny, A. Gyulassy, E. Simon, V. Pascucci, IEEE Trans. on\\nVis. and Comp. Graph. (Proc of IEEE VIS), 15:1177-1184, 2009.\\n\\nSee Graphics/Testing/Cxx/TestReebGraph.cxx for an example of concrete\\nimplementation.\\n\\n\'})'
    __vtkname__ = 'vtkReebGraphSimplificationMetric'


