void PUObserver::copyAttributesTo( PUObserver* observer ) { // Copy attributes observer->setName(_name); observer->setObserverType(_observerType); observer->_particleTypeToObserve = _particleTypeToObserve; observer->_particleTypeToObserveSet = _particleTypeToObserveSet; observer->_particleSystem = _particleSystem; observer->_observerScale = _observerScale; observer->_observerInterval = _observerInterval; observer->_observerIntervalRemainder = _observerIntervalRemainder; observer->_observerIntervalSet = _observerIntervalSet; observer->_observeUntilEvent = _observeUntilEvent; observer->_eventHandlersExecuted = _eventHandlersExecuted; observer->_enabled = _enabled; observer->_originalEnabled = _originalEnabled; observer->_originalEnabledSet = _originalEnabledSet; // Copy event handlers size_t i = 0; PUEventHandler* eventHandler = 0; for(i = 0; i < getNumEventHandlers(); ++i) { eventHandler = getEventHandler(i); PUEventHandler *clonedEventHandler = PUEventHandlerManager::Instance()->createEventHandler(eventHandler->getEventHandlerType()); eventHandler->copyAttributesTo(clonedEventHandler); observer->addEventHandler(clonedEventHandler); } }
//----------------------------------------------------------------------- void ParticleObserver::copyParentAttributesTo(ParticleObserver* observer) { // Copy attributes observer->setName(mName); observer->mParticleTypeToObserve = mParticleTypeToObserve; observer->mParticleTypeToObserveSet = mParticleTypeToObserveSet; observer->mParentTechnique = mParentTechnique; observer->_mObserverScale = _mObserverScale; observer->mObserverInterval = mObserverInterval; observer->mObserverIntervalRemainder = mObserverIntervalRemainder; observer->mObserverIntervalSet = mObserverIntervalSet; observer->mObserveUntilEvent = mObserveUntilEvent; observer->mEventHandlersExecuted = mEventHandlersExecuted; observer->mEnabled = mEnabled; observer->mOriginalEnabled = mOriginalEnabled; observer->mOriginalEnabledSet = mOriginalEnabledSet; // Copy event handlers size_t i = 0; ParticleEventHandler* eventHandler = 0; ParticleEventHandler* clonedEventHandler = 0; for(i = 0; i < getNumEventHandlers(); ++i) { eventHandler = getEventHandler(i); clonedEventHandler = ParticleSystemManager::getSingletonPtr()->cloneEventHandler(eventHandler); observer->addEventHandler(clonedEventHandler); } }