/ Load star data from disk bool Galaxy::Load_Systems (const std::string& file_name ) { std::ifstream inFile; std::string data; System* system; // Temp var for System data int id; std::string name; long ra; long dec; long distance; std::ostringstream myStream; // Temp var for Star data std::string SpectralType; long AbsMag; inFile.open( (SOL_DATA_DIR + file_name).c_str() ); if (!inFile) { printf ( "Galaxy::Load_Systems -> Unable to open %s\n" , file_name.c_str() ); return (false); } inFile >> data; // Skip first entry, Total # stars while ( inFile >> data) { // Data Format // ID RA DEC Distance AbsMag Star_Type/s // 1 0.00091185 1.0890133 921.37572 9.09766 F5 // Get data id = std::atoi(data.c_str()); inFile >> data; // RA ra = std::atol (data.c_str() ); inFile >> data; // DEC dec = std::atol (data.c_str() ); inFile >> data; // Distance distance = std::atol (data.c_str() ); inFile >> data; // AbsMag // Think it's actual the apparent mag from rading cel docs AbsMag = std::atol (data.c_str()); inFile >> data; // StarType SpectralType = data; // No System name yet, will do later myStream.clear(); myStream << id ; name = "sys:" + myStream.str() ; system = new System; system->Init ( id , name , ra , dec , distance ); if (id==0) { current_sys = system; } // Keep a pointer to the start system // Loop through the systems Stars and create the star's // Note, only adding one star per system to start // Use the sys name + star type as temp name std::string tempName = name + ":" + SpectralType; system->Add_Star ( name , SpectralType ,AbsMag ); systems.push_back(system); printf ("Loading System ID:%i\n" , id ); } inFile.close(); return 0; }