===========
Change List
===========

This section lists a set of high-level changes made to the Katana USD Plug-ins compared to the version shipped with the Pixar USD codebase on GitHub.

1) Node Type Names
    a) Removed the :kat:node:`Pxr` prefix from the node type names to make them match Katana naming conventions, eg. :kat:node:`UsdIn` instead of :kat:node:`PxrUsdIn`. See `Table of Name Changes`_.
2) Op Type Names
    a) In addition to changing the node type names, we also changed the name of the Op types to ensure we don't clash with externally-built Katana USD Plug-ins.
3) Attributes
    a) A list of changes to attributes can be found in the :ref:`Attribute_Changes` page.
4) CMake
    a) Added a `Support.cmake` file to support the Pixar macro usage in build scripts.
    b) Created a root `CMakeLists.txt` in order to replace the USD core `CMakeLists.txt`.
    c) Ensured the CMake builds work on Windows and Linux with Katana's `fnUsd` libraries.
    d) Using CMake configurations over absolute library paths for portability.
5) General Code
    a) Added `Bootstrap` to both `vmp` and `usdKatana` libraries to set up Katana plug-ins.
    b) Changed use of `std::regex` to `boost::regex` due to issues with GCC 4.8.x and C++11 `std::regex`.
    c) Patched issues with builds on Visual Studio 15.
    d) Modified `vtKatana` library to export `long` data type.
    e) Removed deprecated code support for RenderMan coshaders.
    f) Removed deprecated code for the USD `VMP`.
    g) Removed header files which were no longer used in `KatanaPluginApi`.
    h) Added support for flushing of caches to UsdIn Op type (was previously taken care of by removed USD VMP - see f)).
6) Updated Apache 2.0 licenses and added `NOTICE.txt`.
7) Updated `README.md` and added `BUILDING.md`.
8) Default Options
    a) Updated the default option for `USD_ABC_WRITE_UV_AS_ST_TEXCOORD2FARRAY` to be "true" from "false", to ensure the USD Alembic plug-in imports uv attributes into the st arbitrary attribute location; matching the behavior of :kat:node:`Alembic_In` nodes.
9) Our plug-in uses `fnpxr` python modules.

Table of Name Changes
---------------------

.. csv-table:: Node Types
    :header: "Original Node Type Name", "New Node Type Name"
    :widths: 30, 30

    :kat:node:`PxrUsdIn`, :kat:node:`UsdIn`
    :kat:node:`PxrUsdInActivationSet`, :kat:node:`UsdInActivationSet`
    :kat:node:`PxrUsdInAttributeSet`, :kat:node:`UsdInAttributeSet`
    :kat:node:`PxrUsdInDefaultMotionSamples`, :kat:node:`UsdInDefaultMotionSamples`
    :kat:node:`PxrUsdInIsolate`, :kat:node:`UsdInIsolate`
    :kat:node:`PxrUsdInMotionOverrides`, :kat:node:`UsdInMotionOverrides`
    :kat:node:`PxrUsdInVariantSelect`, :kat:node:`UsdInVariantSelect`

.. csv-table:: Op Types
    :header: "Original Op Type Name", "New Op Type Name"
    :widths: 30, 30

    PxrUsdIn, UsdIn
    USDVMP, FnUSDVMP

.. csv-table:: Other
    :header: "Original Name", "New Name", "Details"
    :widths: 30, 30, 40

    PxrUsdInUtilExtraHintsDap, UsdInUtilExtraHintsDap, "UI tool"
    pxrUsdIn_argsCookTmpKey, UsdIn_argsCookTmpKey, "Cook temp key"
    PxrUsdInPrman_LocationDecorator, UsdInPrman_LocationDecorator, "Locator"
