00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #pragma once
00015
00016 #include "IParticleContainer.h"
00017 #include "..\point3.h"
00018 #include "..\quat.h"
00019
00020
00021 #define MXSPARTICLECONTAINER_INTERFACE Interface_ID(0x74f93c10, 0x1eb34600)
00022
00023 #define GetMXSParticleContainerInterface(obj) ((IMXSParticleContainer*)obj->GetInterface(MXSPARTICLECONTAINER_INTERFACE))
00024
00025 class IMXSParticleContainer : public FPMixinInterface
00026 {
00027 public:
00028
00029
00030 enum { kGetParticleContainer,
00031 kGetParticleSystem,
00032 kGetParticleSystemNode,
00033 kGetInitActions,
00034 kGetInitActionNodes,
00035 kGetTimeStart,
00036 kGetTimeEnd,
00037 kSetTimeEnd,
00038 kSetTimeEndPrecise,
00039 kGetActionNode,
00040 kGetIntegrator,
00041
00042 kRandSign,
00043 kRand01,
00044 kRand11,
00045 kRand55,
00046 kRand0X,
00047 kRandSpherePoint,
00048 kRandDivergeVector,
00049
00050 kGetUseTime,
00051 kSetUseTime,
00052 kGetUseAge,
00053 kSetUseAge,
00054 kGetUseLifespan,
00055 kSetUseLifespan,
00056 kGetUseEventTime,
00057 kSetUseEventTime,
00058 kGetUsePosition,
00059 kSetUsePosition,
00060 kGetUseSpeed,
00061 kSetUseSpeed,
00062 kGetUseAcceleration,
00063 kSetUseAcceleration,
00064 kGetUseOrientation,
00065 kSetUseOrientation,
00066 kGetUseSpin,
00067 kSetUseSpin,
00068 kGetUseScale,
00069 kSetUseScale,
00070 kGetUseTM,
00071 kSetUseTM,
00072 kGetUseSelected,
00073 kSetUseSelected,
00074 kGetUseShape,
00075 kSetUseShape,
00076 kGetUseMtlIndex,
00077 kSetUseMtlIndex,
00078 kGetUseMapping,
00079 kSetUseMapping,
00080 kGetUseInt,
00081 kSetUseInt,
00082 kGetUseFloat,
00083 kSetUseFloat,
00084 kGetUseVector,
00085 kSetUseVector,
00086 kGetUseMatrix,
00087 kSetUseMatrix,
00088
00089 kNumParticles,
00090
00091 kAddParticle,
00092 kAddParticles,
00093 kDeleteParticle,
00094 kDeleteParticles,
00095
00096 kGetParticleBornIndex,
00097 kHasParticleBornIndex,
00098
00099 kGetCurrentParticleIndex,
00100 kGetCurrentParticleBornIndex,
00101 kSetCurrentParticleIndex,
00102 kSetCurrentParticleBornIndex,
00103
00104 kIsParticleNewByIndex,
00105 kIsParticleNewByBornIndex,
00106 kIsParticleNew,
00107
00108 kGetParticleTimeByIndex,
00109 kGetParticleTimeByBornIndex,
00110 kSetParticleTimeByIndex,
00111 kSetParticleTimePreciseByIndex,
00112 kSetParticleTimeByBornIndex,
00113 kSetParticleTimePreciseByBornIndex,
00114 kGetParticleTime,
00115 kSetParticleTime,
00116
00117 kGetParticleAgeByIndex,
00118 kGetParticleAgeByBornIndex,
00119 kSetParticleAgeByIndex,
00120 kSetParticleAgeByBornIndex,
00121 kGetParticleAge,
00122 kSetParticleAge,
00123
00124 kGetParticleLifespanByIndex,
00125 kGetParticleLifespanByBornIndex,
00126 kSetParticleLifespanByIndex,
00127 kSetParticleLifespanByBornIndex,
00128 kGetParticleLifespan,
00129 kSetParticleLifespan,
00130
00131 kGetParticleEventTimeByIndex,
00132 kGetParticleEventTimeByBornIndex,
00133 kSetParticleEventTimeByIndex,
00134 kSetParticleEventTimeByBornIndex,
00135 kGetParticleEventTime,
00136 kSetParticleEventTime,
00137
00138 kGetParticlePositionByIndex,
00139 kGetParticlePositionByBornIndex,
00140 kSetParticlePositionByIndex,
00141 kSetParticlePositionByBornIndex,
00142 kGetParticlePosition,
00143 kSetParticlePosition,
00144
00145 kGetParticleSpeedByIndex,
00146 kGetParticleSpeedByBornIndex,
00147 kSetParticleSpeedByIndex,
00148 kSetParticleSpeedByBornIndex,
00149 kGetParticleSpeed,
00150 kSetParticleSpeed,
00151
00152 kGetParticleAccelerationByIndex,
00153 kGetParticleAccelerationByBornIndex,
00154 kSetParticleAccelerationByIndex,
00155 kSetParticleAccelerationByBornIndex,
00156 kGetParticleAcceleration,
00157 kSetParticleAcceleration,
00158
00159 kGetParticleOrientationByIndex,
00160 kGetParticleOrientationByBornIndex,
00161 kSetParticleOrientationByIndex,
00162 kSetParticleOrientationByBornIndex,
00163 kGetParticleOrientation,
00164 kSetParticleOrientation,
00165
00166 kGetParticleSpinByIndex,
00167 kGetParticleSpinByBornIndex,
00168 kSetParticleSpinByIndex,
00169 kSetParticleSpinByBornIndex,
00170 kGetParticleSpin,
00171 kSetParticleSpin,
00172
00173 kGetParticleScaleByIndex,
00174 kGetParticleScaleByBornIndex,
00175 kSetParticleScaleByIndex,
00176 kSetParticleScaleByBornIndex,
00177 kGetParticleScale,
00178 kSetParticleScale,
00179 kGetParticleScaleXYZByIndex,
00180 kGetParticleScaleXYZByBornIndex,
00181 kSetParticleScaleXYZByIndex,
00182 kSetParticleScaleXYZByBornIndex,
00183 kGetParticleScaleXYZ,
00184 kSetParticleScaleXYZ,
00185
00186 kGetParticleTMByIndex,
00187 kGetParticleTMByBornIndex,
00188 kSetParticleTMByIndex,
00189 kSetParticleTMByBornIndex,
00190 kGetParticleTM,
00191 kSetParticleTM,
00192
00193 kGetParticleSelectedByIndex,
00194 kGetParticleSelectedByBornIndex,
00195 kSetParticleSelectedByIndex,
00196 kSetParticleSelectedByBornIndex,
00197 kGetParticleSelected,
00198 kSetParticleSelected,
00199
00200 kGetParticleShapeByIndex,
00201 kGetParticleShapeByBornIndex,
00202 kSetParticleShapeByIndex,
00203 kSetParticleShapeByBornIndex,
00204 kGetParticleShape,
00205 kSetParticleShape,
00206 kSetGlobalParticleShape,
00207
00208 kSetParticleMtlIndexByIndex,
00209 kSetParticleMtlIndexByBornIndex,
00210 kSetGlobalParticleMtlIndex,
00211
00212 kSetParticleMappingByIndex,
00213 kSetParticleMappingByBornIndex,
00214 kSetGlobalParticleMapping,
00215
00216 kGetParticleIntByIndex,
00217 kGetParticleIntByBornIndex,
00218 kSetParticleIntByIndex,
00219 kSetParticleIntByBornIndex,
00220 kGetParticleInt,
00221 kSetParticleInt,
00222
00223 kGetParticleFloatByIndex,
00224 kGetParticleFloatByBornIndex,
00225 kSetParticleFloatByIndex,
00226 kSetParticleFloatByBornIndex,
00227 kGetParticleFloat,
00228 kSetParticleFloat,
00229
00230 kGetParticleVectorByIndex,
00231 kGetParticleVectorByBornIndex,
00232 kSetParticleVectorByIndex,
00233 kSetParticleVectorByBornIndex,
00234 kGetParticleVector,
00235 kSetParticleVector,
00236
00237 kGetParticleMatrixByIndex,
00238 kGetParticleMatrixByBornIndex,
00239 kSetParticleMatrixByIndex,
00240 kSetParticleMatrixByBornIndex,
00241 kGetParticleMatrix,
00242 kSetParticleMatrix,
00243
00244 kSetParticleTestStatusByIndex,
00245 kSetParticleTestStatusByBornIndex,
00246 kGetParticleTestStatus,
00247 kSetParticleTestStatus,
00248 kSetGlobalTestStatus,
00249
00250 kSetParticleTestTimeByIndex,
00251 kSetParticleTestTimePreciseByIndex,
00252 kSetParticleTestTimeByBornIndex,
00253 kSetParticleTestTimePreciseByBornIndex,
00254 kGetParticleTestTime,
00255 kSetParticleTestTime,
00256 kSetParticleTestTimePrecise,
00257 kSetGlobalTestTime,
00258 kSetGlobalTestTimePrecise,
00259 };
00260
00261
00262
00263 BEGIN_FUNCTION_MAP
00264
00265 FN_0(kGetParticleContainer, TYPE_IOBJECT, GetParticleContainer);
00266 FN_0(kGetParticleSystem, TYPE_OBJECT, GetParticleSystem);
00267 FN_0(kGetParticleSystemNode,TYPE_INODE, GetParticleSystemNode);
00268 FN_0(kGetInitActions, TYPE_OBJECT_TAB_BR,GetInitActions);
00269 FN_0(kGetInitActionNodes, TYPE_INODE_TAB_BR, GetInitActionNodes);
00270 FN_0(kGetTimeStart, TYPE_TIMEVALUE, GetTimeStart);
00271 FN_0(kGetTimeEnd, TYPE_TIMEVALUE, GetTimeEnd);
00272 VFN_1(kSetTimeEnd, SetTimeEnd, TYPE_TIMEVALUE);
00273 VFN_2(kSetTimeEndPrecise, SetTimeEnd, TYPE_TIMEVALUE, TYPE_FLOAT);
00274 FN_0(kGetActionNode, TYPE_INODE, GetActionNode);
00275 FN_0(kGetIntegrator, TYPE_INTERFACE, GetIntegrator);
00276
00277 FN_0(kRandSign, TYPE_INT, RandSign);
00278 FN_0(kRand01, TYPE_FLOAT, Rand01);
00279 FN_0(kRand11, TYPE_FLOAT, Rand11);
00280 FN_0(kRand55, TYPE_FLOAT, Rand55);
00281 FN_1(kRand0X, TYPE_INT, Rand0X, TYPE_INT);
00282 FN_0(kRandSpherePoint, TYPE_POINT3, RandSpherePoint);
00283 FN_2(kRandDivergeVector, TYPE_POINT3, RandDivergeVector, TYPE_POINT3, TYPE_ANGLE);
00284
00285 PROP_FNS( kGetUseTime, GetUseTime, kSetUseTime, SetUseTime, TYPE_bool);
00286 PROP_FNS( kGetUseAge, GetUseAge, kSetUseAge, SetUseAge, TYPE_bool);
00287 PROP_FNS( kGetUseLifespan, GetUseLifespan, kSetUseLifespan, SetUseLifespan, TYPE_bool);
00288 PROP_FNS( kGetUseEventTime, GetUseEventTime, kSetUseEventTime, SetUseEventTime, TYPE_bool);
00289 PROP_FNS( kGetUsePosition, GetUsePosition, kSetUsePosition, SetUsePosition, TYPE_bool);
00290 PROP_FNS( kGetUseSpeed, GetUseSpeed, kSetUseSpeed, SetUseSpeed, TYPE_bool);
00291 PROP_FNS( kGetUseAcceleration, GetUseAcceleration, kSetUseAcceleration,SetUseAcceleration, TYPE_bool);
00292 PROP_FNS( kGetUseOrientation, GetUseOrientation, kSetUseOrientation, SetUseOrientation, TYPE_bool);
00293 PROP_FNS( kGetUseSpin, GetUseSpin, kSetUseSpin, SetUseSpin, TYPE_bool);
00294 PROP_FNS( kGetUseScale, GetUseScale, kSetUseScale, SetUseScale, TYPE_bool);
00295 PROP_FNS( kGetUseTM, GetUseTM, kSetUseTM, SetUseTM, TYPE_bool);
00296 PROP_FNS( kGetUseSelected, GetUseSelected, kSetUseSelected, SetUseSelected, TYPE_bool);
00297 PROP_FNS( kGetUseShape, GetUseShape, kSetUseShape, SetUseShape, TYPE_bool);
00298 PROP_FNS( kGetUseMtlIndex, GetUseMtlIndex, kSetUseMtlIndex, SetUseMtlIndex, TYPE_bool);
00299 PROP_FNS( kGetUseMapping, GetUseMapping, kSetUseMapping, SetUseMapping, TYPE_bool);
00300 PROP_FNS( kGetUseInt, GetUseInt, kSetUseInt, SetUseInt, TYPE_bool);
00301 PROP_FNS( kGetUseFloat, GetUseFloat, kSetUseFloat, SetUseFloat, TYPE_bool);
00302 PROP_FNS( kGetUseVector, GetUseVector, kSetUseVector, SetUseVector, TYPE_bool);
00303 PROP_FNS( kGetUseMatrix, GetUseMatrix, kSetUseMatrix, SetUseMatrix, TYPE_bool);
00304
00305 FN_0(kNumParticles, TYPE_INT, NumParticles);
00306
00307 FN_0(kAddParticle, TYPE_bool, AddParticle);
00308 FN_1(kAddParticles, TYPE_bool, AddParticles, TYPE_INT);
00309 FN_1(kDeleteParticle, TYPE_bool, DeleteParticle, TYPE_INDEX);
00310 FN_2(kDeleteParticles, TYPE_bool, DeleteParticles, TYPE_INDEX, TYPE_INT);
00311
00312 FN_1(kGetParticleBornIndex, TYPE_INDEX, GetParticleBornIndex, TYPE_INDEX);
00313 FN_2(kHasParticleBornIndex, TYPE_bool, HasParticleBornIndex, TYPE_INDEX, TYPE_INDEX_BR);
00314
00315 PROP_FNS(kGetCurrentParticleIndex, GetCurrentParticleIndex, kSetCurrentParticleIndex, SetCurrentParticleIndex, TYPE_INDEX);
00316 PROP_FNS(kGetCurrentParticleBornIndex, GetCurrentParticleBornIndex, kSetCurrentParticleBornIndex, SetCurrentParticleBornIndex,TYPE_INDEX);
00317
00318 FN_1(kIsParticleNewByIndex, TYPE_bool, IsParticleNewByIndex, TYPE_INDEX);
00319 FN_1(kIsParticleNewByBornIndex, TYPE_bool, IsParticleNewByBornIndex, TYPE_INDEX);
00320 RO_PROP_FN(kIsParticleNew, IsParticleNew, TYPE_bool);
00321
00322 FN_1(kGetParticleTimeByIndex, TYPE_TIMEVALUE, GetParticleTimeByIndex, TYPE_INDEX);
00323 FN_1(kGetParticleTimeByBornIndex, TYPE_TIMEVALUE, GetParticleTimeByBornIndex,TYPE_INDEX);
00324 VFN_2(kSetParticleTimeByIndex, SetParticleTimeByIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00325 VFN_3(kSetParticleTimePreciseByIndex, SetParticleTimeByIndex, TYPE_INDEX, TYPE_TIMEVALUE, TYPE_FLOAT);
00326 VFN_2(kSetParticleTimeByBornIndex, SetParticleTimeByBornIndex,TYPE_INDEX, TYPE_TIMEVALUE);
00327 VFN_3(kSetParticleTimePreciseByBornIndex, SetParticleTimeByBornIndex,TYPE_INDEX, TYPE_TIMEVALUE, TYPE_FLOAT);
00328 PROP_FNS(kGetParticleTime, GetParticleTime, kSetParticleTime, SetParticleTime, TYPE_TIMEVALUE);
00329
00330 FN_1(kGetParticleAgeByIndex, TYPE_TIMEVALUE, GetParticleAgeByIndex, TYPE_INDEX);
00331 FN_1(kGetParticleAgeByBornIndex, TYPE_TIMEVALUE, GetParticleAgeByBornIndex, TYPE_INDEX);
00332 VFN_2(kSetParticleAgeByIndex, SetParticleAgeByIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00333 VFN_2(kSetParticleAgeByBornIndex, SetParticleAgeByBornIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00334 PROP_FNS(kGetParticleAge, GetParticleAge, kSetParticleAge, SetParticleAge, TYPE_TIMEVALUE);
00335
00336 FN_1(kGetParticleLifespanByIndex, TYPE_TIMEVALUE, GetParticleLifespanByIndex, TYPE_INDEX);
00337 FN_1(kGetParticleLifespanByBornIndex, TYPE_TIMEVALUE, GetParticleLifespanByBornIndex, TYPE_INDEX);
00338 VFN_2(kSetParticleLifespanByIndex, SetParticleLifespanByIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00339 VFN_2(kSetParticleLifespanByBornIndex, SetParticleLifespanByBornIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00340 PROP_FNS(kGetParticleLifespan, GetParticleLifespan, kSetParticleLifespan, SetParticleLifespan, TYPE_TIMEVALUE);
00341
00342 FN_1(kGetParticleEventTimeByIndex, TYPE_TIMEVALUE, GetParticleEventTimeByIndex, TYPE_INDEX);
00343 FN_1(kGetParticleEventTimeByBornIndex, TYPE_TIMEVALUE, GetParticleEventTimeByBornIndex,TYPE_INDEX);
00344 VFN_2(kSetParticleEventTimeByIndex, SetParticleEventTimeByIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00345 VFN_2(kSetParticleEventTimeByBornIndex, SetParticleEventTimeByBornIndex,TYPE_INDEX, TYPE_TIMEVALUE);
00346 PROP_FNS(kGetParticleEventTime, GetParticleEventTime, kSetParticleEventTime, SetParticleEventTime, TYPE_TIMEVALUE);
00347
00348 FN_1(kGetParticlePositionByIndex, TYPE_POINT3, GetParticlePositionByIndex, TYPE_INDEX);
00349 FN_1(kGetParticlePositionByBornIndex, TYPE_POINT3, GetParticlePositionByBornIndex, TYPE_INDEX);
00350 VFN_2(kSetParticlePositionByIndex, SetParticlePositionByIndex, TYPE_INDEX, TYPE_POINT3);
00351 VFN_2(kSetParticlePositionByBornIndex, SetParticlePositionByBornIndex, TYPE_INDEX, TYPE_POINT3);
00352 PROP_FNS(kGetParticlePosition, GetParticlePosition, kSetParticlePosition, SetParticlePosition, TYPE_POINT3);
00353
00354 FN_1(kGetParticleSpeedByIndex, TYPE_POINT3, GetParticleSpeedByIndex, TYPE_INDEX);
00355 FN_1(kGetParticleSpeedByBornIndex, TYPE_POINT3, GetParticleSpeedByBornIndex, TYPE_INDEX);
00356 VFN_2(kSetParticleSpeedByIndex, SetParticleSpeedByIndex, TYPE_INDEX, TYPE_POINT3);
00357 VFN_2(kSetParticleSpeedByBornIndex, SetParticleSpeedByBornIndex, TYPE_INDEX, TYPE_POINT3);
00358 PROP_FNS(kGetParticleSpeed, GetParticleSpeed, kSetParticleSpeed, SetParticleSpeed, TYPE_POINT3);
00359
00360 FN_1(kGetParticleAccelerationByIndex, TYPE_POINT3, GetParticleAccelerationByIndex, TYPE_INDEX);
00361 FN_1(kGetParticleAccelerationByBornIndex, TYPE_POINT3, GetParticleAccelerationByBornIndex, TYPE_INDEX);
00362 VFN_2(kSetParticleAccelerationByIndex, SetParticleAccelerationByIndex, TYPE_INDEX, TYPE_POINT3);
00363 VFN_2(kSetParticleAccelerationByBornIndex, SetParticleAccelerationByBornIndex, TYPE_INDEX, TYPE_POINT3);
00364 PROP_FNS(kGetParticleAcceleration, GetParticleAcceleration, kSetParticleAcceleration, SetParticleAcceleration, TYPE_POINT3);
00365
00366 FN_1(kGetParticleOrientationByIndex, TYPE_POINT3, GetParticleOrientationByIndex, TYPE_INDEX);
00367 FN_1(kGetParticleOrientationByBornIndex, TYPE_POINT3, GetParticleOrientationByBornIndex, TYPE_INDEX);
00368 VFN_2(kSetParticleOrientationByIndex, SetParticleOrientationByIndex, TYPE_INDEX, TYPE_POINT3);
00369 VFN_2(kSetParticleOrientationByBornIndex, SetParticleOrientationByBornIndex, TYPE_INDEX, TYPE_POINT3);
00370 PROP_FNS(kGetParticleOrientation, GetParticleOrientation, kSetParticleOrientation, SetParticleOrientation, TYPE_POINT3);
00371
00372 FN_1(kGetParticleSpinByIndex, TYPE_ANGAXIS, GetParticleSpinByIndex, TYPE_INDEX);
00373 FN_1(kGetParticleSpinByBornIndex, TYPE_ANGAXIS, GetParticleSpinByBornIndex, TYPE_INDEX);
00374 VFN_2(kSetParticleSpinByIndex, SetParticleSpinByIndex, TYPE_INDEX, TYPE_ANGAXIS);
00375 VFN_2(kSetParticleSpinByBornIndex, SetParticleSpinByBornIndex, TYPE_INDEX, TYPE_ANGAXIS);
00376 PROP_FNS(kGetParticleSpin, GetParticleSpin, kSetParticleSpin, SetParticleSpin, TYPE_ANGAXIS);
00377
00378 FN_1(kGetParticleScaleByIndex, TYPE_FLOAT, GetParticleScaleByIndex, TYPE_INDEX);
00379 FN_1(kGetParticleScaleByBornIndex, TYPE_FLOAT, GetParticleScaleByBornIndex, TYPE_INDEX);
00380 VFN_2(kSetParticleScaleByIndex, SetParticleScaleByIndex, TYPE_INDEX, TYPE_FLOAT);
00381 VFN_2(kSetParticleScaleByBornIndex, SetParticleScaleByBornIndex, TYPE_INDEX, TYPE_FLOAT);
00382 PROP_FNS(kGetParticleScale, GetParticleScale, kSetParticleScale, SetParticleScale, TYPE_FLOAT);
00383 FN_1(kGetParticleScaleXYZByIndex, TYPE_POINT3,GetParticleScaleXYZByIndex, TYPE_INDEX);
00384 FN_1(kGetParticleScaleXYZByBornIndex, TYPE_POINT3,GetParticleScaleXYZByBornIndex, TYPE_INDEX);
00385 VFN_2(kSetParticleScaleXYZByIndex, SetParticleScaleXYZByIndex, TYPE_INDEX, TYPE_POINT3);
00386 VFN_2(kSetParticleScaleXYZByBornIndex, SetParticleScaleXYZByBornIndex, TYPE_INDEX, TYPE_POINT3);
00387 PROP_FNS(kGetParticleScaleXYZ, GetParticleScaleXYZ, kSetParticleScaleXYZ, SetParticleScaleXYZ, TYPE_POINT3);
00388
00389 FN_1(kGetParticleTMByIndex, TYPE_MATRIX3, GetParticleTMByIndex, TYPE_INDEX);
00390 FN_1(kGetParticleTMByBornIndex, TYPE_MATRIX3, GetParticleTMByBornIndex, TYPE_INDEX);
00391 VFN_2(kSetParticleTMByIndex, SetParticleTMByIndex, TYPE_INDEX, TYPE_MATRIX3);
00392 VFN_2(kSetParticleTMByBornIndex, SetParticleTMByBornIndex, TYPE_INDEX, TYPE_MATRIX3);
00393 PROP_FNS(kGetParticleTM, GetParticleTM, kSetParticleTM, SetParticleTM, TYPE_MATRIX3);
00394
00395 FN_1(kGetParticleSelectedByIndex, TYPE_bool, GetParticleSelectedByIndex, TYPE_INDEX);
00396 FN_1(kGetParticleSelectedByBornIndex, TYPE_bool, GetParticleSelectedByBornIndex, TYPE_INDEX);
00397 VFN_2(kSetParticleSelectedByIndex, SetParticleSelectedByIndex, TYPE_INDEX, TYPE_bool);
00398 VFN_2(kSetParticleSelectedByBornIndex, SetParticleSelectedByBornIndex, TYPE_INDEX, TYPE_bool);
00399 PROP_FNS(kGetParticleSelected, GetParticleSelected, kSetParticleSelected, SetParticleSelected, TYPE_bool);
00400
00401 FN_1(kGetParticleShapeByIndex, TYPE_MESH, GetParticleShapeByIndex, TYPE_INDEX);
00402 FN_1(kGetParticleShapeByBornIndex, TYPE_MESH, GetParticleShapeByBornIndex, TYPE_INDEX);
00403 VFN_2(kSetParticleShapeByIndex, SetParticleShapeByIndex, TYPE_INDEX, TYPE_MESH);
00404 VFN_2(kSetParticleShapeByBornIndex, SetParticleShapeByBornIndex, TYPE_INDEX, TYPE_MESH);
00405 VFN_1(kSetGlobalParticleShape, SetGlobalParticleShape, TYPE_MESH);
00406 PROP_FNS(kGetParticleShape, GetParticleShape, kSetParticleShape, SetParticleShape, TYPE_MESH);
00407
00408 VFN_2(kSetParticleMtlIndexByIndex, SetParticleMtlIndexByIndex, TYPE_INDEX, TYPE_INDEX);
00409 VFN_2(kSetParticleMtlIndexByBornIndex, SetParticleMtlIndexByBornIndex, TYPE_INDEX, TYPE_INDEX);
00410 VFN_1(kSetGlobalParticleMtlIndex, SetParticleMtlIndex, TYPE_INDEX);
00411
00412 VFN_3(kSetParticleMappingByIndex, SetParticleMappingByIndex, TYPE_INDEX, TYPE_INT, TYPE_POINT3);
00413 VFN_3(kSetParticleMappingByBornIndex, SetParticleMappingByBornIndex, TYPE_INDEX, TYPE_INT, TYPE_POINT3);
00414 VFN_2(kSetGlobalParticleMapping, SetParticleMapping, TYPE_INT, TYPE_POINT3);
00415
00416 FN_1(kGetParticleIntByIndex, TYPE_INT, GetParticleIntByIndex, TYPE_INDEX);
00417 FN_1(kGetParticleIntByBornIndex, TYPE_INT, GetParticleIntByBornIndex, TYPE_INDEX);
00418 VFN_2(kSetParticleIntByIndex, SetParticleIntByIndex, TYPE_INDEX, TYPE_INT);
00419 VFN_2(kSetParticleIntByBornIndex, SetParticleIntByBornIndex, TYPE_INDEX, TYPE_INT);
00420 PROP_FNS(kGetParticleInt, GetParticleInt, kSetParticleInt, SetParticleInt, TYPE_INT);
00421
00422 FN_1(kGetParticleFloatByIndex, TYPE_FLOAT, GetParticleFloatByIndex, TYPE_INDEX);
00423 FN_1(kGetParticleFloatByBornIndex, TYPE_FLOAT, GetParticleFloatByBornIndex, TYPE_INDEX);
00424 VFN_2(kSetParticleFloatByIndex, SetParticleFloatByIndex, TYPE_INDEX, TYPE_FLOAT);
00425 VFN_2(kSetParticleFloatByBornIndex, SetParticleFloatByBornIndex, TYPE_INDEX, TYPE_FLOAT);
00426 PROP_FNS(kGetParticleFloat, GetParticleFloat, kSetParticleFloat, SetParticleFloat, TYPE_FLOAT);
00427
00428 FN_1(kGetParticleVectorByIndex, TYPE_POINT3, GetParticleVectorByIndex, TYPE_INDEX);
00429 FN_1(kGetParticleVectorByBornIndex, TYPE_POINT3, GetParticleVectorByBornIndex, TYPE_INDEX);
00430 VFN_2(kSetParticleVectorByIndex, SetParticleVectorByIndex, TYPE_INDEX, TYPE_POINT3);
00431 VFN_2(kSetParticleVectorByBornIndex, SetParticleVectorByBornIndex, TYPE_INDEX, TYPE_POINT3);
00432 PROP_FNS(kGetParticleVector, GetParticleVector, kSetParticleVector, SetParticleVector, TYPE_POINT3);
00433
00434 FN_1(kGetParticleMatrixByIndex, TYPE_MATRIX3, GetParticleMatrixByIndex, TYPE_INDEX);
00435 FN_1(kGetParticleMatrixByBornIndex, TYPE_MATRIX3, GetParticleMatrixByBornIndex, TYPE_INDEX);
00436 VFN_2(kSetParticleMatrixByIndex, SetParticleMatrixByIndex, TYPE_INDEX, TYPE_MATRIX3);
00437 VFN_2(kSetParticleMatrixByBornIndex, SetParticleMatrixByBornIndex, TYPE_INDEX, TYPE_MATRIX3);
00438 PROP_FNS(kGetParticleMatrix, GetParticleMatrix, kSetParticleMatrix, SetParticleMatrix, TYPE_MATRIX3);
00439
00440 VFN_2(kSetParticleTestStatusByIndex, SetParticleTestStatusByIndex, TYPE_INDEX, TYPE_bool);
00441 VFN_2(kSetParticleTestStatusByBornIndex, SetParticleTestStatusByBornIndex, TYPE_INDEX, TYPE_bool);
00442 VFN_1(kSetGlobalTestStatus, SetGlobalTestStatus, TYPE_bool);
00443 PROP_FNS(kGetParticleTestStatus, GetParticleTestStatus, kSetParticleTestStatus, SetParticleTestStatus, TYPE_bool);
00444
00445 VFN_2(kSetParticleTestTimeByIndex, SetParticleTestTimeByIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00446 VFN_3(kSetParticleTestTimePreciseByIndex, SetParticleTestTimeByIndex, TYPE_INDEX, TYPE_TIMEVALUE, TYPE_FLOAT);
00447 VFN_2(kSetParticleTestTimeByBornIndex, SetParticleTestTimeByBornIndex, TYPE_INDEX, TYPE_TIMEVALUE);
00448 VFN_3(kSetParticleTestTimePreciseByBornIndex, SetParticleTestTimeByBornIndex, TYPE_INDEX, TYPE_TIMEVALUE, TYPE_FLOAT);
00449 PROP_FNS(kGetParticleTestTime, GetParticleTestTime, kSetParticleTestTime, SetParticleTestTime, TYPE_TIMEVALUE);
00450 VFN_2(kSetParticleTestTimePrecise, SetParticleTestTime, TYPE_TIMEVALUE, TYPE_FLOAT);
00451 VFN_1(kSetGlobalTestTime, SetGlobalTestTime, TYPE_TIMEVALUE);
00452 VFN_2(kSetGlobalTestTimePrecise, SetGlobalTestTime, TYPE_TIMEVALUE, TYPE_FLOAT);
00453
00454 END_FUNCTION_MAP
00455
00463 virtual IObject* GetParticleContainer() const = 0;
00464
00468 virtual Object* GetParticleSystem() const = 0;
00469
00473 virtual INode* GetParticleSystemNode() const = 0;
00474
00478 virtual Tab<Object*>& GetInitActions() = 0;
00479
00483 virtual Tab<INode*>& GetInitActionNodes() = 0;
00484
00488 virtual TimeValue GetTimeStart() const = 0;
00489
00493 virtual TimeValue GetTimeEnd() const = 0;
00494
00498 virtual void SetTimeEnd(TimeValue time) = 0;
00499
00503 virtual void SetTimeEnd(TimeValue time, float timeDelta) = 0;
00504
00508 virtual INode* GetActionNode() const = 0;
00509
00513 virtual FPInterface* GetIntegrator() const = 0;
00514
00518 virtual int RandSign( void ) = 0;
00519
00523 virtual float Rand01( void ) = 0;
00524
00528 virtual float Rand11( void ) = 0;
00529
00533 virtual float Rand55( void ) = 0;
00534
00538 virtual int Rand0X(int maxnum) = 0;
00539
00543 virtual Point3* RandSpherePoint() = 0;
00544
00548 virtual Point3* RandDivergeVector(Point3 vec, float maxAngle) = 0;
00549
00553 virtual bool GetUseTime() const = 0;
00554
00558 virtual void SetUseTime(bool use) = 0;
00559
00563 virtual bool GetUseAge() const = 0;
00564
00568 virtual void SetUseAge(bool use) = 0;
00569
00573 virtual bool GetUseLifespan() const = 0;
00574
00578 virtual void SetUseLifespan(bool use) = 0;
00579
00583 virtual bool GetUseEventTime() const = 0;
00584
00588 virtual void SetUseEventTime(bool use) = 0;
00589
00593 virtual bool GetUsePosition() const = 0;
00594
00598 virtual void SetUsePosition(bool use) = 0;
00599
00603 virtual bool GetUseSpeed() const = 0;
00604
00608 virtual void SetUseSpeed(bool use) = 0;
00609
00613 virtual bool GetUseAcceleration() const = 0;
00614
00618 virtual void SetUseAcceleration(bool use) = 0;
00619
00623 virtual bool GetUseOrientation() const = 0;
00624
00628 virtual void SetUseOrientation(bool use) = 0;
00629
00633 virtual bool GetUseSpin() const = 0;
00634
00638 virtual void SetUseSpin(bool use) = 0;
00639
00643 virtual bool GetUseScale() const = 0;
00644
00648 virtual void SetUseScale(bool use) = 0;
00649
00653 virtual bool GetUseTM() const = 0;
00654
00658 virtual void SetUseTM(bool use) = 0;
00659
00663 virtual bool GetUseSelected() const = 0;
00664
00668 virtual void SetUseSelected(bool use) = 0;
00669
00673 virtual bool GetUseShape() const = 0;
00674
00678 virtual void SetUseShape(bool use) = 0;
00679
00683 virtual bool GetUseMtlIndex() const = 0;
00684
00688 virtual void SetUseMtlIndex(bool use) = 0;
00689
00693 virtual bool GetUseMapping() const = 0;
00694
00698 virtual void SetUseMapping(bool use) = 0;
00699
00703 virtual bool GetUseInt() const = 0;
00704
00708 virtual void SetUseInt(bool use) = 0;
00709
00713 virtual bool GetUseFloat() const = 0;
00714
00718 virtual void SetUseFloat(bool use) = 0;
00719
00723 virtual bool GetUseVector() const = 0;
00724
00728 virtual void SetUseVector(bool use) = 0;
00729
00733 virtual bool GetUseMatrix() const = 0;
00734
00738 virtual void SetUseMatrix(bool use) = 0;
00739
00743 virtual int NumParticles() = 0;
00744
00748 virtual bool AddParticle() = 0;
00749
00753 virtual bool AddParticles(int num) = 0;
00754
00758 virtual bool DeleteParticle(int index) = 0;
00759
00763 virtual bool DeleteParticles(int start, int num) = 0;
00764
00770 virtual int GetParticleBornIndex(int i) = 0;
00771
00778 virtual bool HasParticleBornIndex(int bornIndex, int& index) = 0;
00779
00783 virtual int GetCurrentParticleIndex() = 0;
00784
00788 virtual int GetCurrentParticleBornIndex() = 0;
00789
00793 virtual void SetCurrentParticleIndex(int index) = 0;
00794
00798 virtual void SetCurrentParticleBornIndex(int bornIndex) = 0;
00799
00806 virtual bool IsParticleNewByIndex(int index) = 0;
00807
00811 virtual bool IsParticleNewByBornIndex(int id) = 0;
00812
00816 virtual bool IsParticleNew() = 0;
00817
00827 virtual TimeValue GetParticleTimeByIndex(int index) = 0;
00828
00832 virtual TimeValue GetParticleTimeByBornIndex(int id) = 0;
00833
00837 virtual void SetParticleTimeByIndex(int index, TimeValue time) = 0;
00838
00842 virtual void SetParticleTimeByIndex(int index, TimeValue time, float timeDelta) = 0;
00843
00847 virtual void SetParticleTimeByBornIndex(int id, TimeValue time) = 0;
00848
00852 virtual void SetParticleTimeByBornIndex(int id, TimeValue time, float timeDelta) = 0;
00853
00857 virtual TimeValue GetParticleTime() = 0;
00858
00862 virtual void SetParticleTime(TimeValue time) = 0;
00863
00872 virtual TimeValue GetParticleAgeByIndex(int index) = 0;
00873
00877 virtual TimeValue GetParticleAgeByBornIndex(int id) = 0;
00878
00882 virtual void SetParticleAgeByIndex(int index, TimeValue age) = 0;
00883
00887 virtual void SetParticleAgeByBornIndex(int id, TimeValue age) = 0;
00888
00892 virtual TimeValue GetParticleAge() = 0;
00893
00897 virtual void SetParticleAge(TimeValue age) = 0;
00898
00907 virtual TimeValue GetParticleLifespanByIndex(int index) = 0;
00908
00912 virtual TimeValue GetParticleLifespanByBornIndex(int id) = 0;
00913
00917 virtual void SetParticleLifespanByIndex(int index, TimeValue lifespan) = 0;
00918
00922 virtual void SetParticleLifespanByBornIndex(int id, TimeValue lifespan) = 0;
00923
00927 virtual TimeValue GetParticleLifespan() = 0;
00928
00932 virtual void SetParticleLifespan(TimeValue lifespan) = 0;
00933
00943 virtual TimeValue GetParticleEventTimeByIndex(int index) = 0;
00944
00948 virtual TimeValue GetParticleEventTimeByBornIndex(int id) = 0;
00949
00953 virtual void SetParticleEventTimeByIndex(int index, TimeValue time) = 0;
00954
00958 virtual void SetParticleEventTimeByBornIndex(int id, TimeValue time) = 0;
00959
00963 virtual TimeValue GetParticleEventTime() = 0;
00964
00968 virtual void SetParticleEventTime(TimeValue time) = 0;
00969
00978 virtual Point3* GetParticlePositionByIndex(int index) = 0;
00979
00983 virtual Point3* GetParticlePositionByBornIndex(int id) = 0;
00984
00988 virtual void SetParticlePositionByIndex(int index, Point3 pos) = 0;
00989
00993 virtual void SetParticlePositionByBornIndex(int id, Point3 pos) = 0;
00994
00998 virtual Point3* GetParticlePosition() = 0;
00999
01003 virtual void SetParticlePosition(Point3 pos) = 0;
01004
01013 virtual Point3* GetParticleSpeedByIndex(int index) = 0;
01014
01018 virtual Point3* GetParticleSpeedByBornIndex(int id) = 0;
01019
01023 virtual void SetParticleSpeedByIndex(int index, Point3 speed) = 0;
01024
01028 virtual void SetParticleSpeedByBornIndex(int id, Point3 speed) = 0;
01029
01033 virtual Point3* GetParticleSpeed() = 0;
01034
01038 virtual void SetParticleSpeed(Point3 speed) = 0;
01039
01049 virtual Point3* GetParticleAccelerationByIndex(int index) = 0;
01050
01054 virtual Point3* GetParticleAccelerationByBornIndex(int id) = 0;
01055
01059 virtual void SetParticleAccelerationByIndex(int index, Point3 accel) = 0;
01060
01064 virtual void SetParticleAccelerationByBornIndex(int id, Point3 accel) = 0;
01065
01069 virtual Point3* GetParticleAcceleration() = 0;
01070
01074 virtual void SetParticleAcceleration(Point3 speed) = 0;
01075
01084 virtual Point3* GetParticleOrientationByIndex(int index) = 0;
01085
01089 virtual Point3* GetParticleOrientationByBornIndex(int id) = 0;
01090
01094 virtual void SetParticleOrientationByIndex(int index, Point3 orient) = 0;
01095
01099 virtual void SetParticleOrientationByBornIndex(int id, Point3 orient) = 0;
01100
01104 virtual Point3* GetParticleOrientation() = 0;
01105
01109 virtual void SetParticleOrientation(Point3 orient) = 0;
01110
01119 virtual AngAxis* GetParticleSpinByIndex(int index) = 0;
01120
01124 virtual AngAxis* GetParticleSpinByBornIndex(int id) = 0;
01125
01129 virtual void SetParticleSpinByIndex(int index, AngAxis spin) = 0;
01130
01134 virtual void SetParticleSpinByBornIndex(int id, AngAxis spin) = 0;
01135
01139 virtual AngAxis* GetParticleSpin() = 0;
01140
01144 virtual void SetParticleSpin(AngAxis spin) = 0;
01145
01155 virtual float GetParticleScaleByIndex(int index) = 0;
01156
01160 virtual float GetParticleScaleByBornIndex(int id) = 0;
01161
01165 virtual void SetParticleScaleByIndex(int index, float scale) = 0;
01166
01170 virtual void SetParticleScaleByBornIndex(int id, float scale) = 0;
01171
01175 virtual float GetParticleScale() = 0;
01176
01180 virtual void SetParticleScale(float scale) = 0;
01181
01185 virtual Point3* GetParticleScaleXYZByIndex(int index) = 0;
01186
01190 virtual Point3* GetParticleScaleXYZByBornIndex(int id) = 0;
01191
01195 virtual void SetParticleScaleXYZByIndex(int index, Point3 scale) = 0;
01196
01200 virtual void SetParticleScaleXYZByBornIndex(int id, Point3 scale) = 0;
01201
01205 virtual Point3* GetParticleScaleXYZ() = 0;
01206
01210 virtual void SetParticleScaleXYZ(Point3 scale) = 0;
01211
01219 virtual Matrix3* GetParticleTMByIndex(int index) = 0;
01220
01224 virtual Matrix3* GetParticleTMByBornIndex(int id) = 0;
01225
01229 virtual void SetParticleTMByIndex(int index, Matrix3 tm) = 0;
01230
01234 virtual void SetParticleTMByBornIndex(int id, Matrix3 tm) = 0;
01235
01239 virtual Matrix3* GetParticleTM() = 0;
01240
01244 virtual void SetParticleTM(Matrix3 tm) = 0;
01245
01254 virtual bool GetParticleSelectedByIndex(int index) = 0;
01255
01259 virtual bool GetParticleSelectedByBornIndex(int id) = 0;
01260
01264 virtual void SetParticleSelectedByIndex(int index, bool selected) = 0;
01265
01269 virtual void SetParticleSelectedByBornIndex(int id, bool selected) = 0;
01270
01274 virtual bool GetParticleSelected() = 0;
01275
01279 virtual void SetParticleSelected(bool selected) = 0;
01280
01281
01290 virtual Mesh* GetParticleShapeByIndex(int index) = 0;
01291
01295 virtual Mesh* GetParticleShapeByBornIndex(int id) = 0;
01296
01300 virtual void SetParticleShapeByIndex(int index, Mesh* shape) = 0;
01301
01305 virtual void SetParticleShapeByBornIndex(int id, Mesh* shape) = 0;
01306
01310 virtual Mesh* GetParticleShape() = 0;
01311
01315 virtual void SetParticleShape(Mesh* shape) = 0;
01316
01320 virtual void SetGlobalParticleShape(Mesh* shape) = 0;
01321
01330 virtual void SetParticleMtlIndexByIndex(int index, int mtlIndex) = 0;
01331
01335 virtual void SetParticleMtlIndexByBornIndex(int id, int mtlIndex) = 0;
01336
01340 virtual void SetParticleMtlIndex(int mtlIndex) = 0;
01341
01352 virtual void SetParticleMappingByIndex(int index, int mapChannel, UVVert mapValue) = 0;
01353
01357 virtual void SetParticleMappingByBornIndex(int id, int mapChannel, UVVert mapValue) = 0;
01358
01362 virtual void SetParticleMapping(int mapChannel, UVVert mapValue) = 0;
01363
01373 virtual int GetParticleIntByIndex(int index) = 0;
01374
01378 virtual int GetParticleIntByBornIndex(int id) = 0;
01379
01383 virtual void SetParticleIntByIndex(int index, int value) = 0;
01384
01388 virtual void SetParticleIntByBornIndex(int id, int value) = 0;
01389
01393 virtual int GetParticleInt() = 0;
01394
01398 virtual void SetParticleInt(int value) = 0;
01399
01409 virtual float GetParticleFloatByIndex(int index) = 0;
01410
01414 virtual float GetParticleFloatByBornIndex(int id) = 0;
01415
01419 virtual void SetParticleFloatByIndex(int index, float value) = 0;
01420
01424 virtual void SetParticleFloatByBornIndex(int id, float value) = 0;
01425
01429 virtual float GetParticleFloat() = 0;
01430
01434 virtual void SetParticleFloat(float value) = 0;
01435
01443 virtual Point3* GetParticleVectorByIndex(int index) = 0;
01444
01448 virtual Point3* GetParticleVectorByBornIndex(int id) = 0;
01449
01453 virtual void SetParticleVectorByIndex(int index, Point3 value) = 0;
01454
01458 virtual void SetParticleVectorByBornIndex(int id, Point3 value) = 0;
01459
01463 virtual Point3* GetParticleVector() = 0;
01464
01468 virtual void SetParticleVector(Point3 value) = 0;
01469
01477 virtual Matrix3* GetParticleMatrixByIndex(int index) = 0;
01478
01482 virtual Matrix3* GetParticleMatrixByBornIndex(int id) = 0;
01483
01487 virtual void SetParticleMatrixByIndex(int index, Matrix3 value) = 0;
01488
01492 virtual void SetParticleMatrixByBornIndex(int id, Matrix3 value) = 0;
01493
01497 virtual Matrix3* GetParticleMatrix() = 0;
01498
01502 virtual void SetParticleMatrix(Matrix3 value) = 0;
01503
01511 virtual void SetParticleTestStatusByIndex(int index, bool testStatus) = 0;
01512
01516 virtual void SetParticleTestStatusByBornIndex(int id, bool testStatus) = 0;
01517
01521 virtual bool GetParticleTestStatus() = 0;
01522
01526 virtual void SetParticleTestStatus(bool testStatus) = 0;
01527
01531 virtual void SetGlobalTestStatus(bool testStatus) = 0;
01532
01541 virtual void SetParticleTestTimeByIndex(int index, TimeValue testTime) = 0;
01542
01546 virtual void SetParticleTestTimeByIndex(int index, TimeValue testTime, float testTimeDelta) = 0;
01547
01551 virtual void SetParticleTestTimeByBornIndex(int id, TimeValue testTime) = 0;
01552
01556 virtual void SetParticleTestTimeByBornIndex(int id, TimeValue testTime, float testTimeDelta) = 0;
01557
01561 virtual TimeValue GetParticleTestTime() = 0;
01562
01566 virtual void SetParticleTestTime(TimeValue testTime) = 0;
01567
01571 virtual void SetParticleTestTime(TimeValue testTime, float testTimeDelta) = 0;
01572
01576 virtual void SetGlobalTestTime(TimeValue testTime) = 0;
01577
01581 virtual void SetGlobalTestTime(TimeValue testTime, float testTimeDelta) = 0;
01582
01586 FPInterfaceDesc* GetDesc() { return GetDescByID(MXSPARTICLECONTAINER_INTERFACE); }
01587 };
01588