37 SGPropertyNode *props =
globals->get_props();
39 viewLon = props->getNode(
"sim/current-view/viewer-lon-deg",
true);
40 viewLat = props->getNode(
"sim/current-view/viewer-lat-deg",
true);
42 _tideAnimation = props->getNode(
"/environment/sea/surface/delta-T-tide",
true);
44 _tideLevelNorm = props->getNode(
"/sim/time/tide-level-norm",
true);
45 _tideLevelNorm->setDoubleValue(_tide_level);
68 double viewer_lon = (viewLon->getDoubleValue()
69 + fabs( viewLat->getDoubleValue() )
70 ) * SGD_DEGREES_TO_RADIANS;
72 if (fabs(_prev_moon_lon - moon_lon) > (SGD_PI/360.0))
74 _prev_moon_lon = moon_lon;
76 double sun_lon = l->get_sun_lon() - viewer_lon;
77 _tide_level = cos(2.0*moon_lon);
78 _tide_level += 0.15*cos(2.0*sun_lon);
80 if (_tide_level < -1.0) _tide_level = -1.0;
81 else if (_tide_level > 1.0) _tide_level = 1.0;
83 _tideLevelNorm->setDoubleValue(_tide_level);
84 _tideAnimation->setDoubleValue(0.5 - 0.5*_tide_level);