This funciton is useful, but the code is buggy.
In should check the parents' position instead of Director::Size()
Let's do it correctly, and then re-add this function
* Timer is an abstract class now.
* Adds three new timers ( `TimerTargetSelector`, `TimerTargetCallback`, `TimerScriptHandler`) which are inherited from Timer.
* Adds new API 'scheduleCallback` / `unscheduleCallbackForKey', and callback's target could be any classes since we're using `void*` to identify target.
* `Scheduler::scheduleCallback` use `std::function`, therefore, it supports passing `lambda`, `member_function` and `global_function`.
* The old selector API is still kept since it's very useful when schedule callback is a member function, it doesn't need a `key` to identify the callback function. (+1 squashed commit)
* Adds relevant test cases.
`visit()` and `draw()` are improved.
they both receive:
- `Renderer`
- `kmMat4` for transformation
- `bool` whether or not the transform changed from the previous frame
Although `draw` and `visit` are not using the 3 new parameters,
they will start using it in the coming days (or weeks, or months).
Those parameters are needed for:
- `Renderer` shouldn't be a singleton. There should be one renderer per Director. There could be more than one renderer
- we should get rid of `kmGLXXX` functions since nodoby knows what is happening. the `kmMat4` is for that.
- whenever possible, we should try to optimize the multiplications. the `dirty` flag is for that.
We need those changes, so, it is better to change the API now, and not right after v3.0-final is released.
OrbitCamera: added getters (public). Setters moved from `protected` to `public
: Improved API. Instead of using "out" parameters for getters, it returns a `kmVec3`
: Setters receives `kmVec3` as well. Old API is still supported
Node: `setAdditionalTransform` doesn't get `dirty` on the next frame.
Instead, once the additional transform is set, in order to remove it the user needs to pass
the identity matrix
Node correctly sets the Z vertex in getNodeToParentTransform(),
and not in transform().
This is the correct thing to do, and also fixes possible collisions
with the additionalTransform (eg: Camera)