0.48.0.0
Features
Viewer : The 3D viewer now updates asynchronously, keeping the UI responsive while the scene is computed in the background (#2649).
AnimationEditor : Added a new editor to allow the graphical editing of animation curves. This can be found on the tab next to the GraphEditor in the standard layouts (#2632).
DeleteObject node (#2694).
CopyAttributes node (#2710).
Improvements
TranslateTool : Added handles for movement in the XY,XZ,YZ and camera planes (#2709).
-
Added “Default/…” menu items to allow the default startup layout to be chosen.
Added new “Save As/…” menu items to allow previously saved layouts to be replaced.
SceneInspector (#2607) :
Added filter to sets sections.
Moved set computations to background process, so they don’t block the UI.
Shader : Improved performance (#2644).
ArnoldLightUI : Added support for “userDefault” parameter metadata. This matches the format already in use for ArnoldShaderUI (#2646).
Viewer :
ArnoldAttributes :
FormatPlug : Made “Custom” mode persistent, so it is remembered across save and reload (#2660).
InteractiveRender : Removed unnecessary deletion and recreation of objects when
childNameschanges (#2690, #2649).
Fixes
GraphEditor :
LocalDispatcher/TractorDispatcher : Fixed problems using
imathcontext variables (#2653, #2654).OSLObject : Fixed crashes caused by indexed primitive variables (#2655).
Viewer : Fixed visibility of children of look-through camera (#2694).
ObjectSource : Fixed transform.* -> out.bound dirty propagation (#2649).
API
SceneGadget :
RenderController : Added new utility class for controlling interactive renders (#2649).
AnimationGadget : Added new Gadget for editing animation curves (#2632).
Animation (#2632) :
Keys are now reference counted, so ownership can be shared between CurvePlugs and the AnimationEditor.
Keys may be edited in place with
key->setTime()etc, and the CurvePlug automatically updates.CurvePlug::keys()has been replaced withCurvePlug::begin()andCurvePlug::end(). This hides the internal choice of container while still providing iteration.Added optional
thresholdargument toclosestKey().
IECoreScenePreview::Renderer (#2649) :
Added
command()virtual method.Added
name()virtual method.
IECoreGLPreview::OpenGLRenderer (#2649) :
Made it possible to call
render()concurrently with edits.Added support for highlighting selected objects.
Added “gl:queryBound” command.
Added “gl:querySelection” command.
Added support for custom object and attribute visualisers.
Added options for controlling base attributes.
PresetsPlugValueWidget : Added support for an optional “Custom” menu item, which allows the user to enter an arbitary value. This is controlled by “presetsPlugValueWidget:allowCustom” plug metadata (#2660).
BusyWidget : Added
busyconstructor argument (#2607).LightTweaks (#2660) :
Moved TweakPlug to the GafferScene namespace, so it can be reused by other nodes.
Added “Remove” mode.
Layouts (#2698) :
Added
persistentargument toadd()method, mirroring theBookmarks.add()API. This automatically takes care of saving persistent layouts into the startup location.Added
setDefault()/getDefault()andcreateDefault()methods to allow the management of a default layout.
Handle (#2709) :
Added
set/getVisibleOnHover()methods.Added
PlanarDragaxis accessors.
TranslateHandle (#2709) :
Added
axisMask()method.
FilteredSceneProcessor : Added constructor to allow array
inPlug().Style :
ViewportGadget : Added
set/getVariableAspectZoom()method (#2632).
Build
Breaking Changes
GafferSceneUI : Moved visualiser base classes to IECoreGLPreview (#2649).
ArnoldAttributes : Changed volume step attributes (#2634).
GafferImage : Removed FormatPlug compatibility for files saved in Gaffer 0.16 or older. To migrate, resave the file in Gaffer 0.47 (#2682).
GafferOSL::ShadingEngine : Removed
scopeparameter fromneedsAttribute()(#2655).Layouts (#2698) :
Removed
save()method. Use thepersistentargument toadd()andsetDefault()instead.Added
applicationRootargument to constructor. You should useacquire()instead anyway.
LayoutMenu : Removed
delete()method (#2698).GUI config : Renamed standard layout from “Default” to “Standard” (#2698).
TranslateHandle : translation()` method now returns a V3f rather than a float (#2709).
TransformTool : Made
orientedTransform()method const (#2709).Style : Changed method signatures, enum values, and added virtual functions (#2632).
Animation : Refactored API. See API section for more details (#2632).
IECoreScenePreview::Renderer : Added virtual methods (#2649).
InteractiveRender : Added and removed private member data (ABI break) (#2649).
SceneGadget (#2649) :
Added/removed private members (ABI break).
Remove
baseState().
SceneView : Reorganised/simplified drawingMode plugs (#2649).