00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef __CS_IMESH_METAGEN_H__
00023 #define __CS_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
00035 struct iMetaGen : public iBase
00036 {
00037 enum EnvMappingModes { TRUE_ENV_MAP, FAKE_ENV_MAP };
00038
00039 virtual int GenerateLinearSurface( int bone_index ) = 0;
00040
00041 virtual int GenerateFieldSurface( int field_index ) = 0;
00042
00043 virtual void SetCacheLimits( csVector3 start, csVector3 finish) = 0;
00044
00045 virtual void MapTriangleMesh( csTriangle *tri, csVector3 *verts ) = 0;
00046
00047 virtual void ClearCache() = 0;
00048
00049 virtual void ZeroCache() = 0;
00050
00051 virtual bool Initialize() = 0;
00052
00053 virtual bool InitializeCache() = 0;
00054
00055 virtual void SetMaxVertices( int limit ) = 0;
00056
00057 virtual int GetMaxVertices() = 0;
00058
00059 virtual void SetArcSineTableRes( int res ) = 0;
00060
00061 virtual int GetArcSineTableRes() = 0;
00062
00063 virtual void DeleteArcSineTable() = 0;
00064
00065 virtual void InitArcSineTable() = 0;
00066
00067 virtual void CreateBone( int start, float iso_lev) = 0;
00068 virtual void AddSlice( bool endcap ) = 0;
00069 virtual void AddCharge( csVector2 pos, float charge ) = 0;
00070 virtual void CreateField( float iso_level) = 0;
00071 virtual void AddPoint( csVector3 pos, float charge ) = 0;
00072
00073
00074 virtual void SetQualityEnvironmentMapping(bool tog) = 0;
00075
00076 virtual bool GetQualityEnvironmentMapping() = 0;
00077
00078 virtual float GetEnvironmentMappingFactor() = 0;
00079
00080 virtual void SetEnvironmentMappingFactor(float f) = 0;
00082 virtual int ReportTriangleCount () = 0;
00083
00084 virtual bool IsLighting () = 0;
00085
00086 virtual void SetLighting ( bool set ) = 0;
00087
00090
00091 virtual csVector3* GetVertices() = 0;
00092
00093 virtual int GetVertexCount() = 0;
00094
00095 virtual csVector2* GetTexels() = 0;
00096
00097 virtual int GetTexelCount() = 0;
00098
00099 virtual csTriangle* GetTriangles() = 0;
00100
00101 virtual int GetTriangleCount() = 0;
00102
00103 virtual void SetSplinterSize(float size) = 0;
00104
00105 virtual float GetSplinterSize() = 0;
00106 };
00107
00108 #endif // __CS_IMESH_METAGEN_H__