# 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 .vtkDirectedAcyclicGraph import vtkDirectedAcyclicGraph

class vtkTree(vtkDirectedAcyclicGraph):
    """
    vtkTree - A rooted tree data structure.
    
    Superclass: vtkDirectedAcyclicGraph
    
    vtkTree is a connected directed graph with no cycles. A tree is a
    type of directed graph, so works with all graph algorithms.
    
    vtkTree is a read-only data structure. To construct a tree, create an
    instance of vtkMutableDirectedGraph. Add vertices and edges with
    AddVertex() and AddEdge(). You may alternately start by adding a
    single vertex as the root then call graph->AddChild(parent) which
    adds a new vertex and connects the parent to the child. The tree MUST
    have all edges in the proper direction, from parent to child. After
    building the tree, call tree->CheckedShallowCopy(graph) to copy the
    structure into a vtkTree. This method will return false if the graph
    is an invalid tree.
    
    vtkTree provides some convenience methods for obtaining the parent
    and children of a vertex, for finding the root, and determining if a
    vertex is a leaf (a vertex with no children).
    
    @sa
    vtkDirectedGraph vtkMutableDirectedGraph vtkGraph
    """
    def GetChild(self, v, i): # real signature unknown; restored from __doc__
        """
        GetChild(self, v:int, i:int) -> int
        C++: vtkIdType GetChild(vtkIdType v, vtkIdType i)
        
        Get the i-th child of a parent vertex.
        """
        return 0

    def GetChildren(self, v, it): # real signature unknown; restored from __doc__
        """
        GetChildren(self, v:int, it:vtkAdjacentVertexIterator) -> None
        C++: void GetChildren(vtkIdType v, vtkAdjacentVertexIterator *it)
        
        Get the child vertices of a vertex. This is a convenience method
        that functions exactly like GetAdjacentVertices.
        """
        pass

    def GetData(self, info): # real signature unknown; restored from __doc__
        """
        GetData(info:vtkInformation) -> vtkTree
        C++: static vtkTree *GetData(vtkInformation *info)
        GetData(v:vtkInformationVector, i:int=0) -> vtkTree
        C++: static vtkTree *GetData(vtkInformationVector *v, int i=0)
        
        Retrieve a graph from an information vector.
        """
        return vtkTree

    def GetDataObjectType(self): # real signature unknown; restored from __doc__
        """
        GetDataObjectType(self) -> int
        C++: int GetDataObjectType() override;
        
        Return what type of dataset this is.
        """
        return 0

    def GetLevel(self, v): # real signature unknown; restored from __doc__
        """
        GetLevel(self, v:int) -> int
        C++: vtkIdType GetLevel(vtkIdType v)
        
        Get the level of the vertex in the tree.  The root vertex has
        level 0. Returns -1 if the vertex id is < 0 or greater than the
        number of vertices in the tree.
        """
        return 0

    def GetNumberOfChildren(self, v): # real signature unknown; restored from __doc__
        """
        GetNumberOfChildren(self, v:int) -> int
        C++: vtkIdType GetNumberOfChildren(vtkIdType v)
        
        Get the number of children of a vertex.
        """
        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 GetParent(self, v): # real signature unknown; restored from __doc__
        """
        GetParent(self, v:int) -> int
        C++: vtkIdType GetParent(vtkIdType v)
        
        Get the parent of a vertex.
        """
        return 0

    def GetParentEdge(self, v): # real signature unknown; restored from __doc__
        """
        GetParentEdge(self, v:int) -> vtkEdgeType
        C++: vtkEdgeType GetParentEdge(vtkIdType v)
        
        Get the edge connecting the vertex to its parent.
        """
        return vtkEdgeType

    def GetRoot(self): # real signature unknown; restored from __doc__
        """
        GetRoot(self) -> int
        C++: virtual vtkIdType GetRoot()
        
        Get the root vertex of the tree.
        """
        return 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 IsLeaf(self, vertex): # real signature unknown; restored from __doc__
        """
        IsLeaf(self, vertex:int) -> bool
        C++: bool IsLeaf(vtkIdType vertex)
        
        Return whether the vertex is a leaf (i.e. it has no children).
        """
        return False

    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) -> vtkTree
        C++: vtkTree *NewInstance()
        """
        return vtkTree

    def ReorderChildren(self, parent, children): # real signature unknown; restored from __doc__
        """
        ReorderChildren(self, parent:int, children:vtkIdTypeArray) -> None
        C++: virtual void ReorderChildren(vtkIdType parent,
            vtkIdTypeArray *children)
        
        Reorder the children of a parent vertex. The children array must
        contain all the children of parent, just in a different order.
        This does not change the topology of the tree.
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkTree
        C++: static vtkTree *SafeDownCast(vtkObjectBase *o)
        """
        return vtkTree

    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__': 'vtkTree', 'IsTypeOf': <method 'IsTypeOf' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'IsA': <method 'IsA' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'SafeDownCast': <method 'SafeDownCast' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'NewInstance': <method 'NewInstance' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetNumberOfGenerationsFromBaseType': <method 'GetNumberOfGenerationsFromBaseType' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetNumberOfGenerationsFromBase': <method 'GetNumberOfGenerationsFromBase' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetDataObjectType': <method 'GetDataObjectType' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetRoot': <method 'GetRoot' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetNumberOfChildren': <method 'GetNumberOfChildren' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetChild': <method 'GetChild' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetChildren': <method 'GetChildren' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetParent': <method 'GetParent' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetParentEdge': <method 'GetParentEdge' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetLevel': <method 'GetLevel' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'IsLeaf': <method 'IsLeaf' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'GetData': <method 'GetData' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, 'ReorderChildren': <method 'ReorderChildren' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__new__': <built-in method __new__ of type object at 0x00007FF81D652610>, '__repr__': <slot wrapper '__repr__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__str__': <slot wrapper '__str__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__getattribute__': <slot wrapper '__getattribute__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__setattr__': <slot wrapper '__setattr__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__delattr__': <slot wrapper '__delattr__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__dict__': <attribute '__dict__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__this__': <attribute '__this__' of 'vtkmodules.vtkCommonDataModel.vtkTree' objects>, '__doc__': 'vtkTree - A rooted tree data structure.\\n\\nSuperclass: vtkDirectedAcyclicGraph\\n\\nvtkTree is a connected directed graph with no cycles. A tree is a\\ntype of directed graph, so works with all graph algorithms.\\n\\nvtkTree is a read-only data structure. To construct a tree, create an\\ninstance of vtkMutableDirectedGraph. Add vertices and edges with\\nAddVertex() and AddEdge(). You may alternately start by adding a\\nsingle vertex as the root then call graph->AddChild(parent) which\\nadds a new vertex and connects the parent to the child. The tree MUST\\nhave all edges in the proper direction, from parent to child. After\\nbuilding the tree, call tree->CheckedShallowCopy(graph) to copy the\\nstructure into a vtkTree. This method will return false if the graph\\nis an invalid tree.\\n\\nvtkTree provides some convenience methods for obtaining the parent\\nand children of a vertex, for finding the root, and determining if a\\nvertex is a leaf (a vertex with no children).\\n\\n@sa\\nvtkDirectedGraph vtkMutableDirectedGraph vtkGraph\\n\\n'})"
    __vtkname__ = 'vtkTree'


