user: Describe CurveMapping(bpy_struct) from the Blender manual or Python API, including usage steps and snippets.

assistant: # CurveMapping(bpy_struct)

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

*class* bpy.types.CurveMapping(*bpy_struct*)
:   Curve mapping to map color, vector and scalar values to other values using a user defined curve

    black_level
    :   For RGB curves, the color that black is mapped to

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    clip_max_x
    :   Type:
        :   float in [-100, 100], default 0.0

    clip_max_y
    :   Type:
        :   float in [-100, 100], default 0.0

    clip_min_x
    :   Type:
        :   float in [-100, 100], default 0.0

    clip_min_y
    :   Type:
        :   float in [-100, 100], default 0.0

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

    extend
    :   Extrapolate the curve or extend it horizontally

        Type:
        :   enum in [`'HORIZONTAL'`, `'EXTRAPOLATED'`], default `'HORIZONTAL'`

    tone
    :   Tone of the curve

        - `STANDARD`
          Standard – Combined curve is applied to each channel individually, which may result in a change of hue.
        - `FILMLIKE`
          Filmlike – Keeps the hue constant.

        Type:
        :   enum in [`'STANDARD'`, `'FILMLIKE'`], default `'STANDARD'`

    use_clip
    :   Force the curve view to fit a defined boundary

        Type:
        :   boolean, default False

    white_level
    :   For RGB curves, the color that white is mapped to

        Type:
        :   [`mathutils.Color`](mathutils.html#mathutils.Color "mathutils.Color") of 3 items in [-inf, inf], default (0.0, 0.0, 0.0)

    update()
    :   Update curve mapping after making changes

    reset_view()
    :   Reset the curve mapping grid to its clipping size

    initialize()
    :   Initialize curve

    evaluate(*curve*, *position*)
    :   Evaluate curve at given location

        Parameters:
        :   - **curve** ([`CurveMap`](bpy.types.CurveMap.html#bpy.types.CurveMap "bpy.types.CurveMap"), (never None)) – curve, Curve to evaluate
            - **position** (*float in* *[**-inf**,* *inf**]*) – Position, Position to evaluate curve at

        Returns:
        :   Value, Value of curve at given location

        Return type:
        :   float in [-inf, inf]

    *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