1/****************************************************************************************
2
3 Copyright (C) 2015 Autodesk, Inc.
4 All rights reserved.
5
6 Use of this software is subject to the terms of the Autodesk license agreement
7 provided at the time of installation or download, or which otherwise accompanies
8 this software in either electronic or hard copy form.
9
10****************************************************************************************/
11
12//! \file fbxsurfacelambert.h
13#ifndef _FBXSDK_SCENE_SHADING_SURFACE_LAMBERT_H_
14#define _FBXSDK_SCENE_SHADING_SURFACE_LAMBERT_H_
15
16#include <fbxsdk/fbxsdk_def.h>
17
18#include <fbxsdk/scene/shading/fbxsurfacematerial.h>
19
20#include <fbxsdk/fbxsdk_nsbegin.h>
21
22/** This class contains settings for Lambert Materials.
23 * \nosubgrouping
24 */
25class FBXSDK_DLL FbxSurfaceLambert : public FbxSurfaceMaterial
26{
27 FBXSDK_OBJECT_DECLARE(FbxSurfaceLambert,FbxSurfaceMaterial);
28
29public:
30 /**
31 * \name Material properties
32 */
33 //@{
34
35 //! Emissive color property.
36 FbxPropertyT<FbxDouble3> Emissive;
37
38 /** Emissive factor property. This factor is used to
39 * attenuate the emissive color.
40 */
41 FbxPropertyT<FbxDouble> EmissiveFactor;
42
43 //! Ambient color property.
44 FbxPropertyT<FbxDouble3> Ambient;
45
46 /** Ambient factor property. This factor is used to
47 * attenuate the ambient color.
48 */
49 FbxPropertyT<FbxDouble> AmbientFactor;
50
51 //! Diffuse color property.
52 FbxPropertyT<FbxDouble3> Diffuse;
53
54 /** Diffuse factor property. This factor is used to
55 * attenuate the diffuse color.
56 */
57 FbxPropertyT<FbxDouble> DiffuseFactor;
58
59 /** NormalMap property. This property can be used to specify the distortion of the surface
60 * normals and create the illusion of a bumpy surface.
61 */
62 FbxPropertyT<FbxDouble3> NormalMap;
63
64 /** Bump property. This property is used to distort the
65 * surface normal and create the illusion of a bumpy surface.
66 */
67 FbxPropertyT<FbxDouble3> Bump;
68
69 /** Bump factor property. This factor is used to
70 * make a surface more or less bumpy.
71 */
72 FbxPropertyT<FbxDouble> BumpFactor;
73
74 //! Transparent color property.
75 FbxPropertyT<FbxDouble3> TransparentColor;
76
77 /** Transparency factor property. This property is used to make a
78 * surface more or less opaque (0 = opaque, 1 = transparent).
79 */
80 FbxPropertyT<FbxDouble> TransparencyFactor;
81
82 //! Displacement color property.
83 FbxPropertyT<FbxDouble3> DisplacementColor;
84
85 //! Displacement factor property.
86 FbxPropertyT<FbxDouble> DisplacementFactor;
87
88 //! Vector displacement color property.
89 FbxPropertyT<FbxDouble3> VectorDisplacementColor;
90
91 //! Vector displacement factor property.
92 FbxPropertyT<FbxDouble> VectorDisplacementFactor;
93
94 //@}
95
96 //////////////////////////////////////////////////////////////////////////
97 // Static values
98 //////////////////////////////////////////////////////////////////////////
99
100 /**
101 * \name Default property values
102 */
103 //@{
104
105 static const FbxDouble3 sEmissiveDefault;
106 static const FbxDouble sEmissiveFactorDefault;
107
108 static const FbxDouble3 sAmbientDefault;
109 static const FbxDouble sAmbientFactorDefault;
110
111 static const FbxDouble3 sDiffuseDefault;
112 static const FbxDouble sDiffuseFactorDefault;
113
114 static const FbxDouble3 sBumpDefault;
115 static const FbxDouble3 sNormalMapDefault;
116 static const FbxDouble sBumpFactorDefault;
117
118 static const FbxDouble3 sTransparentDefault;
119 static const FbxDouble sTransparencyFactorDefault;
120
121 static const FbxDouble3 sDisplacementDefault;
122 static const FbxDouble sDisplacementFactorDefault;
123
124 static const FbxDouble3 sVectorDisplacementDefault;
125 static const FbxDouble sVectorDisplacementFactorDefault;
126
127 //@}
128
129/*****************************************************************************************************************************
130** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
131*****************************************************************************************************************************/
132#ifndef DOXYGEN_SHOULD_SKIP_THIS
133protected:
134 virtual void ConstructProperties(bool pForceSet);
135
136 // Local
137 void Init();
138#endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
139};
140
141#include <fbxsdk/fbxsdk_nsend.h>
142
143#endif /* _FBXSDK_SCENE_SHADING_SURFACE_LAMBERT_H_ */
144