Ejemplo n.º 1
0
void CParticleSystem::SetParticlesFromData()
{
	SingletonPointer<CDataManager> DataManager;
	CDataSet * DataSet = DataManager->GetCurrentDataSet();

	if (! DataSet)
	{
		return;
	}

	Particles.resize(DataSet->Size());

	for (uint i = 0; i < DataSet->Size(); ++ i)
	{
		CDataRow const & Row = DataSet->GetRow(i);
		double X = 0, Y = 0, Z = 0;

		if (XField >= 0)
		{
			X = Row.GetFieldAsDouble(XField);
		}
		if (YField >= 0)
		{
			Y = Row.GetFieldAsDouble(YField);
		}
		if (ZField >= 0)
		{
			Z = Row.GetFieldAsDouble(ZField);
		}

		Particles[i].Data = vec3d(X, Y, Z);
		Particles[i].Position = vec3d(X, Y, Z);
	}

	NormalizeParticlePositions();
	UpdateColors();
	Update();
}