# 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 .vtkDataObject import vtkDataObject

class vtkSelection(vtkDataObject):
    """
    vtkSelection - data object that represents a "selection" in VTK.
    
    Superclass: vtkDataObject
    
    vtkSelection defines a selection. A selection is a data-object that
    defines which entities from another data-object are to treated as
    "selected". Filters like `vtkExtractSelection` or
    `vtkExtractDataArraysOverTime` can then be used to extract these
    selected entities from the *other* data-object.
    
    vtkSelection comprises of `vtkSelectionNode`s and optionally, an
    expression specified using `vtkSelection::SetExpression`. If
    non-empty, the expression is a boolean expression that defines now
    the selection nodes present in the selection are to be combined
    together to form the selection. If no expression is specified and
    there are multiple selection nodes, then the default expression
    simply combines all the selection nodes using an `or` operator.
    
    Each vtkSelectionNode is used to define the selection criteria.
    vtkSelectionNode API lets one select what kind of entities are being
    selected (vtkSelectionNode::FieldType) and how they are being
    selected (vtkSelectionNode::ContentType).
    
    @sa
    vtkSelectionNode
    """
    def AddNode(self, __a): # real signature unknown; restored from __doc__
        """
        AddNode(self, __a:vtkSelectionNode) -> str
        C++: virtual std::string AddNode(vtkSelectionNode *)
        
        Adds a selection node. Assigns the node a unique name and returns
        that name. This API is primarily provided for backwards
        compatibility and `SetNode` is the preferred method.
        """
        return ""

    def DeepCopy(self, src): # real signature unknown; restored from __doc__
        """
        DeepCopy(self, src:vtkDataObject) -> None
        C++: void DeepCopy(vtkDataObject *src) override;
        
        Copy selection nodes of the input.
        """
        pass

    def Dump(self): # real signature unknown; restored from __doc__
        """
        Dump(self) -> None
        C++: virtual void Dump()
        
        Dumps the contents of the selection, giving basic information
        only.
        """
        pass

    def GetData(self, info): # real signature unknown; restored from __doc__
        """
        GetData(info:vtkInformation) -> vtkSelection
        C++: static vtkSelection *GetData(vtkInformation *info)
        GetData(v:vtkInformationVector, i:int=0) -> vtkSelection
        C++: static vtkSelection *GetData(vtkInformationVector *v,
            int i=0)
        
        Retrieve a vtkSelection stored inside an invormation object.
        """
        return vtkSelection

    def GetDataObjectType(self): # real signature unknown; restored from __doc__
        """
        GetDataObjectType(self) -> int
        C++: int GetDataObjectType() override;
        
        Returns VTK_SELECTION enumeration value.
        """
        return 0

    def GetExpression(self): # real signature unknown; restored from __doc__
        """
        GetExpression(self) -> str
        C++: virtual std::string GetExpression()
        """
        return ""

    def GetMTime(self): # real signature unknown; restored from __doc__
        """
        GetMTime(self) -> int
        C++: vtkMTimeType GetMTime() override;
        
        Return the MTime taking into account changes to the properties
        """
        return 0

    def GetNode(self, idx): # real signature unknown; restored from __doc__
        """
        GetNode(self, idx:int) -> vtkSelectionNode
        C++: virtual vtkSelectionNode *GetNode(unsigned int idx)
        GetNode(self, name:str) -> vtkSelectionNode
        C++: virtual vtkSelectionNode *GetNode(const std::string &name)
        
        Returns a node given it's index. Performs bound checking and will
        return nullptr if out-of-bounds.
        """
        return vtkSelectionNode

    def GetNodeNameAtIndex(self, idx): # real signature unknown; restored from __doc__
        """
        GetNodeNameAtIndex(self, idx:int) -> str
        C++: virtual std::string GetNodeNameAtIndex(unsigned int idx)
        
        Returns the name for a node at the given index.
        """
        return ""

    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 GetNumberOfNodes(self): # real signature unknown; restored from __doc__
        """
        GetNumberOfNodes(self) -> int
        C++: unsigned int GetNumberOfNodes()
        
        Returns the number of nodes in this selection. Each node contains
        information about part of the selection.
        """
        return 0

    def Initialize(self): # real signature unknown; restored from __doc__
        """
        Initialize(self) -> None
        C++: void Initialize() override;
        
        Restore data object to initial state,
        """
        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) -> vtkSelection
        C++: vtkSelection *NewInstance()
        """
        return vtkSelection

    def RemoveAllNodes(self): # real signature unknown; restored from __doc__
        """
        RemoveAllNodes(self) -> None
        C++: virtual void RemoveAllNodes()
        
        Removes all selection nodes.
        """
        pass

    def RemoveNode(self, idx): # real signature unknown; restored from __doc__
        """
        RemoveNode(self, idx:int) -> None
        C++: virtual void RemoveNode(unsigned int idx)
        RemoveNode(self, name:str) -> None
        C++: virtual void RemoveNode(const std::string &name)
        RemoveNode(self, __a:vtkSelectionNode) -> None
        C++: virtual void RemoveNode(vtkSelectionNode *)
        
        Removes a selection node.
        """
        pass

    def SafeDownCast(self, o): # real signature unknown; restored from __doc__
        """
        SafeDownCast(o:vtkObjectBase) -> vtkSelection
        C++: static vtkSelection *SafeDownCast(vtkObjectBase *o)
        """
        return vtkSelection

    def SetExpression(self, _arg): # real signature unknown; restored from __doc__
        """
        SetExpression(self, _arg:str) -> None
        C++: virtual void SetExpression(std::string _arg)
        
        Get/Set the expression that defines the boolean expression to
        combine the selection nodes. Expression consists of node name
        identifiers, `|` for boolean-or, '^' for boolean-xor, '&' for
        boolean and, '!' for boolean not, and parenthesis `(` and `)`. If
        the expression consists of a node name identifier that is not
        assigned any `vtkSelectionNode` (using `SetNode`) then it is
        evaluates to `false`.
        
        `SetExpression` does not validate the expression. It will be
        validated in `Evaluate` call.
        """
        pass

    def SetNode(self, name, __b): # real signature unknown; restored from __doc__
        """
        SetNode(self, name:str, __b:vtkSelectionNode) -> None
        C++: virtual void SetNode(const std::string &name,
            vtkSelectionNode *)
        
        Adds a vtkSelectionNode and assigns it the specified name. The
        name must be a non-empty string. If an item with the same name
        has already been added, it will be removed.
        """
        pass

    def ShallowCopy(self, src): # real signature unknown; restored from __doc__
        """
        ShallowCopy(self, src:vtkDataObject) -> None
        C++: void ShallowCopy(vtkDataObject *src) override;
        
        Copy selection nodes of the input. This is a shallow copy:
        selection lists and pointers in the properties are passed by
        reference.
        """
        pass

    def Subtract(self, selection): # real signature unknown; restored from __doc__
        """
        Subtract(self, selection:vtkSelection) -> None
        C++: virtual void Subtract(vtkSelection *selection)
        Subtract(self, node:vtkSelectionNode) -> None
        C++: virtual void Subtract(vtkSelectionNode *node)
        
        Remove the nodes from the specified selection from this
        selection. Assumes that selection node internal arrays are
        vtkIdTypeArrays.
        """
        pass

    def Union(self, selection): # real signature unknown; restored from __doc__
        """
        Union(self, selection:vtkSelection) -> None
        C++: virtual void Union(vtkSelection *selection)
        Union(self, node:vtkSelectionNode) -> None
        C++: virtual void Union(vtkSelectionNode *node)
        
        Union this selection with the specified selection. Attempts to
        reuse selection nodes in this selection if properties match
        exactly. Otherwise, creates new selection nodes.
        """
        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__\': \'vtkSelection\', \'IsTypeOf\': <method \'IsTypeOf\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'IsA\': <method \'IsA\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'SafeDownCast\': <method \'SafeDownCast\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'NewInstance\': <method \'NewInstance\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetNumberOfGenerationsFromBaseType\': <method \'GetNumberOfGenerationsFromBaseType\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetNumberOfGenerationsFromBase\': <method \'GetNumberOfGenerationsFromBase\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'Initialize\': <method \'Initialize\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetDataObjectType\': <method \'GetDataObjectType\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetNumberOfNodes\': <method \'GetNumberOfNodes\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetNode\': <method \'GetNode\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'AddNode\': <method \'AddNode\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'SetNode\': <method \'SetNode\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetNodeNameAtIndex\': <method \'GetNodeNameAtIndex\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'RemoveNode\': <method \'RemoveNode\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'RemoveAllNodes\': <method \'RemoveAllNodes\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'SetExpression\': <method \'SetExpression\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetExpression\': <method \'GetExpression\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'DeepCopy\': <method \'DeepCopy\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'ShallowCopy\': <method \'ShallowCopy\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'Union\': <method \'Union\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'Subtract\': <method \'Subtract\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetMTime\': <method \'GetMTime\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'Dump\': <method \'Dump\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'GetData\': <method \'GetData\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__new__\': <built-in method __new__ of type object at 0x00007FF81D64B3C0>, \'__repr__\': <slot wrapper \'__repr__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__str__\': <slot wrapper \'__str__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__getattribute__\': <slot wrapper \'__getattribute__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__setattr__\': <slot wrapper \'__setattr__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__delattr__\': <slot wrapper \'__delattr__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__dict__\': <attribute \'__dict__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__this__\': <attribute \'__this__\' of \'vtkmodules.vtkCommonDataModel.vtkSelection\' objects>, \'__doc__\': \'vtkSelection - data object that represents a "selection" in VTK.\\n\\nSuperclass: vtkDataObject\\n\\nvtkSelection defines a selection. A selection is a data-object that\\ndefines which entities from another data-object are to treated as\\n"selected". Filters like `vtkExtractSelection` or\\n`vtkExtractDataArraysOverTime` can then be used to extract these\\nselected entities from the *other* data-object.\\n\\nvtkSelection comprises of `vtkSelectionNode`s and optionally, an\\nexpression specified using `vtkSelection::SetExpression`. If\\nnon-empty, the expression is a boolean expression that defines now\\nthe selection nodes present in the selection are to be combined\\ntogether to form the selection. If no expression is specified and\\nthere are multiple selection nodes, then the default expression\\nsimply combines all the selection nodes using an `or` operator.\\n\\nEach vtkSelectionNode is used to define the selection criteria.\\nvtkSelectionNode API lets one select what kind of entities are being\\nselected (vtkSelectionNode::FieldType) and how they are being\\nselected (vtkSelectionNode::ContentType).\\n\\n@sa\\nvtkSelectionNode\\n\\n\'})'
    __vtkname__ = 'vtkSelection'


