Terminology
===========

NDK
---

The NDK is the NUKE Developer Kit, and is in essence NUKE's C++ low level SDK. NUKE additionally supports the OFX API, which it outside of the scope of this document.

Op
--

An Operator, or Op in NUKE terminology. is the engine which does the image processing work inside of NUKE. Ops are decoupled from Nodes (see below). Ops are generally built as shared libraries and are loaded dynamically by NUKE as required. Some Op's are built directly into NUKE itself to allow access to functionality beyond that offered by the NDK. See :ref:`intro-fundamentalconcepts-nodesvsops` for further information.

Node
----

A Node is the object which represents the image processing operations inside of NUKE. A node can build one or more Ops underneath the hood to do the image/3d processing work. See :ref:`intro-fundamentalconcepts-nodesvsops` for further information.

Direct Acyclic Graph (DAG)/Nodegraph
------------------------------------

The Nodegraph or DAG is the U element in which nodes (and thus their underlying Ops) are strung together.

Knobs
-----

Knobs in NUKE manage the UI elements seen in the param panel and viewer opengl handles, plus the data storage responsible for reading and writing to the NUKE script file. See the Knobs section :ref:`knobs-intro` for more information.

Plug-in
-------

Inside of NUKE a plug-in is generally used as another term for Op. Often used to refer to third party bundles of Ops.

Channel
-------

A channel in NUKE is a fundamental concept of the 2D system. It essentially wraps planes of images, to allow multiple such planes to be passed between ops (at time of writing up to 1023). See the :ref:`2d-architecture` section's :ref:`2d-channels` section for more information.

Region of Interest
------------------

The Region of Interest, or ROI, of an Op is a 2d concept related to the area of pixels on the Op's input which it is 'interested' in, or in other words, which pixels it needs from its input in order to generate its output. See the :ref:`2d-architecture` section's :ref:`2d-formats-bboxes` section for more information.

Region of Definition
--------------------

The Region of Interest, or ROI, of an Op is a 2d concept defining what area of pixels an Op is going to generate for a specific configuration. See the :ref:`2d-architecture` section's :ref:`2d-formats-bboxes` section for more information.

Format
------

The format of a 2d image stream is the end goal size for that image. It does not define what area of pixels may be processed, simply what the likely target size for the processing is likely to be when written out or viewed. It is often used to allow the user to clip the area of pixels processed to a sensible size, in, for example, the circumstance where an image generating Op can create a plane of pixels of an arbitrary size (eg a Noise operator). See the :ref:`2d-architecture` section's :ref:`2d-formats-bboxes` section for more information.

Bounding Box (bbox)
-------------------

The bounding box, or bbox, of an operator is essentially the size of the image plane it'll generate for the current configuration - essentially the same as it's Region of Definition. See the :ref:`2d-architecture` section's :ref:`2d-formats-bboxes` section for more information.

Pixel
-----

A Pixel in NUKE terms is a class for managing a single pixel across multiple channels and storing it in memory.

Interest
--------

An Interest in NUKE terms is a class for locking a plane of pixels into memory.

Tile
----

A Tile in NUKE terms is a class for locking a plane of pixels into memory, similar to an Interest, but also allowing the image data to be forcibly processed at that point in time.


