Add a pose to the SceneElement
Add constant accessor getSceneElement to Component
Representation's pose dependant on the SceneElement

Calling getPose on a Representation now returns the combined pose of the
Representation (get/setLocalPose) and the SceneElement's pose. The local
pose is the pose of the representation with respect to the SceneElement.

Also, now physics representations can 'drive' the scene element. Using a
DriveElementBehavior the pose of the physic representation will provide
the pose of the element. So other representations' poses will be updated
as the physics representation updates the element pose. There is
similarly now a DriveElementFromInputBehariour that allows an input
component to drive an element. These two behaviors remove the need for
the TransformPoseBehaviors.

Removed MockObjects from Blocks since the only place these MockObjects
were being used was actually in the Framework Unitests. So moved the
objects from blocks MockObjects in the MockObjects in Framework.

Updated all unit tests and examples to reflect these changes.
Add Camera to View Element

Add a camera to the ViewElement so it can be posed more intuitively.
Since Representation (which a Camera is) can be posed by there elements,
this provides a SceneElement for Camera's to live in.  This should be
easier than the default camera (that does not live in a SceneElement).
Since the ViewElement (which is a SceneElement) has a pose, you can set
the ViewElement's pose, and this will move the camera. Instead of using
the less intuitive setLocalPose of the camera, and assuming that it
isn't accidently in another SceneElement that could get posed.
Cleanup Bouncing Balls Example
Fix VisualizeContactsBehavior not respecting element pose

VisualizeContacts get the contact position in the global coordinates.
However, the vector field representation lives in an element that could
have a pose. So we need to put the vertices of the vector field in
element coordinates.
OsgMeshRepresentation was not calling its parents update

OsgMeshRepresentation overrided the update call instead of implementing
the doUpdate call. This resulted in the m_transform not getting updated,
and moved according to the global pose of the representation. This
change just implements the doUpdate, so the OsgRepresentation::update
will get called.
Fix whitespace and comment issues from pose changes

Fixed some long line lenght, trailing whitespace, and missing explicit
in a constructor.
Add a PoseComponent

Instead of SceneElements holding a rigid transform, they now contain a
pose component that Representations use as their base pose.
PoseComponent is now discovered by Representations

Instead of setting the PoseComponent when you set the SceneElement of a
Representation, Representations "discover" the PoseComponent on wakeUp.
Move PoseComponent discovery to Component

Move the PoseComponennt discrovery from the Representation to the
Component. This allows for the wakeUp to be returned to non-virtual.
Since PoseComponent is a Component, it now has a PoseComponent. To
address this, it overrides getPoseComponent to return nullptr.
Make DriveElement behaviors serializable

Add the needed functionality to serialize DriveElementBehavior and
DriveElementFromInputBehavior.
Cleaned up changes from adding a local pose

* removed unneeded forward references and includes
* fixed types and improved comments in Component, SceneElement
* consistently call getLocalPose in Representation
* ensure ViewElements have a camera and view on initialization
Implementation of Triangle-Triangle Intersection check.

- Based on the paper by Tomas Moller.
- Given two triangles, it returns a boolean indicating whether the
  triangles intersect each other.
- Test cases are specified as a list in a TriangleTriangleTest class, so
  that they can be re-used by the Triangle-Triangle contact calculation
  tests.
Adds LabJack data acquisition device, with limited functionality.

There are multiple models of LabJacks, which use various libraries.
This code supports the U3, U6, and UE9 via LabJackUD (high-level
driver) on Windows, and the U3 and U6 via exodriver (low-level driver)
on Linux or Mac.
This code uses Command/Response communication and supports digital
inputs, digital outputs, and timers (all modes including quadrature and
PWM).
All other functionality is not currently supported (e.g., streaming,
counters, analog in/out, and I2C).
Adds documentation to VisualTestCommon/ToolSquareTest.h.
Triangle-Triangle Contact Calculation implementation.

- New implementation of the Triangle-Triangle contact calculation.
- A new TriangleClipper class does the clipping against a given plane. It
  also helps to find the penetration depth given a plane.
- The class and the function (calculateContactTriangleTriangle) are in a
  separate header.
Remove DriveElementBehavior

Instead of using a behavior that drives the SceneElement with a Physics
Representations instead just have the Physiscs Representations drive the
SceneElement directly. Also, added a flag to PhysicsRepresentation so
you can turn off this ability. But the default behavior, is that if a
PhysiscRepresentation is added to a SceneElement in will be changeing
the SceneElement pose in afterUpdate.
Removed unneed includes and forward references in PoseComponent
Rename isDrivingElement to isDrivingSceneElementPose

Rename isDrivingElement to isDrivingSceneElementPose in the
Physics::Representantation. This makes it more clear as to what is being
driven.