# 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 vtkOrderedTriangulator(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkOrderedTriangulator - helper class to generate triangulations
    
    Superclass: vtkObject
    
    This class is used to generate unique triangulations of points. The
    uniqueness of the triangulation is controlled by the id of the
    inserted points in combination with a Delaunay criterion. The class
    is designed to be as fast as possible (since the algorithm can be
    slow) and uses block memory allocations to support rapid
    triangulation generation. Also, the assumption behind the class is
    that a maximum of hundreds of points are to be triangulated. If you
    desire more robust triangulation methods use
    vtkPolygon::Triangulate(), vtkDelaunay2D, or vtkDelaunay3D.
    
    @par Background: This work is documented in the technical paper: W.J.
    Schroeder, B. Geveci, M. Malaterre. Compatible Triangulations of
    Spatial Decompositions. In Proceedings of Visualization 2004, IEEE
    Press October 2004.
    
    @par Background: Delaunay triangulations are unique assuming a random
    distribution of input points. The 3D Delaunay criterion is as
    follows: the circumsphere of each tetrahedron contains no other
    points of the triangulation except for the four points defining the
    tetrahedron.  In application this property is hard to satisfy because
    objects like cubes are defined by eight points all sharing the same
    circumsphere (center and radius); hence the Delaunay triangulation is
    not unique.  These so-called degenerate situations are typically
    resolved by arbitrary selecting a triangulation. This code does
    something different: it resolves degenerate triangulations by
    modifying the "InCircumsphere" method to use a slightly smaller
    radius. Hence, degenerate points are always considered "out" of the
    circumsphere. This, in combination with an ordering (based on id) of
    the input points, guarantees a unique triangulation.
    
    @par Background: There is another related characteristic of Delaunay
    triangulations. Given a N-dimensional Delaunay triangulation, points
    laying on a (N-1) dimensional plane also form a (N-1) Delaunay
    triangulation. This means for example, that if a 3D cell is defined
    by a set of (2D) planar faces, then the face triangulations are
    Delaunay. Combining this with the method to generate unique
    triangulations described previously, the triangulations on the face
    are guaranteed unique. This fact can be used to triangulate 3D
    objects in such a way to guarantee compatible face triangulations.
    This is a very useful fact for parallel processing, or performing
    operations like clipping that require compatible triangulations
    across 3D cell faces. (See vtkClipVolume for an example.)
    
    @par Background: A special feature of this class is that it can
    generate triangulation templates on the fly. If template
    triangulation is enabled, then the ordered triangulator will first
    triangulate the cell using the slower ordered Delaunay approach, and
    then store the result as a template. Later, if the same cell type and
    cell configuration is encountered, then the template is reused which
    greatly speeds the triangulation.
    
    @warning
    Duplicate vertices will be ignored, i.e., if two points have the same
    coordinates the second one is discarded. The implications are that
    the user of this class must prevent duplicate points. Because the
    precision of this algorithm is double, it's also a good idea to merge
    points that are within some epsilon of one another.
    
    @warning
    The triangulation is performed using the parametric coordinates of
    the inserted points. Therefore the bounds (see InitTriangulation())
    should represent the range of the parametric coordinates of the
    inserted points.
    
    @sa
    vtkDelaunay2D vtkDelaunay3D vtkPolygon
    """
    def AddTetras(self, classification, ugrid): # real signature unknown; restored from __doc__
        """
        AddTetras(self, classification:int, ugrid:vtkUnstructuredGrid)
            -> int
        C++: vtkIdType AddTetras(int classification,
            vtkUnstructuredGrid *ugrid)
        AddTetras(self, classification:int, connectivity:vtkCellArray)
            -> int
        C++: vtkIdType AddTetras(int classification,
            vtkCellArray *connectivity)
        AddTetras(self, classification:int,
            locator:vtkIncrementalPointLocator,
            outConnectivity:vtkCellArray, inPD:vtkPointData,
            outPD:vtkPointData, inCD:vtkCellData, cellId:int,
            outCD:vtkCellData) -> int
        C++: vtkIdType AddTetras(int classification,
            vtkIncrementalPointLocator *locator,
            vtkCellArray *outConnectivity, vtkPointData *inPD,
            vtkPointData *outPD, vtkCellData *inCD, vtkIdType cellId,
            vtkCellData *outCD)
        AddTetras(self, classification:int, ptIds:vtkIdList,
            pts:vtkPoints) -> int
        C++: vtkIdType AddTetras(int classification, vtkIdList *ptIds,
            vtkPoints *pts)
        
        Add the tetras to the unstructured grid provided. The
        unstructured grid is assumed to have been initialized (with
        Allocate()) and points set (with SetPoints()). The tetrahdera
        added are of the type specified (0=inside,1=outside,2=all).
        Inside tetrahedron are those whose points are classified "inside"
        or on the "boundary." Outside tetrahedron have at least one point
        classified "outside." The method returns the number of
        tetrahedrahedron of the type requested.
        """
        return 0

    def AddTriangles(self, connectivity): # real signature unknown; restored from __doc__
        """
        AddTriangles(self, connectivity:vtkCellArray) -> int
        C++: vtkIdType AddTriangles(vtkCellArray *connectivity)
        AddTriangles(self, id:int, connectivity:vtkCellArray) -> int
        C++: vtkIdType AddTriangles(vtkIdType id,
            vtkCellArray *connectivity)
        
        Add the triangle faces classified (2=boundary) to the
        connectivity list provided. The method returns the number of
        triangles.
        """
        return 0

    def GetNextTetra(self, classification, tet, cellScalars, tetScalars): # real signature unknown; restored from __doc__
        """
        GetNextTetra(self, classification:int, tet:vtkTetra,
            cellScalars:vtkDataArray, tetScalars:vtkDoubleArray) -> int
        C++: int GetNextTetra(int classification, vtkTetra *tet,
            vtkDataArray *cellScalars, vtkDoubleArray *tetScalars)
        
        Methods to get one tetra at a time. Start with
        InitTetraTraversal() and then invoke GetNextTetra() until the
        method returns 0. cellScalars are point-centered scalars on the
        original cell. tetScalars are point-centered scalars on the
        tetra: the values will be copied from cellScalars.
        \pre tet_exists: tet!=0
        \pre cellScalars_exists: cellScalars!=0
        \pre tetScalars_exists: tetScalars!=0
        \pre tetScalars_valid_size: tetScalars->GetNumberOfTuples()==4
        """
        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 GetNumberOfPoints(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfPoints(self) -> int
        C++: virtual int GetNumberOfPoints()
        
        Return the number of inserted points.
        """
        return 0

    def GetPointId(self, internalId): # real signature unknown; restored from __doc__
        """
        GetPointId(self, internalId:int) -> int
        C++: vtkIdType GetPointId(vtkIdType internalId)
        
        Return the Id of point `internalId'. This id is the one passed in
        argument of InsertPoint. It assumes that the point has already
        been inserted. The method should be invoked prior to the
        Triangulate method.
        \pre valid_range: internalId>=0 &&
            internalId<this->GetNumberOfPoints()
        """
        return 0

    def GetPointLocation(self, internalId): # real signature unknown; restored from __doc__
        """
        GetPointLocation(self, internalId:int) -> Pointer
        C++: double *GetPointLocation(vtkIdType internalId)
        
        Return the global coordinates of point `internalId'. It assumes
        that the point has already been inserted. The method should be
        invoked prior to the Triangulate method.
        \pre valid_range: internalId>=0 &&
            internalId<this->GetNumberOfPoints()
        """
        pass

    def GetPointPosition(self, internalId): # real signature unknown; restored from __doc__
        """
        GetPointPosition(self, internalId:int) -> Pointer
        C++: double *GetPointPosition(vtkIdType internalId)
        
        Return the parametric coordinates of point `internalId'. It
        assumes that the point has already been inserted. The method
        should be invoked prior to the Triangulate method.
        \pre valid_range: internalId>=0 &&
            internalId<this->GetNumberOfPoints()
        """
        pass

    def GetPreSorted(self): # real signature unknown; restored from __doc__
        """
        GetPreSorted(self) -> int
        C++: virtual vtkTypeBool GetPreSorted()
        """
        return 0

    def GetTetras(self, classification, ugrid): # real signature unknown; restored from __doc__
        """
        GetTetras(self, classification:int, ugrid:vtkUnstructuredGrid)
            -> int
        C++: vtkIdType GetTetras(int classification,
            vtkUnstructuredGrid *ugrid)
        
        Initialize and add the tetras and points from the triangulation
        to the unstructured grid provided.  New points are created and
        the mesh is allocated. (This method differs from AddTetras() in
        that it inserts points and cells; AddTetras only adds the tetra
        cells.) The tetrahdera added are of the type specified
        (0=inside,1=outside,2=all). Inside tetrahedron are those whose
        points are classified "inside" or on the "boundary."  Outside
        tetrahedron have at least one point classified "outside."  The
        method returns the number of tetrahedrahedron of the type
        requested.
        """
        return 0

    def GetUseTemplates(self): # real signature unknown; restored from __doc__
        """
        GetUseTemplates(self) -> int
        C++: virtual vtkTypeBool GetUseTemplates()
        """
        return 0

    def GetUseTwoSortIds(self): # real signature unknown; restored from __doc__
        """
        GetUseTwoSortIds(self) -> int
        C++: virtual vtkTypeBool GetUseTwoSortIds()
        """
        return 0

    def InitTetraTraversal(self): # real signature unknown; restored from __doc__
        """
        InitTetraTraversal(self) -> None
        C++: void InitTetraTraversal()
        
        Methods to get one tetra at a time. Start with
        InitTetraTraversal() and then invoke GetNextTetra() until the
        method returns 0.
        """
        pass

    def InitTriangulation(self, xmin, xmax, ymin, ymax, zmin, zmax, numPts): # real signature unknown; restored from __doc__
        """
        InitTriangulation(self, xmin:float, xmax:float, ymin:float,
            ymax:float, zmin:float, zmax:float, numPts:int) -> None
        C++: void InitTriangulation(double xmin, double xmax, double ymin,
             double ymax, double zmin, double zmax, int numPts)
        InitTriangulation(self, bounds:[float, float, float, float, float,
             float], numPts:int) -> None
        C++: void InitTriangulation(double bounds[6], int numPts)
        
        Initialize the triangulation process. Provide a bounding box and
        the maximum number of points to be inserted. Note that since the
        triangulation is performed using parametric coordinates (see
        InsertPoint()) the bounds should be represent the range of the
        parametric coordinates inserted.
        \post no_point_inserted: GetNumberOfPoints()==0
        """
        pass

    def InsertPoint(self, id, x, *args, **kwargs): # real signature unknown; NOTE: unreliably restored from __doc__ 
        """
        InsertPoint(self, id:int, x:[float, float, float], p:[float,
            float, float], type:int) -> int
        C++: vtkIdType InsertPoint(vtkIdType id, double x[3], double p[3],
             int type)
        InsertPoint(self, id:int, sortid:int, x:[float, float, float],
            p:[float, float, float], type:int) -> int
        C++: vtkIdType InsertPoint(vtkIdType id, vtkIdType sortid,
            double x[3], double p[3], int type)
        InsertPoint(self, id:int, sortid:int, sortid2:int, x:[float,
            float, float], p:[float, float, float], type:int) -> int
        C++: vtkIdType InsertPoint(vtkIdType id, vtkIdType sortid,
            vtkIdType sortid2, double x[3], double p[3], int type)
        
        For each point to be inserted, provide an id, a position x,
        parametric coordinate p, and whether the point is inside
        (type=0), outside (type=1), or on the boundary (type=2). You must
        call InitTriangulation() prior to invoking this method. Make sure
        that the number of points inserted does not exceed the numPts
        specified in InitTriangulation(). Also note that the "id" can be
        any integer and can be greater than numPts. It is used to create
        tetras (in AddTetras()) with the appropriate connectivity ids.
        The method returns an internal id that can be used prior to the
        Triangulate() method to update the type of the point with
        UpdatePointType(). (Note: the algorithm triangulated with the
        parametric coordinate p[3] and creates tetras with the global
        coordinate x[3]. The parametric coordinates and global
        coordinates may be the same.)
        """
        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) -> vtkOrderedTriangulator
        C++: vtkOrderedTriangulator *NewInstance()
        """
        return vtkOrderedTriangulator

    def PreSortedOff(self): # real signature unknown; restored from __doc__
        """
        PreSortedOff(self) -> None
        C++: virtual void PreSortedOff()
        """
        pass

    def PreSortedOn(self): # real signature unknown; restored from __doc__
        """
        PreSortedOn(self) -> None
        C++: virtual void PreSortedOn()
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkOrderedTriangulator
        C++: static vtkOrderedTriangulator *SafeDownCast(vtkObjectBase *o)
        """
        return vtkOrderedTriangulator

    def SetPreSorted(self, _arg): # real signature unknown; restored from __doc__
        """
        SetPreSorted(self, _arg:int) -> None
        C++: virtual void SetPreSorted(vtkTypeBool _arg)
        
        Boolean indicates whether the points have been pre-sorted. If
        pre-sorted is enabled, the points are not sorted on point id. By
        default, presorted is off. (The point id is defined in
        InsertPoint().)
        """
        pass

    def SetUseTemplates(self, _arg): # real signature unknown; restored from __doc__
        """
        SetUseTemplates(self, _arg:int) -> None
        C++: virtual void SetUseTemplates(vtkTypeBool _arg)
        
        If this flag is set, then the ordered triangulator will create
        and use templates for the triangulation. To use templates, the
        TemplateTriangulate() method should be called when appropriate.
        (Note: the TemplateTriangulate() method works for complete
        (interior) cells without extra points due to intersection, etc.)
        """
        pass

    def SetUseTwoSortIds(self, _arg): # real signature unknown; restored from __doc__
        """
        SetUseTwoSortIds(self, _arg:int) -> None
        C++: virtual void SetUseTwoSortIds(vtkTypeBool _arg)
        
        Tells the triangulator that a second sort id is provided for each
        point and should also be considered when sorting.
        """
        pass

    def TemplateTriangulate(self, cellType, numPts, numEdges): # real signature unknown; restored from __doc__
        """
        TemplateTriangulate(self, cellType:int, numPts:int, numEdges:int)
            -> None
        C++: void TemplateTriangulate(int cellType, int numPts,
            int numEdges)
        """
        pass

    def Triangulate(self): # real signature unknown; restored from __doc__
        """
        Triangulate(self) -> None
        C++: void Triangulate()
        
        Perform the triangulation. (Complete all calls to InsertPoint()
        prior to invoking this method.) A special version is available
        when templates should be used.
        """
        pass

    def UpdatePointType(self, internalId, type): # real signature unknown; restored from __doc__
        """
        UpdatePointType(self, internalId:int, type:int) -> None
        C++: void UpdatePointType(vtkIdType internalId, int type)
        
        Update the point type. This is useful when the merging of nearly
        coincident points is performed. The id is the internal id
        returned from InsertPoint(). The method should be invoked prior
        to the Triangulate method. The type is specified as inside
        (type=0), outside (type=1), or on the boundary (type=2).
        \pre valid_range: internalId>=0 &&
            internalId<this->GetNumberOfPoints()
        """
        pass

    def UseTemplatesOff(self): # real signature unknown; restored from __doc__
        """
        UseTemplatesOff(self) -> None
        C++: virtual void UseTemplatesOff()
        """
        pass

    def UseTemplatesOn(self): # real signature unknown; restored from __doc__
        """
        UseTemplatesOn(self) -> None
        C++: virtual void UseTemplatesOn()
        """
        pass

    def UseTwoSortIdsOff(self): # real signature unknown; restored from __doc__
        """
        UseTwoSortIdsOff(self) -> None
        C++: virtual void UseTwoSortIdsOff()
        """
        pass

    def UseTwoSortIdsOn(self): # real signature unknown; restored from __doc__
        """
        UseTwoSortIdsOn(self) -> None
        C++: virtual void UseTwoSortIdsOn()
        """
        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__\': \'vtkOrderedTriangulator\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'InitTriangulation\': <method \'InitTriangulation\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'InsertPoint\': <method \'InsertPoint\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'Triangulate\': <method \'Triangulate\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'TemplateTriangulate\': <method \'TemplateTriangulate\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'UpdatePointType\': <method \'UpdatePointType\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetPointPosition\': <method \'GetPointPosition\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetPointLocation\': <method \'GetPointLocation\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetPointId\': <method \'GetPointId\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetNumberOfPoints\': <method \'GetNumberOfPoints\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'SetUseTemplates\': <method \'SetUseTemplates\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetUseTemplates\': <method \'GetUseTemplates\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'UseTemplatesOn\': <method \'UseTemplatesOn\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'UseTemplatesOff\': <method \'UseTemplatesOff\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'SetPreSorted\': <method \'SetPreSorted\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetPreSorted\': <method \'GetPreSorted\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'PreSortedOn\': <method \'PreSortedOn\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'PreSortedOff\': <method \'PreSortedOff\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'SetUseTwoSortIds\': <method \'SetUseTwoSortIds\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetUseTwoSortIds\': <method \'GetUseTwoSortIds\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'UseTwoSortIdsOn\': <method \'UseTwoSortIdsOn\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'UseTwoSortIdsOff\': <method \'UseTwoSortIdsOff\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetTetras\': <method \'GetTetras\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'AddTetras\': <method \'AddTetras\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'AddTriangles\': <method \'AddTriangles\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'InitTetraTraversal\': <method \'InitTetraTraversal\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'GetNextTetra\': <method \'GetNextTetra\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D63CC80>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkOrderedTriangulator\' objects>, \'__doc__\': \'vtkOrderedTriangulator - helper class to generate triangulations\\n\\nSuperclass: vtkObject\\n\\nThis class is used to generate unique triangulations of points. The\\nuniqueness of the triangulation is controlled by the id of the\\ninserted points in combination with a Delaunay criterion. The class\\nis designed to be as fast as possible (since the algorithm can be\\nslow) and uses block memory allocations to support rapid\\ntriangulation generation. Also, the assumption behind the class is\\nthat a maximum of hundreds of points are to be triangulated. If you\\ndesire more robust triangulation methods use\\nvtkPolygon::Triangulate(), vtkDelaunay2D, or vtkDelaunay3D.\\n\\n@par Background: This work is documented in the technical paper: W.J.\\nSchroeder, B. Geveci, M. Malaterre. Compatible Triangulations of\\nSpatial Decompositions. In Proceedings of Visualization 2004, IEEE\\nPress October 2004.\\n\\n@par Background: Delaunay triangulations are unique assuming a random\\ndistribution of input points. The 3D Delaunay criterion is as\\nfollows: the circumsphere of each tetrahedron contains no other\\npoints of the triangulation except for the four points defining the\\ntetrahedron.  In application this property is hard to satisfy because\\nobjects like cubes are defined by eight points all sharing the same\\ncircumsphere (center and radius); hence the Delaunay triangulation is\\nnot unique.  These so-called degenerate situations are typically\\nresolved by arbitrary selecting a triangulation. This code does\\nsomething different: it resolves degenerate triangulations by\\nmodifying the "InCircumsphere" method to use a slightly smaller\\nradius. Hence, degenerate points are always considered "out" of the\\ncircumsphere. This, in combination with an ordering (based on id) of\\nthe input points, guarantees a unique triangulation.\\n\\n@par Background: There is another related characteristic of Delaunay\\ntriangulations. Given a N-dimensional Delaunay triangulation, points\\nlaying on a (N-1) dimensional plane also form a (N-1) Delaunay\\ntriangulation. This means for example, that if a 3D cell is defined\\nby a set of (2D) planar faces, then the face triangulations are\\nDelaunay. Combining this with the method to generate unique\\ntriangulations described previously, the triangulations on the face\\nare guaranteed unique. This fact can be used to triangulate 3D\\nobjects in such a way to guarantee compatible face triangulations.\\nThis is a very useful fact for parallel processing, or performing\\noperations like clipping that require compatible triangulations\\nacross 3D cell faces. (See vtkClipVolume for an example.)\\n\\n@par Background: A special feature of this class is that it can\\ngenerate triangulation templates on the fly. If template\\ntriangulation is enabled, then the ordered triangulator will first\\ntriangulate the cell using the slower ordered Delaunay approach, and\\nthen store the result as a template. Later, if the same cell type and\\ncell configuration is encountered, then the template is reused which\\ngreatly speeds the triangulation.\\n\\n@warning\\nDuplicate vertices will be ignored, i.e., if two points have the same\\ncoordinates the second one is discarded. The implications are that\\nthe user of this class must prevent duplicate points. Because the\\nprecision of this algorithm is double, it\\\'s also a good idea to merge\\npoints that are within some epsilon of one another.\\n\\n@warning\\nThe triangulation is performed using the parametric coordinates of\\nthe inserted points. Therefore the bounds (see InitTriangulation())\\nshould represent the range of the parametric coordinates of the\\ninserted points.\\n\\n@sa\\nvtkDelaunay2D vtkDelaunay3D vtkPolygon\\n\\n\'})'
    __vtkname__ = 'vtkOrderedTriangulator'


