user: How do I use Freestyle Functions (freestyle.functions) in Blender? Include parameters, examples, warnings and best practices.

assistant: Function0DDouble` > `GetProjectedZF0D`

    __init__()
    :   Builds a GetProjectedZF0D object.

    __call__(*it*)
    :   Returns the Z 3D projected coordinate of the `freestyle.types.Interface0D`
        pointed by the Interface0DIterator.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The Z 3D projected coordinate of the pointed Interface0D.

        Return type:
        :   float

*class* freestyle.functions.GetProjectedZF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetProjectedZF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds a GetProjectedZF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the projected Z 3D coordinate of an Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The projected Z 3D coordinate of an Interface1D.

        Return type:
        :   float

*class* freestyle.functions.GetShapeF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DViewShape` > `GetShapeF0D`

    __init__()
    :   Builds a GetShapeF0D object.

    __call__(*it*)
    :   Returns the `freestyle.types.ViewShape` containing the
        Interface0D pointed by the Interface0DIterator.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The ViewShape containing the pointed Interface0D.

        Return type:
        :   `freestyle.types.ViewShape`

*class* freestyle.functions.GetShapeF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DVectorViewShape` > `GetShapeF1D`

    __init__()
    :   Builds a GetShapeF1D object.

    __call__(*inter*)
    :   Returns a list of shapes covered by this Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   A list of shapes covered by the Interface1D.

        Return type:
        :   list[`freestyle.types.ViewShape`]

*class* freestyle.functions.GetSteerableViewMapDensityF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetSteerableViewMapDensityF1D`

    __init__(*level*, *integration_type=IntegrationType.MEAN*, *sampling=2.0*)
    :   Builds a GetSteerableViewMapDensityF1D object.

        Parameters:
        :   - **level** (*int*) – The level of the pyramid from which the pixel must be
              read.
            - **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
              from a set of values.
            - **sampling** (*float*) – The resolution used to sample the chain: the
              corresponding 0D function is evaluated at each sample point and
              the result is obtained by combining the resulting values into a
              single one, following the method specified by integration_type.

    __call__(*inter*)
    :   Returns the density of the ViewMap for a given Interface1D. The
        density of each `freestyle.types.FEdge` is evaluated in the
        proper steerable `freestyle.types.ViewMap` depending on its
        orientation.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The density of the ViewMap for a given Interface1D.

        Return type:
        :   float

*class* freestyle.functions.GetViewMapGradientNormF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DFloat` > `GetViewMapGradientNormF0D`

    __init__(*level*)
    :   Builds a GetViewMapGradientNormF0D object.

        Parameters:
        :   **level** (*int*) – The level of the pyramid from which the pixel must be
            read.

    __call__(*it*)
    :   Returns the norm of the gradient of the global viewmap density
        image.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The norm of the gradient of the global viewmap density
            image.

        Return type:
        :   float

*class* freestyle.functions.GetViewMapGradientNormF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetViewMapGradientNormF1D`

    __init__(*level*, *integration_type=IntegrationType.MEAN*, *sampling=2.0*)
    :   Builds a GetViewMapGradientNormF1D object.

        Parameters:
        :   - **level** (*int*) – The level of the pyramid from which the pixel must be
              read.
            - **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
              from a set of values.
            - **sampling** (*float*) – The resolution used to sample the chain: the
              corresponding 0D function is evaluated at each sample point and
              the result is obtained by combining the resulting values into a
              single one, following the method specified by integration_type.

    __call__(*inter*)
    :   Returns the density of the ViewMap for a given Interface1D. The
        density of each `freestyle.types.FEdge` is evaluated in the
        proper steerable `freestyle.types.ViewMap` depending on its
        orientation.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The density of the ViewMap for a given Interface1D.

        Return type:
        :   float

*class* freestyle.functions.GetXF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DDouble` > `GetXF0D`

    __init__()
    :   Builds a GetXF0D object.

    __call__(*it*)
    :   Returns the X 3D coordinate of the `freestyle.types.Interface0D` pointed by
        the Interface0DIterator.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The X 3D coordinate of the pointed Interface0D.

        Return type:
        :   float

*class* freestyle.functions.GetXF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetXF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds a GetXF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the X 3D coordinate of an Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The X 3D coordinate of the Interface1D.

        Return type:
        :   float

*class* freestyle.functions.GetYF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DDouble` > `GetYF0D`

    __init__()
    :   Builds a GetYF0D object.

    __call__(*it*)
    :   Returns the Y 3D coordinate of the `freestyle.types.Interface0D` pointed by
        the Interface0DIterator.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The Y 3D coordinate of the pointed Interface0D.

        Return type:
        :   float

*class* freestyle.functions.GetYF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetYF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds a GetYF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the Y 3D coordinate of an Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The Y 3D coordinate of the Interface1D.

        Return type:
        :   float

*class* freestyle.functions.GetZF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DDouble` > `GetZF0D`

    __init__()
    :   Builds a GetZF0D object.

    __call__(*it*)
    :   Returns the Z 3D coordinate of the `freestyle.types.Interface0D` pointed by
        the Interface0DIterator.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The Z 3D coordinate of the pointed Interface0D.

        Return type:
        :   float

*class* freestyle.functions.GetZF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `GetZF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds a GetZF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the Z 3D coordinate of an Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The Z 3D coordinate of the Interface1D.

        Return type:
        :   float

