# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]
## [1.48.3] - 2022-12-02
### Fixed
- Forces WriteVariable to actually write the array value to the variable location, and bypass CoW

## [1.48.2] - 2022-11-07
### Fixed
- Fix for bug in state initialization for GatherByPath, FindPrims

## [1.48.1] - 2022-11-03
### Fixed
- Fixes WritePrimAttribute not loading correctly if inputs have auto-conversion

## [1.48.0] - 2022-10-18
### Added
- ReadStageSelection, IsPrimSelected

## [1.47.0] - 2022-10-08
### Changed
- Remove omni.graph.nodes.Generate3dText

## [1.46.0] - 2022-09-30
### Changed
- `ToString` no longer adds enclosing quotes for uchar[] inputs.

## [1.45.1] - 2022-09-28
### Fixed
- Obsolete test for builtin nodes

## [1.45.0] - 2022-09-26
### Changed
- GetPrimPath returns a 'path' type as well as a token

## [1.44.0] - 2022-09-21
### Added
- New node ToUint64

## [1.43.1] - 2022-09-13
### Fixed
- Don't force FC to eject the prim every time we add another attribute.

## [1.43.0] - 2022-09-01
### Added
- EndsWith, StartsWith

## [1.42.0] - 2022-08-24
### Changed
- Added the ability to force USD read in read nodes
- Added the ability to choose whether or not write nodes should write back to USD

## [1.41.2] - 2022-08-15
### Changed
- Read Prim Into Bundle value changes of Add Target parameter did not trigger node computation

## [1.41.1] - 2022-08-11
### Changed
- Added support for tuples and arrays to Ceil & Floor nodes

## [1.41.0] - 2022-08-11
### Added
- Path inputs to transformation nodes

## [1.40.1] - 2022-08-09
### Fixed
- Applied formatting to all of the Python files

## [1.40.0] - 2022-08-09
### Changed
- Removed omni.graph.scriptnode dependency

## [1.39.0] - 2022-08-04
### Added
- Added Ceil node

## [1.38.0] - 2022-08-03
### Added
- BundleInspector returns number of child bundles.

## [1.37.4] - 2022-08-03
### Fixed
- Handling of compatible types in the Make Array node and error with saving and loading

## [1.37.3] - 2022-07-28
### Fixed
- Handling of token and string input in the Compare node

## [1.37.2] - 2022-07-27
### Changed
- WritePrimAttribute to accommodate property panel fix

## [1.37.1] - 2022-07-25
### Fixed
- All of the lint errors reported on the Python files in this extension

## [1.37.0] - 2022-07-20
### Changed
- Added requiredRelationship feature to FindPrims

## [1.36.0] - 2022-07-14
### Changed
- Added +/- icons to Make Array

## [1.35.0] - 2022-07-07
### Changed
- Refactored imports from omni.graph.tools to get the new locations
### Added
- Test for public API consistency

## [1.34.1] - 2022-07-06
### Changed
- Prevent the re-setup of the ReadPrimAttribute and WritePrimAttribute each frame, and only re-do it when necessary

## [1.34.0] - 2022-07-05
### Added
- Added dynamic version of MakeArray node replacing the previous fixed version

## [1.33.1] - 2022-06-30
### Changed
- Convert CrossProduct node to C++

## [1.33.0] - 2022-06-29
### Added
- Added OgnReadSetting and OgnWriteSetting nodes.

## [1.32.0] - 2022-06-29
### Changed
- Added several new constant nodes

## [1.31.0] - 2022-06-24
### Changed
- Moved ReadMouseState into omni.graph.ui

## [1.30.3] - 2022-06-21
### Changed
- Convert DotProduct node to C++

## [1.30.2] - 2022-06-16
### Changed
- Now using the new write-back mechanism for nodes that should write back to USD

## [1.30.1] - 2022-06-15
### Changed
- Refactored compute algorithm to find the correct type faster

## [1.28.0] - 2022-05-31
### Added
- Nodes for vertex deformation using gpu interop and pre-render evaluation

## [1.30.0] - 2022-06-13
### Added
- Added OgnReadPrimMaterial node and OgnWritePrimMaterial node
- Added UsdShade to dependencies

## [1.29.0] - 2022-06-06
### Added
- Added ReadOmniGraphValue node

## [1.28.0] - 2022-05-30
### Added
- Added logic directory for logical operators
- Added boolean operator nodes in logic which support array and bool array inputs

### Changed
- Soft deprecated (via metadata:hidden) OgnBooleanExpr in favour of the new individual logical nodes
- Moved OgnBooleanExpr to logic directory
- Moved OgnBooleanNot to logic from math and renamed it to OgnNot to match the new naming convention
- Updated OgnBooleanNot to take bool or bool array input instead of just bool, to match the new logical operator nodes

## [1.27.3] - 2022-05-27
### Removed
- Some useless dependencies/visibility to PathToAttributeMap

