Public Types | Public Member Functions

IDaylightSystem2 Class Reference

Search for all occurrences

Detailed Description

Extends IDaylightSystem with new functionality This interface can be obtained when the daylight system is created.

See IDaylightSystemFactory2::Create In the case of an already existent daylight system, this interface can be obtained from the base object of the daylight assembly:

 Object* daylightAssemblyObj = ...
 BaseInterface* bi = daylightAssemblyObj->GetInterface(IID_DAYLIGHT_SYSTEM2);
 IDaylightSystem2* ds = dynamic_cast<IDaylightSystem2*>(bi);

#include <IDaylightSystem.h>

Inheritance diagram for IDaylightSystem2:
Inheritance graph
[legend]

List of all members.

Public Types

enum   DaylightControlType { eDateAndTime = 0, eManual = 1, eWeatherFile = 2 }

Public Member Functions

virtual Interface_ID  GetID ()
virtual int  GetTimeZone (float longitude) const =0
  Computes the approximate time zone from a longitude.
virtual LightObject SetSun (const Class_ID &sunClassID)=0
  Sets the sun object of the daylight system.
virtual LightObject SetSky (const Class_ID &skyClassID)=0
  Sets the sun object of the daylight system.
virtual DaylightControlType  GetDaylightControlType () const =0
  Returns how the location of the sun in the daylight system is being controlled.
virtual void  SetDaylightControlType (DaylightControlType val)=0
  Specify how the location of the sun in the daylight system will be controlled.
virtual MSTR  GetLocation ()=0
  Returns the name of the location of the daylight system.
virtual void  GetAltitudeAzimuth (TimeValue t, float &altitude, float &azimuth)=0
  Get the alititude and the azimuth angles of the sun at that particular time.
virtual
MaxSDK::AssetManagement::AssetUser 
GetWeatherFile () const =0
  Get the name of the weather file that is in use in the daylight system.
virtual void  SetWeatherFile (const MaxSDK::AssetManagement::AssetUser &val)=0
  Set the name of the weather file.
virtual void  OpenWeatherFileDlg ()=0
  Opens the weather file dialog.
virtual bool  GetTemps (float &dryBulbTemperature, float &dewPointTemperature)=0
  Get temperature values.
virtual bool  GetExtraTerrestialRadiation (float &extraterrestrialHorizontalRadiation, float &extraterrestrialDirectNormalRadiation)=0
  Get extraterrestrial radiation values.
virtual bool  GetRadiation (float &globalHorizontalRadiation, float &directNormalRadiation, float &diffuseHorizontalRadiation)=0
  Get the radiation values.
virtual bool  GetIlluminance (float &globalHorizontalIlluminance, float &directNormalIlluminance, float &diffuseHorizontalIlluminance, float &zenithLuminance)=0
  Get the illuminance values.

Member Enumeration Documentation

Remarks:
The DaylightControlType enumeration is for specifying how the daylight system is controlled,manually, from a specified date and time or via a weather file.
Enumerator:
eDateAndTime 
eManual 
eWeatherFile 
    {
        eDateAndTime = 0, eManual = 1, eWeatherFile = 2
    };

Member Function Documentation

virtual Interface_ID GetID ( ) [inline, virtual]
Remarks:
This method overrides GetID() in those interfaces that do not publish metadata but instead have a unique Interface_ID for quick internal identification in implementation code that might be shared by a bunch of mixin interfaces.
Returns:
The Interface_ID.
Default Implementation:
{ return GetDesc()->ID; }

Reimplemented from FPMixinInterface.

{ return IID_DAYLIGHT_SYSTEM2; }
virtual int GetTimeZone ( float  longitude ) const [pure virtual]

Computes the approximate time zone from a longitude.

Parameters:
[in] longitude The longitude from which the time zone is computed. The longitude is expected to be in the [-180.0, 180.0] range. It it isn't, it's converted to this range.
Returns:
The approximate time zone corresponding to a given longitude The time zone will be in the [-12, 12] range.
virtual LightObject* SetSun ( const Class_ID sunClassID ) [pure virtual]

Sets the sun object of the daylight system.

Parameters:
[in] sunClassID Class ID of new sun. The supper class id of the sun is assumed to be LIGHT_CLASS_ID.
Returns:
A pointer to the new sun object or NULL if the operation failed
virtual LightObject* SetSky ( const Class_ID skyClassID ) [pure virtual]

Sets the sun object of the daylight system.

Parameters:
[in] skyClassID Class ID of new sky. The supper class id of the sky is assumed to be LIGHT_CLASS_ID.
Returns:
A pointer to the new sky object or NULL if the operation failed
virtual DaylightControlType GetDaylightControlType ( ) const [pure virtual]

Returns how the location of the sun in the daylight system is being controlled.

Returns:
Returns how the location of the sun in the daylight system is being controlled. If the return value is eDataAndTime, the daylight system is controlled by a specified date and time. If the return value is eManual, then the postion of the sun is controlled manually, if the value is eWeather File then the postion of the sun is driven by a weather file.
virtual void SetDaylightControlType ( DaylightControlType  val ) [pure virtual]