*class* freestyle.functions.IncrementChainingTimeStampF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DVoid` > `IncrementChainingTimeStampF1D`

    __init__()
    :   Builds an IncrementChainingTimeStampF1D object.

    __call__(*inter*)
    :   Increments the chaining time stamp of the Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

*class* freestyle.functions.LocalAverageDepthF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DDouble` > `LocalAverageDepthF0D`

    __init__(*mask_size=5.0*)
    :   Builds a LocalAverageDepthF0D object.

        Parameters:
        :   **mask_size** (*float*) – The size of the mask.

    __call__(*it*)
    :   Returns the average depth around the
        `freestyle.types.Interface0D` pointed by the
        Interface0DIterator. The result is obtained by querying the depth
        buffer on a window around that point.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The average depth around the pointed Interface0D.

        Return type:
        :   float

*class* freestyle.functions.LocalAverageDepthF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DDouble` > `LocalAverageDepthF1D`

    __init__(*sigma*, *integration_type=IntegrationType.MEAN*)
    :   Builds a LocalAverageDepthF1D object.

        Parameters:
        :   - **sigma** (*float*) – The sigma used in DensityF0D and determining the window
              size used in each density query.
            - **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
              from a set of values.

    __call__(*inter*)
    :   Returns the average depth evaluated for an Interface1D. The average
        depth is evaluated for a set of points along the Interface1D (using
        the [`freestyle.functions.LocalAverageDepthF0D`](#freestyle.functions.freestyle.functions.LocalAverageDepthF0D "freestyle.functions.freestyle.functions.LocalAverageDepthF0D") functor) with a
        user-defined sampling and then integrated into a single value using a
        user-defined integration method.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The average depth evaluated for the Interface1D.

        Return type:
        :   float

*class* freestyle.functions.MaterialF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DMaterial` > `MaterialF0D`

    __init__()
    :   Builds a MaterialF0D object.

    __call__(*it*)
    :   Returns the material of the object evaluated at the
        `freestyle.types.Interface0D` pointed by the
        Interface0DIterator. This evaluation can be ambiguous (in the case of
        a `freestyle.types.TVertex` for example. This functor tries to
        remove this ambiguity using the context offered by the 1D element to
        which the Interface0DIterator belongs to and by arbitrary choosing the
        material of the face that lies on its left when following the 1D
        element if there are two different materials on each side of the
        point. However, there still can be problematic cases, and the user
        willing to deal with this cases in a specific way should implement its
        own getMaterial functor.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The material of the object evaluated at the pointed
            Interface0D.

        Return type:
        :   `freestyle.types.Material`

*class* freestyle.functions.Normal2DF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DVec2f` > `Normal2DF0D`

    __init__()
    :   Builds a Normal2DF0D object.

    __call__(*it*)
    :   Returns a two-dimensional vector giving the normalized 2D normal to
        the 1D element to which the `freestyle.types.Interface0D`
        pointed by the Interface0DIterator belongs. The normal is evaluated
        at the pointed Interface0D.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The 2D normal of the 1D element evaluated at the pointed
            Interface0D.

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector")

*class* freestyle.functions.Normal2DF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DVec2f` > `Normal2DF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds a Normal2DF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the 2D normal for the Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The 2D normal for the Interface1D.

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector")

*class* freestyle.functions.Orientation2DF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DVec2f` > `Orientation2DF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds an Orientation2DF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the 2D orientation of the Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The 2D orientation of the Interface1D.

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector")

*class* freestyle.functions.Orientation3DF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DVec3f` > `Orientation3DF1D`

    __init__(*integration_type=IntegrationType.MEAN*)
    :   Builds an Orientation3DF1D object.

        Parameters:
        :   **integration_type** (`freestyle.types.IntegrationType`) – The integration method used to compute a single value
            from a set of values.

    __call__(*inter*)
    :   Returns the 3D orientation of the Interface1D.

        Parameters:
        :   **inter** (`freestyle.types.Interface1D`) – An Interface1D object.

        Returns:
        :   The 3D orientation of the Interface1D.

        Return type:
        :   [`mathutils.Vector`](mathutils.html#mathutils.Vector "mathutils.Vector")

*class* freestyle.functions.QuantitativeInvisibilityF0D
:   Class hierarchy: `freestyle.types.UnaryFunction0D` > `freestyle.types.UnaryFunction0DUnsigned` > `QuantitativeInvisibilityF0D`

    __init__()
    :   Builds a QuantitativeInvisibilityF0D object.

    __call__(*it*)
    :   Returns the quantitative invisibility of the
        `freestyle.types.Interface0D` pointed by the
        Interface0DIterator. This evaluation can be ambiguous (in the case of
        a `freestyle.types.TVertex` for example). This functor tries
        to remove this ambiguity using the context offered by the 1D element
        to which the Interface0D belongs to. However, there still can be
        problematic cases, and the user willing to deal with this cases in a
        specific way should implement its own getQIF0D functor.

        Parameters:
        :   **it** (`freestyle.types.Interface0DIterator`) – An Interface0DIterator object.

        Returns:
        :   The quantitative invisibility of the pointed Interface0D.

        Return type:
        :   int

*class* freestyle.functions.QuantitativeInvisibilityF1D
:   Class hierarchy: `freestyle.types.UnaryFunction1D` > `freestyle.types.UnaryFunction1DUnsigned` > `QuantitativeInvisibilityF1D`

    __init__(*integration_ty