mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-14 04:03:46 +00:00
fill in the validated variables
This commit is contained in:
parent
fa760fa746
commit
f633ef3a3d
184 changed files with 1359 additions and 1216 deletions
|
|
@ -141,6 +141,8 @@ ParticleData::ParticleData()
|
|||
FRangeValidator dragCoefFValidator(0.f, 5.f);
|
||||
FRangeValidator gravCoefFValidator(-10.f, 10.f);
|
||||
FRangeValidator spinRandFValidator(-1000.f, 1000.f);
|
||||
FRangeValidator particleTimeFValidator(0.0f, 1.0f, 1<<8);
|
||||
FRangeValidator particleSizeFValidator(0.0f, MaxParticleSize, 1<<16);
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// initPersistFields
|
||||
|
|
@ -160,31 +162,31 @@ void ParticleData::initPersistFields()
|
|||
"If true, particles blend like ParticleBlendStyle NORMAL, if false, "
|
||||
"blend like ParticleBlendStyle ADDITIVE.\n"
|
||||
"@note If ParticleEmitterData::blendStyle is set, it will override this value.");
|
||||
addField("lifetimeMS", TYPEID< S32 >(), Offset(lifetimeMS, ParticleData),
|
||||
addFieldV("lifetimeMS", TypeRangedS32, Offset(lifetimeMS, ParticleData), &CommonValidators::PositiveInt,
|
||||
"Time in milliseconds before this particle is destroyed.");
|
||||
addField("lifetimeVarianceMS", TYPEID< S32 >(), Offset(lifetimeVarianceMS, ParticleData),
|
||||
addFieldV("lifetimeVarianceMS", TypeRangedS32, Offset(lifetimeVarianceMS, ParticleData), &CommonValidators::PositiveInt,
|
||||
"Variance in lifetime of particle, from 0 - lifetimeMS.");
|
||||
endGroup("Basic");
|
||||
|
||||
addGroup("Motion");
|
||||
addFieldV("dragCoefficient", TYPEID< F32 >(), Offset(dragCoefficient, ParticleData), &dragCoefFValidator,
|
||||
addFieldV("dragCoefficient", TypeRangedF32, Offset(dragCoefficient, ParticleData), &dragCoefFValidator,
|
||||
"Particle physics drag amount.");
|
||||
addField("windCoefficient", TYPEID< F32 >(), Offset(windCoefficient, ParticleData),
|
||||
addFieldV("windCoefficient", TypeRangedF32, Offset(windCoefficient, ParticleData),&CommonValidators::F32Range,
|
||||
"Strength of wind on the particles.");
|
||||
addFieldV("gravityCoefficient", TYPEID< F32 >(), Offset(gravityCoefficient, ParticleData), &gravCoefFValidator,
|
||||
addFieldV("gravityCoefficient", TypeRangedF32, Offset(gravityCoefficient, ParticleData), &gravCoefFValidator,
|
||||
"Strength of gravity on the particles.");
|
||||
addFieldV("inheritedVelFactor", TYPEID< F32 >(), Offset(inheritedVelFactor, ParticleData), &CommonValidators::NormalizedFloat,
|
||||
addFieldV("inheritedVelFactor", TypeRangedF32, Offset(inheritedVelFactor, ParticleData), &CommonValidators::NormalizedFloat,
|
||||
"Amount of emitter velocity to add to particle initial velocity.");
|
||||
addField("constantAcceleration", TYPEID< F32 >(), Offset(constantAcceleration, ParticleData),
|
||||
addFieldV("constantAcceleration", TypeRangedF32, Offset(constantAcceleration, ParticleData), &CommonValidators::F32Range,
|
||||
"Constant acceleration to apply to this particle.");
|
||||
endGroup("Motion");
|
||||
|
||||
addGroup("Spin");
|
||||
addField("spinSpeed", TYPEID< F32 >(), Offset(spinSpeed, ParticleData),
|
||||
addFieldV("spinSpeed", TypeRangedF32, Offset(spinSpeed, ParticleData), &spinRandFValidator,
|
||||
"Speed at which to spin the particle.");
|
||||
addFieldV("spinRandomMin", TYPEID< F32 >(), Offset(spinRandomMin, ParticleData), &spinRandFValidator,
|
||||
addFieldV("spinRandomMin", TypeRangedF32, Offset(spinRandomMin, ParticleData), &spinRandFValidator,
|
||||
"Minimum allowed spin speed of this particle, between -1000 and spinRandomMax.");
|
||||
addFieldV("spinRandomMax", TYPEID< F32 >(), Offset(spinRandomMax, ParticleData), &spinRandFValidator,
|
||||
addFieldV("spinRandomMax", TypeRangedF32, Offset(spinRandomMax, ParticleData), &spinRandFValidator,
|
||||
"Maximum allowed spin speed of this particle, between spinRandomMin and 1000.");
|
||||
endGroup("Spin");
|
||||
|
||||
|
|
@ -223,16 +225,16 @@ void ParticleData::initPersistFields()
|
|||
|
||||
// Interpolation variables
|
||||
addGroup("Over Time");
|
||||
addProtectedField("times", TYPEID< F32 >(), Offset(times, ParticleData), &protectedSetTimes,
|
||||
&defaultProtectedGetFn, PDC_NUM_KEYS,
|
||||
addProtectedFieldV("times", TypeRangedF32, Offset(times, ParticleData), &protectedSetTimes,
|
||||
&defaultProtectedGetFn, &particleTimeFValidator, PDC_NUM_KEYS,
|
||||
"@brief Time keys used with the colors and sizes keyframes.\n\n"
|
||||
"Values are from 0.0 (particle creation) to 1.0 (end of lifespace).");
|
||||
addField( "colors", TYPEID< LinearColorF >(), Offset(colors, ParticleData), PDC_NUM_KEYS,
|
||||
"@brief Particle RGBA color keyframe values.\n\n"
|
||||
"The particle color will linearly interpolate between the color/time keys "
|
||||
"over the lifetime of the particle." );
|
||||
addProtectedField( "sizes", TYPEID< F32 >(), Offset(sizes, ParticleData), &protectedSetSizes,
|
||||
&defaultProtectedGetFn, PDC_NUM_KEYS,
|
||||
addProtectedFieldV( "sizes", TypeRangedF32, Offset(sizes, ParticleData), &protectedSetSizes,
|
||||
&defaultProtectedGetFn, &particleSizeFValidator, PDC_NUM_KEYS,
|
||||
"@brief Particle size keyframe values.\n\n"
|
||||
"The particle size will linearly interpolate between the size/time keys "
|
||||
"over the lifetime of the particle." );
|
||||
|
|
@ -242,10 +244,10 @@ void ParticleData::initPersistFields()
|
|||
addProtectedField("textureExtName", TypeFilename, Offset(mTextureExtName, ParticleData), _setTextureExtData, &defaultProtectedGetFn, "", AbstractClassRep::FIELD_HideInInspectors);
|
||||
INITPERSISTFIELD_IMAGEASSET(TextureExt, ParticleData, "");
|
||||
addField("constrainPos", TypeBool, Offset(constrain_pos, ParticleData));
|
||||
addField("angle", TypeF32, Offset(start_angle, ParticleData));
|
||||
addField("angleVariance", TypeF32, Offset(angle_variance, ParticleData));
|
||||
addField("sizeBias", TypeF32, Offset(sizeBias, ParticleData));
|
||||
addField("spinBias", TypeF32, Offset(spinBias, ParticleData));
|
||||
addFieldV("angle", TypeRangedF32, Offset(start_angle, ParticleData), &CommonValidators::DegreeRange);
|
||||
addFieldV("angleVariance", TypeRangedF32, Offset(angle_variance, ParticleData), &CommonValidators::DegreeRange);
|
||||
addFieldV("sizeBias", TypeRangedF32, Offset(sizeBias, ParticleData), &CommonValidators::F32Range);
|
||||
addFieldV("spinBias", TypeRangedF32, Offset(spinBias, ParticleData), &CommonValidators::F32Range);
|
||||
addField("randomizeSpinDir", TypeBool, Offset(randomizeSpinDir, ParticleData));
|
||||
endGroup("AFX");
|
||||
Parent::initPersistFields();
|
||||
|
|
@ -296,10 +298,10 @@ void ParticleData::packData(BitStream* stream)
|
|||
|
||||
for( i=0; i<count; i++ )
|
||||
{
|
||||
stream->writeFloat( colors[i].red, 7);
|
||||
stream->writeFloat( colors[i].green, 7);
|
||||
stream->writeFloat( colors[i].blue, 7);
|
||||
stream->writeFloat( colors[i].alpha, 7);
|
||||
stream->writeFloat( colors[i].red, 8);
|
||||
stream->writeFloat( colors[i].green, 8);
|
||||
stream->writeFloat( colors[i].blue, 8);
|
||||
stream->writeFloat( colors[i].alpha, 8);
|
||||
// AFX bits raised from 14 to 16 to allow larger sizes
|
||||
stream->writeFloat( sizes[i]/MaxParticleSize, 16);
|
||||
stream->writeFloat( times[i], 8);
|
||||
|
|
@ -381,10 +383,10 @@ void ParticleData::unpackData(BitStream* stream)
|
|||
S32 count = stream->readInt(3) + 1;
|
||||
for(i = 0;i < count; i++)
|
||||
{
|
||||
colors[i].red = stream->readFloat(7);
|
||||
colors[i].green = stream->readFloat(7);
|
||||
colors[i].blue = stream->readFloat(7);
|
||||
colors[i].alpha = stream->readFloat(7);
|
||||
colors[i].red = stream->readFloat(8);
|
||||
colors[i].green = stream->readFloat(8);
|
||||
colors[i].blue = stream->readFloat(8);
|
||||
colors[i].alpha = stream->readFloat(8);
|
||||
// AFX bits raised from 14 to 16 to allow larger sizes
|
||||
sizes[i] = stream->readFloat(16) * MaxParticleSize;
|
||||
times[i] = stream->readFloat(8);
|
||||
|
|
@ -443,6 +445,17 @@ bool ParticleData::protectedSetTimes( void *object, const char *index, const cha
|
|||
|
||||
pData->times[i] = mClampF( val, 0.f, 1.f );
|
||||
|
||||
pData->times[0] = 0.0f;
|
||||
|
||||
S32 last = i - 1;
|
||||
S32 next = i + 1;
|
||||
if (last >= 0 && next < PDC_NUM_KEYS-1)
|
||||
{
|
||||
if ((pData->times[last] != -1.0f) && (pData->times[i] < pData->times[last]))
|
||||
pData->times[i] = pData->times[last];
|
||||
else if ((pData->times[next] != -1.0f) && (pData->times[i] > pData->times[next]))
|
||||
pData->times[i] = pData->times[next];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue