///=========================================================================== void CParticleSystemShape::buildFromPS(const CParticleSystem &ps) { // must be sure that we are writting in the stream if (_ParticleSystemProto.isReading()) { _ParticleSystemProto.invert(); } // to have const correctness in the prototype, we must do this... CParticleSystem *myPs = const_cast<CParticleSystem *>(&ps); nlassert(myPs); // build the prototype _ParticleSystemProto.serialPtr(myPs); // mirror some system values _MaxViewDist = myPs->getMaxViewDist(); _DestroyWhenOutOfFrustum = myPs->doesDestroyWhenOutOfFrustum(); _DestroyModelWhenOutOfRange = myPs->getDestroyModelWhenOutOfRange(); if (!myPs->getAutoComputeBBox()) { _UsePrecomputedBBox = true; myPs->computeBBox(_PrecomputedBBox); } else { _UsePrecomputedBBox = false; } _Sharing = myPs->isSharingEnabled(); }