## [1.27.2] - 2022-05-19
- Converted ToDouble to C++

## [1.27.1] - 2022-05-18
### Changed
- Converted Array Manipulation Nodes from python to C++.

## [1.27.0] - 2022-05-18
### Added
- Added OgnNegate node that multiplies input by -1

## [1.26.2] - 2022-05-16
### Fixed
- ReadPrimBundle/Attribute not correctly export the bounding box when asked to
- Fixed and Re-activated the test that exercises this feature

## [1.26.1] - 2022-05-16
### Fixed
- ToToken no longer appends quote characters to a converted string

## [1.26.0] - 2022-05-11
### Added
- ExtractBundle node: "explode" a bundle content into individual dynamic attributes
### Changed
- ReadPrimBundle/ReadPrimAttribute/WritePrim/WritePrimAtribute now uses OG ABI instead of direct Fabric access
- ReadPrim is using functionnality of ReadPrimBundle and ExtractBundle
- RemoveAttribute is using OGN wrapper instead of direct ABI access

## [1.25.4] - 2022-05-05
### Changed
- Converted OgnArraySetIndex node from python to C++.

## [1.25.3] - 2022-05-05
### Fixed
- Fixed string input for SelectIf node

## [1.25.2] - 2022-05-05
### Fixed
- Read/WritePrimAttribute will now issue error messages when `usePath` is true and attribute is not found.

## [1.25.1] - 2022-05-03
### Changed
- Converted OgnMagnitude node from python to C++.
- Converted OgnDivide node from python to C++.
- Converted OgnRound node from python to C++.

## [1.25.0] - 2022-05-02
### Changed
- Converted OgnToString, OgnToToken, OgnToFloat, OgnClamp to cpp
- MakeVector2/3/4 will now auto-resolve inputs when at least one input is resolved

## [1.24.0] - 2022-04-29
### Removed
- Obsolete tests
### Changed
- Made tests derive from OmniGraphTestCase

## [1.23.3] - 2022-04-28
### Changed
- Converted OgnSubtract node from python to C++.

## [1.23.2] - 2022-04-27
### Fixed
- Fixed bug in Distance3D, InvertMatrix and Round nodes

## [1.23.1] - 2022-04-26
### Fixed
- Fixed bug in MakeTransform node

## [1.23.0] - 2022-04-21
### Added
- GraphTarget node that retrieves the path of instance being run

## [1.22.0] - 2022-04-14
### Added
- Changed OgnTrig node into cpp node
- Broke OgnTrig node by operation

## [1.21.4] - 2022-04-18
### Changed
- Added support for more characters to Generate3dText

## [1.21.3] - 2022-04-12
### Fixed
- Fixed a bug in GetLookAtRotation and GetLocationAtDistanceOnCurve nodes

## [1.21.2] - 2022-04-08
### Changed
- Changed Compose/Decompose Tuple to Make/Break Vector for those nodes and make them C++ nodes

## [1.21.1] - 2022-04-11
### Fixed
- Generate3dText node

## [1.21.0] - 2022-04-05
### Added
- Added Generate3dText node

## [1.20.1] - 2022-04-08
### Added
- Added absoluteSimTime output attribute to the ReadTime node

## [1.20.0] - 2022-04-05
### Added
- Noise node

## [1.19.2] - 2022-04-06
### Added
- Added Normalize node

## [1.19.1] - 2022-04-03
### Fixed
- RotateToOrientation bug, Maneuver node bugs with varying target input.

## [1.19.0] - 2022-03-30
### Added
- WriteVariable value output port

## [1.18.4] - 2022-03-31
### Fixed
- Fixed crash when copying bundle with empty points attribute

## [1.18.3] - 2022-03-23
### Added
- Tests for maneuver nodes

## [1.18.3] - 2022-03-21
-- Revive functionnality from 1.16.1 with different approach

## [1.18.2] - 2022-03-18
### Fixed
- Naming of constant nodes

## [1.18.1] - 2022-03-16
### Fixed
- Bug in MoveToTransform

## [1.18.0] - 2022-03-14
### Added
- Added MakeTransformLookAt node.

## [1.17.1] - 2022-03-11
- Revert changes of 1.16.1

## [1.17.0] - 2022-03-10
### Added
- Added _outputs::shiftOut_, _outputs::ctrlOut_, _outputs::altOut_ to _ReadKeyboardState_ node.

## [1.16.1] - 2022-03-07
### Fixed
- ReadPrimBundle/ReadPrimAttribute can now use a usd time code at which to import the prim/attribute
- ReadPrimBundle now outputs its transform and BBox

