Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ if (NOT MOID_DIR)
endif()

option(BUILD_STATIC "Build static library" OFF)
option(BUILD_MAIN "Build main function" ON)
option(BUILD_MAIN "Build main function" OFF)
option(BUILD_DOCS "Build docs" OFF)
option(BUILD_EXAMPLES "Build examples" ON)
option(ENABLE_SMARTUQ "UQ methods" OFF)
Expand Down Expand Up @@ -232,11 +232,11 @@ if(SMART_UQ_EXTERNAL)
add_dependencies(${LIB_NAME} smart-uq)
endif()

if(BUILD_MAIN)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_PATH})
add_executable(${MAIN_NAME} ${MAIN_SRC})
target_link_libraries(${MAIN_NAME} ${LIB_NAME} ${MANDATORY_LIBRARIES})
endif()
#if(BUILD_MAIN)
# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${BIN_PATH})
# add_executable(${MAIN_NAME} ${MAIN_SRC})
# target_link_libraries(${MAIN_NAME} ${LIB_NAME} ${MANDATORY_LIBRARIES})
#endif()

if(BUILD_DOCS)
find_package(Doxygen)
Expand Down Expand Up @@ -340,4 +340,4 @@ install(TARGETS ${LIB_NAME} ${LIB_NAME_STATIC} ${BIN_NAME}
# endif()
#
# include(CPack)
#endif()
#endif()
53 changes: 53 additions & 0 deletions cmake/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -60,5 +60,58 @@ if(ENABLE_WORHP)
include_directories("${WORHP_INCLUDE_DIR}")
endif()

#UI

cmake_minimum_required(VERSION 2.8.11)
project (SMART-ASTRO_GUI)

#set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)

find_package(Qt5Core REQUIRED)
find_package(Qt5Widgets REQUIRED)

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${Qt5Widgets_INCLUDE_DIRS})
include_directories(${Qt5Core_INCLUDE_DIRS})

#include_directories(${Qt5Widgets_INCLUDES})

add_definitions(${Qt5Widgets_DEFINITIONS})

#set(CMAKE_CXX_FLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")

set(SMART-ASTRO_GUI_SRCS
src/SMART-ASTRO_GUI/main.cpp
src/SMART-ASTRO_GUI/mainwindow.cpp
src/SMART-ASTRO_GUI/genericfunctiondialog.cpp
src/SMART-ASTRO_GUI/parameterinputdialog.cpp
src/SMART-ASTRO_GUI/Controller/parameterinputcontroller.cpp
src/SMART-ASTRO_GUI/answerdialog.cpp
src/Astro-Core/conversion_coordinates.cpp
src/Astro-Core/spice_general_functions.cpp
src/Astro-Core/conversion_time.cpp
)

set(SMART-ASTRO_GUI_HEADERS
src/SMART-ASTRO_GUI/mainwindow.h
src/SMART-ASTRO_GUI/genericfunctiondialog.h
src/SMART-ASTRO_GUI/parameterinputdialog.h
src/SMART-ASTRO_GUI/Controller/parameterinputcontroller.h
src/SMART-ASTRO_GUI/answerdialog.h
src/Astro-Core/conversion_time.h
src/Astro-Core/conversion_coordinates.h
)

set(SMART-ASTRO_GUI_UIS
src/SMART-ASTRO_GUI/mainwindow.ui
src/SMART-ASTRO_GUI/genericfunctiondialog.ui
src/SMART-ASTRO_GUI/parameterinputdialog.ui
src/SMART-ASTRO_GUI/answerdialog.ui
)
add_executable(SMART-ASTRO_GUI ${SMART-ASTRO_GUI_SRCS} ${SMART-ASTRO_GUI_HEADERS} ${SMART-ASTRO_GUI_UIS})

