void Group::setModel(Model* newmodel) { if(!newmodel) newmodel = &getDefaultModel(); if(model == newmodel) return; // empty and change model empty(); decrementChildReference(model); incrementChildReference(newmodel); model = newmodel; // recreate data delete[] particleData; delete[] particleCurrentParams; delete[] particleExtendedParams; particleData = new Particle::ParticleData[pool.getNbReserved()]; particleCurrentParams = new float[pool.getNbReserved() * model->getSizeOfParticleCurrentArray()]; particleExtendedParams = new float[pool.getNbReserved() * model->getSizeOfParticleExtendedArray()]; pool.clear(); // Destroys all the buffers destroyAllBuffers(); }
void NormalEmitter::setNormalZone(Zone* zone) { decrementChildReference(normalZone); incrementChildReference(zone); normalZone = zone; }
void ZoneUnion::addZone(Zone* zone, bool check) { if(!zone) return; if(check && isZoneIncluded(zone)) return; Zones.push_back(zone); incrementChildReference(zone); }
void ModifierGroup::addModifier(Modifier* modifier) { if (modifier == NULL) return; incrementChildReference(modifier); modifiers.push_back(modifier); }
void Modifier::setZone(Zone* zone,bool full) { decrementChildReference(this->zone); incrementChildReference(zone); this->zone = zone; this->full = full; }
void Emitter::setZone(Zone* zone,bool full) { decrementChildReference(this->zone); incrementChildReference(zone); if (zone == NULL) zone = &getDefaultZone(); this->zone = zone; this->full = full; }
void Group::addModifier(Modifier* modifier) { if (modifier == NULL) return; incrementChildReference(modifier); if (bufferManagement) modifier->createBuffers(*this); modifiers.push_back(modifier); }
void Group::addEmitter(Emitter* emitter) { if( emitter == NULL ) return; // Checks if the emitter is already in the group if( emitters.contains(emitter) ) return; incrementChildReference(emitter); emitters.add(emitter); }
void Group::addEmitter(Emitter* emitter) { if (emitter == NULL) return; // Checks if the emitter is already in the group (since 1.03.03) std::vector<Emitter*>::const_iterator it = std::find(emitters.begin(),emitters.end(),emitter); if (it != emitters.end()) return; incrementChildReference(emitter); emitters.push_back(emitter); }
void Group::setRenderer(Renderer* renderer) { decrementChildReference(this->renderer); incrementChildReference(renderer); if ((bufferManagement)&&(renderer != this->renderer)) { if (this->renderer != NULL) this->renderer->destroyBuffers(*this); if (renderer != NULL) renderer->createBuffers(*this); } this->renderer = renderer; }
void System::addGroup(Group* group) { incrementChildReference(group); groups.push_back(group); nbParticles += group->getNbParticles(); }