uncacheRoot method

void uncacheRoot(
  1. dynamic root
)

Deallocates all memory resources for a root object. Before using this method make sure to call AnimationAction.stop for all related actions or alternatively stopAllAction when the mixer operates on a single root.

Implementation

void uncacheRoot(root) {
  final rootUuid = root.uuid;
  final actionsByClip = this.actionsByClip;

  // for ( final clipUuid in actionsByClip ) {
  actionsByClip.forEach((clipUuid, value) {
    final actionByRoot = actionsByClip[clipUuid]['actionByRoot'],
        action = actionByRoot[rootUuid];

    if (action != null) {
      deactivateAction(action);
      _removeInactiveAction(action);
    }
  });

  final bindingsByRoot = bindingsByRootAndName,
      bindingByName = bindingsByRoot[rootUuid];

  if (bindingByName != null) {
    for (String trackName in bindingByName.keys) {
      final binding = bindingByName[trackName];
      if(binding != null){
        binding.restoreOriginalState();
        _removeInactiveBinding(binding);
      }
    }
  }
}