target_link_libraries(SMART-ASTRO_GUI ${CSPICE_LIBRARY} Qt5::Widgets Qt5::Core )
#Qt5::Widgets Qt5::Core
4 changes: 2 additions & 2 deletions cmake/External/smart-math.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ if (NOT __SMART_MATH_INCLUDED) # guard against multiple includes
ExternalProject_Add(smart-math
PREFIX ${smart-math_PREFIX}
INSTALL_DIR ${smart-math_INSTALL}
GIT_REPOSITORY "git@github.com:strath-ace-labs/smart-math.git"
GIT_TAG "development"
GIT_REPOSITORY "git@github.com:strath-ace/smart-math.git"
GIT_TAG "master"
#GIT_SHALLOW 1
CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX=${smart-math_INSTALL}
Expand Down
14 changes: 14 additions & 0 deletions examples/example.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#include "Astro-Core/conversion_coordinates.h"
#include <stdio.h>

int main()
{
doublereal r = 1;
doublereal lon = 1;
doublereal lat = 1;
doublereal jacobi = 1;

std::cout << "" << smartastro::astrocore::conversion_coordinates::drdlat_(r, lon, lat, jacobi) << endl;

return 0;
}
2 changes: 1 addition & 1 deletion examples/example_template.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -509,7 +509,7 @@ int sunAzimuthElevationFromObservation()
//range
rangeObservation range(&sParams);

cout << "JD = " << jd << "; Range Ephemeris = " << setprecision(15) << range.getPerfectObservation(sensorState,targetState) << endl;
//cout << "JD = " << jd << "; Range Ephemeris = " << setprecision(15) << range.getPerfectObservation(sensorState,targetState) << endl;
cout << "JD = " << jd << "; Range Cspice = " << setprecision(15) << sqrt(pow(state0[0],2.0)+pow(state0[1],2.0)+pow(state0[2],2.0)) << endl;
cout << endl;

Expand Down
168 changes: 168 additions & 0 deletions src/Astro-Core/conversion_coordinates.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1325,3 +1325,171 @@ bool conversion_coordinates::euler_axis_angle(const std::vector<double> &v, cons

return 0;
}

/*
--------- SPICE functions implemented by: Scott Hurley (GitHub: Scott_James_Hurley)----
--------- e-mail: scott.james.hurley.97@gmail.com -------------------------------------
*/

double** conversion_coordinates::twodVectorToArray(std::vector<std::vector<double>> &vals, int &N, int &M)
{
double** temp;

for(unsigned i=0; (i < N); i++)
{
temp[i] = new double[N];
for(unsigned j=0; (j < M); j++)
{
temp[j] = new double[M];
temp[i][j] = vals[i][j];
}
}
}

void conversion_coordinates::radrec(double &range, double &ra, double &dec, std::vector<double> &rectan)
{
return radrec_c(range, ra, dec, &rectan[0]);
}

void conversion_coordinates::recrad(std::vector<double> &rectan, double &range, double &ra, double &dec)
{
return recrad_c(&rectan[0], &range, &ra, &dec);
}

void conversion_coordinates::cylrec(double &r, double &lon, double &z, std::vector<double> &rectan)
{
return cylrec_c(r, lon, z, &rectan[0]);
}

void conversion_coordinates::reccyl(std::vector<double> &rectan, double &r, double &lon, double &z)
{
return reccyl_c(&rectan[0], &r, &lon, &z);
}

void conversion_coordinates::sphrec(double &r, double &colat, double &lon, std::vector<double> &rectan)
{
return sphrec_c(r, colat, lon, &rectan[0]);
}

void conversion_coordinates::recsph( std::vector<double> &rectan, double &r, double &colat, double &lon)
{
return recsph_c(&rectan[0], &r, &colat, &lon);
}

void conversion_coordinates::sphcyl(double &radius, double &colat, double &slon, double &r, double lon, double &z)
{
return sphcyl_c(radius, colat, slon, &r, &lon, &z);
}

void conversion_coordinates::cylsph(double &r, double &lonc, double &z, double &radius, double &colat, double &lon)
{
return cylsph_c(r, lonc, z, &radius, &colat, &lon);
}

void conversion_coordinates::sphlat(double &r, double &colat, double &lons, double &radius, double &lon, double &lat)
{
return sphlat_c(r, colat, lons, &radius, &lon, &lat);
}

void conversion_coordinates::latsph(double &radius, double &lon, double &lat, double &rho, double &colat, double &lons)
{
return latsph_c(radius, lon, lat, &rho, &colat, &lons);
}

void conversion_coordinates::latcyl(double &radius, double &lon, double &lat, double &r, double &lonc, double &z)
{
return latcyl_c(radius, lon, lat, &r, &lonc, &z);
}

void conversion_coordinates::cyllat(double &r,double &lonc, double &z, double &radius, double &lon, double &lat)
{
return cyllat_c(r, lonc, z, &radius, &lon, &lat);
}

void conversion_coordinates::reclat(std::vector<double> &rectan, double &radius, double &longitude, double &latitude)
{
return reclat_c(&rectan[0], &radius, &longitude, &latitude);
}

void conversion_coordinates::latrec(double &radius, double &longitude, double &latitude, std::vector<double> &rectan)
{
return latrec_c(radius, longitude, latitude, &rectan[0]);
}

void conversion_coordinates::recgeo(std::vector<double> &rectan, double &re, double &f, double &lon, double &lat, double &alt)
{
return recgeo_c(&rectan[0], re, f, &lon, &lat, &alt);
}

void conversion_coordinates::georec(double &lon, double &lat, double &alt, double &re, double &f, std::vector<double> &rectan)
{
return georec_c(lon, lat, alt, re, f, &rectan[0]);
}

void conversion_coordinates::recpgr(const std::string &body, std::vector<double> &rectan, double &re, double &f, double &lon, double &lat, double &alt)
{
return recpgr_c(&body.at(0), &rectan[0], re, f, &lon, &lat, &alt);
}

void conversion_coordinates::pgrrec(const std::string &body, double &lon, double &lat, double &alt, double &re, double &f, std::vector<double> &rectan)
{
return pgrrec_c(&body.at(0), lon, lat, alt, re, f, &rectan[0]);
}

void conversion_coordinates::xfmsta(const std::vector<double> &input_state, const std::string &input_coord_sys, const std::string &output_coord_sys, const std::string &body, std::vector<double> &output_state)
{
return xfmsta_c(&input_state.at(0), &input_coord_sys.at(0), &output_coord_sys.at(0), &body.at(0), &output_state[0]);
}

/*void conversion_coordinates::drdlat(double &r, double &lon, double &lat, double (*)[3] jacobi)
{
int rowSize = jacobi.size();
int columnSize = jacobi[0].size();
double** jacobiA = twodVectorToArray(jacobi, rowSize, columnSize);
return drdlat_c(r, lon, lat, jacobi);
}

void conversion_coordinates::dlatdr(double &x, double &y, double &z, double **jacobi)
{
return dlatdr_c(x, y, z, **jacobi);
}

void conversion_coordinates::drdpgr(const std::string &body, double &lon, double &lat, double &alt, double &re, double &f, double **jacobi)
{
return drdpgr_c(&body.at(0), lon, lat, alt, re, f, **jacobi);
}

void conversion_coordinates::dpgrdr(const std::string &body, double &x, double &y, double &z, double &re, double &f, double **jacobi)
{
return dpgrdr_c(&body.at(0), x, y, z, re, f, **jacobi);
}

void conversion_coordinates::drdgeo(double &lon, double &lat, double &alt, double &re, double &f, double **jacobi)
{
return drdgeo_c(lon, lat, alt, re, f, **jacobi);
}

void conversion_coordinates::dgeodr(double &x, double &y, double &z, double &re, double &f, double **jacobi)
{
return dgeodr_c(x, y, z, re, f, **jacobi);
}

void conversion_coordinates::drdcyl(double &r__, double &lon, double &z, double **jacobi)
{
return drdcyl_c(r, lon, z, **jacobi);
}

void conversion_coordinates::dcyldr(double &x, double &y, double &z, double **jacobi)
{
return dcyldr_c(x, y, z, **jacobi);
}

void conversion_coordinates::drdsph(double &r, double &colat, double &lon, std::vector<std::vector<double>> &jacobi)
{
return drdsph_c(r, colat, lon, &jacobi[0][0]);
}

void conversion_coordinates::dsphdr(double &x, double &y, double &z, **jacobi)
{
return dsphdr_(x, y, z, **jacobi);
}*/
Loading