public Animation cloneForSpatial(Spatial spat) {
        try {
            Animation result = (Animation) super.clone();
            result.tracks = new SafeArrayList<>(Track.class);
            for (Track track : tracks) {
                if (track instanceof ClonableTrack) {
                    result.tracks.add(((ClonableTrack) track).cloneForSpatial(spat));
                } else {
                    result.tracks.add(track);
                }
            }
            return result;
        } catch (CloneNotSupportedException e) {
            throw new AssertionError();
        }
    }
@param spat the Spatial to clone for
@return a new instance
jme3-core/src/main/java/com/jme3/animation/Animation.java