[Gcblue-commits] gcb_wx/src/database tcBallisticDBObject.cpp,1.1,1.2 tcLauncherDBObject.cpp,1.6,1.7
Status: Alpha
Brought to you by:
ddcforge
|
From: Dewitt C. <ddc...@us...> - 2004-08-05 02:22:44
|
Update of /cvsroot/gcblue/gcb_wx/src/database In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29972/src/database Modified Files: tcBallisticDBObject.cpp tcLauncherDBObject.cpp Log Message: Index: tcBallisticDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcBallisticDBObject.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** tcBallisticDBObject.cpp 29 Jul 2004 00:14:17 -0000 1.1 --- tcBallisticDBObject.cpp 5 Aug 2004 02:22:35 -0000 1.2 *************** *** 1,3 **** ! /* ** @file tcBallisticDBObject.cpp */ --- 1,3 ---- ! /** ** @file tcBallisticDBObject.cpp */ *************** *** 37,115 **** { ! void tcBallisticDBObject::PrintToFile(tcFile& file) ! { ! tcWeaponDBObject::PrintToFile(file); ! } ! int tcBallisticDBObject::Serialize(tcFile& file, bool mbLoad, UINT32 anVersion) ! { ! tcWeaponDBObject::Serialize(file,mbLoad,anVersion); ! if (mbLoad) ! { ! ! } ! else ! { ! ! } ! return true; ! } ! int tcBallisticDBObject::SerializeCSV(CsvTranslator *csv, bool mbLoad) ! { ! tcWeaponDBObject::SerializeCSV(csv, mbLoad); ! if (mbLoad) { } ! else { ! csv->WriteLine(); } - return 1; - } ! /** ! * Loads/saves XML data for database object ! * @param load true to load, false to save ! */ ! void tcBallisticDBObject::SerializeXml(TiXmlElement* node, bool load) ! { ! if (load) return; // write only for now ! wxASSERT(node); ! TiXmlElement* localNode = node->InsertEndChild(TiXmlElement("sensor"))->ToElement(); ! //localNode->SetAttribute("maxRange_km" ,mfMaxRange_km); ! tcWeaponDBObject::SerializeXml(node, load); ! } ! int tcBallisticDBObject::WriteCSVHeader(Database::CsvTranslator *csv) ! { ! tcWeaponDBObject::WriteCSVHeader(csv); ! ! csv->WriteLine(); // write line since this is a leaf class ! return 1; ! } ! tcBallisticDBObject::tcBallisticDBObject() : tcWeaponDBObject() ! { ! mzClass = "Default Ballistic"; ! mnClassID = DTYPE_BALLISTIC; ! } ! tcBallisticDBObject::tcBallisticDBObject(tcBallisticDBObject& obj) ! : tcWeaponDBObject(obj) ! { ! } ! tcBallisticDBObject::~tcBallisticDBObject() ! { ! } } --- 37,152 ---- { ! /** ! * Gets elevation for ballistic shell to hit (non-moving) target at a ! * horizontal range of range_m and altitude difference of dz_m ! * (Altitude difference is ignored for now.) ! * ! * @param tti_s this field is set to time to impact target in seconds ! */ ! float tcBallisticDBObject::GetGunneryElevation(float range_m, float dz_m, float& tti_s) ! { ! float launchSpeed = launchSpeed_mps; ! float fac = range_m * range_m * C_G * C_G; // 4 * 0.25 = 1 ! float b = -launchSpeed * launchSpeed; ! float b2 = b * b; ! if (b2 < fac) ! { ! tti_s = 0; ! return 0.25f * C_PI; ! } ! float vz = sqrtf( 0.5f * (-b - sqrt(b2 - fac)) ); // -b + for lofted trajectory ! tti_s = 2 * vz / C_G; ! float elevation_rad = asinf(vz / launchSpeed); ! ! return elevation_rad; ! } ! ! /** ! * @return max level gun range in km ! */ ! float tcBallisticDBObject::GetMaxLevelGunRangeKm() { + return 0.001f * launchSpeed_mps * launchSpeed_mps / C_G; + } + void tcBallisticDBObject::PrintToFile(tcFile& file) + { + tcWeaponDBObject::PrintToFile(file); } ! ! int tcBallisticDBObject::Serialize(tcFile& file, bool mbLoad, UINT32 anVersion) { ! tcWeaponDBObject::Serialize(file,mbLoad,anVersion); ! ! if (mbLoad) ! { ! ! } ! else ! { ! ! } ! return true; } ! int tcBallisticDBObject::SerializeCSV(CsvTranslator *csv, bool mbLoad) ! { ! tcWeaponDBObject::SerializeCSV(csv, mbLoad); ! if (mbLoad) ! { ! } ! else ! { ! csv->WriteLine(); ! } ! return 1; ! } ! /** ! * Loads/saves XML data for database object ! * @param load true to load, false to save ! */ ! void tcBallisticDBObject::SerializeXml(TiXmlElement* node, bool load) ! { ! if (load) return; // write only for now ! wxASSERT(node); ! TiXmlElement* localNode = node->InsertEndChild(TiXmlElement("sensor"))->ToElement(); ! //localNode->SetAttribute("maxRange_km" ,mfMaxRange_km); ! tcWeaponDBObject::SerializeXml(node, load); ! } ! int tcBallisticDBObject::WriteCSVHeader(Database::CsvTranslator *csv) ! { ! tcWeaponDBObject::WriteCSVHeader(csv); ! csv->WriteLine(); // write line since this is a leaf class ! return 1; ! } ! ! tcBallisticDBObject::tcBallisticDBObject() : tcWeaponDBObject() ! { ! mzClass = "Default Ballistic"; ! mnClassID = DTYPE_BALLISTIC; ! } ! ! tcBallisticDBObject::tcBallisticDBObject(tcBallisticDBObject& obj) ! : tcWeaponDBObject(obj) ! { ! ! } ! ! tcBallisticDBObject::~tcBallisticDBObject() ! { ! } } Index: tcLauncherDBObject.cpp =================================================================== RCS file: /cvsroot/gcblue/gcb_wx/src/database/tcLauncherDBObject.cpp,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** tcLauncherDBObject.cpp 30 Mar 2004 01:15:21 -0000 1.6 --- tcLauncherDBObject.cpp 5 Aug 2004 02:22:35 -0000 1.7 *************** *** 1,6 **** ! /* ! ** tcLauncherDBObject.cpp ! ** ! ** Copyright (C) 2003 Dewitt "Cole" Colclough (de...@tw...) ** All rights reserved. --- 1,6 ---- ! /** ! ** @file tcLauncherDBObject.cpp ! */ ! /* Copyright (C) 2003-2004 Dewitt Colclough (de...@tw...) ** All rights reserved. *************** *** 39,204 **** { ! void tcLauncherDBObject::PrintToFile(tcFile& file) ! { ! tcString s; ! ! tcDatabaseObject::PrintToFile(file); ! ! s.Format(" child class:%s mnCapacity:%d\n",mzChildClass.mz,mnCapacity); ! file.WriteString(s.GetBuffer()); ! } ! int tcLauncherDBObject::Serialize(tcFile& file, bool mbLoad, UINT32 anVersion) { ! tcDatabaseObject::Serialize(file,mbLoad, anVersion); ! if (mbLoad) { ! file.Read(&mnCapacity,sizeof(mnCapacity)); ! mzChildClass.Serialize(file,mbLoad); ! file.Read(&mnConfigurations,sizeof(mnConfigurations)); ! for(unsigned i=0;i<mnConfigurations;i++) { ! maChildClass[i].Serialize(file,mbLoad); ! file.Read(&maCapacity[i],sizeof(maCapacity[0])); ! } ! } ! else { ! file.Write(&mnCapacity,sizeof(mnCapacity)); ! mzChildClass.Serialize(file,mbLoad); ! file.Write(&mnConfigurations,sizeof(mnConfigurations)); ! for(unsigned i=0;i<mnConfigurations;i++) { ! maChildClass[i].Serialize(file,mbLoad); ! file.Write(&maCapacity[i],sizeof(maCapacity[0])); ! } ! } ! return true; ! } ! int tcLauncherDBObject::SerializeCSV(CsvTranslator *csv, bool mbLoad) ! { ! tcDatabaseObject::SerializeCSV(csv, mbLoad); ! if (mbLoad) ! { ! std::string s; ! *csv >> mnCapacity; ! *csv >> s; mzChildClass = s.c_str(); ! *csv >> fireControlSensorClass; ! int i; ! mnConfigurations = 0; ! for(i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! int cap; ! *csv >> cap; ! *csv >> s; ! if ((s.size() > 0) &&(cap > 0)) ! { ! maCapacity[mnConfigurations] = cap; ! maChildClass[mnConfigurations++] = s.c_str(); ! } ! } ! } ! else ! { ! *csv << (long)mnCapacity; ! *csv << mzChildClass.mz; ! *csv << fireControlSensorClass; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! if (i < mnConfigurations) ! { ! *csv << (long)maCapacity[i]; ! *csv << maChildClass[i].mz; ! } ! else ! { ! *csv << ""; ! *csv << ""; ! } ! } ! csv->WriteLine(); ! } ! return 1; ! } ! /** ! * Loads/saves XML data for database object ! * @param load true to load, false to save ! */ ! void tcLauncherDBObject::SerializeXml(TiXmlElement* node, bool load) ! { ! if (load) return; // write only for now ! wxASSERT(node); ! TiXmlElement* localNode = node->InsertEndChild(TiXmlElement("launcher"))->ToElement(); ! localNode->SetAttribute("capacity", (int)mnCapacity); ! localNode->SetAttribute("childClass", mzChildClass.mz); ! localNode->SetAttribute("fcSensorClass", fireControlSensorClass); ! for(unsigned int i=0;(i<mnConfigurations)&&(i<MAX_LAUNCHER_CONFIGURATIONS);i++) ! { ! TiXmlElement* childNode = node->InsertEndChild(TiXmlElement("config"))->ToElement(); ! childNode->SetAttribute("capacity", (int)maCapacity[i]); ! childNode->SetAttribute("childClass", maChildClass[i].mz); ! } - tcDatabaseObject::SerializeXml(node, load); - } - int tcLauncherDBObject::WriteCSVHeader(Database::CsvTranslator *csv) - { - tcDatabaseObject::WriteCSVHeader(csv); ! *csv << "Basic capacity"; ! *csv << "Basic class"; ! *csv << "Fire control sensor class"; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! tcString s; ! s.Format("Cap%d",i+1); ! *csv << s.GetBuffer(); ! s.Format("Class%d",i+1); ! *csv << s.GetBuffer(); ! } ! csv->WriteLine(); ! return 1; ! } - tcLauncherDBObject::tcLauncherDBObject() : tcDatabaseObject() - { - mzClass = "Default Launcher"; - mnClassID = DTYPE_LAUNCHER; - mnCapacity = 0; - mzChildClass = "NOCHILDCLASS"; - fireControlSensorClass = ""; - for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) - { - maChildClass[i] = ""; - maCapacity[i] = 0; - } - mnConfigurations = 0; - } ! tcLauncherDBObject::tcLauncherDBObject(tcLauncherDBObject& obj) ! : tcDatabaseObject(obj) ! { ! mzChildClass = obj.mzChildClass; ! mnCapacity = obj.mnCapacity; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! maChildClass[i] = obj.maChildClass[i]; ! maCapacity[i] = obj.maCapacity[i]; ! } ! mnConfigurations = obj.mnConfigurations; ! fireControlSensorClass = obj.fireControlSensorClass; ! } ! tcLauncherDBObject::~tcLauncherDBObject() ! { ! } --- 39,216 ---- { ! void tcLauncherDBObject::PrintToFile(tcFile& file) ! { ! tcString s; ! tcDatabaseObject::PrintToFile(file); ! s.Format(" child class:%s mnCapacity:%d\n",mzChildClass.mz,mnCapacity); ! file.WriteString(s.GetBuffer()); ! } ! int tcLauncherDBObject::Serialize(tcFile& file, bool mbLoad, UINT32 anVersion) ! { ! tcDatabaseObject::Serialize(file,mbLoad, anVersion); ! if (mbLoad) ! { ! file.Read(&cycleTime, sizeof(cycleTime)); ! file.Read(&mnCapacity,sizeof(mnCapacity)); ! mzChildClass.Serialize(file,mbLoad); ! file.Read(&mnConfigurations,sizeof(mnConfigurations)); ! for(unsigned i=0;i<mnConfigurations;i++) { ! maChildClass[i].Serialize(file,mbLoad); ! file.Read(&maCapacity[i],sizeof(maCapacity[0])); ! } ! } ! else ! { ! file.Write(&cycleTime, sizeof(cycleTime)); ! file.Write(&mnCapacity,sizeof(mnCapacity)); ! mzChildClass.Serialize(file,mbLoad); ! file.Write(&mnConfigurations,sizeof(mnConfigurations)); ! for(unsigned i=0;i<mnConfigurations;i++) ! { ! maChildClass[i].Serialize(file,mbLoad); ! file.Write(&maCapacity[i],sizeof(maCapacity[0])); ! } ! } ! return true; ! } ! int tcLauncherDBObject::SerializeCSV(CsvTranslator *csv, bool mbLoad) ! { ! tcDatabaseObject::SerializeCSV(csv, mbLoad); ! if (mbLoad) ! { ! std::string s; ! ! *csv >> cycleTime; ! *csv >> mnCapacity; ! *csv >> s; mzChildClass = s.c_str(); ! *csv >> fireControlSensorClass; ! int i; ! mnConfigurations = 0; ! for(i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! int cap; ! *csv >> cap; ! *csv >> s; ! if ((s.size() > 0) &&(cap > 0)) ! { ! maCapacity[mnConfigurations] = cap; ! maChildClass[mnConfigurations++] = s.c_str(); ! } ! } ! } ! else ! { ! *csv << cycleTime; ! *csv << (long)mnCapacity; ! *csv << mzChildClass.mz; ! *csv << fireControlSensorClass; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! if (i < mnConfigurations) ! { ! *csv << (long)maCapacity[i]; ! *csv << maChildClass[i].mz; ! } ! else ! { ! *csv << ""; ! *csv << ""; ! } ! } ! csv->WriteLine(); ! } ! return 1; ! } ! /** ! * Loads/saves XML data for database object ! * @param load true to load, false to save ! */ ! void tcLauncherDBObject::SerializeXml(TiXmlElement* node, bool load) ! { ! if (load) return; // write only for now ! wxASSERT(node); ! TiXmlElement* localNode = node->InsertEndChild(TiXmlElement("launcher"))->ToElement(); ! localNode->SetAttribute("cycleTime", cycleTime); ! localNode->SetAttribute("capacity", (int)mnCapacity); ! localNode->SetAttribute("childClass", mzChildClass.mz); ! localNode->SetAttribute("fcSensorClass", fireControlSensorClass); + for(unsigned int i=0;(i<mnConfigurations)&&(i<MAX_LAUNCHER_CONFIGURATIONS);i++) + { + TiXmlElement* childNode = node->InsertEndChild(TiXmlElement("config"))->ToElement(); + childNode->SetAttribute("capacity", (int)maCapacity[i]); + childNode->SetAttribute("childClass", maChildClass[i].mz); + } + tcDatabaseObject::SerializeXml(node, load); + } ! int tcLauncherDBObject::WriteCSVHeader(Database::CsvTranslator *csv) ! { ! tcDatabaseObject::WriteCSVHeader(csv); ! *csv << "Cycle time"; ! *csv << "Basic capacity"; ! *csv << "Basic class"; ! *csv << "Fire control sensor class"; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! tcString s; ! s.Format("Cap%d",i+1); ! *csv << s.GetBuffer(); ! s.Format("Class%d",i+1); ! *csv << s.GetBuffer(); ! } + csv->WriteLine(); + return 1; + } ! tcLauncherDBObject::tcLauncherDBObject() : tcDatabaseObject() ! { ! mzClass = "Default Launcher"; ! mnClassID = DTYPE_LAUNCHER; ! cycleTime = 0; ! mnCapacity = 0; ! mzChildClass = "NOCHILDCLASS"; ! fireControlSensorClass = ""; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! maChildClass[i] = ""; ! maCapacity[i] = 0; ! } ! mnConfigurations = 0; ! } ! ! tcLauncherDBObject::tcLauncherDBObject(tcLauncherDBObject& obj) ! : tcDatabaseObject(obj) ! { ! cycleTime = obj.cycleTime; ! mzChildClass = obj.mzChildClass; ! mnCapacity = obj.mnCapacity; ! for(unsigned i=0;i<MAX_LAUNCHER_CONFIGURATIONS;i++) ! { ! maChildClass[i] = obj.maChildClass[i]; ! maCapacity[i] = obj.maCapacity[i]; ! } ! mnConfigurations = obj.mnConfigurations; ! fireControlSensorClass = obj.fireControlSensorClass; ! } ! tcLauncherDBObject::~tcLauncherDBObject() ! { ! } |