Specify how the location of the sun in the daylight system will be controlled.

Parameters:
[in] val Specifies how the location of the sun in the daylight system is being controlled. If the value is eDataAndTime, the daylight system will be controlled by a specified date and time. If the value is eManual, then the postion of the sun will be controlled manually, if the value is eWeather File then the position of the sun will be driven by a weather file.
virtual MSTR GetLocation ( ) [pure virtual]

Returns the name of the location of the daylight system.

Usually this is the city name.

Returns:
Returns the name of the location, usually a city name. If no location is specified in the Daylight System an empty string will be returned.
virtual void GetAltitudeAzimuth ( TimeValue  t,
float &  altitude,
float &  azimuth 
) [pure virtual]

Get the alititude and the azimuth angles of the sun at that particular time.

Parameters:
[in] t The time at which to get the alitude and azimuth of the sun.
[out] altitude The angle of the sun above the horizon. In radians, ranges from 0 at the horizon to PI/2 at the zenith.
[out] azimuth The angle of the sun about north. In radians, ranges from 0 at due north, PI/2 at due east, etc..
virtual MaxSDK::AssetManagement::AssetUser GetWeatherFile ( ) const [pure virtual]

Get the name of the weather file that is in use in the daylight system.

Returns:
Returns an AssetUser pointing on the weather file. Note that a valid name may be returned even if the weather file isn't being used to drive the sun position.
See also:
GetDaylightControlType.
virtual void SetWeatherFile ( const MaxSDK::AssetManagement::AssetUser val ) [pure virtual]

Set the name of the weather file.

Parameters:
[in] val The AssetUser containing the weather file name that may be used to drive the daylight system.
virtual void OpenWeatherFileDlg ( ) [pure virtual]

Opens the weather file dialog.

Opens the Weather File Dialog. Note that if the daylight system isn't being controlled by the weather file,

See also:
GetDaylightControlType, then this operation will do nothing.
virtual bool GetTemps ( float &  dryBulbTemperature,
float &  dewPointTemperature 
) [pure virtual]

Get temperature values.

Get temperature values usually from a weather file based upon the current time.

Parameters:
[out] dryBulbTemperature The dry bulb temperature usually stored in the weather file at the current time.
[out] dewPointTemperature The dew point temperatureusually stored in the weather file at the current time.
Returns:
Will return false if the daylight system isn't being controlled by a weather file of the weather file can't be opened correctly or if the weather file doesn't contain these values accurately otherwise if it gets the values correctly it will return true. In the future these values may be stored elsehwhere besides weather files.
virtual bool GetExtraTerrestialRadiation ( float &  extraterrestrialHorizontalRadiation,
float &  extraterrestrialDirectNormalRadiation 
) [pure virtual]

Get extraterrestrial radiation values.

Get extraterrestrial radiation values usually from a weather file based upon the current time.

Parameters:
[out] extraterrestrialHorizontalRadiation The extraterrestrial horizontal radiation usually stored in the weather file at the current time.
[out] extraterrestrialDirectNormalRadiation The extraterrestrial direct normal radiation usually stored in the weather file at the current time.
Returns:
Will return false if the daylight system isn't being controlled by a weather file of the weather file can't be opened correctly or if the weather file doesn't contain these values accurately otherwise if it gets the values correctly it will return true. In the future these values may be stored elsehwhere besides weather files.
virtual bool GetRadiation ( float &  globalHorizontalRadiation,
float &  directNormalRadiation,
float &  diffuseHorizontalRadiation 
) [pure virtual]

Get the radiation values.

Get radiation values usually from a weather file based upon the current time.

Parameters:
[out] globalHorizontalRadiation The global horizontal radiation usually stored in the weather file at the current time.
[out] directNormalRadiation The direct normal radiation usually stored in the weather file at the current time.
[out] diffuseHorizontalRadiation The diffuse horizontal radiation usually stored in the weather file at the current time.
Returns:
Will return false if the daylight system isn't being controlled by a weather file of the weather file can't be opened correctly or if the weather file doesn't contain these values accurately otherwise if it gets the values correctly it will return true. In the future these values may be stored elsehwhere besides weather files.
virtual bool GetIlluminance ( float &  globalHorizontalIlluminance,
float &  directNormalIlluminance,
float &  diffuseHorizontalIlluminance,
float &  zenithLuminance 
) [pure virtual]

Get the illuminance values.

Get illuminance values usually from a weather file based upon the current time.

Parameters:
[out] globalHorizontalIlluminance The global horizontal illuminance usually stored in the weather file at the current time.
[out] directNormalIlluminance The direct normal illuminance usually stored in the weather file at the current time.
[out] diffuseHorizontalIlluminance The diffuse horizontal illuminance usually stored in the weather file at the current time.
[out] zenithIlluminance The zenith illuminance usually stored in the weather file at the current time.
Returns:
Will return false if the daylight system isn't being controlled by a weather file of the weather file can't be opened correctly or if the weather file doesn't contain these values accurately otherwise if it gets the values correctly it will return true. In the future these values may be stored elsehwhere besides weather files.

IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2
IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2 IDaylightSystem2