## [1.16.0] - 2022-03-01
### Added
- *bundle_test_utils.BundleResultKeys*
- *bundle_test_utils.prim_with_everything_definition*
- *bundle_test_utils.get_bundle_with_all_results*
- *bundle_test_utils.bundle_inspector_results*
- *bundle_test_utils.verify_bundles_are_equal*
- *bundle_test_utils.filter_bundle_inspector_results*
### Fixed
- Made bundle tests and utility node tests use the Controller
- GatherByPath, add checkResyncAttributes attribute
### Changed
- Deprecated old bundle test utilities that relied on USD save/read and OmniGraphHelper for functioning
- Updated some tests to use OmniGraphTestCase

## [1.15.0] - 2022-02-17
### Fixed
- added a "path"" constant node

## [1.15.0] - 2022-02-15
### Changed
- WritePrim node now uses GPU arrays for points

## [1.14.0] - 2022-02-15
### Fixed
- added a dependency on omni.graph.scriptnode

## [1.13.2] - 2022-02-14
### Fixed
- add additional extension enabled check for omni.graph.ui not enabled error

## [1.13.2] - 2022-02-14
### Fixed
- MoveToTarget, RotateToTarget etc bug with float, half precision XformOp

## [1.13.1] - 2022-02-13
### Fixed
- ReadPrimBundle, ReadPrim now support token[] attributes

## [1.13.0] - 2022-02-11
### Added
- ReadVariable and WriteVariable nodes

## [1.12.3] - 2022-02-10
### Fixed
- Fixed MoveToTarget, MoveToTransform, RotateToTarget, GetPrimDirectionVector, GetMatrix4Quaternion and GetLocationAtDistanceOnCurve nodes behaviour when rotation is scaled

## [1.12.2] - 2022-02-07
### Fixed
- Fixed ArrayRotate, Compare, and SelectIf nodes behaviour when input was a token

## [1.12.1] - 2022-02-04
### Fixed
- RotateToOrientation, MoveToTransform attrib docs

## [1.12.0] - 2022-01-31
### Added
- Added shouldWriteBack input flag to GatherByPath node
### Fixed
- Fixed duplicate path behaviour for gather nodes

## [1.11.0] - 2022-01-27
### Added
- Added IsPrimActive node
- Added BooleanNot

## [1.10.1] - 2022-01-28
### Fixed
- spurious error message when creating _ReadPrim_
- updated extension doc

## [1.10.0] - 2022-01-27
### Added
- added ReadMouseState node

## [1.9.2] - 2022-01-28
### Modified
- added three test cases for NthRoot node

## [1.9.1] - 2022-01-24
### Fixed
- categories for several nodes

## [1.9.0] - 2022-01-19
### Added
- Added constant Pi node which will output a constant Pi or its multiple
- Added Nth Root node which will calculate the nth root of inputs

## [1.8.0] - 2022-01-17
### Added
- Added sets of tryCompute (including for arrays and tuples) functions to allow one non-runtime attribute input when two inputs
- Added Increment Node

## [1.7.1] - 2022-01-11
### Changed
- Changed token names in ReadGamepadState node
- Fixed incorrect default token in ReadGamepadState node

## [1.7.0] - 2022-01-10
### Added
- Added GetPrimDirectionVector node

## [1.6.0] - 2022-01-07
### Added
- Added ReadGamepadState node

## [1.5.3] - 2022-01-06
### Changed
- Categories added to all nodes

## [1.5.2] - 2022-01-05
### Modified
- _ReadPrimBundle_ and _ReadPrim_ now have a _sourcePrimPath_ bundle attribute which contains
  the path of the Prim being read.

## [1.5.1] - 2021-12-30
### Changed
- _ArrayIndex_ converted to C++, _AppendString_ now supports string inputs

## [1.5.0] - 2021-12-20
### Added
- Added _ReadTime_ and moved _GetLookAtRotation_ from _omni.graph.action_
## [1.4.0] - 2021-12-17
### Added
- Added ReadKeyboardState node

## [1.3.0] - 2021-12-02
### Added
- UI templates for Read/WritePrimAttribute nodes
### Changed
- Read/WritePrimAttribute nodes usePath attribute now defaults to False
## [1.2.2] - 2021-11-24
### Changed
- Prevented some problematic attributes from being exposed by ReadPrimAttributes and WritePrimAttributes
## [1.2.1] - 2021-11-19
### Changed
- Bug fix for ReadPrimAttributes
## [1.2.0] - 2021-11-04
### Added
- TransformVector
- RotateVector
### Changed
- Multiply: Support adding scalars to tuples
- Add: Support adding scalars to tuples
- MatrixMultiply: Support matrix * vector as well as matrix * matrix
### Moved
- OgnAdd2IntegerArray: Moved to omni.graph.test (deprecated by Add)
- OgnMultiply2IntegerArray: Moved to omni.graph.test (deprecated by Multiply)

## [1.1.0] - 2021-10-17
### Added
- PrimRead, PrimWrite

## [1.0.0] - 2021-03-01
### Initial Version
- Started changelog with initial released version of the OmniGraph core
