<- Simple Usage C++ API ->

.OSG File Directives

As discussed above, a simple file containing the entry

    osgEphemerisModel::EphemerisModel {
        Latitude 38.4765
        Longitude -122.493
        SkyDomeRadius 100000
    }
        
is sufficient to have a simple ephemeris model. A complete list of directives, which can be specified between the { and } brackets in the osgEphemeris::EphemerisModel definition, follows. Directives whose access value is set to D are dynamically changable at run-time. Directives whose access value is set to S are settable at initialization only.

Directive Description Type Units Range Default
Value
Access
Latitude The global latitude of the earthbound view position. double degrees -180.0 - 180.0 0.0 D
Longitude The global longitude of the earthbound view position. double degrees -90.0 - 90.0 0.0 D
DateTime The argument for the DateTime directive is a string of the form YYYYMMDDhhmmss where
  • YYYY indicates the year (e.g. 2006)
  • MM indicates the month (e.g. 09 for September)
  • DD indicates the day of the month,
  • hh indicates the hour (range 00 to 23)
  • mm indicates the minutes (range 00 to 59)
  • ss indicates seconds (range 00 to 59).

For example, the string

20060224162800
represents the 24th of February, 2006, at 2:28 PM. hh, mm, and ss are optional and will be set to 00 if omitted.
string     now D
SkyDomeRadius The SkyDome is a sphere that encompasses the scene, providing the color of the sky, horizon and a surface to which the sun texture is projected. This directive defines its size in the units of the database it will be encompassing by defining the radius of the sphere double <database>   <distance of earth to moon> S
SkyDomeCenter The SkyDome is a sphere that encompasses the scene, providing the color of the sky, horizon and a surface to which the sun texture is projected. This directive provides the center of the sphere in the units of the database it will be encompassing. This argument is required when a database is not "zero centered" (that is, centered at or near 0,0,0), even when MoveWithEyePoint is set to True. This is necessary to provide a useful database size and position for osg camera manipulators at init time. double[3] <database>   0,0,0 S
AutoDateTime Direct osgEphemeris to update the date and time to the current date and time as set on the computer. Setting this to False will allow the application to dynamically change the date and time. Setting it to True will cause dynamic changes to be ignored and the current date and time will be used. boolean True/False   True D
MoveWithEyePoint Direct osgEphemeris to move the skydome and all ephemeris components to be centered at the eyepoint at all times when set to True. If set to False, the ephemeris components will be centered around 0,0,0 and will not translate spatially. This is useful for debugging situations. boolean True/False   True S
UpdateCallback Provide osgEphemeris a callback compiled as a dynamically shared object, specified by <shared object>::<class name>. For example:
TimePasses::TimePassesCallback
where TimePasses is the dynamically shared object and TimePassesCallback is the class name of the callback.

This callback is derived from osgEphemeris::EphemerisUpdateCallback and provides a functor to which a pointer to EphemerisData is passed. The callback may then modify the EphemerisData, updating latitude, longitude, date and time.

See example following in section Dynamic Updates Using a Shared Object Callback.

Callback     NULL S
SunFudgeScale osgEphemeris calculates the accurate size of both the sun and the moon. However, users will often want to exagerate the size for aesthetic reasons. SunFudgeScale provides osgEphemeris with the ability to scale the size of the sun. double     1.0 D
MoonFudgeScale osgEphemeris calculates the accurate size of both the sun and the moon. However, users will often want to exagerate the size for aesthetic reasons. MoonFudgeScale provides osgEphemeris with the ability to scale the size of the moon. double     1.0 D
UseSouthernHemisphere Indicate to osgEphemeris whether the southern hemisphere of the Skydome should be used or not. Eliminating it would save some rendering time. However, for effects, like having the sky reflect on a wet surface or body of water, the Southern hemisphere should be drawn with the effect of mirroring the sky in the southern hemisphere. boolean True/False   True S
MirrorSouthernHemisphere Indicate whether the Southern hemisphere of the SkyDome should mirror the Northern hemisphere of the SkyDome. This provides the means of reflecting the sky on a wet surface or a body of water. boolean True/False   True S


<- Simple Usage C++ API ->