parseImages method

dynamic parseImages()

Implementation

parseImages() {
  var images = {};
  var blobs = {};

  if (fbxTree.Objects["Video"] != null) {
    var videoNodes = fbxTree.Objects["Video"];

    for (var nodeID in videoNodes.keys) {
      var videoNode = videoNodes[nodeID];

      var id = parseInt(nodeID);

      images[id] = videoNode["RelativeFilename"] ?? videoNode["Filename"];

      // raw image data is in videoNode.Content
      if (videoNode["Content"] != null) {
        // var arrayBufferContent = ( videoNode["Content"] is ArrayBuffer ) && ( videoNode["Content"].byteLength > 0 );
        var arrayBufferContent = (videoNode["Content"] is TypedData) &&
            (videoNode["Content"].byteLength > 0);
        var base64Content =
            (videoNode["Content"] is String) && (videoNode["Content"] != '');

        if (arrayBufferContent || base64Content) {
          var image = this.parseImage(videoNodes[nodeID]);

          blobs[videoNode.RelativeFilename ?? videoNode.Filename] = image;
        }
      }
    }
  }

  for (var id in images.keys) {
    var filename = images[id];

    if (blobs[filename] != null)
      images[id] = blobs[filename];
    else
      images[id] = images[id].split('\\').removeLast();
  }

  return images;
}