ID 233197 - ScenegraphXML: Channel data not loaded when `channelData` element has its `ref` attribute set to the empty string

Follow

Problem summary:

The ScenegraphXML format allows channel data to be specified in <channelData> XML elements. These elements can have ref attributes that control the filesystem prefix where the channel XML files can be found. The files are looked up by taking this prefix and appending .chan.0001.xml (for frame 1). The prefix can be an absolute path or a relative one (where it is taken to be relative to the base directory of the main XML file).

As of 2.5v1, setting ref="" does not behave correctly. Say we're at frame 1 and have a ScenegraphXML file /tmp/base.xml:

  • Not setting ref looks up channel data in /tmp/base.chan.0001.xml
  • Setting ref="hello" looks up channel data in /tmp/hello.chan.0001.xml
  • Setting ref="" should look up channel data in /tmp/.chan.0001.xml, but as of 2.5v1 looks it up at /tmp.chan.0001.xml

Steps to reproduce:

  1. Unpack scenegraphXmlRefRepro.tar.gz (attached)
  2. In your terminal, change to the directory containing the project and open Katana
  3. Open the project at frame 1
  4. Expand the scene graph and select /root/world/geo/scene/rings. Look at the attributes tab.

Expected behaviour:

  • The 'bound' attribute reads [-1.01579192441, 3.45849241, -0.896512183418, 7.76422422605, -12.9450865308, -8.49208199116]
  • The 'xform' attribute is the identity matrix

Actual behaviour:

  • The 'bound' attribute is entirely zeros
  • The 'xform' attribute is entirely zeros

Workaround:

Use another prefix for channel data

Reproduced versions/platforms:

  • 2.5v1/Linux

Customer version/platform:

2.5v3

    We're sorry to hear that

    Please tell us why