Google

Main Page   Class Hierarchy   Compound List   File List   Compound Members  

metagen.h

00001 /*
00002     Metagen
00003     Copyright (C) 2001 by Michael H. Voase
00004     Copyright (C) 1999 by Denis Dmitriev
00005     Pluggified (c) 2000 by Samuel Humphreys
00006 
00007     This library is free software; you can redistribute it and/or
00008     modify it under the terms of the GNU Library General Public
00009     License as published by the Free Software Foundation; either
00010     version 2 of the License, or (at your option) any later version.
00011 
00012     This library is distributed in the hope that it will be useful,
00013     but WITHOUT ANY WARRANTY; without even the implied warranty of
00014     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00015     Library General Public License for more details.
00016 
00017     You should have received a copy of the GNU Library General Public
00018     License along with this library; if not, write to the Free
00019     Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00020 */
00021 
00022 #ifndef __IMESH_METAGEN_H__
00023 #define __IMESH_METAGEN_H__
00024 
00025 #include "csutil/scf.h"
00026 
00027 class csVector2;
00028 class csVector3;
00029 class csColor;
00030 struct csTriangle;
00031 
00032 SCF_VERSION (iMetaGen, 0, 0, 1 );
00033 
00034 struct iMetaGen : iBase
00035 {
00036   enum EnvMappingModes { TRUE_ENV_MAP, FAKE_ENV_MAP };
00037 
00038   virtual int GenerateLinearSurface( int bone_index ) = 0;
00039 
00040   virtual int GenerateFieldSurface( int field_index ) = 0;
00041 
00042   virtual void SetCacheLimits( csVector3 start, csVector3 finish) = 0;
00043 
00044   virtual void MapTriangleMesh( csTriangle *tri, csVector3 *verts ) = 0;
00045 
00046   virtual void ClearCache() = 0;
00047 
00048   virtual void ZeroCache() = 0;
00049 
00050   virtual bool Initialize() = 0;
00051 
00052   virtual bool InitializeCache() = 0;
00053 
00054   virtual void SetMaxVertices( int limit ) = 0;
00055 
00056   virtual int GetMaxVertices() = 0;
00057 
00058   virtual void SetArcSineTableRes( int res ) = 0;
00059 
00060   virtual int GetArcSineTableRes() = 0;
00061 
00062   virtual void DeleteArcSineTable() = 0;
00063 
00064   virtual void InitArcSineTable() = 0;
00065 
00066   virtual void CreateBone( int start, float iso_lev) = 0;
00067   virtual void AddSlice( bool endcap ) = 0;
00068   virtual void AddCharge( csVector2 pos, float charge ) = 0;
00069   virtual void CreateField( float iso_level) = 0;
00070   virtual void AddPoint( csVector3 pos, float charge ) = 0;
00071 
00072 //---------------------------------------------------------------
00073   virtual void SetQualityEnvironmentMapping(bool tog) = 0;
00074 
00075   virtual bool GetQualityEnvironmentMapping() = 0;
00076 
00077   virtual float GetEnvironmentMappingFactor() = 0;
00078 
00079   virtual void SetEnvironmentMappingFactor(float f) = 0;
00081   virtual int ReportTriangleCount () = 0;
00082 
00083   virtual bool IsLighting () = 0;
00084 
00085   virtual void SetLighting ( bool set ) = 0;
00086 
00089 
00090   virtual csVector3* GetVertices() = 0;
00091 
00092   virtual int GetVertexCount() = 0;
00093 
00094   virtual csVector2* GetTexels() = 0;
00095 
00096   virtual int GetTexelCount() = 0;
00097 
00098   virtual csTriangle* GetTriangles() = 0;
00099 
00100   virtual int GetTriangleCount() = 0;
00101 
00102   virtual void SetSplinterSize(float size) = 0;
00103 
00104   virtual float GetSplinterSize() = 0;
00105 };
00106 
00107 #endif //  __IMESH_METAGEN_H__

Generated for Crystal Space by doxygen 1.2.5 written by Dimitri van Heesch, ©1997-2000