diff --git a/Changes.md b/Changes.md index b082ec7510..7332b6eb5b 100644 --- a/Changes.md +++ b/Changes.md @@ -20,7 +20,7 @@ Fixes - UVInspector : Fixed `Unable to find ScriptNode for UVView` warnings. - Scene Editors : Fixed update when ScenePlugs are added to or removed from the node being viewed. - PrimitiveInspector : Fixed failure to update when the location being viewed ceases to exist, or is recreated. -- Shuffle : Fixed some special cases where shuffling a channel to itself would fail to have the expected effect. +- Shuffle, ShuffleAttributes, ShufflePrimitiveVariables : Fixed some special cases where shuffling a source to itself would fail to have the expected effect. API --- @@ -41,6 +41,7 @@ Breaking Changes - TweakPlugValueWidget : Removed support for `tweakPlugValueWidget:allowCreate` and `tweakPlugValueWidget:allowRemove` metadata. - Editor : Removed arguments from `Settings` constructor. - Unpremultiply : Removed `image:channelName` from the context used to evaluate the `alphaChannel` plug. +- Shuffle, ShuffleAttributes, ShufflePrimitiveVariables : Changed behaviour when shuffling a source to itself. 1.4.x.x (relative to 1.4.8.0) ======= diff --git a/include/Gaffer/ShufflePlug.inl b/include/Gaffer/ShufflePlug.inl index c26b3b955b..702b48d89c 100644 --- a/include/Gaffer/ShufflePlug.inl +++ b/include/Gaffer/ShufflePlug.inl @@ -80,11 +80,11 @@ T ShufflesPlug::shuffleInternal( const T &sourceContainer, const T *extraSources // multiple source names and write to multiple destination names, therefore each // shuffle specifies a set of data "moves". As each shuffle's set of moves is // unordered, moves with the same destination name eg. {a->c, b->c} are invalid. - // Identity moves eg. {a->a, b->b} are ignored. Cyclic moves eg. {a->b, b->a} and - // chained moves eg. {a->b, b->c} are valid as data is always copied from the source - // container. If the delete source flag is specified for a shuffle the source names - // are deleted after all shuffles have completed. If the replace destination flag is - // false for a shuffle each move will not replace data with the same name as its destination. + // Cyclic moves eg. {a->b, b->a} and chained moves eg. {a->b, b->c} are valid as + // data is always copied from the source container. If the delete source flag is + // specified for a shuffle the source names are deleted after all shuffles have + // completed. If the replace destination flag is false for a shuffle each move will + // not replace data with the same name as its destination. T destinationContainer( sourceContainer ); // NOTE : initial copy of all source data to destination.