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(); }