00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __GEO_MetaPrim_h__
00021 #define __GEO_MetaPrim_h__
00022
00023 #include "GEO_API.h"
00024 #include <iostream.h>
00025
00026 class TS_MetaPrimitive;
00027 class TS_MetaKernel;
00028
00029 class GEO_API GEO_MetaPrim {
00030 public:
00031 GEO_MetaPrim();
00032 virtual ~GEO_MetaPrim();
00033
00034
00035
00036
00037 virtual void initTSdata() = 0;
00038 virtual TS_MetaPrimitive *getMetaPrim() = 0;
00039 virtual TS_MetaPrimitive *getNewMetaPrim() = 0;
00040
00041 void setMetaKernel(const char *type);
00042 const char *getMetaKernel() const;
00043 void setWeight(float w);
00044 float getWeight() const { return weight; }
00045
00046 protected:
00047 int saveMeta(ostream &os, int binary) const;
00048 bool loadMeta(UT_IStream &is);
00049
00050 float weight;
00051 const TS_MetaKernel *kernel;
00052 };
00053
00054 #endif