Change to Qt toolkit and Qt Creator
This commit is contained in:
parent
77bd02cf79
commit
67b5a3effa
@ -1,42 +0,0 @@
|
||||
cmake_minimum_required(VERSION 3.0.0)
|
||||
project(
|
||||
wxRocket
|
||||
VERSION 0.1.0
|
||||
DESCRIPTION "Model Rocket Simulation Application"
|
||||
LANGUAGES CXX)
|
||||
|
||||
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
|
||||
include_directories(${PROJECT_SOURCE_DIR}/src)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Need to set specific options for specific compilers here.
|
||||
if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
||||
# No special flags yet
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
|
||||
# No special flags yet
|
||||
|
||||
elseif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||
# Not sure... Anyone that uses MSVC can help here
|
||||
endif()
|
||||
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
include(CTest)
|
||||
|
||||
#find_package(Doxygen)
|
||||
#if(Doxygen_FOUND)
|
||||
# add_subdirectory(docs)
|
||||
#else()
|
||||
# message(STATUS "Doxygen not found, not building docs")
|
||||
#endif()
|
||||
endif()
|
||||
|
||||
enable_testing()
|
||||
|
||||
add_subdirectory(src/gui)
|
||||
add_subdirectory(src/sim)
|
||||
add_subdirectory(src/sim/tests)
|
||||
add_subdirectory(src/utils)
|
||||
add_subdirectory(src/utils/math)
|
||||
add_subdirectory(src/model)
|
15
QtRocket.cpp
Normal file
15
QtRocket.cpp
Normal file
@ -0,0 +1,15 @@
|
||||
#include "QtRocket.h"
|
||||
#include "ui_QtRocket.h"
|
||||
|
||||
QtRocket::QtRocket(QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, ui(new Ui::QtRocket)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
}
|
||||
|
||||
QtRocket::~QtRocket()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
21
QtRocket.h
Normal file
21
QtRocket.h
Normal file
@ -0,0 +1,21 @@
|
||||
#ifndef QTROCKET_H
|
||||
#define QTROCKET_H
|
||||
|
||||
#include <QMainWindow>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
namespace Ui { class QtRocket; }
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class QtRocket : public QMainWindow
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QtRocket(QWidget *parent = nullptr);
|
||||
~QtRocket();
|
||||
|
||||
private:
|
||||
Ui::QtRocket *ui;
|
||||
};
|
||||
#endif // QTROCKET_H
|
110
QtRocket.ui
Normal file
110
QtRocket.ui
Normal file
@ -0,0 +1,110 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QtRocket</class>
|
||||
<widget class="QMainWindow" name="QtRocket">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1031</width>
|
||||
<height>694</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QtRocket</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="centralwidget">
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="2">
|
||||
<item>
|
||||
<widget class="QSplitter" name="splitter_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<widget class="QSplitter" name="splitter">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>2</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<widget class="QTreeView" name="treeView">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="widget" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>2</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<widget class="QPushButton" name="pushButton">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>20</y>
|
||||
<width>80</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>PushButton</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" name="pushButton_2">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>30</x>
|
||||
<y>70</y>
|
||||
<width>80</width>
|
||||
<height>25</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>PushButton</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QCustomPlot" name="widget_2" native="true">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>1</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1031</width>
|
||||
<height>22</height>
|
||||
</rect>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar"/>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>QCustomPlot</class>
|
||||
<extends>QWidget</extends>
|
||||
<header>qcustomplot.h</header>
|
||||
<container>1</container>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
27
main.cpp
Normal file
27
main.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
#include "QtRocket.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QLocale>
|
||||
#include <QTranslator>
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
QApplication a(argc, argv);
|
||||
|
||||
// Start translation component.
|
||||
// TODO: Only support US English at the moment. Anyone want to help translate?
|
||||
QTranslator translator;
|
||||
const QStringList uiLanguages = QLocale::system().uiLanguages();
|
||||
for (const QString &locale : uiLanguages) {
|
||||
const QString baseName = "qtrocket_" + QLocale(locale).name();
|
||||
if (translator.load(":/i18n/" + baseName)) {
|
||||
a.installTranslator(&translator);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Go!
|
||||
QtRocket w;
|
||||
w.show();
|
||||
return a.exec();
|
||||
}
|
67
model/Motor.h
Normal file
67
model/Motor.h
Normal file
@ -0,0 +1,67 @@
|
||||
#ifndef MODEL_MOTOR_H
|
||||
#define MODEL_MOTOR_H
|
||||
|
||||
// For boost serialization. We're using boost::serialize to save
|
||||
// and load Motor data to file
|
||||
#include <boost/archive/text_iarchive.hpp>
|
||||
#include <boost/archive/text_oarchive.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "Thrustcurve.h"
|
||||
#include "MotorCase.h"
|
||||
|
||||
class Motor
|
||||
{
|
||||
public:
|
||||
Motor();
|
||||
~Motor();
|
||||
private:
|
||||
// Needed for boost serialize
|
||||
friend class boost::serialization::access;
|
||||
template<class Archive>
|
||||
void serialize(Archive& ar, const unsigned int version);
|
||||
|
||||
std::string manufacturer;
|
||||
std::string impulseClass; // 'A', 'B', '1/2A', 'M', etc
|
||||
std::string propType;
|
||||
bool sparky;
|
||||
|
||||
// Thrust parameters
|
||||
double totalImpulse;
|
||||
double avgImpulse;
|
||||
int delay;
|
||||
double burnTime;
|
||||
double isp;
|
||||
MotorCase motorCase;
|
||||
Thrustcurve thrust;
|
||||
|
||||
// Physical dimensions
|
||||
int diameter;
|
||||
int length;
|
||||
double totalWeight;
|
||||
double propWeight;
|
||||
|
||||
};
|
||||
|
||||
template<class Archive>
|
||||
void Motor::serialize(Archive& ar, const unsigned int version)
|
||||
{
|
||||
ar & manufacturer;
|
||||
ar & impulseClass;
|
||||
ar & propType;
|
||||
ar & sparky;
|
||||
ar & totalImpulse;
|
||||
ar & avgImpulse;
|
||||
ar & delay;
|
||||
ar & burnTime;
|
||||
ar & isp;
|
||||
ar & motorCase;
|
||||
ar & thrust;
|
||||
ar & diameter;
|
||||
ar & length;
|
||||
ar & totalWeight;
|
||||
ar & propWeight;
|
||||
}
|
||||
|
||||
#endif // MODEL_MOTOR_H
|
@ -10,7 +10,7 @@ Thrustcurve::Thrustcurve(std::vector<std::pair<double, double>>& tc)
|
||||
thrustCurve.end(),
|
||||
[](const auto& a, const auto& b)
|
||||
{
|
||||
return a.first < a.second;
|
||||
return a.first < b.first;
|
||||
})->first;
|
||||
}
|
||||
|
||||
@ -52,9 +52,10 @@ double Thrustcurve::getThrust(double t)
|
||||
// the start of the interval.
|
||||
double tStart = std::prev(i)->first;
|
||||
double thrustStart = std::prev(i)->second;
|
||||
double thrustEnd = i->second;
|
||||
double tEnd = i->first;
|
||||
double slope = (i->second - std::prev(i)->second) /
|
||||
(i->first - std::prev(i)->first);
|
||||
double slope = (thrustEnd - thrustStart) /
|
||||
(tEnd - tStart);
|
||||
return thrustStart + (t - tStart) * slope;
|
||||
|
||||
}
|
@ -4,6 +4,9 @@
|
||||
#include <vector>
|
||||
#include <tuple>
|
||||
|
||||
#include <boost/archive/text_iarchive.hpp>
|
||||
#include <boost/archive/text_oarchive.hpp>
|
||||
|
||||
// No namespace. Maybe should be, but this is a model rocket program
|
||||
// so model is sort of implied? Or I'm just making excuses for being lazy
|
||||
|
||||
@ -29,10 +32,23 @@ public:
|
||||
* @param t The time in seconds. For t > burntime or < 0, this will return 0.0
|
||||
* @return Thrust in Newtons
|
||||
*/
|
||||
double getThrust(double t);
|
||||
double getThrust(double t);
|
||||
|
||||
private:
|
||||
// We're using boost::serialize for data storage and retrieval
|
||||
friend class boost::serialization::access;
|
||||
template<class Archive>
|
||||
void serialize(Archive& ar, const unsigned int version);
|
||||
|
||||
std::vector<std::pair<double, double>> thrustCurve;
|
||||
double maxTime;
|
||||
};
|
||||
|
||||
template<class Archive>
|
||||
void Thrustcurve::serialize(Archive& ar, const unsigned int version)
|
||||
{
|
||||
ar & maxTime;
|
||||
ar & thrustCurve;
|
||||
}
|
||||
|
||||
#endif // MODEL_THRUSTCURVE_H
|
35529
qcustomplot.cpp
Normal file
35529
qcustomplot.cpp
Normal file
File diff suppressed because it is too large
Load Diff
7774
qcustomplot.h
Normal file
7774
qcustomplot.h
Normal file
File diff suppressed because it is too large
Load Diff
62
qtrocket.pro
Normal file
62
qtrocket.pro
Normal file
@ -0,0 +1,62 @@
|
||||
QT += core gui
|
||||
|
||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets printsupport
|
||||
|
||||
CONFIG += c++17
|
||||
|
||||
# You can make your code fail to compile if it uses deprecated APIs.
|
||||
# In order to do so, uncomment the following line.
|
||||
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
|
||||
|
||||
SOURCES += \
|
||||
main.cpp \
|
||||
QtRocket.cpp \
|
||||
model/Motor.cpp \
|
||||
model/MotorCase.cpp \
|
||||
model/Thrustcurve.cpp \
|
||||
qcustomplot.cpp \
|
||||
sim/AtmosphericModel.cpp \
|
||||
sim/GravityModel.cpp \
|
||||
sim/SphericalGeoidModel.cpp \
|
||||
sim/SphericalGravityModel.cpp \
|
||||
sim/USStandardAtmosphere.cpp \
|
||||
sim/WindModel.cpp \
|
||||
utils/BinMap.cpp \
|
||||
utils/CurlConnection.cpp \
|
||||
utils/ThrustCurveAPI.cpp
|
||||
|
||||
HEADERS += \
|
||||
QtRocket.h \
|
||||
model/Motor.h \
|
||||
model/MotorCase.h \
|
||||
model/Thrustcurve.h \
|
||||
qcustomplot.h \
|
||||
sim/AtmosphericModel.h \
|
||||
sim/GeoidModel.h \
|
||||
sim/GravityModel.h \
|
||||
sim/SphericalGeoidModel.h \
|
||||
sim/SphericalGravityModel.h \
|
||||
sim/USStandardAtmosphere.h \
|
||||
sim/WindModel.h \
|
||||
utils/BinMap.h \
|
||||
utils/CurlConnection.h \
|
||||
utils/ThrustCurveAPI.h \
|
||||
utils/math/Constants.h
|
||||
|
||||
FORMS += \
|
||||
QtRocket.ui
|
||||
|
||||
TRANSLATIONS += \
|
||||
qtrocket_en_US.ts
|
||||
CONFIG += lrelease
|
||||
CONFIG += embed_translations
|
||||
|
||||
# Default rules for deployment.
|
||||
qnx: target.path = /tmp/$${TARGET}/bin
|
||||
else: unix:!android: target.path = /opt/$${TARGET}/bin
|
||||
!isEmpty(target.path): INSTALLS += target
|
||||
|
||||
unix: CONFIG += link_pkgconfig
|
||||
unix: PKGCONFIG += libcurl
|
||||
|
||||
unix: PKGCONFIG += fmt
|
263
qtrocket.pro.user
Normal file
263
qtrocket.pro.user
Normal file
@ -0,0 +1,263 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 9.0.1, 2023-02-19T09:59:41. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{126c64d7-12e8-468a-ad3f-06f0fbdaeca1}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="qlonglong">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||
<valuemap type="QVariantMap" key="ClangTools">
|
||||
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||
<value type="int" key="ClangTools.ParallelJobs">6</value>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{38a78df4-96d3-405c-9118-cde527250e62}</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/travis/Programming/qtrocket/../build-qtrocket-Desktop-Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/travis/Programming/build-qtrocket-Desktop-Debug</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/travis/Programming/qtrocket/../build-qtrocket-Desktop-Release</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/travis/Programming/build-qtrocket-Desktop-Release</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<value type="int" key="EnableQmlDebugging">0</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/travis/Programming/qtrocket/../build-qtrocket-Desktop-Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/home/travis/Programming/build-qtrocket-Desktop-Profile</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/travis/Programming/qtrocket/qtrocket.pro</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/travis/Programming/qtrocket/qtrocket.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/travis/Programming/build-qtrocket-Desktop-Debug</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="qlonglong">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
</qtcreator>
|
3
qtrocket_en_US.ts
Normal file
3
qtrocket_en_US.ts
Normal file
@ -0,0 +1,3 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US"></TS>
|
@ -1,7 +0,0 @@
|
||||
find_package(wxWidgets REQUIRED gl core base)
|
||||
include(${wxWidgets_USE_FILE})
|
||||
add_executable(wxRocket
|
||||
main.cpp
|
||||
MainWindow.cpp)
|
||||
|
||||
target_link_libraries(wxRocket PRIVATE sim model utils math ${wxWidgets_LIBRARIES})
|
@ -1,108 +0,0 @@
|
||||
#include "MainWindow.h"
|
||||
|
||||
#include <wx/artprov.h>
|
||||
#include <wx/splitter.h>
|
||||
|
||||
#include "images/rocket16x16.xpm"
|
||||
#include "images/rocket32x32.xpm"
|
||||
|
||||
namespace gui
|
||||
{
|
||||
|
||||
MainWindowFrame::MainWindowFrame()
|
||||
: wxFrame(nullptr, wxID_ANY, "wxRocket", wxDefaultPosition, wxDefaultSize)
|
||||
{
|
||||
// Set the icon
|
||||
wxIcon appIcon(rocket32x32);
|
||||
wxMask* appIconMask = new wxMask(appIcon, wxColor(0, 0, 0));
|
||||
appIcon.SetMask(appIconMask);
|
||||
this->SetIcon(appIcon);
|
||||
// Add a File menu
|
||||
wxMenu* fileMenu = new wxMenu;
|
||||
fileMenu->Append(wxID_NEW);
|
||||
fileMenu->AppendSeparator();
|
||||
fileMenu->Append(wxID_EXIT);
|
||||
|
||||
// Add an Edit menu
|
||||
wxMenu* editMenu = new wxMenu;
|
||||
// Add a Tools menu
|
||||
wxMenu* toolsMenu = new wxMenu;
|
||||
wxBitmap launchItemIcon = wxBitmap(rocket16x16);
|
||||
wxMask* liMask = new wxMask(launchItemIcon, wxColor(0, 0, 0));
|
||||
launchItemIcon.SetMask(liMask);
|
||||
wxMenuItem* launchItem = toolsMenu->Append(wxID_ANY, _("&Launch"));
|
||||
|
||||
// Add a Help menu
|
||||
wxMenu* helpMenu = new wxMenu;
|
||||
helpMenu->Append(wxID_ABOUT);
|
||||
|
||||
wxMenuBar* menuBar = new wxMenuBar;
|
||||
menuBar->Append(fileMenu, _("&File"));
|
||||
menuBar->Append(editMenu, _("&Edit"));
|
||||
menuBar->Append(toolsMenu, _("&Tools"));
|
||||
menuBar->Append(helpMenu, _("&Help"));
|
||||
|
||||
SetMenuBar(menuBar);
|
||||
CreateStatusBar();
|
||||
SetStatusText(_("Welcome to wxRocket!"));
|
||||
|
||||
wxToolBar* toolbar = CreateToolBar();
|
||||
toolbar->AddTool(wxID_NEW, _("New"), wxArtProvider::GetBitmap("wxART_NEW"));
|
||||
toolbar->AddTool(launchItem->GetId(), _("Launch Rocket"), launchItemIcon);
|
||||
toolbar->Realize();
|
||||
|
||||
// Create the layout
|
||||
|
||||
// Create the splitter window, then we can add panels to it
|
||||
wxSplitterWindow* mainSplitter = new wxSplitterWindow(this,
|
||||
wxID_ANY,
|
||||
wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
wxSP_BORDER | wxSP_LIVE_UPDATE);
|
||||
wxSplitterWindow* designSplitter = new wxSplitterWindow(mainSplitter,
|
||||
wxID_ANY,
|
||||
wxDefaultPosition,
|
||||
wxDefaultSize,
|
||||
wxSP_BORDER | wxSP_LIVE_UPDATE);
|
||||
designSplitter->SetMinimumPaneSize(200);
|
||||
|
||||
|
||||
// NOTE, we never call delete manually on the panel since setting the parent pointer (this)
|
||||
// will put the onus on the parent to manage the resource. It'll get deleted
|
||||
// when the parent gets deleted. In this case the MainWindowFrame
|
||||
wxPanel* rocketTreePanel = new wxPanel(designSplitter,
|
||||
wxID_ANY,
|
||||
wxDefaultPosition,
|
||||
wxSize(200, 100));
|
||||
rocketTreePanel->SetBackgroundColour(wxColor(100, 100, 200));
|
||||
|
||||
wxPanel* rocketComponentPanel = new wxPanel(designSplitter,
|
||||
wxID_ANY,
|
||||
wxDefaultPosition,
|
||||
wxSize(200, 100));
|
||||
rocketComponentPanel->SetBackgroundColour(wxColor(200, 100, 100));
|
||||
|
||||
designSplitter->SplitVertically(rocketTreePanel, rocketComponentPanel);
|
||||
|
||||
wxPanel* rocketVisPanel = new wxPanel(mainSplitter, wxID_ANY);
|
||||
rocketVisPanel->SetBackgroundColour(wxColor(100, 200, 100));
|
||||
|
||||
mainSplitter->SplitHorizontally(designSplitter, rocketVisPanel);
|
||||
|
||||
Bind(wxEVT_MENU, &MainWindowFrame::onAbout, this, wxID_ABOUT);
|
||||
Bind(wxEVT_MENU, &MainWindowFrame::onExit, this, wxID_EXIT);
|
||||
|
||||
}
|
||||
|
||||
void MainWindowFrame::onExit(wxCommandEvent& evt)
|
||||
{
|
||||
Close(true);
|
||||
}
|
||||
|
||||
void MainWindowFrame::onAbout(wxCommandEvent& evt)
|
||||
{
|
||||
wxMessageBox(_("This is wxRocket. (c) 2023 by Travis Hunter"),
|
||||
_("About wxRocket"), wxOK | wxICON_INFORMATION);
|
||||
}
|
||||
|
||||
}
|
@ -1,26 +0,0 @@
|
||||
#ifndef GUI_MAINWINDOW_H
|
||||
#define GUI_MAINWINDOW_H
|
||||
|
||||
#include <wx/wxprec.h>
|
||||
#ifndef WX_PRECOMP
|
||||
#include <wx/wx.h>
|
||||
#endif
|
||||
|
||||
namespace gui
|
||||
{
|
||||
|
||||
class MainWindowFrame : public wxFrame
|
||||
{
|
||||
public:
|
||||
MainWindowFrame();
|
||||
|
||||
private:
|
||||
void onExit(wxCommandEvent& evt);
|
||||
void onAbout(wxCommandEvent& evt);
|
||||
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
|
||||
#endif // GUI_MAINWINDOW_H
|
@ -1,77 +0,0 @@
|
||||
/* XPM */
|
||||
static const char *rocket16x16[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"16 16 55 1 ",
|
||||
" c #3A1810",
|
||||
". c #3D261F",
|
||||
"X c #2F2F2F",
|
||||
"o c #40251B",
|
||||
"O c #7F4632",
|
||||
"+ c #734B3E",
|
||||
"@ c #636363",
|
||||
"# c #9D0909",
|
||||
"$ c #B02020",
|
||||
"% c #E02222",
|
||||
"& c #E12525",
|
||||
"* c #E22828",
|
||||
"= c #9B441F",
|
||||
"- c #E2592B",
|
||||
"; c #A75770",
|
||||
": c #8B6767",
|
||||
"> c #D85474",
|
||||
", c #F7B061",
|
||||
"< c #5D0A89",
|
||||
"1 c #592FA7",
|
||||
"2 c #8F8A8A",
|
||||
"3 c #988E8A",
|
||||
"4 c #9A908D",
|
||||
"5 c #ADADAD",
|
||||
"6 c #DAAF8B",
|
||||
"7 c #DCB8A4",
|
||||
"8 c #DBBCB3",
|
||||
"9 c #E0B6B6",
|
||||
"0 c #E7B8BC",
|
||||
"q c #F5B1B1",
|
||||
"w c #F6B9B9",
|
||||
"e c #FEE093",
|
||||
"r c #E1B6CF",
|
||||
"t c #C3C3C3",
|
||||
"y c #DFC0C0",
|
||||
"u c #D3D3D3",
|
||||
"i c #DBDBDB",
|
||||
"p c #DFDCDB",
|
||||
"a c #DEDEDE",
|
||||
"s c #ECCECE",
|
||||
"d c #ECCFCF",
|
||||
"f c #F7C0C0",
|
||||
"g c #FEC1C1",
|
||||
"h c #F7CEC7",
|
||||
"j c #ECD1CE",
|
||||
"k c #FCEDD9",
|
||||
"l c #E6E6E6",
|
||||
"z c #E7E7E7",
|
||||
"x c #ECEAE9",
|
||||
"c c #FDF2E7",
|
||||
"v c #FAFAFA",
|
||||
"b c #FCF9F9",
|
||||
"n c #FCFCFC",
|
||||
"m c #FEFDFD",
|
||||
"M c #000000",
|
||||
/* pixels */
|
||||
"MMMMMMMMMMMMMMli",
|
||||
"MMMMMMMMMMMMMt@M",
|
||||
"MMMMMMMMMMMM5XlM",
|
||||
"MMMMMMMMMMMq$uMM",
|
||||
"MMMMMMMMMMw%dMMM",
|
||||
"MMMMMMMMMf&dMMMM",
|
||||
"MMMMMMMMh*dMMMMM",
|
||||
"MMMMMMa9-jMMMMMM",
|
||||
"MMMMMM:#yMMMMMMM",
|
||||
"MMMMg>12vMMMMMMM",
|
||||
"MMMMr<;MMMMMMMMM",
|
||||
"MMMc80bMMMMMMMMM",
|
||||
"Mx7ekMMMMMMMMMMM",
|
||||
"3+,6MMMMMMMMMMMM",
|
||||
".=OpMMMMMMMMMMMM",
|
||||
" o4MMMMMMMMMMMMM"
|
||||
};
|
@ -1,211 +0,0 @@
|
||||
/* XPM */
|
||||
static const char *rocket32x32[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"32 32 173 2 ",
|
||||
" c #101010",
|
||||
". c #121212",
|
||||
"X c #1A1717",
|
||||
"o c #1C1919",
|
||||
"O c #1C1C1C",
|
||||
"+ c #36150E",
|
||||
"@ c #391A0E",
|
||||
"# c #2D1812",
|
||||
"$ c #2F1913",
|
||||
"% c #341A12",
|
||||
"& c #341D15",
|
||||
"* c #342019",
|
||||
"= c #262626",
|
||||
"- c #3B3B3B",
|
||||
"; c #3C3C3C",
|
||||
": c #440000",
|
||||
"> c #460C0C",
|
||||
", c #4E180E",
|
||||
"< c #4D1F0C",
|
||||
"1 c #422A1F",
|
||||
"2 c #542618",
|
||||
"3 c #79350E",
|
||||
"4 c #652C15",
|
||||
"5 c #422820",
|
||||
"6 c #42322D",
|
||||
"7 c #433232",
|
||||
"8 c #503F39",
|
||||
"9 c #6D3928",
|
||||
"0 c #51433E",
|
||||
"q c #4A015E",
|
||||
"w c #584640",
|
||||
"e c #575757",
|
||||
"r c #5C5C5C",
|
||||
"t c #63534D",
|
||||
"y c #745347",
|
||||
"u c #646464",
|
||||
"i c #796D69",
|
||||
"p c #727272",
|
||||
"a c #940118",
|
||||
"s c #A20B0B",
|
||||
"d c #BA0D0D",
|
||||
"f c #A00F13",
|
||||
"g c #B10D33",
|
||||
"h c #BB2D2D",
|
||||
"j c #B42C3C",
|
||||
"k c #D40D0D",
|
||||
"l c #DE1B1B",
|
||||
"z c #EA0C0C",
|
||||
"x c #EB0C0C",
|
||||
"c c #EC0C0C",
|
||||
"v c #EC0D0D",
|
||||
"b c #ED0D0D",
|
||||
"n c #EE0D0D",
|
||||
"m c #EF0D0D",
|
||||
"M c #F00D0D",
|
||||
"N c #EE1E1E",
|
||||
"B c #FF1919",
|
||||
"V c #ED2222",
|
||||
"C c #ED2727",
|
||||
"Z c #EC2C2C",
|
||||
"A c #EC3232",
|
||||
"S c #EB3838",
|
||||
"D c #FF3434",
|
||||
"F c #9D4426",
|
||||
"G c #A14A21",
|
||||
"H c #EB513E",
|
||||
"J c #D7653B",
|
||||
"K c #EC6638",
|
||||
"L c #B04F4F",
|
||||
"P c #BD4D4D",
|
||||
"I c #BE4C4C",
|
||||
"U c #BF4C4C",
|
||||
"Y c #BC4E4E",
|
||||
"T c #BD4E4E",
|
||||
"R c #BF564B",
|
||||
"E c #9F6148",
|
||||
"W c #827571",
|
||||
"Q c #A87E70",
|
||||
"! c #C04949",
|
||||
"~ c #C0584B",
|
||||
"^ c #E54747",
|
||||
"/ c #EB5B46",
|
||||
"( c #FB6767",
|
||||
") c #FF6464",
|
||||
"_ c #EFA50D",
|
||||
"` c #E98D56",
|
||||
"' c #F5A254",
|
||||
"] c #FEA85A",
|
||||
"[ c #EEA368",
|
||||
"{ c #FDCF73",
|
||||
"} c #FFEB7E",
|
||||
"| c #3A3994",
|
||||
" . c #7A0D82",
|
||||
".. c #700D8A",
|
||||
"X. c #7B61BB",
|
||||
"o. c #330DC4",
|
||||
"O. c #300DC6",
|
||||
"+. c #0D0DF1",
|
||||
"@. c #6D67E6",
|
||||
"#. c #8877DE",
|
||||
"$. c #8E8E8E",
|
||||
"%. c #938A88",
|
||||
"&. c #9F9490",
|
||||
"*. c #9F9F9F",
|
||||
"=. c #A09693",
|
||||
"-. c #A19C9C",
|
||||
";. c #A3A3A3",
|
||||
":. c #A7A7A7",
|
||||
">. c #B9B4B2",
|
||||
",. c #CB868A",
|
||||
"<. c #FCBD80",
|
||||
"1. c #ECB499",
|
||||
"2. c #FED88A",
|
||||
"3. c #FFDC8C",
|
||||
"4. c #F9D89A",
|
||||
"5. c #FFF494",
|
||||
"6. c #C5C0BE",
|
||||
"7. c #F4CBAA",
|
||||
"8. c #F9D3AC",
|
||||
"9. c #FFF6AE",
|
||||
"0. c #C5C2C2",
|
||||
"q. c #CDC8C7",
|
||||
"w. c #CACACA",
|
||||
"e. c #CFCFCF",
|
||||
"r. c #D1D1D1",
|
||||
"t. c #D5D5D5",
|
||||
"y. c #DFD9D7",
|
||||
"u. c #DFDFDF",
|
||||
"i. c #E9C7C7",
|
||||
"p. c #F8C3C4",
|
||||
"a. c #F0CFCF",
|
||||
"s. c #EAD2CA",
|
||||
"d. c #F4D0D0",
|
||||
"f. c #F5D7D7",
|
||||
"g. c #FED6D6",
|
||||
"h. c #F6DCDC",
|
||||
"j. c #FEE4D4",
|
||||
"k. c #FEE9DB",
|
||||
"l. c #E4E2E2",
|
||||
"z. c #E5E5E5",
|
||||
"x. c #E6E4E4",
|
||||
"c. c #ECECEC",
|
||||
"v. c #EEEDED",
|
||||
"b. c #EEEEEE",
|
||||
"n. c #EFEEEE",
|
||||
"m. c #F7E2E2",
|
||||
"M. c #F8E7E7",
|
||||
"N. c #F5E8E8",
|
||||
"B. c #FAE8E8",
|
||||
"V. c #F9EBEB",
|
||||
"C. c #FAEFEF",
|
||||
"Z. c #F2F2F2",
|
||||
"A. c #F3F3F3",
|
||||
"S. c #F5F5F4",
|
||||
"D. c #F7F7F7",
|
||||
"F. c #FBF5F5",
|
||||
"G. c #F9F7F7",
|
||||
"H. c #FAF7F7",
|
||||
"J. c #FBFBF2",
|
||||
"K. c #FAFAF7",
|
||||
"L. c #FEFAF5",
|
||||
"P. c #F9F9F9",
|
||||
"I. c #FAF8F8",
|
||||
"U. c #FAF8F9",
|
||||
"Y. c #FBFAFA",
|
||||
"T. c #FBFBFB",
|
||||
"R. c #FCFAF9",
|
||||
"E. c #FCFBFA",
|
||||
"W. c #FCFCFB",
|
||||
"Q. c #FDFCFB",
|
||||
"!. c #FCFCFC",
|
||||
"~. c #FEFCFC",
|
||||
"^. c #000000",
|
||||
/* pixels */
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.x.Y.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.;.$.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.A.u ; S.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.u.- O r.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.e.= *.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.w.O p ^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.d.l > e ^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.f.N x L Y.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.h.V x Y Y.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.m.C m Y Y.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.M.Z m Y Y.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.B.A m Y Y.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.C.S m Y Y.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.J.H m Y Y.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.F./ _ R F.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.t.:.-.^ M ~ K.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.r o s k I F.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.^.^.^.Y.h d : 0.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.g.( p.@.g 7 X n.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.D B ..+.| n.A.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.) .O.q ,.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.^.^.#.O.a f i.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.^.Q.k.X.j a.N.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.^.^.^.L.8.3.7.B.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.^.Q.n.s.<.9.4.R.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"^.^.n.6.Q [ 5.2.j.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"q.>.i y ` } { 1.R.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"W w 5 F ] ' E y.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"0 & 4 K J 9 &.Y.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"* @ 3 G 2 t x.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"$ , < 1 8 =.S.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.",
|
||||
"% + $ 6 %.l.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^.^."
|
||||
};
|
@ -1,270 +0,0 @@
|
||||
/* XPM */
|
||||
static const char *rocket64x64[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"64 63 201 2 ",
|
||||
" c #010101",
|
||||
". c #0B0B0B",
|
||||
"X c #0F0000",
|
||||
"o c #1A0000",
|
||||
"O c #1B1B1B",
|
||||
"+ c #141414",
|
||||
"@ c #2D0000",
|
||||
"# c #360000",
|
||||
"$ c #2D140D",
|
||||
"% c #37170D",
|
||||
"& c #2C1710",
|
||||
"* c #2E1B14",
|
||||
"= c #321C14",
|
||||
"- c #391E14",
|
||||
"; c #23001C",
|
||||
": c #3A231C",
|
||||
"> c #35221C",
|
||||
", c #242424",
|
||||
"< c #2B2B2B",
|
||||
"1 c #2C2525",
|
||||
"2 c #3B2A24",
|
||||
"3 c #343434",
|
||||
"4 c #420000",
|
||||
"5 c #5D0F0F",
|
||||
"6 c #491B0E",
|
||||
"7 c #5A1A0D",
|
||||
"8 c #4A1A16",
|
||||
"9 c #640E0E",
|
||||
"0 c #7F0808",
|
||||
"q c #462317",
|
||||
"w c #532517",
|
||||
"e c #52250D",
|
||||
"r c #67280B",
|
||||
"t c #75341E",
|
||||
"y c #753613",
|
||||
"u c #66002D",
|
||||
"i c #452C23",
|
||||
"p c #4D352D",
|
||||
"a c #4C3B36",
|
||||
"s c #4A3A34",
|
||||
"d c #6C3726",
|
||||
"f c #59443E",
|
||||
"g c #7C422F",
|
||||
"h c #41006B",
|
||||
"j c #454545",
|
||||
"k c #574743",
|
||||
"l c #565656",
|
||||
"z c #675A55",
|
||||
"x c #63534D",
|
||||
"c c #6F625D",
|
||||
"v c #79635C",
|
||||
"b c #686868",
|
||||
"n c #776964",
|
||||
"m c #7B7B7B",
|
||||
"M c #810808",
|
||||
"N c #840000",
|
||||
"B c #9F0000",
|
||||
"V c #96000B",
|
||||
"C c #8E001A",
|
||||
"Z c #A90000",
|
||||
"A c #A60909",
|
||||
"S c #B50100",
|
||||
"D c #B80000",
|
||||
"F c #B90808",
|
||||
"G c #A41010",
|
||||
"H c #843D13",
|
||||
"J c #923B21",
|
||||
"K c #DC0808",
|
||||
"L c #EB0404",
|
||||
"P c #EA0808",
|
||||
"I c #E70303",
|
||||
"U c #F30606",
|
||||
"Y c #F60808",
|
||||
"T c #FE1616",
|
||||
"R c #FF1919",
|
||||
"E c #FE1A16",
|
||||
"W c #EC2607",
|
||||
"Q c #DA2C2C",
|
||||
"! c #DA3838",
|
||||
"~ c #FF2323",
|
||||
"^ c #97401A",
|
||||
"/ c #A04615",
|
||||
"( c #914630",
|
||||
") c #B74C29",
|
||||
"_ c #AC5A3E",
|
||||
"` c #CE5D2D",
|
||||
"' c #E15C35",
|
||||
"] c #D66138",
|
||||
"[ c #EE612E",
|
||||
"{ c #FE6F3E",
|
||||
"} c #E4653A",
|
||||
"| c #BC1248",
|
||||
" . c #AC2E69",
|
||||
".. c #C4144A",
|
||||
"X. c #C83561",
|
||||
"o. c #8F5656",
|
||||
"O. c #AA5B5B",
|
||||
"+. c #A85656",
|
||||
"@. c #BD7158",
|
||||
"#. c #897D79",
|
||||
"$. c #957C73",
|
||||
"%. c #83746F",
|
||||
"&. c #AE6565",
|
||||
"*. c #B26C6C",
|
||||
"=. c #B77878",
|
||||
"-. c #DB4949",
|
||||
";. c #DC5959",
|
||||
":. c #CD4444",
|
||||
">. c #FA5959",
|
||||
",. c #E47647",
|
||||
"<. c #FD7949",
|
||||
"1. c #C36464",
|
||||
"2. c #DD6565",
|
||||
"3. c #CE7974",
|
||||
"4. c #DF7771",
|
||||
"5. c #E17E7E",
|
||||
"6. c #B49A00",
|
||||
"7. c #EA9F09",
|
||||
"8. c #EFA704",
|
||||
"9. c #FEE816",
|
||||
"0. c #8F837F",
|
||||
"q. c #BAAE7F",
|
||||
"w. c #F8864C",
|
||||
"e. c #FC8C54",
|
||||
"r. c #F38A5B",
|
||||
"t. c #FD9757",
|
||||
"y. c #ED895A",
|
||||
"u. c #FFAA56",
|
||||
"i. c #FFB95C",
|
||||
"p. c #C78E7C",
|
||||
"a. c #E49377",
|
||||
"s. c #FDAC69",
|
||||
"d. c #FFB361",
|
||||
"f. c #F4B878",
|
||||
"g. c #FFCB6C",
|
||||
"h. c #FFD372",
|
||||
"j. c #FFDC7A",
|
||||
"k. c #F0D06F",
|
||||
"l. c #FFEA7A",
|
||||
"z. c #0100AA",
|
||||
"x. c #3F1BBF",
|
||||
"c. c #3909B6",
|
||||
"v. c #5B0986",
|
||||
"b. c #0D03DD",
|
||||
"n. c #1103D9",
|
||||
"m. c #0A07E6",
|
||||
"M. c #1414FD",
|
||||
"N. c #140EE2",
|
||||
"B. c #6D6DF2",
|
||||
"V. c #82618F",
|
||||
"C. c #8C8C8C",
|
||||
"Z. c #8A8583",
|
||||
"A. c #9A908C",
|
||||
"S. c #9B9998",
|
||||
"D. c #BE8685",
|
||||
"F. c #A49B98",
|
||||
"G. c #A38A81",
|
||||
"H. c #AAA29F",
|
||||
"J. c #ABA9A9",
|
||||
"K. c #B8A9A4",
|
||||
"L. c #BDBBBB",
|
||||
"P. c #B6B4B4",
|
||||
"I. c #CC8D85",
|
||||
"U. c #E38484",
|
||||
"Y. c #D1A68C",
|
||||
"T. c #FEBA83",
|
||||
"R. c #EDAA94",
|
||||
"E. c #C2BCBA",
|
||||
"W. c #FBBABA",
|
||||
"Q. c #E9BDA9",
|
||||
"!. c #FAC08A",
|
||||
"~. c #FEDC84",
|
||||
"^. c #FDDA92",
|
||||
"/. c #FEE489",
|
||||
"(. c #FFFB8C",
|
||||
"). c #FFF38C",
|
||||
"_. c #FFF79C",
|
||||
"`. c #F8D1B8",
|
||||
"'. c #FFF5A8",
|
||||
"]. c #FFFCB8",
|
||||
"[. c #FFF3B8",
|
||||
"{. c #AEAEEA",
|
||||
"}. c #C5A9D0",
|
||||
"|. c #C9C6C6",
|
||||
" X c #DDDCDC",
|
||||
".X c #EBCDCD",
|
||||
"XX c #FED6C4",
|
||||
"oX c #E8DEDA",
|
||||
"OX c #FEC5C5",
|
||||
"+X c #E5E5E4",
|
||||
"@X c #EDECEC",
|
||||
"#X c #EEE4E4",
|
||||
"$X c #F5EBEB",
|
||||
"%X c #F9EEEE",
|
||||
"&X c #F5E5E5",
|
||||
"*X c #F9F2EE",
|
||||
"=X c #F5F5F5",
|
||||
"-X c #FBF4F4",
|
||||
";X c #FFFBF6",
|
||||
":X c #FEFEFE",
|
||||
">X c #CCCCF1",
|
||||
/* pixels */
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X=XS.=X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X|.j J.:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XZ., l :X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X+Xj < O +X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XL.O < . P.:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XC.. < . b :X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:Xb . < . 3 =X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X=Xj . < . + X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X@X3 . , . L.:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X+X< . , . S.:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X#X1 . O . m :X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X&XQ K 8 . b :X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X$XQ Y T K o l :X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X%X! Y T L D o.:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X%X! U T L D +.:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X! U T P D O.:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X! U T P D O.;X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-.U T P D O.;X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X-.U T P S &.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X;X-.U T P S &.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X;X;.U T P S &.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X;X;.U T P S *.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X;.U T P S *.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X2.U T P S *.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X2.L T P S *.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X4.L T P S =.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:Xk.8.E P S =.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X5.W 9.7.S =.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XU.L T W 6.q.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X X|.|.P.J.3.L T P S D.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XJ.O O O O 9 L T P S D.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:Xb O O O 9 L T F S D.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XJ., 5 I T M N o.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XI.I T M 4 # C.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X%X:X:X:X:X}.L T 0 X @ J.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XW.R >.W.:X{.m...A k . +X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XOX~ R R R .m.M.N.; b :XZ.|.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X-X~ R R R | m.M.m.z.b :X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X>.R R | b.M.c.z.V.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XW.R ..b.M.v.h u G &X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XX.n.M.v.C u B G .X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X>XN.M.v.Z V B G .X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:XB.M.v.Z :.1.1..X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X;XXXY.x.Z 2.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X:X:X`.T.j.j.3.2.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X:X:X;X`.f.^./.!.&X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X:X:X:X;XXX!./.'._.^.*X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X:X:X$X@X%XI.e.~.].[.~.Q.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X:X=X|.F.$.p.y.h.'.]._.T.;X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
":X:X:X:X:X XE.J.G.@.r.h.(._./.s.XX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"=X+X+X+XL.0.#.$.@.r.g.(.(.).s.R.*X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"|.J.H.A.n a p g ,.d.l.(.h.t.a.oX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"F.%.n z a > q ) t.g.g.i.w._ K.=X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"Z.x f 2 = i t } t.u.u.,.( v |.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"c a i = - t ) <.e.w.` d k A.@X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"k 2 = $ 6 ^ [ { ' ( w p #.oX:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"2 2 = % e / ` ] J w q z L.:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"& & $ 6 r y H t q = a Z. X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"= $ % 7 r e q p > s n F.+X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"= $ 6 7 6 % > i a c A.E.$X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"$ q 8 % $ & > p z A.P.+X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X",
|
||||
"$ = $ $ * * 2 k #.|.@X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X:X"
|
||||
};
|
@ -1,29 +0,0 @@
|
||||
#include <iostream>
|
||||
|
||||
#include <wx/wxprec.h>
|
||||
|
||||
#ifndef WX_PRECOMP
|
||||
#include <wx/wx.h>
|
||||
#endif
|
||||
|
||||
#include "MainWindow.h"
|
||||
|
||||
class wxRocket : public wxApp
|
||||
{
|
||||
public:
|
||||
//wxRocket();
|
||||
//virtual ~wxRocket();
|
||||
|
||||
virtual bool OnInit();
|
||||
|
||||
};
|
||||
|
||||
bool wxRocket::OnInit()
|
||||
{
|
||||
gui::MainWindowFrame* frame = new gui::MainWindowFrame;
|
||||
frame->Show(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
// This will build the main function
|
||||
wxIMPLEMENT_APP(wxRocket);
|
@ -1,5 +0,0 @@
|
||||
add_library(model
|
||||
Motor.cpp
|
||||
MotorCase.cpp
|
||||
Thrustcurve.cpp)
|
||||
|
@ -1,39 +0,0 @@
|
||||
#ifndef MODEL_MOTOR_H
|
||||
#define MODEL_MOTOR_H
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "Thrustcurve.h"
|
||||
#include "MotorCase.h"
|
||||
|
||||
class Motor
|
||||
{
|
||||
public:
|
||||
Motor();
|
||||
~Motor();
|
||||
private:
|
||||
|
||||
std::string manufacturer;
|
||||
char impulseClass;
|
||||
std::string propType;
|
||||
bool sparky;
|
||||
|
||||
// Thrust parameters
|
||||
double totalImpulse;
|
||||
double avgImpulse;
|
||||
int delay;
|
||||
double burnTime;
|
||||
double isp;
|
||||
MotorCase motorCase;
|
||||
Thrustcurve thrust;
|
||||
|
||||
// Physical dimensions
|
||||
int diameter;
|
||||
int length;
|
||||
double totalWeight;
|
||||
double propWeight;
|
||||
|
||||
|
||||
|
||||
};
|
||||
#endif // MODEL_MOTOR_H
|
@ -1,9 +0,0 @@
|
||||
add_library(sim
|
||||
AtmosphericModel.cpp
|
||||
GravityModel.cpp
|
||||
WindModel.cpp
|
||||
USStandardAtmosphere.cpp
|
||||
SphericalGravityModel.cpp
|
||||
SphericalGeoidModel.cpp)
|
||||
|
||||
target_link_libraries(sim PRIVATE math utils)
|
@ -1,19 +0,0 @@
|
||||
include(FetchContent)
|
||||
|
||||
FetchContent_Declare(
|
||||
googletest
|
||||
GIT_REPOSITORY https://github.com/google/googletest.git
|
||||
GIT_TAG release-1.11.0
|
||||
)
|
||||
|
||||
FetchContent_MakeAvailable(googletest)
|
||||
add_library(GTest::GTest INTERFACE IMPORTED)
|
||||
target_link_libraries(GTest::GTest INTERFACE gtest_main)
|
||||
|
||||
add_executable(usstandardatmosphere_test USStandardAtmosphereTests.cpp)
|
||||
target_link_libraries(usstandardatmosphere_test
|
||||
PRIVATE
|
||||
GTest::GTest
|
||||
sim)
|
||||
|
||||
add_test(sim_tests usstandardatmosphere_test)
|
@ -1,26 +0,0 @@
|
||||
#include "../USStandardAtmosphere.h"
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include <iostream>
|
||||
|
||||
TEST(USStandardAtmosphereTests, DensityTests)
|
||||
{
|
||||
sim::USStandardAtmosphere atm;
|
||||
double seaLevelDensity = 1.2250;
|
||||
double testDensity = atm.getDensity(0.0);
|
||||
ASSERT_EQ(seaLevelDensity, testDensity);
|
||||
|
||||
// Test some other values
|
||||
for(int i = 1; i <= 10; ++i)
|
||||
{
|
||||
double altitude = 1000.0 * i;
|
||||
std::cout << altitude << ": " << atm.getDensity(altitude) << std::endl;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
find_package(CURL)
|
||||
find_package(fmt)
|
||||
|
||||
add_library(utils
|
||||
BinMap.cpp
|
||||
CurlConnection.cpp)
|
||||
|
||||
# Also including the header-only fmt library
|
||||
target_link_libraries(utils PRIVATE curl jsoncpp ssl crypto fmt::fmt-header-only)
|
@ -1,2 +0,0 @@
|
||||
add_library(math
|
||||
Constants.cpp)
|
@ -1 +0,0 @@
|
||||
#include "Constants.h"
|
@ -1,11 +1,10 @@
|
||||
#ifndef UTILS_MATH_BINMAP_H
|
||||
#define UTILS_MATH_BINMAP_H
|
||||
#ifndef UTILS_BINMAP_H
|
||||
#define UTILS_BINMAP_H
|
||||
|
||||
#include <vector>
|
||||
#include <utility>
|
||||
|
||||
namespace utils
|
||||
{
|
||||
namespace utils {
|
||||
|
||||
/**
|
||||
* @brief This is a utility class that operates as a map. Instead of a regular map
|
||||
@ -35,4 +34,4 @@ private:
|
||||
|
||||
} // namespace utils
|
||||
|
||||
#endif // UTILS_MATH_BINMAP_H
|
||||
#endif // UTILS_BINMAP_H
|
@ -1,15 +1,10 @@
|
||||
#include "CurlConnection.h"
|
||||
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
namespace
|
||||
{
|
||||
size_t curlCallback(void* content, size_t size, size_t nmemb, std::string* buffer)
|
||||
size_t curlCallback(void* content, size_t size, size_t nmemb, std::string* buffer)
|
||||
{
|
||||
buffer->append(static_cast<char*>(content), size*nmemb);
|
||||
return size*nmemb;
|
||||
@ -42,7 +37,7 @@ std::string CurlConnection::get(const std::string& url,
|
||||
if(!extraHttpHeaders.empty())
|
||||
{
|
||||
struct curl_slist *chunk = NULL;
|
||||
for(int i = 0; i < extraHttpHeaders.size(); ++i)
|
||||
for(size_t i = 0; i < extraHttpHeaders.size(); ++i)
|
||||
{
|
||||
chunk = curl_slist_append(chunk, extraHttpHeaders[i].c_str());
|
||||
}
|
||||
@ -68,4 +63,4 @@ std::string CurlConnection::get(const std::string& url,
|
||||
return str_result;
|
||||
}
|
||||
|
||||
} // namespace Utils
|
||||
} // namespace utils
|
@ -1,12 +1,11 @@
|
||||
#ifndef _APPRESETAPI_H_
|
||||
#define _APPRESETAPI_H_
|
||||
#ifndef UTILS_CURLCONNECTION_H
|
||||
#define UTILS_CURLCONNECTION_H
|
||||
|
||||
#include <vector>
|
||||
#include <string>
|
||||
#include <curl/curl.h>
|
||||
#include <vector>
|
||||
|
||||
namespace utils
|
||||
{
|
||||
namespace utils {
|
||||
|
||||
class CurlConnection
|
||||
{
|
||||
@ -22,8 +21,6 @@ private:
|
||||
|
||||
};
|
||||
|
||||
void initCurl(const std::string& host);
|
||||
|
||||
} // namespace utils
|
||||
|
||||
#endif // _APPRESETAPI_H_
|
||||
#endif // UTILS_CURLCONNECTION_H
|
18
utils/ThrustCurveAPI.cpp
Normal file
18
utils/ThrustCurveAPI.cpp
Normal file
@ -0,0 +1,18 @@
|
||||
#include "ThrustCurveAPI.h"
|
||||
|
||||
namespace utils
|
||||
{
|
||||
|
||||
ThrustCurveAPI::ThrustCurveAPI()
|
||||
: hostname("https://www.thrustcurve.org/api/v1/"),
|
||||
curlConnection()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
ThrustCurveAPI::~ThrustCurveAPI()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
} // namespace utils
|
33
utils/ThrustCurveAPI.h
Normal file
33
utils/ThrustCurveAPI.h
Normal file
@ -0,0 +1,33 @@
|
||||
#ifndef UTILS_THRUSTCURVEAPI_H
|
||||
#define UTILS_THRUSTCURVEAPI_H
|
||||
|
||||
|
||||
#include <string>
|
||||
|
||||
#include "CurlConnection.h"
|
||||
|
||||
namespace utils
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief This is a bit more than just an API for Thrustcurve.org, so the name is unfortunate
|
||||
* It is also an internal database of motor data that it grabs from Thrustcurve.org
|
||||
*
|
||||
*/
|
||||
class ThrustCurveAPI
|
||||
{
|
||||
public:
|
||||
ThrustCurveAPI();
|
||||
~ThrustCurveAPI();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
const std::string hostname;
|
||||
CurlConnection curlConnection;
|
||||
};
|
||||
|
||||
} // namespace utils
|
||||
|
||||
#endif // UTILS_THRUSTCURVEAPI_H
|
Loading…
x
Reference in New Issue
Block a user