示例#1
0
文件: Horizon.cpp 项目: 2php/osgearth
void
Horizon::setEllipsoid(const osg::EllipsoidModel& e)
{
    _scaleInv.set(
        e.getRadiusEquator(),
        e.getRadiusEquator(),
        e.getRadiusPolar() );

    _scale.set(
        1.0 / e.getRadiusEquator(),
        1.0 / e.getRadiusEquator(),
        1.0 / e.getRadiusPolar() );

    _minHAE = 500.0;
    _minVCmag = 1.0 + (_scale*_minHAE).length();

    // just so we don't have gargabe values
    setEye( osg::Vec3d(1e7, 0, 0) );

    _valid = true;
}
示例#2
0
文件: Horizon.cpp 项目: 3dcl/osgearth
void
Horizon::setEllipsoid(const osg::EllipsoidModel& e)
{
    _scaleInv.set( 
        e.getRadiusEquator(),
        e.getRadiusEquator(),
        e.getRadiusPolar() );

    _scale.set(
        1.0 / e.getRadiusEquator(),
        1.0 / e.getRadiusEquator(),
        1.0 / e.getRadiusPolar() );

    // Minimum allowable HAE for calculating horizon distance.
    const double minHAE = 100.0;

    //double maxRadius = std::max(e.getRadiusEquator(), e.getRadiusPolar());
    //double minHAEScaled = 1.0 + minHAE/maxRadius;
    //_minHAEScaled2 = minHAEScaled * minHAEScaled;

    _scaleToMinHAE = (_scale*minHAE) + osg::Vec3d(1,1,1);
}