void RandomMovementParticleAffector::changed(ConstFieldMaskArg whichField, UInt32 origin, BitVector details) { Inherited::changed(whichField, origin, details); if(whichField & PersistanceFieldMask) { getPerlinDistribution()->setPersistance(getPersistance()); } else if (whichField & FrequencyFieldMask) { getPerlinDistribution()->setFrequency(getFrequency()); } else if (whichField & InterpolationTypeFieldMask) { getPerlinDistribution()->setInterpolationType(getInterpolationType()); } else if (whichField & OctavesFieldMask) { getPerlinDistribution()->setOctaves(getOctaves()); } else if (whichField & AmplitudeFieldMask ) { getPerlinDistribution()->setAmplitude(getAmplitude()); } else if (whichField & PhaseFieldMask ) { getPerlinDistribution()->setPhase(getPhase()[0]); } }
bool TurbulenceParticleAffector::distributionIsNotInitialized(void) { PerlinNoiseDistribution1DRefPtr dist(getPerlinDistribution()); return (1.0f != getAmplitude() || dist->getPersistance() != getPersistance() || dist->getOctaves() != getOctaves() || dist->getInterpolationType() != getInterpolationType() || dist->getFrequency() != getFrequency()); }
void TurbulenceParticleAffector::changed(ConstFieldMaskArg whichField, UInt32 origin, BitVector details) { Inherited::changed(whichField, origin, details); if(distributionIsNotInitialized()) { getPerlinDistribution()->setFrequency(getFrequency()); getPerlinDistribution()->setPersistance(getPersistance()); getPerlinDistribution()->setOctaves(getOctaves()); getPerlinDistribution()->setAmplitude(1.0f); getPerlinDistribution()->setInterpolationType(getInterpolationType()); getPerlinDistribution()->setPhase(getPhase()[0]); getPerlinDistribution()->setUseSmoothing(true); } if(whichField & PersistanceFieldMask) { getPerlinDistribution()->setPersistance(getPersistance()); } else if (whichField & FrequencyFieldMask) { getPerlinDistribution()->setFrequency(getFrequency()); } else if (whichField & InterpolationTypeFieldMask) { getPerlinDistribution()->setInterpolationType(getInterpolationType()); } else if (whichField & OctavesFieldMask) { getPerlinDistribution()->setOctaves(getOctaves()); } else if (whichField & AmplitudeFieldMask ) { getPerlinDistribution()->setAmplitude(1.0f); } else if (whichField & PhaseFieldMask ) { getPerlinDistribution()->setPhase(getPhase()[0]); } }
//----------------------------------------------------------------------- void ForceField::setForceFieldType(const ForceField::ForceFieldType forceFieldType) { if (mForceFieldCalculationFactory) { Ogre::ushort octaves = getOctaves(); double frequency = getFrequency(); double amplitude = getAmplitude(); double persistence = getPersistence(); unsigned int forceFieldSize = getForceFieldSize(); Ogre::Vector3 worldSize = getWorldSize(); initialise(forceFieldType, forceFieldSize, octaves, frequency, amplitude, persistence, worldSize); } }
void RandomMovementParticleAffector::onCreate(const RandomMovementParticleAffector *source) { if(source != NULL) { //Shader Chunk PerlinNoiseDistribution1DRefPtr TheNoiseDist = PerlinNoiseDistribution1D::create(); TheNoiseDist->setFrequency(getFrequency()); TheNoiseDist->setPersistance(getPersistance()); TheNoiseDist->setOctaves(getOctaves()); TheNoiseDist->setAmplitude(getAmplitude()); TheNoiseDist->setInterpolationType(getInterpolationType()); TheNoiseDist->setPhase(getPhase().x()); TheNoiseDist->setUseSmoothing(true); setPerlinDistribution(TheNoiseDist); } }
Real32 PerlinNoiseDistribution2D::generate(Pnt2f t) const { return calcPerlinNoise(t,getAmplitude(),getFrequency(),getPhase(),getPersistance(),getOctaves(),getInterpolationType(),getUseSmoothing()); }