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 #include "ivideo/rndbuf.h"
00024
00025 class csVector3;
00026 class csVector2;
00027 class csColor;
00028 class csBox3;
00029 struct csTriangle;
00030
00031 struct iMaterialWrapper;
00032
00033 SCF_VERSION (iGeneralMeshState, 0, 0, 3);
00034
00038 struct iGeneralMeshState : public iBase
00039 {
00041 virtual void SetMaterialWrapper (iMaterialWrapper* material) = 0;
00043 virtual iMaterialWrapper* GetMaterialWrapper () const = 0;
00045 virtual void SetMixMode (uint mode) = 0;
00047 virtual uint GetMixMode () const = 0;
00048
00050 virtual void SetLighting (bool l) = 0;
00052 virtual bool IsLighting () const = 0;
00054 virtual void SetColor (const csColor& col) = 0;
00056 virtual csColor GetColor () const = 0;
00062 virtual void SetManualColors (bool m) = 0;
00064 virtual bool IsManualColors () const = 0;
00069 virtual void SetShadowCasting (bool m) = 0;
00071 virtual bool IsShadowCasting () const = 0;
00080 virtual void SetShadowReceiving (bool m) = 0;
00082 virtual bool IsShadowReceiving () const = 0;
00083 };
00084
00085 SCF_VERSION (iGeneralFactoryState, 0, 0, 2);
00086
00090 struct iGeneralFactoryState : public iBase
00091 {
00093 virtual void SetMaterialWrapper (iMaterialWrapper* material) = 0;
00095 virtual iMaterialWrapper* GetMaterialWrapper () const = 0;
00096
00098 virtual void SetVertexCount (int n) = 0;
00100 virtual int GetVertexCount () const = 0;
00106 virtual csVector3* GetVertices () = 0;
00112 virtual csVector2* GetTexels () = 0;
00120 virtual csVector3* GetNormals () = 0;
00121
00123 virtual void SetTriangleCount (int n) = 0;
00125 virtual int GetTriangleCount () const = 0;
00131 virtual csTriangle* GetTriangles () = 0;
00138 virtual csColor* GetColors () = 0;
00139
00146 virtual void Invalidate () = 0;
00147
00151 virtual void CalculateNormals () = 0;
00152
00158 virtual void GenerateBox (const csBox3& box) = 0;
00159
00164 virtual bool AddRenderBuffer (const char *name,
00165 csRenderBufferComponentType component_type, int component_size) = 0;
00166
00171 virtual bool SetRenderBufferComponent (const char *name, int index,
00172 int component, float value) = 0;
00173 virtual bool SetRenderBufferComponent (const char *name, int index,
00174 int component, int value) = 0;
00175
00180 virtual bool SetRenderBuffer (const char *name, float *value) = 0;
00181 virtual bool SetRenderBuffer (const char *name, int *value) = 0;
00182 };
00183
00184 #endif // __CS_IMESH_GENMESH_H__
00185