Go
to the documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #pragma once
00019
00020 #include "..\baseinterface.h"
00021 #include "..\maxtypes.h"
00022 #include "..\acolor.h"
00023
00024 class Interval;
00025
00027 #define MRPHYSSKY_LIGHT_OBJECT_CLASSID Class_ID(0x26ee3350, 0x799b5b56)
00028
00029 #define MRPHYSSKY_LIGHT_INTERFACECLASS_ID Interface_ID(0x23a857ab, 0x5fad4778)
00030
00032
00040 class IMRPhysicalSkyInterface : public BaseInterface {
00041 public:
00042 enum SkyModel { eHaze = 0, ePerez, eCIE};
00043 enum CIEModel { eOvercastSky = 0, eClearSky};
00044
00046 virtual Interface_ID GetID() { return MRPHYSSKY_LIGHT_INTERFACECLASS_ID; };
00047
00049 virtual ~IMRPhysicalSkyInterface() {};
00050
00053
00054
00059 virtual float getMultiplier (TimeValue &t, Interval &valid) const = 0;
00065 virtual bool setMultiplier (TimeValue t, float multiplier) = 0;
00067
00068
00074
00075
00080 virtual float getHaze(TimeValue &t, Interval &valid) const = 0;
00086 virtual bool setHaze(TimeValue t, float haze) = 0;
00088
00094
00095
00100 virtual float getRedBlueShift (TimeValue &t, Interval &valid) const = 0;
00106 virtual bool setRedBlueShift (TimeValue t, float redBlueShift) = 0;
00108
00114
00115
00120 virtual float getSaturation (TimeValue &t, Interval &valid) const = 0;
00126 virtual bool setSaturation (TimeValue t, float saturation) = 0;
00128
00134
00136
00141 virtual AColor getGroundColor (TimeValue &t, Interval &valid) const = 0;
00147 virtual bool setGroundColor (TimeValue t, AColor groundColor) = 0;
00149
00156
00157
00162 virtual AColor getNightColor (TimeValue &t, Interval &valid) const = 0;
00168 virtual bool setNightColor (TimeValue t, AColor nightColor) = 0;
00170
00173
00174
00179 virtual float getHorizonBlur (TimeValue &t, Interval &valid) const = 0;
00185 virtual bool setHorizonBlur (TimeValue t, float horizonBlur) = 0;
00187
00190
00191
00196 virtual float getHorizonHeight(TimeValue &t, Interval &valid) const = 0;
00202 virtual bool setHorizonHeight(TimeValue t, float horizonHeight) = 0;
00204
00209
00210
00215 virtual bool getAerialPerspective(TimeValue &t, Interval &valid) const = 0;
00221 virtual bool setAerialPerspective(TimeValue t, bool aerialPerspective) = 0;
00223
00228
00229
00234 virtual float getVisibilityDistance(TimeValue &t, Interval &valid) const = 0;
00240 virtual bool setVisibilityDistance(TimeValue t, float visibilityDistance) = 0;
00242
00246
00247
00253 virtual SkyModel getSkyModel(TimeValue &t, Interval &valid) const = 0;
00260 virtual bool setSkyModel(TimeValue t, SkyModel skyModel) = 0;
00262
00265
00266
00271 virtual float getPerezDiffuseHorizIlluminance(TimeValue &t, Interval &valid) const = 0;
00277 virtual bool setPerezDiffuseHorizIlluminance(TimeValue t, float perezDiffuseHorizIlluminance) = 0;
00279
00283
00284
00289 virtual float getPerezDirectNormalIlluminance(TimeValue &t, Interval &valid) const = 0;
00295 virtual bool setPerezDirectNormalIlluminance(TimeValue t, float perezDirectNormalIlluminance) = 0;
00297
00300
00301
00306 virtual float getCIEDiffuseHorizIlluminance(TimeValue &t, Interval &valid) const = 0;
00312 virtual bool setCIEDiffuseHorizIlluminance(TimeValue t, float cieDiffuseHorizIlluminance) = 0;
00314
00317
00318
00323 virtual CIEModel getCIEModel(TimeValue &t,Interval &valid) const = 0;
00329 virtual bool setCIEModel(TimeValue t,CIEModel model) =0;
00331
00342 virtual void getPerezABCDE(float &A, float &B, float &C, float &D,float &E,TimeValue t, Interval &valid) const = 0;
00343
00344 };
00345
00347 #define MRPHYSSKY_LIGHT_INTERFACECLASS2_ID Interface_ID(0x3e3e5a80, 0x157908fb)
00348
00350
00358 class IMRPhysicalSkyInterface2 : public IMRPhysicalSkyInterface {
00359 public:
00360
00361
00362
00363 virtual Interface_ID GetID() { return MRPHYSSKY_LIGHT_INTERFACECLASS2_ID; }
00364
00368
00369
00374 virtual float getCIEDirectNormalIlluminance(TimeValue &t, Interval &valid) const = 0;
00380 virtual bool setCIEDirectNormalIlluminance(TimeValue t, float CIEDirectNormalIlluminance) = 0;
00382 };