/** * Default constructor */ protected AbstractGltfViewer() { this.beforeRenderTasks = Collections.synchronizedList( new ArrayList<Runnable>()); this.renderedGltfModels = new LinkedHashMap<GltfModel, RenderedGltfModel>(); this.gltfModels = new ArrayList<GltfModel>(); this.animationManager = GltfAnimations.createAnimationManager(AnimationPolicy.LOOP); this.animationManager.addAnimationManagerListener(a -> { triggerRendering(); }); this.animationRunner = new AnimationRunner(animationManager); this.modelAnimations = new LinkedHashMap<GltfModel, List<Animation>>(); setAnimationsRunning(true); }