コード例 #1
0
ファイル: SPK_Group.cpp プロジェクト: ByeDream/pixellight
	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();
	}
コード例 #2
0
void NormalEmitter::setNormalZone(Zone* zone)
{
	decrementChildReference(normalZone);
	incrementChildReference(zone);

	normalZone = zone;
}
コード例 #3
0
	void ZoneUnion::addZone(Zone* zone, bool check)
	{
		if(!zone) return;
		if(check && isZoneIncluded(zone)) return;

		Zones.push_back(zone);
		incrementChildReference(zone);
	}
コード例 #4
0
void ModifierGroup::addModifier(Modifier* modifier)
{
    if (modifier == NULL)
        return;

    incrementChildReference(modifier);
    modifiers.push_back(modifier);
}
コード例 #5
0
ファイル: SPK_Modifier.cpp プロジェクト: tecan/LunaLibs
	void Modifier::setZone(Zone* zone,bool full)
	{
		decrementChildReference(this->zone);
		incrementChildReference(zone);

		this->zone = zone;
		this->full = full;
	}
コード例 #6
0
ファイル: SPK_Emitter.cpp プロジェクト: LastSupertim/libSpark
	void Emitter::setZone(Zone* zone,bool full)
	{
		decrementChildReference(this->zone);
		incrementChildReference(zone);

		if (zone == NULL)
			zone = &getDefaultZone();

		this->zone = zone;
		this->full = full;
	}
コード例 #7
0
ファイル: SPK_Group.cpp プロジェクト: tecan/LunaLibs
	void Group::addModifier(Modifier* modifier)
	{
		if (modifier == NULL)
			return;

		incrementChildReference(modifier);

		if (bufferManagement)
			modifier->createBuffers(*this);

		modifiers.push_back(modifier);
	}
コード例 #8
0
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);
}
コード例 #9
0
ファイル: SPK_Group.cpp プロジェクト: tecan/LunaLibs
	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);
	}
コード例 #10
0
ファイル: SPK_Group.cpp プロジェクト: tecan/LunaLibs
	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;
	}
コード例 #11
0
ファイル: SPK_System.cpp プロジェクト: 4ian/GD
	void System::addGroup(Group* group)
	{
		incrementChildReference(group);
		groups.push_back(group);
		nbParticles += group->getNbParticles();
	}