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

assistant: # ShaderNodeTexWave(ShaderNode)

base classes — [`bpy_struct`](bpy.types.bpy_struct.html#bpy.types.bpy_struct "bpy.types.bpy_struct"), [`Node`](bpy.types.Node.html#bpy.types.Node "bpy.types.Node"), [`NodeInternal`](bpy.types.NodeInternal.html#bpy.types.NodeInternal "bpy.types.NodeInternal"), [`ShaderNode`](bpy.types.ShaderNode.html#bpy.types.ShaderNode "bpy.types.ShaderNode")

*class* bpy.types.ShaderNodeTexWave(*ShaderNode*)
:   Generate procedural bands or rings with noise

    bands_direction
    :   - `X`
          X – Bands across X axis.
        - `Y`
          Y – Bands across Y axis.
        - `Z`
          Z – Bands across Z axis.
        - `DIAGONAL`
          Diagonal – Bands across diagonal axis.

        Type:
        :   enum in [`'X'`, `'Y'`, `'Z'`, `'DIAGONAL'`], default `'X'`

    color_mapping
    :   Color mapping settings

        Type:
        :   [`ColorMapping`](bpy.types.ColorMapping.html#bpy.types.ColorMapping "bpy.types.ColorMapping"), (readonly, never None)

    rings_direction
    :   - `X`
          X – Rings along X axis.
        - `Y`
          Y – Rings along Y axis.
        - `Z`
          Z – Rings along Z axis.
        - `SPHERICAL`
          Spherical – Rings along spherical distance.

        Type:
        :   enum in [`'X'`, `'Y'`, `'Z'`, `'SPHERICAL'`], default `'X'`

    texture_mapping
    :   Texture coordinate mapping settings

        Type:
        :   [`TexMapping`](bpy.types.TexMapping.html#bpy.types.TexMapping "bpy.types.TexMapping"), (readonly, never None)

    wave_profile
    :   - `SIN`
          Sine – Use a standard sine profile.
        - `SAW`
          Saw – Use a sawtooth profile.
        - `TRI`
          Triangle – Use a triangle profile.

        Type:
        :   enum in [`'SIN'`, `'SAW'`, `'TRI'`], default `'SIN'`

    wave_type
    :   - `BANDS`
          Bands – Use standard wave texture in bands.
        - `RINGS`
          Rings – Use wave texture in rings.

        Type:
        :   enum in [`'BANDS'`, `'RINGS'`], default `'BANDS'`

    *classmethod* is_registered_node_type()
    :   True if a registered node type

        Returns:
        :   Result

        Return type:
        :   boolean

    *classmethod* input_template(*index*)
    :   Input socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

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

    *classmethod* output_template(*index*)
    :   Output socket template

        Parameters:
        :   **index** (*int in* *[**0**,* *inf**]*) – Index

        Returns:
        :   result

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

    *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