//EnvironmentNotifierExampleTerrainStreamObserver///
void EnvironmentNotifierExampleTerrainStreamObserver::AddSphere(const Eegeo::Streaming::MortonKey& key)
{
	Eegeo::Space::CubeMap::CubeMapCellInfo cellInfo(key);
	const Eegeo::dv2& resourceQuadtreeCellCenter = cellInfo.GetFaceCentre();
	Eegeo::dv3 worldSpaceCellCenter = Eegeo::Space::CubeMap::FacePointToWorld(cellInfo.GetFaceIndex(),
	                                  resourceQuadtreeCellCenter,
	                                  Eegeo::Space::EarthConstants::CubeSideLengthHalf);


	Eegeo::dv3 up = worldSpaceCellCenter.Norm();
	Eegeo::dv3 spherePosition = Eegeo::dv3::Scale(up, Eegeo::Space::EarthConstants::Radius + SPHERE_HEIGHT_ABOVE_SEA);

	Eegeo::v4 color(1.f, 0.f, 1.f, 0.75f);
    
    SphereData sphereData(spherePosition, color);

	m_spheres.insert(std::make_pair(key,sphereData));
}
    void DynamicText3DExample::CreateDynamic3DText(const std::string& str,
                                                   float fontPointSize,
                                                   double latitudeDegrees,
                                                   double longitudeDegrees,
                                                   const Eegeo::v3& colour,
                                                   float alpha)
    {
        Eegeo::Space::LatLongAltitude location = Eegeo::Space::LatLongAltitude::FromDegrees(latitudeDegrees, longitudeDegrees, 0.f);
        Eegeo::dv3 posEcef = location.ToECEF();
        Eegeo::Space::CubeMap::CubeMapCellInfo cellInfo(Space::CubeMap::EcefToKey(posEcef, 15));

        std::vector<u32> textUtf32;
        Unicode::UnicodeConverter::Utf8ToUtf32(str.c_str(), textUtf32);

        Resources::PlaceNames::PlaceNameView* pPlaceNameView = m_placeNameViewBuilder.CreatePlaceNameView(textUtf32, "", fontPointSize, posEcef, "", cellInfo);

        if (pPlaceNameView != NULL)
        {
            pPlaceNameView->GetConfig().UpdateColorAndScale(colour, 1.f);
            pPlaceNameView->SetAlpha(alpha);
            m_views.push_back(pPlaceNameView);
        }
    }