00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IMESH_GENMESH_H__
00020 #define __CS_IMESH_GENMESH_H__
00021
00022 #include "csutil/scf.h"
00023
00024 #ifdef CS_USE_NEW_RENDERER
00025 #include "ivideo/rndbuf.h"
00026 #endif // CS_USE_NEW_RENDERER
00027
00028 class csVector3;
00029 class csVector2;
00030 class csColor;
00031 class csBox3;
00032 struct csTriangle;
00033
00034 struct iMaterialWrapper;
00035
00036 SCF_VERSION (iGeneralMeshState, 0, 0, 3);
00037
00041 struct iGeneralMeshState : public iBase
00042 {
00044 virtual void SetMaterialWrapper (iMaterialWrapper* material) = 0;
00046 virtual iMaterialWrapper* GetMaterialWrapper () const = 0;
00048 virtual void SetMixMode (uint mode) = 0;
00050 virtual uint GetMixMode () const = 0;
00051
00053 virtual void SetLighting (bool l) = 0;
00055 virtual bool IsLighting () const = 0;
00057 virtual void SetColor (const csColor& col) = 0;
00059 virtual csColor GetColor () const = 0;
00065 virtual void SetManualColors (bool m) = 0;
00067 virtual bool IsManualColors () const = 0;
00072 virtual void SetShadowCasting (bool m) = 0;
00074 virtual bool IsShadowCasting () const = 0;
00083 virtual void SetShadowReceiving (bool m) = 0;
00085 virtual bool IsShadowReceiving () const = 0;
00086 };
00087
00088 SCF_VERSION (iGeneralFactoryState, 0, 0, 2);
00089
00093 struct iGeneralFactoryState : public iBase
00094 {
00096 virtual void SetMaterialWrapper (iMaterialWrapper* material) = 0;
00098 virtual iMaterialWrapper* GetMaterialWrapper () const = 0;
00099
00101 virtual void SetVertexCount (int n) = 0;
00103 virtual int GetVertexCount () const = 0;
00109 virtual csVector3* GetVertices () = 0;
00115 virtual csVector2* GetTexels () = 0;
00123 virtual csVector3* GetNormals () = 0;
00124
00126 virtual void SetTriangleCount (int n) = 0;
00128 virtual int GetTriangleCount () const = 0;
00134 virtual csTriangle* GetTriangles () = 0;
00141 virtual csColor* GetColors () = 0;
00142
00149 virtual void Invalidate () = 0;
00150
00154 virtual void CalculateNormals () = 0;
00155
00161 virtual void GenerateBox (const csBox3& box) = 0;
00162
00163 #ifdef CS_USE_NEW_RENDERER
00164
00166 virtual bool AddStream (const char *name,
00167 csRenderBufferComponentType component_type, int component_size) = 0;
00168
00170 virtual bool SetStreamComponent (const char *name, int index, int component, float value) = 0;
00171 virtual bool SetStreamComponent (const char *name, int index, int component, int value) = 0;
00172
00174 virtual bool SetStream (const char *name, float *value) = 0;
00175 virtual bool SetStream (const char *name, int *value) = 0;
00176
00177 #endif
00178 };
00179
00180 #endif // __CS_IMESH_GENMESH_H__
00181