Would it be possible for AnimControl to be made non-final

I have a , admittedly unusual, case whereby I wish to step my animation not by framerate but by a given time. I had the idea of extending AnimControl and then overriding the update so that it did nothing. I was then going to add my own, step, method that allowed me to advance it. For now I can simply disable the control and call controlUpdate manually, but this seemed a less correct method?



Thanks,



Matt

I was thinking, that maybe it would be good to have inteface:

[java]

public interface TimeProvider {

getTpf(float tpf);

// and maybe this one too

getTime(float time);

}

[/java]



and every object that have update(float tpf) method would have associated TimeProvider and when called, instead of using global tpf, it would got tpf (and maybe time too), from its provider.



This way some controlls/nodes can run with different speed of time than others.



I can easily do something like that for my own objects, but when using things like ParticleEmitter, I would like to have some easy way how to inject it with different time speed.

Currently I can set speed to something, but this affects everything (eg. both gui and world objects). I would like to have “guiSpeed” and “worldSpeed” (and maybe someone would like some other), and by assigning timeProviders to objects, I would controll what use which speed.

The animation classes should not be extended so that every animation can be loaded by a vanilla jme3 system, thats why they are final. We dont want to see a mess of animation systems like in jme2. Just modify the animation speed if you want the time to pass differently.

That is fair enough, sounds like a good reason. The problem is I don’t want the animation to pass at regular intervals on the server, but only when input is received. I understand that this is an unusual request, and you guys have enough without catering for a very small minority of 1, so the way I work around it is fine for now,

Call setSpeed(0) on the AnimChannels and then use AnimControl.setTime() to change the time of the animation.