@Override public Collection<HasLocalTransform> getTargets() { List<HasLocalTransform> targets = new ArrayList<>(clip.getTracks().length); for (AnimTrack track : clip.getTracks()) { if (track instanceof TransformTrack) { targets.add(((TransformTrack) track).getTarget()); } } return targets; }
private void interpolateTransformTrack(double t, TransformTrack track) { HasLocalTransform target = track.getTarget(); transform.set(target.getLocalTransform()); track.getDataAtTime(t, transform); if (collectTransformDelegate != null) { collectTransformDelegate.collectTransform(target, transform, getWeight(), this); } else { this.collectTransform(target, transform, getTransitionWeight(), this); } } private void interpolateMorphTrack(double t, MorphTrack track) {
@Override public void doInterpolate(double t) { AnimTrack[] tracks = clip.getTracks(); for (AnimTrack track : tracks) { if (track instanceof TransformTrack) { TransformTrack tt = (TransformTrack) track; if(getMask() != null && !getMask().contains(tt.getTarget())){ continue; } interpolateTransformTrack(t, tt); } else if (track instanceof MorphTrack) { interpolateMorphTrack(t, (MorphTrack) track); } } }