{
  "className": "ScriptOp",
  "displayName": "ScriptOp",
  "description": "The ScriptOp class represents script operators in TouchDesigner (Script CHOP, Script DAT, Script SOP, Script TOP), providing specialized functionality for each script operator type.",
  "url": "https://docs.derivative.ca/Script_Operators",
  "members": [
    {
      "name": "scriptType",
      "description": "The type of script operator (CHOP, DAT, SOP, TOP)",
      "readonly": false
    },
    {
      "name": "callbacks",
      "description": "Dictionary of registered callback functions for the script",
      "readonly": false
    },
    {
      "name": "inputs",
      "description": "List of input operators connected to this script operator",
      "readonly": false
    },
    {
      "name": "outputs",
      "description": "List of output operators connected from this script operator",
      "readonly": false
    },
    {
      "name": "cook_params",
      "description": "Parameters available during the cook process",
      "readonly": false
    }
  ],
  "methods": [
    {
      "name": "cook",
      "description": "Main cooking function called when the operator needs to process data",
      "signature": "cook(input_data)",
      "parameters": [
        {
          "name": "input_data",
          "type": "Any",
          "description": "Input data to be processed, varies by operator type"
        }
      ],
      "returns": "Processed data"
    },
    {
      "name": "onSetupParameters",
      "description": "Called to set up custom parameters for the script operator",
      "signature": "onSetupParameters(op)",
      "parameters": [
        {
          "name": "op",
          "type": "OP",
          "description": "The operator to set up parameters for"
        }
      ],
      "returns": "None"
    },
    {
      "name": "onPulse",
      "description": "Called when a pulse parameter is triggered",
      "signature": "onPulse(par)",
      "parameters": [
        {
          "name": "par",
          "type": "Par",
          "description": "The parameter that was pulsed"
        }
      ],
      "returns": "None"
    },
    {
      "name": "onValueChange",
      "description": "Called when a parameter value changes",
      "signature": "onValueChange(par, prev)",
      "parameters": [
        {
          "name": "par",
          "type": "Par",
          "description": "The parameter that changed"
        },
        {
          "name": "prev",
          "type": "Any",
          "description": "The previous value of the parameter"
        }
      ],
      "returns": "None"
    },
    {
      "name": "onInputChange",
      "description": "Called when an input connection changes",
      "signature": "onInputChange(input_index)",
      "parameters": [
        {
          "name": "input_index",
          "type": "int",
          "description": "Index of the input that changed"
        }
      ],
      "returns": "None"
    },
    {
      "name": "onDestroy",
      "description": "Called when the script operator is being destroyed",
      "signature": "onDestroy()",
      "returns": "None"
    },
    {
      "name": "reset",
      "description": "Reset the script operator to its initial state",
      "signature": "reset()",
      "returns": "None"
    }
  ],
  "examples": [],
  "source": "stub"
}