00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
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__