00001
00002
00003
00004
00005
00006 #pragma once
00007
00008 #include "iFnPub.h"
00009
00010
00011
00012 #define POINTCACHEOSM_CLASS_ID Class_ID(0x270f1fe3, 0x3b14999)
00013 #define POINTCACHEWSM_CLASS_ID Class_ID(0x370f1fe3, 0x3b14999)
00014
00015 #define POINTCACHE_CLASS POINTCACHEOSM_CLASS_ID
00016
00017
00018 #define OLDPOINTCACHE_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bec)
00019 #define OLDPOINTCACHEWSM_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bed)
00020 #define OLDPARTICLECACHE_CLASS_ID Class_ID(0x21d07ae1, 0x48d30bee)
00021
00022
00023
00024
00025 class IPointCache;
00026 class IPointCacheWSM;
00027 class IParticleCache;
00028
00029
00030
00031
00032 #define POINTCACHE_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cc8)
00033
00034 #define GetIPointCacheInterface(cd) \
00035 (IPointCache *)(cd)->GetInterface(POINTCACHE_INTERFACE)
00036
00037 #define POINTCACHEWSM_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cc9)
00038
00039 #define GetIPointCacheWSMInterface(cd) \
00040 (IPointCacheWSM *)(cd)->GetInterface(POINTCACHEWSM_INTERFACE)
00041
00042 #define PARTICLECACHE_INTERFACE Interface_ID(0x53b4409b, 0x18ee7cd0)
00043
00044 #define GetIParticleCacheInterface(cd) \
00045 (IParticleCache *)(cd)->GetInterface(PARTICLECACHE_INTERFACE)
00046
00047 enum
00048 {
00049 pointcache_record,
00050 pointcache_setcache,
00051 pointcache_enablemods,
00052 pointcache_disablemods
00053 };
00054
00055
00056 enum point_cache_mod_1_playback_params {
00057 playback_original,
00058 playback_start,
00059 playback_range,
00060 playback_graph,
00061 };
00062
00063 enum point_cache_pc_params {
00064 pc_cache_file,
00065 pc_record_start,
00066 pc_record_end,
00067 pc_sample_rate,
00068 pc_strength,
00069 pc_relative,
00070 pc_playback_type,
00071 pc_playback_start,
00072 pc_playback_end,
00073 pc_playback_before,
00074 pc_playback_after,
00075 pc_playback_frame,
00076 pc_interp_type,
00077 pc_apply_to_spline,
00078 pc_preload_cache,
00079 pc_clamp_graph,
00080 pc_force_unc_path,
00081 pc_load_type,
00082 pc_apply_to_whole_object,
00083 pc_load_type_slave,
00084 pc_file_count
00085 };
00086
00087
00088
00089 #pragma warning(push)
00090 #pragma warning(disable:4100)
00091
00103 class IPointCache : public FPMixinInterface
00104 {
00105 public:
00106
00107
00108
00109
00110 BEGIN_FUNCTION_MAP
00111 VFN_0(pointcache_record, fnRecord);
00112 VFN_0(pointcache_setcache, fnSetCache);
00113 VFN_0(pointcache_enablemods, fnEnableMods);
00114 VFN_0(pointcache_disablemods, fnDisableMods);
00115
00116 END_FUNCTION_MAP
00117 virtual FPInterfaceDesc* GetDesc()=0;
00118
00121 virtual void fnRecord()=0;
00124 virtual void fnSetCache()=0;
00127 virtual void fnEnableMods()=0;
00130 virtual void fnDisableMods()=0;
00131
00132 };
00133
00134
00135
00147 class IPointCacheWSM : public FPMixinInterface
00148 {
00149 public:
00150
00151
00152
00153
00154 BEGIN_FUNCTION_MAP
00155 VFN_0(pointcache_record, fnRecord);
00156 VFN_0(pointcache_setcache, fnSetCache);
00157 VFN_0(pointcache_enablemods, fnEnableMods);
00158 VFN_0(pointcache_disablemods, fnDisableMods);
00159
00160 END_FUNCTION_MAP
00161 virtual FPInterfaceDesc* GetDesc()=0;
00162
00165 virtual void fnRecord()=0;
00168 virtual void fnSetCache()=0;
00171 virtual void fnEnableMods()=0;
00174 virtual void fnDisableMods()=0;
00175
00176 };
00177
00178 class IParticleCache : public FPMixinInterface
00179 {
00180 public:
00181
00182
00183
00184
00185 BEGIN_FUNCTION_MAP
00186 VFN_0(pointcache_record, fnRecord);
00187 VFN_0(pointcache_setcache, fnSetCache);
00188
00189 END_FUNCTION_MAP
00190 virtual FPInterfaceDesc* GetDesc()=0;
00191
00192 virtual void fnRecord()=0;
00193 virtual void fnSetCache()=0;
00194
00195 };
00196 #pragma warning(pop)