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

import vtkmodules.vtkCommonCore as __vtkmodules_vtkCommonCore

class vtkTextRenderer(__vtkmodules_vtkCommonCore.vtkObject):
    """
    vtkTextRenderer - Interface for generating images and path data from
    string data, using multiple backends.
    
    Superclass: vtkObject
    
    vtkTextRenderer produces images, bounding boxes, and vtkPath objects
    that represent text. The advantage of using this class is to easily
    integrate mathematical expressions into renderings by automatically
    switching between FreeType and MathText backends. If the input string
    contains at least two "$" symbols separated by text, the MathText
    backend will be used. If the string does not meet this criteria, or
    if no MathText implementation is available, the faster FreeType
    rendering facilities are used. Literal $ symbols can be used by
    escaping them with backslashes, "\$" (or "\\$" if the string is set
    programmatically).
    
    For example, "Acceleration ($\\frac{m}{s^2}$)" will use MathText, but "\\$500,
    \\$100" will use FreeType.
    
    By default, the backend is set to Detect, which determines the
    backend based on the contents of the string. This can be changed by
    setting the DefaultBackend ivar.
    
    Note that this class is abstract -- link to the vtkRenderingFreetype
    module to get the default implementation.
    """
    def DetectBackend(self, string):
        """
        V.DetectBackend(string) -> int
        C++: virtual int DetectBackend(const vtkStdString &str)
        V.DetectBackend(unicode) -> int
        C++: virtual int DetectBackend(const vtkUnicodeString &str)
        
        Determine the appropriate back end needed to render the given
        string.
        """
        ...
    
    def FreeTypeIsSupported(self):
        """
        V.FreeTypeIsSupported() -> bool
        C++: virtual bool FreeTypeIsSupported()
        
        Test for availability of various backends
        """
        ...
    
    def GetBoundingBox(self, vtkTextProperty, string, p_int=..., p_int=..., p_int=..., p_int=..., *args, **kwargs):
        """
        V.GetBoundingBox(vtkTextProperty, string, [int, int, int, int],
            int, int) -> bool
        C++: bool GetBoundingBox(vtkTextProperty *tprop,
            const vtkStdString &str, int bbox[4], int dpi,
            int backend=Default)
        V.GetBoundingBox(vtkTextProperty, unicode, [int, int, int, int],
            int, int) -> bool
        C++: bool GetBoundingBox(vtkTextProperty *tprop,
            const vtkUnicodeString &str, int bbox[4], int dpi,
            int backend=Default)
        
        Given a text property and a string, get the bounding box {xmin,
        xmax, ymin, ymax} of the rendered string in pixels. The origin of
        the bounding box is the anchor point described by the horizontal
        and vertical justification text property variables. Return true
        on success, false otherwise.
        """
        ...
    
    def GetConstrainedFontSize(self, string, vtkTextProperty, p_int, p_int_1, p_int_2, p_int_3):
        """
        V.GetConstrainedFontSize(string, vtkTextProperty, int, int, int,
            int) -> int
        C++: int GetConstrainedFontSize(const vtkStdString &str,
            vtkTextProperty *tprop, int targetWidth, int targetHeight,
            int dpi, int backend=Default)
        V.GetConstrainedFontSize(unicode, vtkTextProperty, int, int, int,
            int) -> int
        C++: int GetConstrainedFontSize(const vtkUnicodeString &str,
            vtkTextProperty *tprop, int targetWidth, int targetHeight,
            int dpi, int backend=Default)
        
        This function returns the font size (in points) and sets the size
        in @a tprop that is required to fit the string in the target
        rectangle. The computed font size will be set in tprop as well.
        If an error occurs, this function will return -1.
        """
        ...
    
    def GetDefaultBackend(self):
        """
        V.GetDefaultBackend() -> int
        C++: virtual int GetDefaultBackend()
        
        The backend to use when none is specified. Default: Detect
        """
        ...
    
    def GetInstance(self):
        """
        V.GetInstance() -> vtkTextRenderer
        C++: static vtkTextRenderer *GetInstance()
        
        Return the singleton instance with no reference counting. May
        return NULL if the object factory cannot find an override.
        """
        ...
    
    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 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 MathTextIsSupported(self):
        """
        V.MathTextIsSupported() -> bool
        C++: virtual bool MathTextIsSupported()
        """
        ...
    
    def NewInstance(self):
        """
        V.NewInstance() -> vtkTextRenderer
        C++: vtkTextRenderer *NewInstance()
        """
        ...
    
    def RenderString(self, vtkTextProperty, string, vtkImageData, p_int=..., p_int=..., *args, **kwargs):
        """
        V.RenderString(vtkTextProperty, string, vtkImageData, [int, int],
            int, int) -> bool
        C++: bool RenderString(vtkTextProperty *tprop,
            const vtkStdString &str, vtkImageData *data, int textDims[2],
            int dpi, int backend=Default)
        V.RenderString(vtkTextProperty, unicode, vtkImageData, [int, int],
             int, int) -> bool
        C++: bool RenderString(vtkTextProperty *tprop,
            const vtkUnicodeString &str, vtkImageData *data,
            int textDims[2], int dpi, int backend=Default)
        
        Given a text property and a string, this function initializes the
        vtkImageData *data and renders it in a vtkImageData. Return true
        on success, false otherwise. If using the overload that specifies
        "textDims", the array will be overwritten with the pixel width
        and height defining a tight bounding box around the text in the
        image, starting from the upper-right corner. This is used when
        rendering for a texture on graphics hardware that requires
        texture image dimensions to be a power of two; textDims can be
        used to determine the texture coordinates needed to cleanly fit
        the text on the target. The origin of the image's extents is
        aligned with the anchor point described by the text property's
        vertical and horizontal justification options.
        """
        ...
    
    def SafeDownCast(self, vtkObjectBase):
        """
        V.SafeDownCast(vtkObjectBase) -> vtkTextRenderer
        C++: static vtkTextRenderer *SafeDownCast(vtkObjectBase *o)
        """
        ...
    
    def SetDefaultBackend(self, p_int):
        """
        V.SetDefaultBackend(int)
        C++: virtual void SetDefaultBackend(int _arg)
        
        The backend to use when none is specified. Default: Detect
        """
        ...
    
    def SetScaleToPowerOfTwo(self, bool):
        """
        V.SetScaleToPowerOfTwo(bool)
        C++: void SetScaleToPowerOfTwo(bool scale)
        
        Set to true if the graphics implementation requires texture image
        dimensions to be a power of two. Default is true, but this member
        will be set appropriately by
        vtkOpenGLRenderWindow::OpenGLInitContext when GL is inited.
        """
        ...
    
    def StringToPath(self, vtkTextProperty, string, vtkPath, p_int, p_int_1):
        """
        V.StringToPath(vtkTextProperty, string, vtkPath, int, int) -> bool
        C++: bool StringToPath(vtkTextProperty *tprop,
            const vtkStdString &str, vtkPath *path, int dpi,
            int backend=Default)
        V.StringToPath(vtkTextProperty, unicode, vtkPath, int, int)
            -> bool
        C++: bool StringToPath(vtkTextProperty *tprop,
            const vtkUnicodeString &str, vtkPath *path, int dpi,
            int backend=Default)
        
        Given a text property and a string, this function populates the
        vtkPath path with the outline of the rendered string. The origin
        of the path coordinates is aligned with the anchor point
        described by the text property's horizontal and vertical
        justification options. Return true on success, false otherwise.
        """
        ...
    
    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__ = ...
    Backend = ...
    Default = ...
    Detect = ...
    FreeType = ...
    MathText = ...
    UserBackend = ...
    __dict__ = ...
    __vtkname__ = ...


