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

import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore

class vtkGenericEdgeTable(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkGenericEdgeTable - keep track of edges (defined by pair of integer
    id's)
    
    Superclass: vtkObject
    
    vtkGenericEdgeTable is used to indicate the existence of and hold
    information about edges. Similar to vtkEdgeTable, this class is more
    sophisticated in that it uses reference counting to keep track of
    when information about an edge should be deleted.
    
    vtkGenericEdgeTable is a helper class used in the adaptor framework. 
    It is used during the tessellation process to hold information about
    the error metric on each edge. This avoids recomputing the error
    metric each time the same edge is visited.
    """
    def CheckEdge(self, p_int, p_int_1, p_int_2):
        """
        V.CheckEdge(int, int, int) -> int
        C++: int CheckEdge(vtkIdType e1, vtkIdType e2, vtkIdType &ptId)
        
        Method to determine whether an edge is in the table (0 or 1), or
        not (-1). It returns whether the edge was split (1) or not (0),
        and the point id exists.
        """
        ...
    
    def CheckEdgeReferenceCount(self, p_int, p_int_1):
        """
        V.CheckEdgeReferenceCount(int, int) -> int
        C++: int CheckEdgeReferenceCount(vtkIdType e1, vtkIdType e2)
        
        Return the edge reference count.
        """
        ...
    
    def CheckPoint(self, p_int):
        """
        V.CheckPoint(int) -> int
        C++: int CheckPoint(vtkIdType ptId)
        V.CheckPoint(int, [float, float, float], [float, ...]) -> int
        C++: int CheckPoint(vtkIdType ptId, double point[3],
            double *scalar)
        
        Check if a point is already in the point table.
        """
        ...
    
    def DumpTable(self):
        """
        V.DumpTable()
        C++: void DumpTable()
        
        For debugging purposes. It is particularly useful to dump the
        table and check that nothing is left after a complete iteration.
        LoadFactor should ideally be very low to be able to have a
        constant time access
        """
        ...
    
    def GetNumberOfComponents(self):
        """
        V.GetNumberOfComponents() -> int
        C++: int GetNumberOfComponents()
        
        Return the total number of components for the point-centered
        attributes.
        \post positive_result: result>0
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        Standard VTK type and print macros.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> int
        C++: static vtkIdType GetNumberOfGenerationsFromBaseType(
            const char *type)
        
        Standard VTK type and print macros.
        """
        ...
    
    def IncrementEdgeReferenceCount(self, p_int, p_int_1, p_int_2):
        """
        V.IncrementEdgeReferenceCount(int, int, int) -> int
        C++: int IncrementEdgeReferenceCount(vtkIdType e1, vtkIdType e2,
            vtkIdType cellId)
        
        Method that increments the referencecount and returns it.
        """
        ...
    
    def IncrementPointReferenceCount(self, p_int):
        """
        V.IncrementPointReferenceCount(int)
        C++: void IncrementPointReferenceCount(vtkIdType ptId)
        
        Increment the reference count for the indicated point.
        """
        ...
    
    def Initialize(self, p_int):
        """
        V.Initialize(int)
        C++: void Initialize(vtkIdType start)
        
        To specify the starting point id. It will initialize LastPointId
        This is very sensitive the start point should be cautiously
        chosen
        """
        ...
    
    def InsertEdge(self, p_int, p_int_1, p_int_2, p_int_3, p_int_4):
        """
        V.InsertEdge(int, int, int, int, int)
        C++: void InsertEdge(vtkIdType e1, vtkIdType e2, vtkIdType cellId,
             int ref, vtkIdType &ptId)
        V.InsertEdge(int, int, int, int)
        C++: void InsertEdge(vtkIdType e1, vtkIdType e2, vtkIdType cellId,
             int ref=1)
        
        Split the edge with the indicated point id.
        """
        ...
    
    def InsertPoint(self, p_int, p_float=..., p_float=..., p_float=...):
        """
        V.InsertPoint(int, [float, float, float])
        C++: void InsertPoint(vtkIdType ptId, double point[3])
        
        Insert point associated with an edge.
        """
        ...
    
    def InsertPointAndScalar(self, p_int, p_float=..., p_float=..., p_float=..., *args, **kwargs):
        """
        V.InsertPointAndScalar(int, [float, float, float], [float, ...])
        C++: void InsertPointAndScalar(vtkIdType ptId, double pt[3],
            double *s)
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> int
        C++: vtkTypeBool IsA(const char *type) override;
        
        Standard VTK type and print macros.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> int
        C++: static vtkTypeBool IsTypeOf(const char *type)
        
        Standard VTK type and print macros.
        """
        ...
    
    def LoadFactor(self):
        """
        V.LoadFactor()
        C++: void LoadFactor()
        
        For debugging purposes. It is particularly useful to dump the
        table and check that nothing is left after a complete iteration.
        LoadFactor should ideally be very low to be able to have a
        constant time access
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkGenericEdgeTable
        C++: vtkGenericEdgeTable *NewInstance()
        
        Standard VTK type and print macros.
        """
        ...
    
    def RemoveEdge(self, p_int, p_int_1):
        """
        V.RemoveEdge(int, int) -> int
        C++: int RemoveEdge(vtkIdType e1, vtkIdType e2)
        
        Method to remove an edge from the table. The method returns the
        current reference count.
        """
        ...
    
    def RemovePoint(self, p_int):
        """
        V.RemovePoint(int)
        C++: void RemovePoint(vtkIdType ptId)
        
        Remove a point from the point table.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkGenericEdgeTable
        C++: static vtkGenericEdgeTable *SafeDownCast(vtkObjectBase *o)
        
        Standard VTK type and print macros.
        """
        ...
    
    def SetNumberOfComponents(self, p_int):
        """
        V.SetNumberOfComponents(int)
        C++: void SetNumberOfComponents(int count)
        
        Set the total number of components for the point-centered
        attributes.
        \pre positive_count: count>0
        """
        ...
    
    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__ = ...


