| 
    osgEarth 2.1.1 
   | 
 
 Include dependency graph for CubeManifold.cpp:Go to the source code of this file.
Defines | |
| #define | NEG_Y 0 | 
| #define | POS_Y 1 | 
| #define | NEG_X 2 | 
| #define | POS_X 3 | 
| #define | NEG_Z 4 | 
| #define | POS_Z 5 | 
| #define | LC "[CubeManifold] " | 
Functions | |
| static bool | toLonLatRad (const osg::Vec3d &coord, osg::Vec3d &out_lonLat) | 
| #define LC "[CubeManifold] " | 
Definition at line 29 of file CubeManifold.cpp.
| #define NEG_X 2 | 
Definition at line 24 of file CubeManifold.cpp.
| #define NEG_Y 0 | 
Definition at line 22 of file CubeManifold.cpp.
| #define NEG_Z 4 | 
Definition at line 26 of file CubeManifold.cpp.
| #define POS_X 3 | 
Definition at line 25 of file CubeManifold.cpp.
| #define POS_Y 1 | 
Definition at line 23 of file CubeManifold.cpp.
| #define POS_Z 5 | 
Definition at line 27 of file CubeManifold.cpp.
| static bool toLonLatRad | ( | const osg::Vec3d & | coord, | 
| osg::Vec3d & | out_lonLat | ||
| ) |  [static] | 
        
Definition at line 302 of file CubeManifold.cpp.
{
    double lat, lon;
    // normalize all coordinates into the [0..1] range:
    double x = (1.0+coord.x())*0.5;
    double y = (1.0+coord.y())*0.5;
    double z = (1.0+coord.z())*0.5;
    // now convert into lat/long; this is different for each face:
    if ( coord.x() == 1.0 ) // positive X ( 0 <= lon <= 90, -45 <= lat <= 45 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( y, z, 2, lat, lon ) )
            OE_WARN << LC << "+X: fc2ll failed" << std::endl;
    }
    else if ( coord.x() == -1.0 ) // negative X ( -180 <= lon <= -90, -45 <= lat <= 45 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( 1.0-y, z, 0, lat, lon ) )
            OE_WARN << LC << "-X: fc2ll failed" << std::endl;
    }
    else if ( coord.y() == 1.0 ) // positive Y ( 90 <= lon <= 180, -45 <= lat <= 45 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( 1.0-x, z, 3, lat, lon ) )
            OE_WARN << LC << "+Y: fc2ll failed" << std::endl;
    }
    else if ( coord.y() == -1.0 ) // negative Y ( -90 <= lon <= 0, -45 <= lat <= 45 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( x, z, 1, lat, lon ) )
            OE_WARN << LC << "-Y: fc2ll failed" << std::endl;
    }
    else if ( coord.z() == 1.0 ) // positive Z ( -180 <= lon < 180, 45 <= lat <= 90 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( 1.0-y, x, 4, lat, lon ) )
            OE_WARN << LC << "+Z: fc2ll failed" << std::endl;
    }
    else //if ( coord.z() == -1.0 ) // negative Z ( -180 <= lon < 180, -90 <= lat <= -45 )
    {
        if ( !osgEarth::CubeUtils::faceCoordsToLatLon( x, 1.0-y, 5, lat, lon ) )
            OE_WARN << LC << "-Z: fc2ll failed" << std::endl;
    }
    out_lonLat.x() = osg::DegreesToRadians( lon );
    out_lonLat.y() = osg::DegreesToRadians( lat );
    out_lonLat.z() = 0.0;
    return true;
}
 Here is the call graph for this function:
 Here is the caller graph for this function:
 1.7.3