|
metagen.h00001 /* 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 |