user: Give a detailed overview of FreestyleSettings(bpy_struct): syntax, arguments, return values, common patterns.

assistant: # FreestyleSettings(bpy_struct)

base class — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct")

*class* bpy.types.FreestyleSettings(*bpy_struct*)
:   Freestyle settings for a ViewLayer data-block

    as_render_pass
    :   Renders Freestyle output to a separate pass instead of overlaying it on the Combined pass

        Type:
        :   boolean, default False

    crease_angle
    :   Angular threshold for detecting crease edges

        Type:
        :   float in [0, 3.14159], default 0.0

    kr_derivative_epsilon
    :   Kr derivative epsilon for computing suggestive contours

        Type:
        :   float in [-1000, 1000], default 0.0

    linesets
    :   Type:
        :   [`Linesets`](bpy.types.Linesets.html#bpy.types.Linesets "bpy.types.Linesets") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`FreestyleLineSet`](bpy.types.FreestyleLineSet.html#bpy.types.FreestyleLineSet "bpy.types.FreestyleLineSet"), (readonly)

    mode
    :   Select the Freestyle control mode

        - `SCRIPT`
          Python Scripting – Advanced mode for using style modules written in Python.
        - `EDITOR`
          Parameter Editor – Basic mode for interactive style parameter editing.

        Type:
        :   enum in [`'SCRIPT'`, `'EDITOR'`], default `'SCRIPT'`

    modules
    :   A list of style modules (to be applied from top to bottom)

        Type:
        :   [`FreestyleModules`](bpy.types.FreestyleModules.html#bpy.types.FreestyleModules "bpy.types.FreestyleModules") [`bpy_prop_collection`](bpy.types.bpy_prop_collection.html#bpy.types.bpy_prop_collection "bpy.types.bpy_prop_collection") of [`FreestyleModuleSettings`](bpy.types.FreestyleModuleSettings.html#bpy.types.FreestyleModuleSettings "bpy.types.FreestyleModuleSettings"), (readonly)

    sphere_radius
    :   Sphere radius for computing curvatures

        Type:
        :   float in [0, 1000], default 1.0

    use_culling
    :   If enabled, out-of-view edges are ignored

        Type:
        :   boolean, default False

    use_material_boundaries
    :   Enable material boundaries

        Type:
        :   boolean, default False

    use_ridges_and_valleys
    :   Enable ridges and valleys

        Type:
        :   boolean, default False

    use_smoothness
    :   Take face smoothness into account in view map calculation

        Type:
        :   boolean, default False

    use_suggestive_contours
    :   Enable suggestive contours

        Type:
        :   boolean, default False

    use_view_map_cache
    :   Keep the computed view map and avoid recalculating it if mesh geometry is unchanged

        Type:
        :   boolean, default False

    *classmethod* bl_rna_get_subclass(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The RNA type or default when not found.

        Return type:
        :   [`bpy.types.Struct`](bpy.types.Struct.html#bpy.types.Struct "bpy.types.Struct") subclass

    *classmethod* bl_rna_get_subclass_py(*id*, *default=None*, */*)
    :   Parameters:
        :   **id** (*str*) – The RNA type identifier.

        Returns:
        :   The class or default when not found.

        Return type:
        :   type