00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __IENGINE_PTEXTYPE_H__
00020 #define __IENGINE_PTEXTYPE_H__
00021
00022 #include "csutil/scf.h"
00023
00024 class csColor;
00025 class csVector2;
00026 struct iPolygon3D;
00027 struct iPolyTxtPlane;
00028
00034 #define POLYTXT_NONE 0
00035
00045 #define POLYTXT_FLAT 1
00046
00054 #define POLYTXT_GOURAUD 2
00055
00061 #define POLYTXT_LIGHTMAP 3
00062
00063 SCF_VERSION (iPolyTexType, 0, 0, 2);
00064
00069 struct iPolyTexType : public iBase
00070 {
00072 virtual void SetMixMode (UInt m) = 0;
00074 virtual UInt GetMixMode () = 0;
00075 };
00076
00077 SCF_VERSION (iPolyTexFlat, 0, 0, 1);
00078
00083 struct iPolyTexFlat : public iBase
00084 {
00090 virtual void Setup (iPolygon3D *iParent) = 0;
00102 virtual void SetUV (int i, float u, float v) = 0;
00103
00107 virtual void ClearUV () = 0;
00108
00110 virtual csVector2 *GetUVCoords () = 0;
00111
00112
00113 };
00114
00115 SCF_VERSION (iPolyTexGouraud, 0, 0, 1);
00116
00121 struct iPolyTexGouraud : public iBase
00122 {
00128 virtual void Setup (iPolygon3D *iParent) = 0;
00132 virtual void ClearColors () = 0;
00133
00135 virtual csColor *GetColors () = 0;
00136
00138 virtual csColor *GetStaticColors () = 0;
00139
00143 virtual void ResetDynamicColor (int i) = 0;
00144
00148 virtual void SetDynamicColor (int i, const csColor& c) = 0;
00149
00153 virtual void SetColor (int i, const csColor& c) = 0;
00154 };
00155
00156 SCF_VERSION (iPolyTexLightMap, 0, 0, 1);
00157
00162 struct iPolyTexLightMap : public iBase
00163 {
00165 virtual iPolyTxtPlane* GetPolyTxtPlane () const = 0;
00166 };
00167
00168 #endif // __IENGINE_PTEXTYPE_H__