void DebugPrimitiveRenderingExample::Draw()
 {
     Eegeo::dv3 ecefA = ConvertLatLongAltitudeToEcef(Eegeo::Space::LatLongAltitude::FromDegrees(37.785063, -122.403436, 10));
     Eegeo::dv3 ecefB = ConvertLatLongAltitudeToEcef(Eegeo::Space::LatLongAltitude::FromDegrees(37.78469,-122.40143, 100));
     
     Eegeo::dv3 colour(1.0f, 0.0f, 1.0f);
     float alpha = 0.8f;
     float lineWidth = 10.0f;
     
     m_debugPrimitiveRenderer.DrawEcefLine(ecefA,
                                           ecefB,
                                           Eegeo::v4(colour.GetX(), colour.GetY(), colour.GetZ(), alpha),
                                           lineWidth);
     }
 void ReadHeadingExample::Update(float dt)
 {
 	double degrees;
 	if(m_locationService.GetHeadingDegrees(degrees))
 	{
 		EXAMPLE_LOG("Heading: %f\n", degrees);
         
         Eegeo::dv3 ecefCenter = ConvertLatLongAltitudeToEcef(Eegeo::Space::LatLongAltitude::FromDegrees(37.78469,-122.40143, 200));
         Eegeo::Space::EcefTangentBasis tangentBasis;
         Eegeo::Camera::CameraHelpers::EcefTangentBasisFromPointAndHeading(ecefCenter, static_cast<float>(degrees), tangentBasis);
         const float axesSize = 150.0f;
         m_debugRenderer.DrawAxes(ecefCenter, tangentBasis.GetRight()*axesSize, tangentBasis.GetUp()*axesSize, tangentBasis.GetForward()*axesSize);
 	}
 	else
 	{
 		EXAMPLE_LOG("Unable to read heading from device.\n");
 	}
 }