CrystalSpace

Public API Reference

Main Page   Modules   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   File Members   Related Pages  

imesh/genmesh.h

00001 /*
00002     Copyright (C) 2002 by Jorrit Tyberghein
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License as published by the Free Software Foundation; either
00007     version 2 of the License, or (at your option) any later version.
00008 
00009     This library is distributed in the hope that it will be useful,
00010     but WITHOUT ANY WARRANTY; without even the implied warranty of
00011     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012     Library General Public License for more details.
00013 
00014     You should have received a copy of the GNU Library General Public
00015     License along with this library; if not, write to the Free
00016     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
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 

Generated for Crystal Space by doxygen 1.2.18