Example #1
0
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);
		}
	}