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

from .vtkOpenGLBufferObject import vtkOpenGLBufferObject

class vtkOpenGLVertexBufferObject(vtkOpenGLBufferObject):
    """
    vtkOpenGLVertexBufferObject - no description provided.
    
    Superclass: vtkOpenGLBufferObject
    """
    def AppendDataArray(self, vtkDataArray):
        """
        V.AppendDataArray(vtkDataArray)
        C++: void AppendDataArray(vtkDataArray *array)
        """
        ...
    
    def GetCoordShiftAndScaleEnabled(self):
        """
        V.GetCoordShiftAndScaleEnabled() -> bool
        C++: virtual bool GetCoordShiftAndScaleEnabled()
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def GetCoordShiftAndScaleMethod(self):
        """
        V.GetCoordShiftAndScaleMethod() -> ShiftScaleMethod
        C++: virtual ShiftScaleMethod GetCoordShiftAndScaleMethod()
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def GetDataType(self):
        """
        V.GetDataType() -> int
        C++: virtual int GetDataType()
        """
        ...
    
    def GetDataTypeSize(self):
        """
        V.GetDataTypeSize() -> int
        C++: virtual unsigned int GetDataTypeSize()
        """
        ...
    
    def GetNumberOfComponents(self):
        """
        V.GetNumberOfComponents() -> int
        C++: virtual unsigned int GetNumberOfComponents()
        """
        ...
    
    def GetNumberOfGenerationsFromBase(self, string):
        """
        V.GetNumberOfGenerationsFromBase(string) -> int
        C++: vtkIdType GetNumberOfGenerationsFromBase(const char *type)
            override;
        
        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.
        """
        ...
    
    def GetNumberOfGenerationsFromBaseType(self, string):
        """
        V.GetNumberOfGenerationsFromBaseType(string) -> 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.
        """
        ...
    
    def GetNumberOfTuples(self):
        """
        V.GetNumberOfTuples() -> int
        C++: virtual unsigned int GetNumberOfTuples()
        """
        ...
    
    def GetPackedVBO(self):
        """
        V.GetPackedVBO() -> Stvector_IfE
        C++: std::vector<float> &GetPackedVBO()
        """
        ...
    
    def GetScale(self):
        """
        V.GetScale() -> Stvector_IdE
        C++: virtual const std::vector<double> &GetScale()
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def GetShift(self):
        """
        V.GetShift() -> Stvector_IdE
        C++: virtual const std::vector<double> &GetShift()
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def GetStride(self):
        """
        V.GetStride() -> int
        C++: virtual unsigned int GetStride()
        """
        ...
    
    def GetUploadTime(self):
        """
        V.GetUploadTime() -> vtkTimeStamp
        C++: virtual vtkTimeStamp GetUploadTime()
        """
        ...
    
    def IsA(self, string):
        """
        V.IsA(string) -> 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.
        """
        ...
    
    def IsTypeOf(self, string):
        """
        V.IsTypeOf(string) -> 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.
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkOpenGLVertexBufferObject
        C++: vtkOpenGLVertexBufferObject *NewInstance()
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkOpenGLVertexBufferObject
        C++: static vtkOpenGLVertexBufferObject *SafeDownCast(
            vtkObjectBase *o)
        """
        ...
    
    def SetCache(self, vtkOpenGLVertexBufferObjectCache):
        """
        V.SetCache(vtkOpenGLVertexBufferObjectCache)
        C++: void SetCache(vtkOpenGLVertexBufferObjectCache *cache)
        """
        ...
    
    def SetCoordShiftAndScaleMethod(self, ShiftScaleMethod):
        """
        V.SetCoordShiftAndScaleMethod(ShiftScaleMethod)
        C++: virtual void SetCoordShiftAndScaleMethod(
            ShiftScaleMethod meth)
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def SetDataType(self, p_int):
        """
        V.SetDataType(int)
        C++: void SetDataType(int v)
        """
        ...
    
    def SetScale(self, Stvector_IdE):
        """
        V.SetScale(Stvector_IdE)
        C++: virtual void SetScale(const std::vector<double> &scale)
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def SetShift(self, Stvector_IdE):
        """
        V.SetShift(Stvector_IdE)
        C++: virtual void SetShift(const std::vector<double> &shift)
        
        Get the shift and scale vectors computed by CreateVBO; or set the
        values CreateVBO and AppendVBO will use. Note that the "Set"
        methods **must** be called before the first time that CreateVBO
        or AppendVBO is invoked and should never be called afterwards.
        
        The CoordShiftAndScaleMethod describes how the shift and scale
        vectors are obtained (or that they should never be used). The
        GetCoordShiftAndScaleEnabled() method returns true if a shift and
        scale are currently being applied (or false if not).
        
        The "Get" methods are used by the mapper to modify the world and
        camera transformation matrices to match the scaling applied to
        coordinates in the VBO. CreateVBO only applies a shift and scale
        when the midpoint of the point bounding-box is distant from the
        origin by a factor of 10,000 or more relative to the size of the
        box along any axis.
        
        For example, if the x coordinates of the points range from
        200,000 to 200,001 then the factor is 200,000.5 / (200,001 -
        200,000) = 2x10^5, which is larger than 10,000 -- so the
        coordinates will be shifted and scaled.
        
        This is important as many OpenGL drivers use reduced precision to
        hold point coordinates.
        
        These methods are used by the mapper to determine the additional
        transform (if any) to apply to the rendering transform.
        """
        ...
    
    def SetStride(self, p_int):
        """
        V.SetStride(int)
        C++: virtual void SetStride(unsigned int _arg)
        """
        ...
    
    def UploadDataArray(self, vtkDataArray):
        """
        V.UploadDataArray(vtkDataArray)
        C++: void UploadDataArray(vtkDataArray *array)
        """
        ...
    
    def UploadVBO(self):
        """
        V.UploadVBO()
        C++: void UploadVBO()
        """
        ...
    
    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__ = ...
    ALWAYS_AUTO_SHIFT_SCALE = ...
    AUTO_SHIFT_SCALE = ...
    DISABLE_SHIFT_SCALE = ...
    MANUAL_SHIFT_SCALE = ...
    ShiftScaleMethod = ...
    __dict__ = ...
    __vtkname__ = ...


