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

from .vtkOpenGLRenderPass import vtkOpenGLRenderPass

class vtkShadowMapPass(vtkOpenGLRenderPass):
    """
    vtkShadowMapPass - Implement a shadow mapping render pass.
    
    Superclass: vtkOpenGLRenderPass
    
    Render the opaque polygonal geometry of a scene with shadow maps (a
    technique to render hard shadows in hardware).
    
    This pass expects an initialized depth buffer and color buffer.
    Initialized buffers means they have been cleared with farest z-value
    and background color/gradient/transparent color. An opaque pass may
    have been performed right after the initialization.
    
    Its delegate is usually set to a vtkOpaquePass.
    
    @par Implementation: The first pass of the algorithm is to generate a
    shadow map per light (depth map from the light point of view) by
    rendering the opaque objects with the OCCLUDER property keys. The
    second pass is to render the opaque objects with the RECEIVER keys.
    
    @sa
    vtkRenderPass, vtkOpaquePass
    """
    def GetFragmentDeclaration(self):
        """
        V.GetFragmentDeclaration() -> string
        C++: std::string GetFragmentDeclaration()
        
        Get the shader code to compute light factors based on a mappers
        vertexVC variable
        """
        ...
    
    def GetFragmentImplementation(self):
        """
        V.GetFragmentImplementation() -> string
        C++: std::string GetFragmentImplementation()
        """
        ...
    
    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 GetOpaqueSequence(self):
        """
        V.GetOpaqueSequence() -> vtkRenderPass
        C++: virtual vtkRenderPass *GetOpaqueSequence()
        
        Pass that render the lights and opaque geometry Typically a
        sequence pass with a light pass and opaque pass.
        """
        ...
    
    def GetShadowMapBakerPass(self):
        """
        V.GetShadowMapBakerPass() -> vtkShadowMapBakerPass
        C++: virtual vtkShadowMapBakerPass *GetShadowMapBakerPass()
        
        Pass that generates the shadow maps. the vtkShadowMapPass will
        use the Resolution ivar of this pass. Initial value is a NULL
        pointer.
        """
        ...
    
    def GetShadowMapTextureUnits(self):
        """
        V.GetShadowMapTextureUnits() -> Stvector_IiE
        C++: std::vector<int> GetShadowMapTextureUnits()
        
        get the texture units for the shadow maps for each light. If a
        light does not cast a shadow it is set to -1
        """
        ...
    
    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() -> vtkShadowMapPass
        C++: vtkShadowMapPass *NewInstance()
        """
        ...
    
    def PostReplaceShaderValues(self, string, string_1, string_2, vtkAbstractMapper, vtkProp):
        """
        V.PostReplaceShaderValues(string, string, string,
            vtkAbstractMapper, vtkProp) -> bool
        C++: bool PostReplaceShaderValues(std::string &vertexShader,
            std::string &geometryShader, std::string &fragmentShader,
            vtkAbstractMapper *mapper, vtkProp *prop) override;
        
        Use vtkShaderProgram::Substitute to replace //VTK::XXX:YYY
        declarations in the shader sources. Gets called after other
        mapper shader replacements. Return false on error.
        """
        ...
    
    def PreReplaceShaderValues(self, string, string_1, string_2, vtkAbstractMapper, vtkProp):
        """
        V.PreReplaceShaderValues(string, string, string,
            vtkAbstractMapper, vtkProp) -> bool
        C++: bool PreReplaceShaderValues(std::string &vertexShader,
            std::string &geometryShader, std::string &fragmentShader,
            vtkAbstractMapper *mapper, vtkProp *prop) override;
        
        Use vtkShaderProgram::Substitute to replace //VTK::XXX:YYY
        declarations in the shader sources. Gets called before other
        mapper shader replacements Return false on error.
        """
        ...
    
    def ReleaseGraphicsResources(self, vtkWindow):
        """
        V.ReleaseGraphicsResources(vtkWindow)
        C++: void ReleaseGraphicsResources(vtkWindow *w) override;
        
        Release graphics resources and ask components to release their
        own resources.
        \pre w_exists: w!=0
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkShadowMapPass
        C++: static vtkShadowMapPass *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetOpaqueSequence(self, vtkRenderPass):
        """
        V.SetOpaqueSequence(vtkRenderPass)
        C++: virtual void SetOpaqueSequence(vtkRenderPass *opaqueSequence)
        
        Pass that render the lights and opaque geometry Typically a
        sequence pass with a light pass and opaque pass.
        """
        ...
    
    def SetShaderParameters(self, vtkShaderProgram, vtkAbstractMapper, vtkProp, vtkOpenGLVertexArrayObject):
        """
        V.SetShaderParameters(vtkShaderProgram, vtkAbstractMapper,
            vtkProp, vtkOpenGLVertexArrayObject) -> bool
        C++: bool SetShaderParameters(vtkShaderProgram *program,
            vtkAbstractMapper *mapper, vtkProp *prop,
            vtkOpenGLVertexArrayObject *VAO=nullptr) override;
        
        Update the uniforms of the shader program. Return false on error.
        """
        ...
    
    def SetShadowMapBakerPass(self, vtkShadowMapBakerPass):
        """
        V.SetShadowMapBakerPass(vtkShadowMapBakerPass)
        C++: virtual void SetShadowMapBakerPass(
            vtkShadowMapBakerPass *shadowMapBakerPass)
        
        Pass that generates the shadow maps. the vtkShadowMapPass will
        use the Resolution ivar of this pass. Initial value is a NULL
        pointer.
        """
        ...
    
    def ShadowMapPass(self):
        """
        V.ShadowMapPass() -> vtkInformationObjectBaseKey
        C++: static vtkInformationObjectBaseKey *ShadowMapPass()
        
        this key will contain the shadow map pass
        """
        ...
    
    def ShadowMapTransforms(self):
        """
        V.ShadowMapTransforms() -> Stvector_IdE
        C++: std::vector<double> ShadowMapTransforms()
        
        get the matricies for all the shadow maps.
        """
        ...
    
    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__ = ...


