Open Reality Reference Guide
fblight.h
1 #ifndef __FBLIGHT_H__
2 #define __FBLIGHT_H__
3 /**************************************************************************
4  Copyright (c) 1994 - 2009 Autodesk, Inc. and/or its licensors.
5  All Rights Reserved.
6 
7  The coded instructions, statements, computer programs, and/or related
8  material (collectively the "Data") in these files contain unpublished
9  information proprietary to Autodesk, Inc. and/or its licensors, which is
10  protected by Canada and United States of America federal copyright law
11  and by international treaties.
12 
13  The Data may not be disclosed or distributed to third parties, in whole
14  or in part, without the prior written consent of Autodesk, Inc.
15  ("Autodesk").
16 
17  THE DATA IS PROVIDED "AS IS" AND WITHOUT WARRANTY.
18  ALL WARRANTIES ARE EXPRESSLY EXCLUDED AND DISCLAIMED. AUTODESK MAKES NO
19  WARRANTY OF ANY KIND WITH RESPECT TO THE DATA, EXPRESS, IMPLIED OR
20  ARISING BY CUSTOM OR TRADE USAGE, AND DISCLAIMS ANY IMPLIED WARRANTIES
21  OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
22  PURPOSE OR USE. WITHOUT LIMITING THE FOREGOING, AUTODESK DOES NOT
23  WARRANT THAT THE OPERATION OF THE DATA WILL BE UNINTERRUPTED OR ERROR
24  FREE.
25 
26  IN NO EVENT SHALL AUTODESK, ITS AFFILIATES, PARENT COMPANIES, LICENSORS
27  OR SUPPLIERS ("AUTODESK GROUP") BE LIABLE FOR ANY LOSSES, DAMAGES OR
28  EXPENSES OF ANY KIND (INCLUDING WITHOUT LIMITATION PUNITIVE OR MULTIPLE
29  DAMAGES OR OTHER SPECIAL, DIRECT, INDIRECT, EXEMPLARY, INCIDENTAL, LOSS
30  OF PROFITS, REVENUE OR DATA, COST OF COVER OR CONSEQUENTIAL LOSSES OR
31  DAMAGES OF ANY KIND), HOWEVER CAUSED, AND REGARDLESS OF THE THEORY OF
32  LIABILITY, WHETHER DERIVED FROM CONTRACT, TORT (INCLUDING, BUT NOT
33  LIMITED TO, NEGLIGENCE), OR OTHERWISE, ARISING OUT OF OR RELATING TO THE
34  DATA OR ITS USE OR ANY OTHER PERFORMANCE, WHETHER OR NOT AUTODESK HAS
35  BEEN ADVISED OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE.
36 
37 **************************************************************************/
38 
43 #include <kaydaradef.h>
44 #ifndef FBSDK_DLL
45 
48  #define FBSDK_DLL K_DLLIMPORT
49 #endif
50 
51 #include <fbsdk/fbmodel.h>
52 
53 #ifdef FBSDKUseNamespace
54  namespace FBSDKNamespace {
55 #endif
56 
58 
60 // FBLight
63 
65 enum FBLightType {
66  kFBLightTypePoint = 0,
67  kFBLightTypeInfinite,
68  kFBLightTypeSpot,
69  kFBLightTypeArea
70 };
71 
72 FB_DEFINE_ENUM( FBSDK_DLL, LightType );
73 
75 enum FBAttenuationType {
76  kFBAttenuationNone = 0,
77  kFBAttenuationLinear,
78  kFBAttenuationQuadratic,
79  kFBAttenuationCubic
80 };
81 
82 FB_DEFINE_ENUM( FBSDK_DLL, AttenuationType );
83 
85 class FBSDK_DLL FBLight : public FBModel
86 {
88 public:
93  FBLight(const char* pName, HIObject pObject=NULL);
94 
98  eSphere
99  };
100 
101  typedef FBPropertyBaseEnum<EAreaLightShapes> PropertyAreaLightShapes;
102 
103  // Light parameters
104 
111  FBPropertyLightType LightType;
113  FBPropertyAttenuationType AttenuationType;
122 
123  // Effects and Gobos
127  FBPropertyVideo GoboMedia;
128 
134 };
135 
137 // FBPropertyListLight
141 {
142 public:
148  FBLight* operator[](int pIndex);
149 };
150 
152 // FBGlobalLight
155 
157 enum FBFogMode
158 {
159  kFBFogModeLinear,
160  kFBFogModeExponential,
161  kFBFogModeSquareExponential
162 };
163 
164 FB_DEFINE_ENUM( FBSDK_DLL, FogMode );
165 
168 {
170 
172  FBGlobalLight();
173 
174 public:
175 
177 
178  // Fog
184  FBPropertyFogMode FogMode;
185 
190 };
191 
192 #ifdef FBSDKUseNamespace
193  }
194 #endif
195 #endif
FBLight::LightType
FBPropertyLightType LightType
Read Write Property: Type of light.
Definition: fblight.h:111
FBLight::AreaLightShape
PropertyAreaLightShapes AreaLightShape
Read Write Property: Area light shape.
Definition: fblight.h:112
FBLight::DiffuseColor
FBPropertyAnimatableColor DiffuseColor
Read Write Property: Color: Diffuse color.
Definition: fblight.h:119
FB_DEFINE_ENUM
#define FB_DEFINE_ENUM(DllTag, Type)
Define an enum and give it the ability to be a property.
Definition: fbproperties.h:150
FBLight::InnerAngle
FBPropertyAnimatableDouble InnerAngle
Read Write Property: Inner Cone angle for light.
Definition: fblight.h:115
FBLight::AttenuationType
FBPropertyAttenuationType AttenuationType
Read Write Property: Type of attenuation for the light.
Definition: fblight.h:113
FBLight::LeftBarnDoor
FBPropertyDouble LeftBarnDoor
Read Write Property: Angle of left barn door.
Definition: fblight.h:130
FBLight::FBLight
FBLight(const char *pName, HIObject pObject=NULL)
Constructor.
FBPropertyAnimatableColor
class K_DLLIMPORT FBPropertyBaseAnimatable< FBColor, kFBPT_ColorRGB > FBPropertyAnimatableColor
FBPropertyAnimatableColor type definition.
Definition: fbproperties.h:1776
FBBox
A box is a fundamental building block in the application architecture.
Definition: fbcore.h:218
FBGlobalLight::FogDensity
FBPropertyAnimatableDouble FogDensity
Read Write Property: Fog density.
Definition: fblight.h:183
FBSDK_DLL
#define FBSDK_DLL
Be sure that FBSDK_DLL is defined only once...
Definition: fbconstraintlayout.h:48
FBLight::Intensity
FBPropertyAnimatableDouble Intensity
Read Write Property: Light intensity.
Definition: fblight.h:114
FBPropertyDouble
class K_DLLIMPORT FBPropertyBase< double, kFBPT_double > FBPropertyDouble
Property: double
Definition: fbproperties.h:1340
FBPropertyListLight
PropertyList: Light
Definition: fblight.h:141
FBLight::CastLightOnObject
FBPropertyBool CastLightOnObject
Read Write Property: Cast light on object?
Definition: fblight.h:120
FBGlobalLight::TheOne
static FBGlobalLight & TheOne()
Get the global Light object.
FBLight::GoboMedia
FBPropertyVideo GoboMedia
Read Write Property: Media to use as a Gobo with the light.
Definition: fblight.h:127
FBLight::BottomBarnDoor
FBPropertyDouble BottomBarnDoor
Read Write Property: Angle of bottom barn door.
Definition: fblight.h:133
FBGlobalLight
Global light class.
Definition: fblight.h:168
fbmodel.h
Base class for Cameras.
__FBClassDeclare
#define __FBClassDeclare(Name, Parent)
For internal use only.
Definition: fbcomponent.h:131
FBPropertyAnimatableDouble
class K_DLLIMPORT FBPropertyBaseAnimatable< double, kFBPT_double > FBPropertyAnimatableDouble
FBPropertyBaseAnimatableDouble type definition.
Definition: fbproperties.h:1752
FBGlobalLight::FogMode
FBPropertyFogMode FogMode
Read Write Property: Fog falloff mode.
Definition: fblight.h:184
__FB_FORWARD
#define __FB_FORWARD(ClassName)
Forwarding of class and typedef declaration.
Definition: fbtypes.h:68
FBLight::EnableBarnDoor
FBPropertyBool EnableBarnDoor
Read Write Property: Whether or not enable barn door.
Definition: fblight.h:129
FBLight::CastShadows
FBPropertyBool CastShadows
Read Write Property: Cast shadows on object?
Definition: fblight.h:121
FBLight::DrawVolumetricLight
FBPropertyBool DrawVolumetricLight
Read Write Property: Draw volumetric light with gobo?
Definition: fblight.h:125
FBLight::FogIntensity
FBPropertyAnimatableDouble FogIntensity
Read Write Property: Intensity of the fog (spot light).
Definition: fblight.h:118
FBLight::RightBarnDoor
FBPropertyDouble RightBarnDoor
Read Write Property: Angle of right barn door.
Definition: fblight.h:131
FBLight::eRectangle
@ eRectangle
Rectangle.
Definition: fblight.h:97
FBGlobalLight::FogEnable
FBPropertyBool FogEnable
Read Write Property: Enable fog?
Definition: fblight.h:179
FBLight::ConeAngle
FBPropertyAnimatableDouble ConeAngle
DEPRECATED Equivalent to OuterAngle.
Definition: fblight.h:117
FBPropertyBool
class K_DLLIMPORT FBPropertyBase< bool, kFBPT_bool > FBPropertyBool
Property: bool
Definition: fbproperties.h:1308
FBLight::DrawGroundProjection
FBPropertyBool DrawGroundProjection
Read Write Property: Draw ground projection of gobo?
Definition: fblight.h:124
FBLight
Light class.
Definition: fblight.h:86
FBGlobalLight::FogColor
FBPropertyAnimatableColor FogColor
Read Write Property: Fog color.
Definition: fblight.h:180
FBPropertyListComponent
PropertyList: Concrete class for PropertyList of component
Definition: fbcomponent.h:536
FBGlobalLight::AmbientColor
FBPropertyAnimatableColor AmbientColor
Read Write Property: Ambient light color.
Definition: fblight.h:176
FB_DEFINE_COMPONENT
FB_DEFINE_COMPONENT(K_DLLIMPORT, AnimationNode)
Animation node class.
FBLight::OuterAngle
FBPropertyAnimatableDouble OuterAngle
Read Write Property: Outer Cone angle for light.
Definition: fblight.h:116
FBGlobalLight::FogBegin
FBPropertyAnimatableDouble FogBegin
Read Write Property: Begin fog distance.
Definition: fblight.h:181
FBPropertyListLight::operator[]
FBLight * operator[](int pIndex)
Get the model at pIndex.
FBLight::EAreaLightShapes
EAreaLightShapes
Area light shapes.
Definition: fblight.h:96
FBModel
Model class.
Definition: fbmodel.h:274
FBLight::DrawFrontFacingVolumetric
FBPropertyBool DrawFrontFacingVolumetric
Read Write Property: Draw front facing volumetric light?
Definition: fblight.h:126
FBPropertyBaseEnum< EAreaLightShapes >
FBLight::TopBarnDoor
FBPropertyDouble TopBarnDoor
Read Write Property: Angle of top barn door.
Definition: fblight.h:132
FBGlobalLight::FogEnd
FBPropertyAnimatableDouble FogEnd
Read Write Property: End fog distance.
Definition: fblight.h:182