Go to the
documentation of this file.
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #pragma once
00015
00016 #ifdef BLD_TESS
00017 #define TExport __declspec(dllexport)
00018 #else
00019 #define TExport __declspec(dllimport)
00020 #endif
00021
00022 #include "maxheap.h"
00023 #include "maxtess.h"
00024 #include "UVWMapper.h"
00025
00026
00027 class GmSurface;
00028 class View;
00029 class Mtl;
00030 class Mesh;
00031
00032
00033
00034
00035 class UVWMapperDesc : public UVWMapper
00036 {
00037 public:
00038 int channel;
00039
00040 UVWMapperDesc() {channel=0;}
00041 UVWMapperDesc(int type, float utile, float vtile, float wtile,
00042 int uflip, int vflip, int wflip, int cap,
00043 const Matrix3 &tm,int channel);
00044 UVWMapperDesc(UVWMapperDesc& m)
00045 : UVWMapper (m)
00046 {
00047 this->channel = m.channel;
00048 }
00049
00050 void ApplyMapper(Mesh* pMesh);
00051 void InvalidateMapping(Mesh* pMesh);
00052 IOResult Load(ILoad* iload);
00053 IOResult Save(ISave* isave);
00054 };
00055
00056 struct SurfTabEntry: public MaxHeapOperators {
00057 GmSurface *gmsurf;
00058 UVWMapperDesc* mpChannel1Mapper;
00059 UVWMapperDesc* mpChannel2Mapper;
00060
00061 SurfTabEntry() {
00062 gmsurf = NULL;
00063 mpChannel1Mapper = NULL;
00064 mpChannel2Mapper = NULL;
00065 }
00066 };
00067
00068 typedef Tab<SurfTabEntry> SurfTab;
00069
00070
00071 enum SurfaceType
00072 {
00073 BEZIER_PATCH,
00074 GMSURFACE,
00075 MAX_MESH,
00076 MODEL_OP
00077 };
00078
00079 TExport MCHAR* GapVersion(void);
00080 TExport int GapTessellate(void *surf, SurfaceType type, Matrix3 *otm, Mesh *mesh,
00081 TessApprox *tess, TessApprox *disp,
00082 View *view, Mtl* mtl, BOOL dumpMiFile, BOOL splitmesh);