imrSkyPortalLight.h

Go to the documentation of this file.
00001 //*****************************************************************************/
00002 // Copyright (c) 1998-2007 Autodesk, Inc.
00003 // All rights reserved.
00004 // 
00005 // These coded instructions, statements, and computer programs contain
00006 // unpublished proprietary information written by Autodesk, Inc., and are
00007 // protected by Federal copyright law. They may not be disclosed to third
00008 // parties or copied or duplicated in any form, in whole or in part, without
00009 // the prior written consent of Autodesk, Inc.
00010 //*****************************************************************************/
00011 
00012 #pragma once
00013 
00014 #include "..\baseinterface.h"
00015 #include "..\maxtypes.h"
00016 #include "..\acolor.h"
00017 // forward declarations
00018 class Interval;
00019 class Texmap;
00020 
00021 #define PORTAL_LIGHT_OBJECT_CLASSID Class_ID(0x335c655c, 0x382151b1)
00022 #define IID_MR_SKY_PORTAL_LIGHT Interface_ID(0x102804f9, 0x41d71b3f)
00023 
00024 
00037 class IMrSkyPortalLight : public BaseInterface {
00038 public:
00040     virtual Interface_ID GetID() { return IID_MR_SKY_PORTAL_LIGHT; };
00041     
00043     virtual ~IMrSkyPortalLight() {};
00044 
00047 
00048 
00053     virtual float GetMultiplier(const TimeValue t, Interval& valid) const = 0;
00054 
00060     virtual bool SetMultiplier(const TimeValue t, float multiplier) = 0;
00062 
00065 
00066 
00071     virtual AColor GetFilterColor(const TimeValue t, Interval &valid) const = 0;
00072 
00078     virtual bool SetFilterColor(const TimeValue t, const AColor& color) = 0;
00080 
00082 
00092     virtual bool GetCastShadowsFromOutdoors() const = 0;
00093 
00102     virtual bool SetCastShadowsFromOutdoors(bool bEnable) = 0;
00104 
00106 
00116     virtual int GetShadowSamples(const TimeValue t, Interval &valid) const = 0;
00117 
00126     virtual bool SetShadowSamples (const TimeValue t, int shadowSamples) = 0;
00128 
00131 
00132 
00137     virtual float GetLength(const TimeValue t, Interval &valid) const = 0;
00138 
00144     virtual bool SetLength(const TimeValue t, float length) = 0;
00145 
00151     virtual float GetWidth(const TimeValue t, Interval &valid) const = 0;
00152 
00158     virtual bool SetWidth(const TimeValue t, float width) = 0;
00160 
00161         
00163 
00168 
00169     enum LightFluxDirection {
00171         kOutdoorToIndoor = 0, 
00173         kIndoorToOutdoor = 1, 
00174         kLastDir,
00175     };
00176 
00180     virtual LightFluxDirection GetLightFluxDirection() const = 0;
00181 
00186     virtual bool SetLightFluxDirection(LightFluxDirection dir) = 0;
00188 
00190 
00200     virtual bool GetVisibleInRendering(const TimeValue t, Interval &valid) const = 0;
00201 
00207     virtual bool SetVisibleInRenderin(const TimeValue t, bool visible) = 0;
00209 
00211 
00222     virtual AColor GetTransparencyColor(const TimeValue t, Interval &valid) const = 0;
00223 
00229     virtual bool SetTransparencyColor(const TimeValue t, const AColor& color) = 0;
00231     
00234 
00235 
00236     enum IlluminationColorSource {
00239         kSceneEnvironmentColor, 
00242         kCustomMapColor, 
00244         kSkylightColor, 
00245         kLastColorSource,
00246     };
00247 
00251     virtual IlluminationColorSource GetIllumColorSource() const = 0;
00252 
00257     virtual bool SetIllumColorSource(IlluminationColorSource source) = 0;
00259 
00262 
00263 
00266     virtual Texmap* GetIlluminationMap() const = 0;
00267 
00273     virtual bool SetIlluminationMap(Texmap* illumColorMap) = 0;
00275 
00276 };
00277