Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CS_IVARIA_TERRAFORM_H__
00020 #define __CS_IVARIA_TERRAFORM_H__
00021
00026 #include "csutil/scf.h"
00027 #include "csutil/strset.h"
00028
00029 struct iObject;
00030 struct iMaterialWrapper;
00031 struct iTerraSampler;
00032
00033 class csBox2;
00034 class csVector2;
00035 class csVector3;
00036
00041 struct iTerraFormer : public virtual iBase
00042 {
00043 SCF_INTERFACE (iTerraFormer, 2, 0, 0);
00044
00049 virtual csPtr<iTerraSampler> GetSampler (csBox2 region,
00050 unsigned int resx, unsigned int resy = 0) = 0;
00051
00055 virtual csVector2 GetIntegerMapSize (csStringID type) = 0;
00056
00063 virtual bool SampleFloat (csStringID type, float x, float z,
00064 float &value) = 0;
00065
00072 virtual bool SampleVector2 (csStringID type, float x, float z,
00073 csVector2 &value) = 0;
00074
00081 virtual bool SampleVector3 (csStringID type, float x, float z,
00082 csVector3 &value) = 0;
00083
00090 virtual bool SampleInteger (csStringID type, float x, float z,
00091 int &value) = 0;
00092
00096 virtual iObject* QueryObject () = 0;
00097 };
00098
00099
00105 struct iTerraSampler : public virtual iBase
00106 {
00107 SCF_INTERFACE (iTerraSampler, 2, 0, 0);
00108
00115 virtual const float *SampleFloat (csStringID type) = 0;
00116
00123 virtual const csVector2 *SampleVector2 (csStringID type) = 0;
00124
00131 virtual const csVector3 *SampleVector3 (csStringID type) = 0;
00132
00139 virtual const int *SampleInteger (csStringID type) = 0;
00140
00145 virtual const csArray<iMaterialWrapper*> &GetMaterialPalette () = 0;
00146
00148 virtual const csBox2 &GetRegion () const = 0;
00149
00151 virtual void GetResolution (uint &resx, uint &resz) const = 0;
00152
00158 virtual unsigned int GetVersion () const = 0;
00159
00168 virtual void Cleanup () = 0;
00169 };
00170
00171 #endif // __CS_IVARIA_TERRAFORM_H__