# 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


from .vtkGenericCellTessellator import vtkGenericCellTessellator

class vtkSimpleCellTessellator(vtkGenericCellTessellator):
    """
    vtkSimpleCellTessellator - helper class to perform cell tessellation
    
    Superclass: vtkGenericCellTessellator
    
    vtkSimpleCellTessellator is a helper class to perform adaptive
    tessellation of particular cell topologies. The major purpose for
    this class is to transform higher-order cell types (e.g.,
    higher-order finite elements) into linear cells that can then be
    easily visualized by VTK. This class works in conjunction with the
    vtkGenericDataSet and vtkGenericAdaptorCell classes.
    
    This algorithm is based on edge subdivision. An error metric along
    each edge is evaluated, and if the error is greater than some
    tolerance, the edge is subdivided (as well as all connected 2D and 3D
    cells). The process repeats until the error metric is satisfied.
    Since the algorithm is based on edge subdivision it inherently avoid
    T-junctions.
    
    A significant issue addressed by this algorithm is to ensure face
    compatibility across neighboring cells. That is, diagonals due to
    face triangulation must match to ensure that the mesh is compatible.
    The algorithm employs a precomputed table to accelerate the
    tessellation process. The table was generated with the help of
    vtkOrderedTriangulator the basic idea is that the choice of diagonal
    is made only by considering the relative value of the point ids.
    
    @sa
    vtkGenericCellTessellator vtkGenericSubdivisionErrorMetric
    vtkAttributesErrorMetric vtkGeometricErrorMetric
    vtkViewDependentErrorMetric
    """
    def GetFixedSubdivisions(self): # real signature unknown; restored from __doc__
        """
        GetFixedSubdivisions(self) -> int
        C++: int GetFixedSubdivisions()
        
        Return the number of fixed subdivisions. It is used to prevent
        from infinite loop in degenerated cases. For order 3 or higher,
        if the inflection point is exactly on the mid-point, error metric
        will not detect that a subdivision is required. 0 means no fixed
        subdivision: there will be only adaptive subdivisions.
        
        * The algorithm first performs `GetFixedSubdivisions' non
          adaptive
        * subdivisions followed by at most `GetMaxAdaptiveSubdivisions'
          adaptive
        * subdivisions. Hence, there are at most `GetMaxSubdivisionLevel'
        * subdivisions.
        * \post positive_result: result>=0 &&
          result<=GetMaxSubdivisionLevel()
        """
        return 0

    def GetGenericCell(self): # real signature unknown; restored from __doc__
        """
        GetGenericCell(self) -> vtkGenericAdaptorCell
        C++: virtual vtkGenericAdaptorCell *GetGenericCell()
        
        Get the higher order cell in order to access the evaluation
        function.
        """
        return vtkGenericAdaptorCell

    def GetMaxAdaptiveSubdivisions(self): # real signature unknown; restored from __doc__
        """
        GetMaxAdaptiveSubdivisions(self) -> int
        C++: int GetMaxAdaptiveSubdivisions()
        
        Return the maximum number of adaptive subdivisions.
        \post valid_result:
            result==GetMaxSubdivisionLevel()-GetFixedSubdivisions()
        """
        return 0

    def GetMaxSubdivisionLevel(self): # real signature unknown; restored from __doc__
        """
        GetMaxSubdivisionLevel(self) -> int
        C++: int GetMaxSubdivisionLevel()
        
        Return the maximum level of subdivision. It is used to prevent
        from infinite loop in degenerated cases. For order 3 or higher,
        if the inflection point is exactly on the mid-point, error metric
        will not detect that a subdivision is required. 0 means no
        subdivision, neither fixed nor adaptive.
        \post positive_result: result>=GetFixedSubdivisions()
        """
        return 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 Initialize(self, ds): # real signature unknown; restored from __doc__
        """
        Initialize(self, ds:vtkGenericDataSet) -> None
        C++: void Initialize(vtkGenericDataSet *ds) override;
        
        Initialize the tessellator with a data set `ds'.
        """
        pass

    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) -> vtkSimpleCellTessellator
        C++: vtkSimpleCellTessellator *NewInstance()
        """
        return vtkSimpleCellTessellator

    def Reset(self): # real signature unknown; restored from __doc__
        """
        Reset(self) -> None
        C++: void Reset()
        
        Reset the output for repeated use of this class.
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkSimpleCellTessellator
        C++: static vtkSimpleCellTessellator *SafeDownCast(
            vtkObjectBase *o)
        """
        return vtkSimpleCellTessellator

    def SetFixedSubdivisions(self, level): # real signature unknown; restored from __doc__
        """
        SetFixedSubdivisions(self, level:int) -> None
        C++: void SetFixedSubdivisions(int level)
        
        Set the number of fixed subdivisions. See GetFixedSubdivisions()
        for more explanations.
        \pre positive_level: level>=0 && level<=GetMaxSubdivisionLevel()
        \post is_set: GetFixedSubdivisions()==level
        """
        pass

    def SetMaxSubdivisionLevel(self, level): # real signature unknown; restored from __doc__
        """
        SetMaxSubdivisionLevel(self, level:int) -> None
        C++: void SetMaxSubdivisionLevel(int level)
        
        Set the maximum level of subdivision. See
        GetMaxSubdivisionLevel() for more explanations.
        \pre positive_level: level>=GetFixedSubdivisions()
        \post is_set: level==GetMaxSubdivisionLevel()
        """
        pass

    def SetSubdivisionLevels(self, fixed, maxLevel): # real signature unknown; restored from __doc__
        """
        SetSubdivisionLevels(self, fixed:int, maxLevel:int) -> None
        C++: void SetSubdivisionLevels(int fixed, int maxLevel)
        
        Set both the number of fixed subdivisions and the maximum level
        of subdivisions. See GetFixedSubdivisions(),
        GetMaxSubdivisionLevel() and GetMaxAdaptiveSubdivisions() for
        more explanations.
        \pre positive_fixed: fixed>=0
        \pre valid_range: fixed<=maxLevel
        \post fixed_is_set: fixed==GetFixedSubdivisions()
        \post maxLevel_is_set: maxLevel==GetMaxSubdivisionLevel()
        """
        pass

    def Tessellate(self, cell, att, points, cellArray, internalPd): # real signature unknown; restored from __doc__
        """
        Tessellate(self, cell:vtkGenericAdaptorCell,
            att:vtkGenericAttributeCollection, points:vtkDoubleArray,
            cellArray:vtkCellArray, internalPd:vtkPointData) -> None
        C++: void Tessellate(vtkGenericAdaptorCell *cell,
            vtkGenericAttributeCollection *att, vtkDoubleArray *points,
            vtkCellArray *cellArray, vtkPointData *internalPd) override;
        
        Tessellate a 3D `cell'. The result is a set of smaller linear
        tetrahedra in `cellArray' with `points' and point data
        `internalPd'.
        \pre cell_exists: cell!=0
        \pre valid_dimension: cell->GetDimension()==3
        \pre att_exists: att!=0
        \pre points_exists: points!=0
        \pre cellArray_exists: cellArray!=0
        \pre internalPd_exists: internalPd!=0
        """
        pass

    def TessellateFace(self, cell, att, index, points, cellArray, internalPd): # real signature unknown; restored from __doc__
        """
        TessellateFace(self, cell:vtkGenericAdaptorCell,
            att:vtkGenericAttributeCollection, index:int,
            points:vtkDoubleArray, cellArray:vtkCellArray,
            internalPd:vtkPointData) -> None
        C++: void TessellateFace(vtkGenericAdaptorCell *cell,
            vtkGenericAttributeCollection *att, vtkIdType index,
            vtkDoubleArray *points, vtkCellArray *cellArray,
            vtkPointData *internalPd) override;
        
        Tessellate a face of a 3D `cell'. The face is specified by the
        index value. The result is a set of smaller linear triangles in
        `cellArray' with `points' and point data `internalPd'.
        \pre cell_exists: cell!=0
        \pre valid_dimension: cell->GetDimension()==3
        \pre valid_index_range: (index>=0) &&
            (index<cell->GetNumberOfBoundaries(2))
        \pre att_exists: att!=0
        \pre points_exists: points!=0
        \pre cellArray_exists: cellArray!=0
        \pre internalPd_exists: internalPd!=0
        """
        pass

    def Triangulate(self, cell, att, points, cellArray, internalPd): # real signature unknown; restored from __doc__
        """
        Triangulate(self, cell:vtkGenericAdaptorCell,
            att:vtkGenericAttributeCollection, points:vtkDoubleArray,
            cellArray:vtkCellArray, internalPd:vtkPointData) -> None
        C++: void Triangulate(vtkGenericAdaptorCell *cell,
            vtkGenericAttributeCollection *att, vtkDoubleArray *points,
            vtkCellArray *cellArray, vtkPointData *internalPd) override;
        
        Triangulate a 2D `cell'. The result is a set of smaller linear
        triangles in `cellArray' with `points' and point data
        `internalPd'.
        \pre cell_exists: cell!=0
        \pre valid_dimension: cell->GetDimension()==2
        \pre att_exists: att!=0
        \pre points_exists: points!=0
        \pre cellArray_exists: cellArray!=0
        \pre internalPd_exists: internalPd!=0
        """
        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__': 'vtkSimpleCellTessellator', 'IsTypeOf': <method 'IsTypeOf' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'IsA': <method 'IsA' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'SafeDownCast': <method 'SafeDownCast' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'NewInstance': <method 'NewInstance' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetNumberOfGenerationsFromBaseType': <method 'GetNumberOfGenerationsFromBaseType' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetNumberOfGenerationsFromBase': <method 'GetNumberOfGenerationsFromBase' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetGenericCell': <method 'GetGenericCell' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'TessellateFace': <method 'TessellateFace' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'Tessellate': <method 'Tessellate' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'Triangulate': <method 'Triangulate' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'Reset': <method 'Reset' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'Initialize': <method 'Initialize' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetFixedSubdivisions': <method 'GetFixedSubdivisions' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetMaxSubdivisionLevel': <method 'GetMaxSubdivisionLevel' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'GetMaxAdaptiveSubdivisions': <method 'GetMaxAdaptiveSubdivisions' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'SetFixedSubdivisions': <method 'SetFixedSubdivisions' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'SetMaxSubdivisionLevel': <method 'SetMaxSubdivisionLevel' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, 'SetSubdivisionLevels': <method 'SetSubdivisionLevels' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__new__': <built-in method __new__ of type object at 0x00007FF81D64C300>, '__repr__': <slot wrapper '__repr__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__str__': <slot wrapper '__str__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__setattr__': <slot wrapper '__setattr__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__delattr__': <slot wrapper '__delattr__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__dict__': <attribute '__dict__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__this__': <attribute '__this__' of 'vtkmodules.vtkCommonDataModel.vtkSimpleCellTessellator' objects>, '__doc__': 'vtkSimpleCellTessellator - helper class to perform cell tessellation\\n\\nSuperclass: vtkGenericCellTessellator\\n\\nvtkSimpleCellTessellator is a helper class to perform adaptive\\ntessellation of particular cell topologies. The major purpose for\\nthis class is to transform higher-order cell types (e.g.,\\nhigher-order finite elements) into linear cells that can then be\\neasily visualized by VTK. This class works in conjunction with the\\nvtkGenericDataSet and vtkGenericAdaptorCell classes.\\n\\nThis algorithm is based on edge subdivision. An error metric along\\neach edge is evaluated, and if the error is greater than some\\ntolerance, the edge is subdivided (as well as all connected 2D and 3D\\ncells). The process repeats until the error metric is satisfied.\\nSince the algorithm is based on edge subdivision it inherently avoid\\nT-junctions.\\n\\nA significant issue addressed by this algorithm is to ensure face\\ncompatibility across neighboring cells. That is, diagonals due to\\nface triangulation must match to ensure that the mesh is compatible.\\nThe algorithm employs a precomputed table to accelerate the\\ntessellation process. The table was generated with the help of\\nvtkOrderedTriangulator the basic idea is that the choice of diagonal\\nis made only by considering the relative value of the point ids.\\n\\n@sa\\nvtkGenericCellTessellator vtkGenericSubdivisionErrorMetric\\nvtkAttributesErrorMetric vtkGeometricErrorMetric\\nvtkViewDependentErrorMetric\\n\\n'})"
    __vtkname__ = 'vtkSimpleCellTessellator'


