* added a new fauxJointIndex for the camera. CAMERA_MATRIX_INDEX = -7
this can be used to attach objects to the camera.
* WebTablet.js has been changed to detect when entering and exiting HMD mode
to move the tablet appropriately.
There's a known bug with the tablet entity position lagging the camera by one frame.
You can do this by parenting an entity to an avatar's -2 joint index.
This will mean that the entity will follow the avatar as it moves in the world, but
will not follow the avatar's position as it moves in sensor space. Essentially, this
gives you the ability to place objects in the user's physical room.
WebTablets now are located in this feature and no longer jitter.
Used to disable the 'room-scale' avatar re-centering code.
Disabling this can prevent sliding when the avatar is supposed to be sitting or mounted on a stationary object.
Also, removed a bunch of old, unused leaning and torso twisting code.
If an avatar was LOD'ed out, it would never become visible again, because the bounds of the skeleton model were never again.
This ensures that the model bound is updated, even when the avatar is LOD'ed away.
* Bug fix for eye tracking in HMD, the "up" orientation of your eyes now match your head.
* DebugDraw: added drawRay method.
* Application: Renamed preRender to postUpdate
* AvatarManager: added postUpdate method that iterates over all avatars.
* MyAvatar: Renamed preRender to preDisplaySide
* MyAvatar: split preRender code into postUpdate and preDisplaySide.
* Removed "Show who is looking at me", "Render focus indicator" and "Render lookat target" debug draw.
* Split "Show Look At Vectors" into "Show My Look At Vectors" and "Show Other Look At Vectors", to make it easier to debug eye tracking.
* "Show Look at Vectors" now draws the right eye red and the left eye blue.
* Removed Avatar and MyAvatar renderBody
* Removed look at rendering from head.
* GLMHelpers: Bugfix for generateBasisVectors when up primary and secondary axis were orthogonal
* In the case where a SkeletonModel was renderable, but had not actually
created the render items yet, don't use the the rendererableMeshBound
for the meta render item, because it hasn't been computed yet! Instead
wait until the render items have been added to the scene before using
the more accurate bound...
Previously, when render mesh was visible the renderItems they were not updated with the latest avatar mixer joints rotations and position.
This would result in a frozen avatar being visible.
Now the renderItems are updated when the render mesh is in the frustum or the bounding sphere around the avatar position is visible.
* Renamed enqueueLocationChange to updateRenderItems
* Call updateRenderItems when models are added to the scene.
This will fix entity render bounds being incorrect when they are first added to the scene,
then later being correct after a position update.
* Renamed getMeshPartBound to getRenderableMeshBound.
* Avatar now uses getRenderableMeshBound() to do boundingRadius vs frustum check.
* Model::getRenderableMeshBound now returns a more accurate bound, because it is the same one used for rendering.
This will fix avatar freezing, when they are in the corner of your frustum.
This was due to matrices not being updated because the avatar had to a small bounding sphere.
This extraordinary event can occur if a MessageBox is popped up by the opengl driver.
* removed AvatarData::avatarLock
* removed AvatarUpdate
This code was left over from an earlier avatar threading experiment.
Removed AvatarData avatarLock and AvatarUpdate class
Instead, we just store two controller::Poses in MyAvatar.
Existing behavior and scripting APIs have been preserved.
The hand controller debug drawing is slightly different, but still works.
Copied the delta based computation of velocity and angularVelocity that was in
Application::setPalmData() and moved it into SixenseManager. This will guarantee
that the velocity computation is the same as it was previously. The goal here is
to NOT change the behavior of the hydra.
The moving average style calculation of velocities has been removed.
Removed dead code.
Moved velocity and angularVelocity into the SpatiallyNestable base class.
Entity velocity and angularVelocity properties are now relative to their parent, similar to the way position and orientation work for entities.
MyAvatar rig animations now use SpatiallyNestable to convert velocity into local frame to drive the animation state machine.