diff --git a/.clang-tidy b/.clang-tidy new file mode 100644 index 0000000000000000000000000000000000000000..a3426563812b0145ab655b25c2b42431e4fb91da --- /dev/null +++ b/.clang-tidy @@ -0,0 +1,106 @@ +--- +Checks: '*, +-*-braces-around-statements, +-*-convert-member-functions-to-static, +-*-implicit-bool-conversion, +-*-magic-numbers, +-*-named-parameter, +-*-trailing-return*, +-clang-analyzer-alpha*, +-cert-err58-cpp, +-cert-err61-cpp, +-clang-analyzer-alpha.deadcode.UnreachableCode, +-clang-analyzer-security.insecureAPI.strcpy, +-cppcoreguidelines-non-private-member-variables-in-classes, +-cppcoreguidelines-pro-bounds-constant-array-index, +-cppcoreguidelines-pro-bounds-pointer-arithmetic, +-cppcoreguidelines-pro-type-member-init, +-cppcoreguidelines-pro-type-reinterpret-cast, +-cppcoreguidelines-pro-type-vararg, +-fuchsia-default-arguments-calls, +-fuchsia-overloaded-operator, +-google-build-using-namespace, +-google-default-arguments, +-google-readability-todo, +-google-runtime-int, +-hicpp-vararg, +-misc-throw-by-value-catch-by-reference, +-performance-unnecessary-value-param, + +-*-avoid-c-arrays, +-*-avoid-goto, +-*-container-size-empty, +-*-isolate-declaration, +-*-member-init, +-*-namespace-comment, +-*-narrowing-conversions, +-*-owning-memory, +-*-pro-bounds-array-to-pointer-decay, +-*-simplify-boolean-expr, +-*-special-member-function*, +-*-static-definition-in-anonymous-namespace, +-*-statically-constructed-objects, +-*-use-auto, +-*-use-emplace, +-bugprone-copy-constructor-init, +-bugprone-exception-escape, +-bugprone-misplaced-widening-cast, +-bugprone-narrowing-conversions, +-bugprone-unhandled-self-assignment, +-bugprone-unused-return-value, +-bugprone-use-after-move, +-bugprone-parent-virtual-call, +-cert-dcl21-cpp, +-cert-msc30-c, +-cert-msc50-cpp, +-cert-oop54-cpp, +-clang-analyzer-core.CallAndMessage, +-clang-analyzer-cplusplus.NewDeleteLeaks, +-cppcoreguidelines-explicit-virtual-functions, +-cppcoreguidelines-macro-usage, +-cppcoreguidelines-pro-type-const-cast, +-cppcoreguidelines-pro-type-cstyle-cast, +-cppcoreguidelines-pro-type-static-cast-downcast, +-fuchsia-default-arguments-declarations, +-google-explicit-constructor, +-google-readability-avoid-underscore-in-googletest-name, +-google-readability-casting, +-google-runtime-references, +-hicpp-move-const-arg, +-hicpp-multiway-paths-covered, +-hicpp-no-array-decay, +-hicpp-noexcept-move, +-hicpp-signed-bitwise, +-hicpp-uppercase-literal-suffix, +-hicpp-use-equals-default, +-hicpp-use-nullptr, +-misc-non-private-member-variables-in-classes, +-misc-uniqueptr-reset-release, +-modernize-loop-convert, +-modernize-loop-convert, +-modernize-make-shared, +-modernize-make-unique, +-modernize-pass-by-value, +-modernize-raw-string-literal, +-modernize-return-braced-init-list, +-modernize-use-equals-default, +-modernize-use-nullptr, +-modernize-use-using, +-performance-for-range-copy, +-performance-inefficient-vector-operation, +-performance-move-const-arg, +-performance-noexcept-move-constructor, +-performance-unnecessary-value-param, +-performance-unnecessary-copy-initialization, +-readability-avoid-const-params-in-decls, +-readability-const-return-type, +-readability-delete-null-pointer, +-readability-else-after-return, +-readability-inconsistent-declaration-parameter-name, +-readability-non-const-parameter, +-readability-redundant-control-flow, +-readability-redundant-string-cstr, +-readability-uppercase-literal-suffix, + +-clang-analyzer-core.NonNullParamChecker, +' diff --git a/CMakeLists.txt b/CMakeLists.txt index 96655bb55f821fc2474ae0f934bf3a0f5f117325..2dbffac6a97aa025f22c14995c1c6b6b1f9d9f5e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -52,6 +52,10 @@ option(BORNAGAIN_COVERAGE "Build with test coverage information" OFF) option(BORNAGAIN_DEBUG_OPTIMIZATION "Build with debug optimization (gcc only)" OFF) option(BORNAGAIN_TIDY "Invokes clang-tidy" OFF) +if(BORNAGAIN_TIDY AND BORNAGAIN_PYTHON) + message(FATAL_ERROR "BORNAGAIN_TIDY is incompatible with BORNAGAIN_PYTHON") +endif() + if(ALLCONFIG) set(CONFIGURE_MANPAGE ON) set(CONFIGURE_PYTHON_DOCS ON) @@ -99,17 +103,24 @@ endif() add_subdirectory(ThirdParty/common) add_subdirectory(ThirdParty/Fit) +add_subdirectory(ThirdParty/Core) +if(BORNAGAIN_GUI) + add_subdirectory(ThirdParty/GUI) +endif() + +if(BORNAGAIN_TIDY) + set(CMAKE_CXX_CLANG_TIDY "clang-tidy") # has effect only if compiler is clang; uses .clang-tidy +endif() + add_subdirectory(Fit) add_subdirectory(Tests/UnitTests/Fit) -add_subdirectory(ThirdParty/Core) add_subdirectory(Core) add_subdirectory(Tests/UnitTests/Core) add_subdirectory(Tests/UnitTests/Numeric) add_subdirectory(Tests/Performance/Core) if(BORNAGAIN_GUI) - add_subdirectory(ThirdParty/GUI) add_subdirectory(GUI) add_subdirectory(Tests/UnitTests/GUI) add_subdirectory(Tests/Performance/GUI) diff --git a/Core/Aggregate/InterferenceFunction1DLattice.cpp b/Core/Aggregate/InterferenceFunction1DLattice.cpp index 39d73cc8c3af1627b6f508c6041efb95d3412efb..0cf83e4daae88317ff1ea43dea77a18bfaa1005b 100644 --- a/Core/Aggregate/InterferenceFunction1DLattice.cpp +++ b/Core/Aggregate/InterferenceFunction1DLattice.cpp @@ -24,9 +24,9 @@ namespace { // maximum value for qx*Lambdax -static const int nmax = 20; +const int nmax = 20; // minimum number of neighboring reciprocal lattice points to use -static const int min_points = 4; +const int min_points = 4; } // namespace //! Constructor of interference function of one-dimensional lattice. @@ -40,7 +40,7 @@ InterferenceFunction1DLattice::InterferenceFunction1DLattice(double length, doub registerParameter("Xi", &m_xi).setUnit("rad"); } -InterferenceFunction1DLattice::~InterferenceFunction1DLattice() {} +InterferenceFunction1DLattice::~InterferenceFunction1DLattice() = default; InterferenceFunction1DLattice* InterferenceFunction1DLattice::clone() const { diff --git a/Core/Aggregate/InterferenceFunction2DLattice.cpp b/Core/Aggregate/InterferenceFunction2DLattice.cpp index 1c16d41a6f0b05a1d8b31914ea99def7c5563113..8922720bb6f529d878e1e05abe3fe7237c4c4b4a 100644 --- a/Core/Aggregate/InterferenceFunction2DLattice.cpp +++ b/Core/Aggregate/InterferenceFunction2DLattice.cpp @@ -22,9 +22,9 @@ namespace { // maximum value for qx*Lambdax and qy*lambday -static const int nmax = 20; +const int nmax = 20; // minimum number of neighboring reciprocal lattice points to use -static const int min_points = 4; +const int min_points = 4; } // namespace InterferenceFunction2DLattice::InterferenceFunction2DLattice(const Lattice2D& lattice) diff --git a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp index 37b792fe59a6d1b8073d64c595fb861076ecdc90..bfa948c5675f10ecfdeff922a50c4d19b5fd9508 100644 --- a/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp +++ b/Core/Aggregate/InterferenceFunctionFinite3DLattice.cpp @@ -67,6 +67,6 @@ double InterferenceFunctionFinite3DLattice::iff_without_dw(const kvector_t q) co void InterferenceFunctionFinite3DLattice::setLattice(const Lattice& lattice) { - mP_lattice.reset(new Lattice(lattice)); + mP_lattice = std::make_unique<Lattice>(lattice); registerChild(mP_lattice.get()); } diff --git a/Core/Aggregate/InterferenceFunctionHardDisk.cpp b/Core/Aggregate/InterferenceFunctionHardDisk.cpp index 56948d53d45590707f63f7b486140400b31199d8..1b12abbddb94e547b359882e0fd8751309142fa0 100644 --- a/Core/Aggregate/InterferenceFunctionHardDisk.cpp +++ b/Core/Aggregate/InterferenceFunctionHardDisk.cpp @@ -20,7 +20,7 @@ namespace { -static const double p = 7.0 / 3.0 - 4.0 * std::sqrt(3.0) / M_PI; +const double p = 7.0 / 3.0 - 4.0 * std::sqrt(3.0) / M_PI; double Czero(double packing); // TODO ASAP why these variables? double S2(double packing); double W2(double x); diff --git a/Core/includeIncludes/InterferenceFunctions.h b/Core/Aggregate/InterferenceFunctions.h similarity index 95% rename from Core/includeIncludes/InterferenceFunctions.h rename to Core/Aggregate/InterferenceFunctions.h index 6d22bf282d38c6c49a65fa2d87cc8fdddd9cd219..e3a164961d9a04dfe73142e959d402cb65752ddf 100644 --- a/Core/includeIncludes/InterferenceFunctions.h +++ b/Core/Aggregate/InterferenceFunctions.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/includeIncludes/InterferenceFunctions.h +//! @file Core/Aggregate/InterferenceFunctions.h //! @brief Includes all interference function definitions. //! //! @homepage http://www.bornagainproject.org diff --git a/Core/Aggregate/ParticleLayout.cpp b/Core/Aggregate/ParticleLayout.cpp index 46ecfd7ad8215400ce4f901072bc4abd40e88051..fffc87d0725ab9b4a88b1f80ac3d54ad35f78721 100644 --- a/Core/Aggregate/ParticleLayout.cpp +++ b/Core/Aggregate/ParticleLayout.cpp @@ -28,12 +28,10 @@ namespace //! which is the case for 2D functions. bool particleDensityIsProvidedByInterference(const IInterferenceFunction& iff) { - if (iff.getName() == "Interference2DLattice" || iff.getName() == "Interference2DParaCrystal" - || iff.getName() == "Interference2DSuperLattice" - || iff.getName() == "InterferenceFinite2DLattice" - || iff.getName() == "InterferenceHardDisk") - return true; - return false; + return iff.getName() == "Interference2DLattice" || iff.getName() == "Interference2DParaCrystal" + || iff.getName() == "Interference2DSuperLattice" + || iff.getName() == "InterferenceFinite2DLattice" + || iff.getName() == "InterferenceHardDisk"; } } // namespace @@ -53,7 +51,7 @@ ParticleLayout::ParticleLayout(const IAbstractParticle& particle, double abundan registerWeight(); } -ParticleLayout::~ParticleLayout() {} // needs member class definitions => don't move to .h +ParticleLayout::~ParticleLayout() = default; // needs member class definitions => don't move to .h ParticleLayout* ParticleLayout::clone() const { diff --git a/Core/CMakeLists.txt b/Core/CMakeLists.txt index 4959aa704149e392dcaaa2c39b827e9c701e442f..81ce7618023d4004b0092d83d1c5c212a5c95931 100644 --- a/Core/CMakeLists.txt +++ b/Core/CMakeLists.txt @@ -1,41 +1,40 @@ ############################################################################ -# CMakeLists.txt file for building libBornAgainCore library +# CMakeLists.txt file for building libBornAgainCore ############################################################################ -message(STATUS "Configuring BornAgain GUI") +set(name Core) +set(lib BornAgain${name}) -set(library_name BornAgainCore) +# --- source and include files --- -if(BORNAGAIN_TIDY) - set(CMAKE_CXX_CLANG_TIDY "clang-tidy;-checks=-*,clang-analyzer-*,\ -readability-*,-readability-braces-around-statements,modernize-*") -endif() +file(GLOB source_files */*.cpp) +file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */*.h) -# --- source and include files --------- -file(GLOB source_files "*/*.cpp" ) if((NOT Cerf_IS_CPP) AND (NOT WIN32)) # TEMPORARY list(APPEND source_files ${CMAKE_SOURCE_DIR}/ThirdParty/Core/cerf_wrapper/cerf_ptr.c) endif() -file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*/*.h") +if(${Cerf_IS_CPP}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERF_AS_CPP=ON") +endif() + if(BORNAGAIN_PYTHON) set(WRAP_DIR ${CMAKE_SOURCE_DIR}/Wrap) set(AUTO_DIR ${CMAKE_SOURCE_DIR}/auto/Wrap) file(MAKE_DIRECTORY ${AUTO_DIR}) - include_directories(${AUTO_DIR}) if(CONFIGURE_BINDINGS) set(TMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/Wrap) file(MAKE_DIRECTORY ${TMP_DIR}) - GeneratePythonDocs(${AUTO_DIR}/doxygen_core.i ${WRAP_DIR}/swig) + GeneratePythonDocs(${AUTO_DIR}/doxygen${name}.i ${WRAP_DIR}/swig) set(swig_dependencies - ${WRAP_DIR}/swig/libBornAgainCore.i + ${WRAP_DIR}/swig/lib${lib}.i ${WRAP_DIR}/swig/directors.i - ${WRAP_DIR}/swig/extendCore.i + ${WRAP_DIR}/swig/extend${name}.i ${WRAP_DIR}/swig/ignores.i ${WRAP_DIR}/swig/shared_pointers.i ${WRAP_DIR}/swig/warnings.i @@ -45,56 +44,78 @@ if(BORNAGAIN_PYTHON) message(FATAL_ERROR "Could NOT find SWIG input ${FNAM}") endif() endforeach() - set(swig_dependencies ${swig_dependencies} ${AUTO_DIR}/doxygen_core.i) + list(APPEND swig_dependencies ${AUTO_DIR}/doxygen${name}.i) - set(SWIG_FLAGS "-c++;-python;-o;${AUTO_DIR}/libBornAgainCore_wrap.cpp;-outdir;${TMP_DIR}" + set(SWIG_FLAGS "-c++;-python;-o;${AUTO_DIR}/lib${lib}_wrap.cpp;-outdir;${TMP_DIR}" ";-I${CMAKE_SOURCE_DIR};-I${CMAKE_BINARY_DIR}/inc") - set(SWIG_RUNTIME_FLAGS "-c++;-python;-external-runtime;${AUTO_DIR}/swig_runtime.h") add_custom_command( - OUTPUT ${AUTO_DIR}/libBornAgainCore.py + OUTPUT ${AUTO_DIR}/lib${lib}.py COMMAND ${Python3_EXECUTABLE} ${WRAP_DIR}/swig/tweaks.py - ${TMP_DIR}/libBornAgainCore.py - ${AUTO_DIR}/libBornAgainCore.py - DEPENDS ${TMP_DIR}/libBornAgainCore.py + ${TMP_DIR}/lib${lib}.py + ${AUTO_DIR}/lib${lib}.py + DEPENDS ${TMP_DIR}/lib${lib}.py ) add_custom_command( - OUTPUT ${TMP_DIR}/libBornAgainCore.py - ${AUTO_DIR}/libBornAgainCore_wrap.h - ${AUTO_DIR}/libBornAgainCore_wrap.cpp - COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${WRAP_DIR}/swig/libBornAgainCore.i - DEPENDS ${swig_dependencies} ${include_files} - ) - - add_custom_command( - OUTPUT ${AUTO_DIR}/swig_runtime.h - COMMAND ${SWIG_EXECUTABLE} ${SWIG_RUNTIME_FLAGS} + OUTPUT ${TMP_DIR}/lib${lib}.py + ${AUTO_DIR}/lib${lib}_wrap.h + ${AUTO_DIR}/lib${lib}_wrap.cpp + COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${WRAP_DIR}/swig/lib${lib}.i DEPENDS ${swig_dependencies} ${include_files} ) endif(CONFIGURE_BINDINGS) add_custom_target( - ${library_name}_python - COMMAND ${CMAKE_COMMAND} -E copy - ${AUTO_DIR}/libBornAgainCore.py ${CMAKE_BINARY_DIR}/lib/libBornAgainCore.py - COMMAND ${CMAKE_COMMAND} -E copy - ${AUTO_DIR}/libBornAgainCore.py ${CMAKE_BINARY_DIR}/lib/bornagain/libBornAgainCore.py - DEPENDS ${AUTO_DIR}/libBornAgainCore.py + ${lib}_python + COMMAND ${CMAKE_COMMAND} + -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/lib${lib}.py + COMMAND ${CMAKE_COMMAND} + -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/bornagain/lib${lib}.py + DEPENDS ${AUTO_DIR}/lib${lib}.py ) - add_custom_target(${library_name}_runtime DEPENDS ${AUTO_DIR}/swig_runtime.h) - if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) # suppress warnings from auto-generated code (last updated for Swig 4.0.1) - set_source_files_properties(${AUTO_DIR}/libBornAgainCore_wrap.cpp + set_source_files_properties(${AUTO_DIR}/lib${lib}_wrap.cpp PROPERTIES COMPILE_OPTIONS "-Wno-unused-parameter;-Wno-missing-field-initializers;-Wno-sometimes-uninitialized;\ -Wno-deprecated-declarations") endif() - list(APPEND source_files "${AUTO_DIR}/libBornAgainCore_wrap.cpp") + list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") + +endif(BORNAGAIN_PYTHON) + +# --- making library --- + +if(WIN32) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") +endif() + +add_library(${lib} SHARED ${source_files}) +set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) +set(${lib}_LIBRARY_TYPE SHARED) + +if(BORNAGAIN_PYTHON) + add_dependencies(${lib} ${lib}_python) +endif() + +# exposing library name and list of include directories outside +set(${lib}_LIBRARY ${lib} PARENT_SCOPE) + + +if(BORNAGAIN_PYTHON) + if(CONFIGURE_BINDINGS) + add_custom_command( + OUTPUT ${AUTO_DIR}/swig_runtime.h + COMMAND ${SWIG_EXECUTABLE} -c++;-python;-external-runtime;${AUTO_DIR}/swig_runtime.h + DEPENDS ${swig_dependencies} ${include_files} + ) + endif() + add_custom_target(${lib}_runtime DEPENDS ${AUTO_DIR}/swig_runtime.h) + add_dependencies(${lib} ${lib}_runtime) configure_file(${WRAP_DIR}/python/plot_utils.py ${CMAKE_BINARY_DIR}/lib/bornagain/plot_utils.py COPYONLY) @@ -113,41 +134,18 @@ if(BORNAGAIN_PYTHON) endif() -if(WIN32) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") -endif() - - -# --- making library --------- -if(${Cerf_IS_CPP}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DCERF_AS_CPP=ON") -endif() -add_library(${library_name} SHARED ${source_files}) - -set_target_properties(${library_name} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) -set(${library_name}_LIBRARY_TYPE SHARED) - - -if(BORNAGAIN_PYTHON) - add_dependencies(${library_name} ${library_name}_python ${library_name}_runtime) -endif() - -# exposing library name and list of include directories outside -set(${library_name}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE) -set(${library_name}_LIBRARY ${library_name} PARENT_SCOPE) - -# --- external dependencies --------- +# --- external dependencies --- -target_link_libraries(${library_name} ${BornAgainFit_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries(${lib} ${BornAgainFit_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) if(BORNAGAIN_TIFF_SUPPORT) - target_compile_definitions(${library_name} PUBLIC -DBORNAGAIN_TIFF_SUPPORT) - target_include_directories(${library_name} PUBLIC ${TIFF_INCLUDE_DIR}) - target_link_libraries(${library_name} ${TIFF_LIBRARIES}) + target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_TIFF_SUPPORT) + target_include_directories(${lib} PUBLIC ${TIFF_INCLUDE_DIR}) + target_link_libraries(${lib} ${TIFF_LIBRARIES}) endif() -target_include_directories(${library_name} +target_include_directories(${lib} PUBLIC ${CMAKE_SOURCE_DIR} ${Boost_INCLUDE_DIRS} ${FFTW3_INCLUDE_DIR} ${GSL_INCLUDE_DIR} ${tspectrum_INCLUDE_DIR} ${Cerf_INCLUDE_DIR} @@ -155,35 +153,40 @@ target_include_directories(${library_name} SYSTEM PUBLIC ${EIGEN3_INCLUDE_DIRS} ) if(BORNAGAIN_GUI) - target_include_directories(${library_name} PUBLIC ${Qt5Core_INCLUDE_DIRS}) - target_link_libraries(${library_name} ${Qt5Core_LIBRARIES}) + target_include_directories(${lib} PUBLIC ${Qt5Core_INCLUDE_DIRS}) + target_link_libraries(${lib} ${Qt5Core_LIBRARIES}) endif() -target_link_libraries(${library_name} ${Boost_LIBRARIES} ${FFTW3_LIBRARIES} ${GSL_LIBRARIES} +target_link_libraries(${lib} ${Boost_LIBRARIES} ${FFTW3_LIBRARIES} ${GSL_LIBRARIES} ${tspectrum_LIBRARY} ${Cerf_LIBRARIES}) if(BORNAGAIN_MPI) add_definitions(-DBORNAGAIN_MPI) include_directories(${MPI_INCLUDE_PATH}) - target_link_libraries(${library_name} ${MPI_LIBRARIES}) + target_link_libraries(${lib} ${MPI_LIBRARIES}) endif() if(BORNAGAIN_PYTHON) - target_compile_definitions(${library_name} PUBLIC -DBORNAGAIN_PYTHON) - include_directories(${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) - target_link_libraries(${library_name} ${Python3_LIBRARIES}) + target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) + target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) + target_link_libraries(${lib} ${Python3_LIBRARIES}) endif() if(APPLE AND BORNAGAIN_APPLE_BUNDLE) set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks") - set_target_properties(${library_name} - PROPERTIES - LINK_FLAGS ${link_flags} - ) + set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags}) endif() +# --- installation --- -# --- installation --------- +install(TARGETS ${lib} DESTINATION ${destination_lib} COMPONENT Libraries) +install(FILES ${CMAKE_BINARY_DIR}/lib/lib${lib}.py + DESTINATION ${destination_lib} COMPONENT Libraries) # required by swig + +foreach(file ${include_files}) + get_filename_component(dir ${file} DIRECTORY) + install(FILES ${file} DESTINATION ${destination_include}/${name}/${dir}) +endforeach() install(DIRECTORY ${CMAKE_SOURCE_DIR}/Examples/ DESTINATION ${destination_examples} COMPONENT Examples FILES_MATCHING PATTERN "*.py" ) @@ -195,39 +198,29 @@ install(DIRECTORY ${CMAKE_SOURCE_DIR}/Examples/ DESTINATION ${destination_examples} COMPONENT Examples FILES_MATCHING PATTERN "*.png") install(DIRECTORY ${CMAKE_SOURCE_DIR}/Examples/cpp DESTINATION ${destination_examples} COMPONENT Examples) -install(TARGETS ${library_name} - DESTINATION ${destination_lib} COMPONENT Libraries) -install(FILES ${CMAKE_BINARY_DIR}/lib/lib${library_name}.py - DESTINATION ${destination_lib} COMPONENT Libraries) # required by swig - -foreach(file ${include_files}) - get_filename_component(dir ${file} DIRECTORY) - install(FILES ${file} DESTINATION ${destination_include}/Core/${dir}) -endforeach() install(FILES "${AUTO_DIR}/swig_runtime.h" DESTINATION ${destination_include}/Wrap COMPONENT Headers) - install(FILES ${CMAKE_SOURCE_DIR}/Wrap/WinDllMacros.h DESTINATION ${destination_include}/Wrap COMPONENT Headers) if(WIN32) - # python in windows required .pyd extention for the library name + # python in windows required .pyd extension for the library name if(BORNAGAIN_PYTHON) add_custom_command( - TARGET ${library_name} + TARGET ${lib} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${library_name}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}".pyd" + ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} + ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}".pyd" ) - install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}.pyd + install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}.pyd DESTINATION ${destination_lib} COMPONENT Libraries) add_custom_command( - TARGET ${library_name} + TARGET ${lib} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${library_name}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${library_name}${libsuffix} + ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} + ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}${libsuffix} ) endif() diff --git a/Core/Computation/DWBASingleComputation.cpp b/Core/Computation/DWBASingleComputation.cpp index bd7da053e1c8486dbf8f401f1ed4b8d7765ff436..a6d3b2c177dcdae2abb2bf0c8318a25bc70d3bbe 100644 --- a/Core/Computation/DWBASingleComputation.cpp +++ b/Core/Computation/DWBASingleComputation.cpp @@ -26,7 +26,7 @@ DWBASingleComputation::DWBASingleComputation(DWBASingleComputation&&) = default; void DWBASingleComputation::setProgressHandler(ProgressHandler* p_progress) { - mP_progress_counter.reset(new DelayedProgressCounter(p_progress, 100)); + mP_progress_counter = std::make_unique<DelayedProgressCounter>(p_progress, 100); } void DWBASingleComputation::addLayoutComputation(ParticleLayoutComputation* p_layout_comp) diff --git a/Core/Computation/DepthProbeComputationTerm.cpp b/Core/Computation/DepthProbeComputationTerm.cpp index 3a4f0fa4dfd0e1c83427e9c14bc0a18ff16ad682..4e0e0ce2d419d84a0d29b1c057340025106d5ea9 100644 --- a/Core/Computation/DepthProbeComputationTerm.cpp +++ b/Core/Computation/DepthProbeComputationTerm.cpp @@ -29,7 +29,7 @@ DepthProbeComputationTerm::~DepthProbeComputationTerm() = default; void DepthProbeComputationTerm::setProgressHandler(ProgressHandler* p_progress) { - mP_progress_counter.reset(new DelayedProgressCounter(p_progress, 100)); + mP_progress_counter = std::make_unique<DelayedProgressCounter>(p_progress, 100); } void DepthProbeComputationTerm::compute(DepthProbeElement& elem) const diff --git a/Core/Computation/LayoutStrategyBuilder.cpp b/Core/Computation/LayoutStrategyBuilder.cpp index d688edeab9dd025d5b2629e52a79c13eff6c04d6..be8e8c9ae662f734d7cf2899a21715d1fd6f0115 100644 --- a/Core/Computation/LayoutStrategyBuilder.cpp +++ b/Core/Computation/LayoutStrategyBuilder.cpp @@ -27,7 +27,7 @@ LayoutStrategyBuilder::LayoutStrategyBuilder(const ProcessedLayout* p_layout, } // needs class definitions => don't move to .h -LayoutStrategyBuilder::~LayoutStrategyBuilder() {} +LayoutStrategyBuilder::~LayoutStrategyBuilder() = default; IInterferenceFunctionStrategy* LayoutStrategyBuilder::releaseStrategy() { @@ -43,14 +43,13 @@ void LayoutStrategyBuilder::createStrategy() auto p_radial_para = dynamic_cast<const InterferenceFunctionRadialParaCrystal*>(p_iff); if (p_radial_para && p_radial_para->kappa() > 0.0) { double kappa = p_radial_para->kappa(); - mP_strategy.reset(new SSCApproximationStrategy(m_sim_params, kappa, m_polarized)); + mP_strategy = std::make_unique<SSCApproximationStrategy>(m_sim_params, kappa, m_polarized); } else { - mP_strategy.reset(new DecouplingApproximationStrategy(m_sim_params, m_polarized)); + mP_strategy = std::make_unique<DecouplingApproximationStrategy>(m_sim_params, m_polarized); } if (!mP_strategy) throw Exceptions::ClassInitializationException("Could not create appropriate strategy"); mP_strategy->init(mp_layout->formFactorList(), p_iff); - return; } void LayoutStrategyBuilder::checkInterferenceFunction(const IInterferenceFunction* p_iff) diff --git a/Core/Computation/ProcessedLayout.cpp b/Core/Computation/ProcessedLayout.cpp index 62f448ce5a94833a4f842be8ad66f6077555c758..345104559c22d4dc66e085b754efe9f8dbfd4411 100644 --- a/Core/Computation/ProcessedLayout.cpp +++ b/Core/Computation/ProcessedLayout.cpp @@ -106,12 +106,12 @@ FormFactorCoherentSum ProcessedLayout::ProcessParticle(const IParticle& particle std::unique_ptr<IFormFactor> P_ff_framework; if (slices.size() > 1) { if (m_polarized) - P_ff_framework.reset(new FormFactorDWBAPol(*ff_pair.first)); + P_ff_framework = std::make_unique<FormFactorDWBAPol>(*ff_pair.first); else - P_ff_framework.reset(new FormFactorDWBA(*ff_pair.first)); + P_ff_framework = std::make_unique<FormFactorDWBA>(*ff_pair.first); } else { if (m_polarized) - P_ff_framework.reset(new FormFactorBAPol(*ff_pair.first)); + P_ff_framework = std::make_unique<FormFactorBAPol>(*ff_pair.first); else P_ff_framework.reset(ff_pair.first->clone()); } diff --git a/Core/Computation/ProcessedSample.cpp b/Core/Computation/ProcessedSample.cpp index b86dc778b0fcb51944604acb73e4b411be8e5aa3..1625fc6b5f1095371061ddcd016c5f579f09e3a5 100644 --- a/Core/Computation/ProcessedSample.cpp +++ b/Core/Computation/ProcessedSample.cpp @@ -248,7 +248,7 @@ void ProcessedSample::addNSlices(size_t n, double thickness, const Material& mat void ProcessedSample::initBFields() { - if (m_slices.size() == 0) + if (m_slices.empty()) return; double m_z0 = m_slices[0].material().magnetization().z(); double b_z = Slice::Magnetic_Permeability * (m_ext_field.z() + m_z0); @@ -284,9 +284,10 @@ std::unique_ptr<IFresnelMap> CreateFresnelMap(const MultiLayer& sample, { std::unique_ptr<IFresnelMap> P_result; if (ContainsMagneticSlice(slices)) - P_result.reset(new MatrixFresnelMap(SpecularStrategyBuilder::build(sample, true))); + P_result = std::make_unique<MatrixFresnelMap>(SpecularStrategyBuilder::build(sample, true)); else - P_result.reset(new ScalarFresnelMap(SpecularStrategyBuilder::build(sample, false))); + P_result = + std::make_unique<ScalarFresnelMap>(SpecularStrategyBuilder::build(sample, false)); if (options.isIntegrate()) P_result->disableCaching(); return P_result; diff --git a/Core/Computation/SpecularComputationTerm.cpp b/Core/Computation/SpecularComputationTerm.cpp index 2c5a6ed658c70481f357d7016566d883beb5b266..220b512e0dff5dbb2b96fe531b2cca68c46f7759 100644 --- a/Core/Computation/SpecularComputationTerm.cpp +++ b/Core/Computation/SpecularComputationTerm.cpp @@ -30,7 +30,7 @@ SpecularComputationTerm::~SpecularComputationTerm() = default; void SpecularComputationTerm::setProgressHandler(ProgressHandler* p_progress) { - mP_progress_counter.reset(new DelayedProgressCounter(p_progress, 100)); + mP_progress_counter = std::make_unique<DelayedProgressCounter>(p_progress, 100); } void SpecularComputationTerm::compute(SpecularSimulationElement& elem, diff --git a/Core/Correlations/FTDecay1D.cpp b/Core/Correlations/FTDecay1D.cpp index 58f1ace4bd71e457182650bdbe21de64d38577af..5ee54fe5d10888c5f389e8e170d39bbc2b44a101 100644 --- a/Core/Correlations/FTDecay1D.cpp +++ b/Core/Correlations/FTDecay1D.cpp @@ -108,8 +108,8 @@ double FTDecayFunction1DTriangle::evaluate(double q) const FTDecayFunction1DVoigt::FTDecayFunction1DVoigt(const std::vector<double> P) : IFTDecayFunction1D( - {"FTDecayFunction1DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, - P), + {"FTDecayFunction1DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, + P), m_eta(m_P[0]) { } diff --git a/Core/Correlations/FTDecay2D.cpp b/Core/Correlations/FTDecay2D.cpp index e64b2d0e4451a21c556b725aa9194b543c471c72..912746b825b52a54c8591ad316d50b8d05979ad3 100644 --- a/Core/Correlations/FTDecay2D.cpp +++ b/Core/Correlations/FTDecay2D.cpp @@ -120,8 +120,8 @@ double FTDecayFunction2DGauss::evaluate(double qx, double qy) const FTDecayFunction2DVoigt::FTDecayFunction2DVoigt(const std::vector<double> P) : IFTDecayFunction2D( - {"FTDecayFunction2DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, - P), + {"FTDecayFunction2DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, + P), m_eta(m_P[0]) { } diff --git a/Core/Correlations/FTDistributions1D.cpp b/Core/Correlations/FTDistributions1D.cpp index 365823e105a0c4fe4a11a64df5621fcb0b2bea14..bfc4d918a58530b663fc6ab222003a098a413d6e 100644 --- a/Core/Correlations/FTDistributions1D.cpp +++ b/Core/Correlations/FTDistributions1D.cpp @@ -215,8 +215,8 @@ std::unique_ptr<IDistribution1DSampler> FTDistribution1DCosine::createSampler() FTDistribution1DVoigt::FTDistribution1DVoigt(const std::vector<double> P) : IFTDistribution1D( - {"FTDistribution1DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, - P), + {"FTDistribution1DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, + P), m_eta(m_P[1]) { } diff --git a/Core/Correlations/FTDistributions2D.cpp b/Core/Correlations/FTDistributions2D.cpp index 7dc5f3ba3523dcde6dabcbdae2f851ea4d7c459c..a6c95206db6ba961c6b76c0572911647facd6c4a 100644 --- a/Core/Correlations/FTDistributions2D.cpp +++ b/Core/Correlations/FTDistributions2D.cpp @@ -13,15 +13,12 @@ // ************************************************************************** // #include "Core/Correlations/FTDistributions2D.h" -#include "Core/Basics/Algorithms.h" #include "Core/Basics/Exceptions.h" #include "Core/Basics/MathConstants.h" #include "Core/Tools/Integrator.h" #include "Core/Tools/MathFunctions.h" #include <limits> -using algo::concat; - // ************************************************************************** // // interface IFTDistribution1D // ************************************************************************** // @@ -179,8 +176,8 @@ std::unique_ptr<IDistribution2DSampler> FTDistribution2DCone::createSampler() co FTDistribution2DVoigt::FTDistribution2DVoigt(const std::vector<double> P) : IFTDistribution2D( - {"FTDistribution2DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, - P), + {"FTDistribution2DVoigt", "class_tooltip", {{"Eta", "", "para_tooltip", -INF, +INF, 0}}}, + P), m_eta(m_P[3]) { } diff --git a/Core/Detector/ConvolutionDetectorResolution.cpp b/Core/Detector/ConvolutionDetectorResolution.cpp index 23dc6c0223e34eedb7545b3a3f4f32aa2eef77a5..ba092d6ef38dbc5a47b0bbe546a580b752fb03f8 100644 --- a/Core/Detector/ConvolutionDetectorResolution.cpp +++ b/Core/Detector/ConvolutionDetectorResolution.cpp @@ -29,7 +29,7 @@ ConvolutionDetectorResolution::ConvolutionDetectorResolution( setResolutionFunction(p_res_function_2d); } -ConvolutionDetectorResolution::~ConvolutionDetectorResolution() {} +ConvolutionDetectorResolution::~ConvolutionDetectorResolution() = default; ConvolutionDetectorResolution::ConvolutionDetectorResolution( const ConvolutionDetectorResolution& other) diff --git a/Core/Detector/Convolve.cpp b/Core/Detector/Convolve.cpp index 6b451fad297a1c2047d1c4b901534bcf9103efd9..4e15a34278c2fab4e7c1a5dae96ec53f739ae913 100644 --- a/Core/Detector/Convolve.cpp +++ b/Core/Detector/Convolve.cpp @@ -204,6 +204,7 @@ void Convolve::init(int h_src, int w_src, int h_kernel, int w_kernel) ws.w_offset = ws.w_kernel - 1; break; case FFTW_CIRCULAR_SAME: + case FFTW_CIRCULAR_SAME_SHIFTED: // Circular convolution, modulo N // We don't padd with zeros because if we do, we need to padd with at least h_kernel/2; // w_kernel/2 elements plus the wrapp around, which in facts leads to too much @@ -216,20 +217,6 @@ void Convolve::init(int h_src, int w_src, int h_kernel, int w_kernel) ws.h_offset = 0; ws.w_offset = 0; break; - case FFTW_CIRCULAR_SAME_SHIFTED: - // Circular convolution, modulo N, shifted by M/2 - // We don't padd with zeros because if we do, we need to padd with at least h_kernel/2; - // w_kernel/2 elements plus the wrapp around, which in facts leads to too much - // computations compared to the gain obtained with the optimal size - ws.h_fftw = h_src; - ws.w_fftw = w_src; - ws.h_dst = h_src; - ws.w_dst = w_src; - // We copy the [h_kernel/2:h_kernel/2+h_dst-1 ; w_kernel/2:w_kernel/2+w_dst-1] - // real part elements of out_src - ws.h_offset = 0; - ws.w_offset = 0; - break; default: std::cout << "Unrecognized convolution mode, possible modes are " diff --git a/Core/Detector/DetectorMask.cpp b/Core/Detector/DetectorMask.cpp index ed415dfe4200a0114402b06bf4fc23ade04776b2..3b6979d5c2b5aba5106a7213feb5d84f0325cbab 100644 --- a/Core/Detector/DetectorMask.cpp +++ b/Core/Detector/DetectorMask.cpp @@ -111,7 +111,7 @@ const IShape2D* DetectorMask::getMaskShape(size_t mask_index, bool& mask_value) void DetectorMask::process_masks() { m_mask_data.setAllTo(false); - if (!m_shapes.size()) + if (!!m_shapes.empty()) return; m_number_of_masked_channels = 0; diff --git a/Core/Detector/IDetector.cpp b/Core/Detector/IDetector.cpp index 38a5dcb4a96857ecaed8f9fabc8668722c1cf2c4..c2d6a7b068b1b8cb79b799dc25115ce1da21844c 100644 --- a/Core/Detector/IDetector.cpp +++ b/Core/Detector/IDetector.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "Core/Detector/IDetector.h" +#include "Core/Binning/IAxis.h" #include "Core/Detector/ConvolutionDetectorResolution.h" #include "Core/Detector/DetectorMask.h" #include "Core/Detector/IDetectorResolution.h" @@ -43,6 +44,16 @@ void IDetector::addAxis(const IAxis& axis) m_axes.push_back(axis.clone()); } +size_t IDetector::dimension() const +{ + return m_axes.size(); +} + +void IDetector::clear() +{ + m_axes.clear(); +} + const IAxis& IDetector::getAxis(size_t index) const { if (index < dimension()) diff --git a/Core/Detector/IDetector.h b/Core/Detector/IDetector.h index d5a08c34ca8da8f5508a41bec5b84e82dea374e3..eb98997a22e7c82a7c19c79332f88dcd386a84f5 100644 --- a/Core/Detector/IDetector.h +++ b/Core/Detector/IDetector.h @@ -16,15 +16,15 @@ #define BORNAGAIN_CORE_DETECTOR_IDETECTOR_H #include "Core/Basics/ICloneable.h" -#include "Core/Binning/IAxis.h" #include "Core/Detector/DetectionProperties.h" #include "Core/Detector/SimulationAreaIterator.h" #include "Core/Intensity/IUnitConverter.h" #include "Core/Parametrization/INode.h" -#include "Core/Tools/SafePointerVector.h" +#include "Core/Tools/CloneableVector.h" class Beam; class DetectorMask; +class IAxis; class IDetectorResolution; class IResolutionFunction2D; template <class T> class OutputData; @@ -47,14 +47,12 @@ public: //! Inits detector with the beam settings virtual void init(const Beam&) {} - void clear() { m_axes.clear(); } - void addAxis(const IAxis& axis); const IAxis& getAxis(size_t index) const; //! Returns actual dimensionality of the detector (number of defined axes) - size_t dimension() const { return m_axes.size(); } + size_t dimension() const; //! Calculate axis index for given global index size_t axisBinIndex(size_t index, size_t selected_axis) const; @@ -102,7 +100,7 @@ public: createDetectorIntensity(const std::vector<SimulationElement>& elements) const; //! Return default axes units - virtual AxesUnits defaultAxesUnits() const { return AxesUnits::DEFAULT; } + virtual Axes::Units defaultAxesUnits() const { return Axes::Units::DEFAULT; } //! Returns number of simulation elements. size_t numberOfSimulationElements() const; @@ -114,6 +112,8 @@ public: protected: IDetector(const IDetector& other); + void clear(); + //! Returns the name for the axis with given index virtual std::string axisName(size_t index) const = 0; @@ -125,7 +125,7 @@ private: void setDataToDetectorMap(OutputData<double>& detectorMap, const std::vector<SimulationElement>& elements) const; - SafePointerVector<IAxis> m_axes; + CloneableVector<IAxis> m_axes; DetectionProperties m_detection_properties; std::unique_ptr<IDetectorResolution> mP_detector_resolution; }; diff --git a/Core/Detector/IDetector2D.cpp b/Core/Detector/IDetector2D.cpp index e8fd4d7502c022936b34fd1eb1987061f7d07e7f..df32bf4999c717123c4650a44940609035599168 100644 --- a/Core/Detector/IDetector2D.cpp +++ b/Core/Detector/IDetector2D.cpp @@ -41,13 +41,6 @@ void IDetector2D::setDetectorParameters(size_t n_x, double x_min, double x_max, addAxis(*createAxis(1, n_y, y_min, y_max)); } -void IDetector2D::setDetectorAxes(const IAxis& axis0, const IAxis& axis1) -{ - clear(); - addAxis(axis0); - addAxis(axis1); -} - const RegionOfInterest* IDetector2D::regionOfInterest() const { return m_region_of_interest.get(); @@ -55,7 +48,7 @@ const RegionOfInterest* IDetector2D::regionOfInterest() const void IDetector2D::setRegionOfInterest(double xlow, double ylow, double xup, double yup) { - m_region_of_interest.reset(new RegionOfInterest(*this, xlow, ylow, xup, yup)); + m_region_of_interest = std::make_unique<RegionOfInterest>(*this, xlow, ylow, xup, yup); m_detector_mask.initMaskData(*this); } diff --git a/Core/Detector/IDetector2D.h b/Core/Detector/IDetector2D.h index d64eea7eb1ff69778897a235f6db33fc48e28382..822e472a9eb1a0898aa6ae59ca1712c8e3417ba8 100644 --- a/Core/Detector/IDetector2D.h +++ b/Core/Detector/IDetector2D.h @@ -40,9 +40,6 @@ public: void setDetectorParameters(size_t n_x, double x_min, double x_max, size_t n_y, double y_min, double y_max); - //! Sets detector parameters using axes - void setDetectorAxes(const IAxis& axis0, const IAxis& axis1); - //! Removes all masks from the detector void removeMasks(); diff --git a/Core/Detector/RectangularDetector.cpp b/Core/Detector/RectangularDetector.cpp index 8449474ae3585cd7dedda5ffe2a634b6c0d17f1f..985b9ad9efec3496cd5c3e62ef9f389dabde0109 100644 --- a/Core/Detector/RectangularDetector.cpp +++ b/Core/Detector/RectangularDetector.cpp @@ -39,7 +39,7 @@ RectangularDetector::RectangularDetector(const RectangularDetector& other) setName("RectangularDetector"); } -RectangularDetector::~RectangularDetector() {} +RectangularDetector::~RectangularDetector() = default; RectangularDetector* RectangularDetector::clone() const { @@ -152,9 +152,9 @@ RectangularDetector::EDetectorArrangement RectangularDetector::getDetectorArrang return m_detector_arrangement; } -AxesUnits RectangularDetector::defaultAxesUnits() const +Axes::Units RectangularDetector::defaultAxesUnits() const { - return AxesUnits::MM; + return Axes::Units::MM; } RectangularPixel* RectangularDetector::regionOfInterestPixel() const @@ -261,12 +261,8 @@ void RectangularDetector::initNormalVector(const kvector_t central_k) m_normal_to_detector = m_distance * central_k_unit; } - else if (m_detector_arrangement == PERPENDICULAR_TO_REFLECTED_BEAM) { - m_normal_to_detector = m_distance * central_k_unit; - m_normal_to_detector.setZ(-m_normal_to_detector.z()); - } - - else if (m_detector_arrangement == PERPENDICULAR_TO_REFLECTED_BEAM_DPOS) { + else if (m_detector_arrangement == PERPENDICULAR_TO_REFLECTED_BEAM || + m_detector_arrangement == PERPENDICULAR_TO_REFLECTED_BEAM_DPOS) { m_normal_to_detector = m_distance * central_k_unit; m_normal_to_detector.setZ(-m_normal_to_detector.z()); } diff --git a/Core/Detector/RectangularDetector.h b/Core/Detector/RectangularDetector.h index d5e2b9cf91c8c0bc6fd22fe09bc1b5433ca7087c..5455a011b679c2abd64c3d8292ae85b2994d8f2d 100644 --- a/Core/Detector/RectangularDetector.h +++ b/Core/Detector/RectangularDetector.h @@ -74,7 +74,7 @@ public: EDetectorArrangement getDetectorArrangment() const; //! return default axes units - AxesUnits defaultAxesUnits() const override; + Axes::Units defaultAxesUnits() const override; RectangularPixel* regionOfInterestPixel() const; diff --git a/Core/Detector/RegionOfInterest.cpp b/Core/Detector/RegionOfInterest.cpp index 4810384c41c934be5c6ce71d44b27d3bc9cfb3f8..9d6febd3838083f823a85faa03bd2335b41f9940 100644 --- a/Core/Detector/RegionOfInterest.cpp +++ b/Core/Detector/RegionOfInterest.cpp @@ -46,7 +46,7 @@ RegionOfInterest* RegionOfInterest::clone() const return new RegionOfInterest(*this); } -RegionOfInterest::~RegionOfInterest() {} +RegionOfInterest::~RegionOfInterest() = default; RegionOfInterest::RegionOfInterest(const RegionOfInterest& other) : ICloneable(), m_rectangle(other.m_rectangle->clone()), m_ax1(other.m_ax1), m_ay1(other.m_ay1), diff --git a/Core/Detector/ScanResolution.cpp b/Core/Detector/ScanResolution.cpp index 8f3a66d27b55b04cc0f3fe8716c57523f3ef549c..755b5844ef72283d67ef8a17e96a98d62e5505f6 100644 --- a/Core/Detector/ScanResolution.cpp +++ b/Core/Detector/ScanResolution.cpp @@ -206,7 +206,7 @@ std::string ScanResolution::print() const return result.str(); } -ScanResolution::ScanResolution() {} +ScanResolution::ScanResolution() = default; ScanResolution::ScanResolution(const RangedDistribution& distr) : m_distr(distr.clone()) {} diff --git a/Core/Detector/SpecularDetector1D.cpp b/Core/Detector/SpecularDetector1D.cpp index d32b0c7f026410f658357f95a0f3556a96dc5ee5..7f8063a86e5ebe955444f1d5502585110f1b3799 100644 --- a/Core/Detector/SpecularDetector1D.cpp +++ b/Core/Detector/SpecularDetector1D.cpp @@ -32,9 +32,9 @@ SpecularDetector1D* SpecularDetector1D::clone() const return new SpecularDetector1D(*this); } -AxesUnits SpecularDetector1D::defaultAxesUnits() const +Axes::Units SpecularDetector1D::defaultAxesUnits() const { - return AxesUnits::RADIANS; + return Axes::Units::RADIANS; } std::string SpecularDetector1D::axisName(size_t index) const diff --git a/Core/Detector/SpecularDetector1D.h b/Core/Detector/SpecularDetector1D.h index b774c0518169a1f149fae5d90c3aba5125be2cbd..8054bdc92911610a0218c463742e7452e46f4368 100644 --- a/Core/Detector/SpecularDetector1D.h +++ b/Core/Detector/SpecularDetector1D.h @@ -41,7 +41,7 @@ public: void resetRegionOfInterest() override {} //! Return default axes units - AxesUnits defaultAxesUnits() const override; + Axes::Units defaultAxesUnits() const override; protected: SpecularDetector1D(const SpecularDetector1D& other); diff --git a/Core/Detector/SphericalDetector.cpp b/Core/Detector/SphericalDetector.cpp index feeae3ddb3e5e82429b378faa7d9ddfd6c0759f9..f0d8d2e68f052dca84ced4ed762b483726a0af12 100644 --- a/Core/Detector/SphericalDetector.cpp +++ b/Core/Detector/SphericalDetector.cpp @@ -43,9 +43,9 @@ SphericalDetector* SphericalDetector::clone() const return new SphericalDetector(*this); } -AxesUnits SphericalDetector::defaultAxesUnits() const +Axes::Units SphericalDetector::defaultAxesUnits() const { - return AxesUnits::RADIANS; + return Axes::Units::RADIANS; } IPixel* SphericalDetector::createPixel(size_t index) const diff --git a/Core/Detector/SphericalDetector.h b/Core/Detector/SphericalDetector.h index 41d7b25b3f2b72906b8838790bceb81c7b929001..757249b860a6cf9ae261246d0dc3ee224a2acc63 100644 --- a/Core/Detector/SphericalDetector.h +++ b/Core/Detector/SphericalDetector.h @@ -47,7 +47,7 @@ public: ~SphericalDetector() override {} //! return default axes units - AxesUnits defaultAxesUnits() const override; + Axes::Units defaultAxesUnits() const override; protected: //! Creates an IPixel for the given OutputData object and index diff --git a/Core/Export/OrderedMap.h b/Core/Export/OrderedMap.h index 616a930c708e4a1693d08a2df0a67ff0f1cb49bf..7f3c2e4ab12dd1bdd748d573f626ab519afdffe0 100644 --- a/Core/Export/OrderedMap.h +++ b/Core/Export/OrderedMap.h @@ -48,11 +48,12 @@ public: iterator begin() { return m_list.begin(); } iterator end() { return m_list.end(); } - size_t size() + size_t size() const { ASSERT(m_list.size() == m_map.size()); return m_list.size(); } + bool empty() const { return size() == 0; } // if such key exists, pair will be deleted, and new pair appended to the end void insert(const Key& key, const Object& object) @@ -91,7 +92,7 @@ public: return 1; } - const Object& value(const Key& key) + const Object& value(const Key& key) const { typename map_t::const_iterator mit = m_map.find(key); if (mit == m_map.end()) { diff --git a/Core/Export/SampleToPython.cpp b/Core/Export/SampleToPython.cpp index 6844f9d9827ca31621b045e0c68a21fcaabbec4f..77d98fcb9fd40b98cb1d736d67aa71a01f1ec8b5 100644 --- a/Core/Export/SampleToPython.cpp +++ b/Core/Export/SampleToPython.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "Core/Export/SampleToPython.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Aggregate/ParticleLayout.h" #include "Core/Export/INodeUtils.h" #include "Core/Export/SampleLabelHandler.h" @@ -33,7 +34,6 @@ #include "Core/Scattering/IFormFactor.h" #include "Core/Tools/PyFmt.h" #include "Core/Vector/Transform3D.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include <iomanip> #include <map> #include <set> @@ -100,8 +100,8 @@ const std::map<MATERIAL_TYPES, std::string> factory_names{ std::string SampleToPython::defineMaterials() const { - const auto themap = m_label->materialMap(); - if (themap->size() == 0) + const LabelMap<const Material*>* themap = m_label->materialMap(); + if (themap->empty()) return "# No Materials.\n\n"; std::ostringstream result; result << std::setprecision(12); @@ -139,7 +139,7 @@ std::string SampleToPython::defineMaterials() const std::string SampleToPython::defineLayers() const { const auto themap = m_label->layerMap(); - if (themap->size() == 0) + if (themap->empty()) return "# No Layers.\n\n"; std::ostringstream result; result << std::setprecision(12); @@ -161,7 +161,7 @@ std::string SampleToPython::defineLayers() const std::string SampleToPython::defineFormFactors() const { const auto themap = m_label->formFactorMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -177,7 +177,7 @@ std::string SampleToPython::defineFormFactors() const std::string SampleToPython::defineParticles() const { const auto themap = m_label->particleMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -200,7 +200,7 @@ std::string SampleToPython::defineParticles() const std::string SampleToPython::defineCoreShellParticles() const { const auto themap = m_label->particleCoreShellMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -221,7 +221,7 @@ std::string SampleToPython::defineCoreShellParticles() const std::string SampleToPython::defineParticleDistributions() const { const auto themap = m_label->particleDistributionsMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; @@ -249,7 +249,7 @@ std::string SampleToPython::defineParticleDistributions() const // linked parameters std::vector<std::string> linked_pars = par_distr.getLinkedParameterNames(); - if (linked_pars.size()) { + if (!linked_pars.empty()) { result << indent() << s_par_distr; for (size_t i = 0; i < linked_pars.size(); ++i) result << ".linkParameter(\"" << linked_pars[i] << "\")"; @@ -269,7 +269,7 @@ std::string SampleToPython::defineParticleDistributions() const std::string SampleToPython::defineParticleCompositions() const { const auto themap = m_label->particleCompositionMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -292,7 +292,7 @@ std::string SampleToPython::defineParticleCompositions() const std::string SampleToPython::defineLattices() const { const auto themap = m_label->latticeMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -317,7 +317,7 @@ std::string SampleToPython::defineLattices() const std::string SampleToPython::defineCrystals() const { const auto themap = m_label->crystalMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -339,7 +339,7 @@ std::string SampleToPython::defineCrystals() const std::string SampleToPython::defineMesoCrystals() const { const auto themap = m_label->mesocrystalMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -363,7 +363,7 @@ std::string SampleToPython::defineMesoCrystals() const std::string SampleToPython::defineInterferenceFunctions() const { const auto themap = m_label->interferenceFunctionMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -486,7 +486,7 @@ std::string SampleToPython::defineInterferenceFunctions() const std::string SampleToPython::defineParticleLayouts() const { const auto themap = m_label->particleLayoutMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -517,7 +517,7 @@ std::string SampleToPython::defineParticleLayouts() const std::string SampleToPython::defineRoughnesses() const { const auto themap = m_label->layerRoughnessMap(); - if (themap->size() == 0) + if (themap->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -530,7 +530,7 @@ std::string SampleToPython::defineRoughnesses() const std::string SampleToPython::addLayoutsToLayers() const { - if (m_label->particleLayoutMap()->size() == 0) + if (m_label->particleLayoutMap()->empty()) return ""; std::ostringstream result; result << std::setprecision(12); @@ -549,7 +549,7 @@ std::string SampleToPython::addLayoutsToLayers() const std::string SampleToPython::defineMultiLayers() const { const auto themap = m_label->multiLayerMap(); - if (themap->size() == 0) + if (themap->empty()) return "# No MultiLayers.\n\n"; std::ostringstream result; result << std::setprecision(12); diff --git a/Core/Export/SimulationToPython.cpp b/Core/Export/SimulationToPython.cpp index bbb10bc648787ef5d4d93be7de4620092b6a224e..98bdd9500650e4cc342b6bc8583e815ebe68012d 100644 --- a/Core/Export/SimulationToPython.cpp +++ b/Core/Export/SimulationToPython.cpp @@ -31,6 +31,7 @@ #include "Core/Simulation/OffSpecSimulation.h" #include "Core/Simulation/SpecularSimulation.h" #include "Core/Tools/PyFmt.h" +#include "Fit/TestEngine/Numeric.h" #include <iomanip> namespace @@ -48,13 +49,22 @@ const std::string defineSimulate = "def run_simulation():\n" //! Returns a function that converts a coordinate to a Python code snippet with appropiate unit std::function<std::string(double)> printFunc(const IDetector* detector) { - if (detector->defaultAxesUnits() == AxesUnits::MM) + if (detector->defaultAxesUnits() == Axes::Units::MM) return pyfmt::printDouble; - if (detector->defaultAxesUnits() == AxesUnits::RADIANS) + if (detector->defaultAxesUnits() == Axes::Units::RADIANS) return pyfmt::printDegrees; throw Exceptions::RuntimeErrorException( "SimulationToPython::defineMasks() -> Error. Unknown detector units."); } + +//! returns true if it is (0, -1, 0) vector +bool isDefaultDirection(const kvector_t direction) +{ + return Numeric::AreAlmostEqual(direction.x(), 0.0) + && Numeric::AreAlmostEqual(direction.y(), -1.0) + && Numeric::AreAlmostEqual(direction.z(), 0.0); +} + } // namespace //! Returns a Python script that sets up a simulation and runs it if invoked as main program. @@ -161,7 +171,7 @@ std::string SimulationToPython::defineDetector(const Simulation* simulation) con result << pyfmt::indent() << "detector.setPosition(" << pyfmt::printKvector(det->getNormalVector()) << ", " << pyfmt::printDouble(det->getU0()) << ", " << pyfmt::printDouble(det->getV0()); - if (!pyfmt::isDefaultDirection(det->getDirectionVector())) + if (!isDefaultDirection(det->getDirectionVector())) result << ", " << pyfmt::printKvector(det->getDirectionVector()); result << ")\n"; } else if (det->getDetectorArrangment() == RectangularDetector::PERPENDICULAR_TO_SAMPLE) { @@ -333,7 +343,7 @@ std::string SimulationToPython::defineParameterDistributions(const Simulation* s std::ostringstream result; const std::vector<ParameterDistribution>& distributions = simulation->getDistributionHandler().getDistributions(); - if (distributions.size() == 0) + if (distributions.empty()) return ""; for (size_t i = 0; i < distributions.size(); ++i) { std::string main_par_name = distributions[i].getMainParameterName(); diff --git a/Core/Fitting/FitObjective.cpp b/Core/Fitting/FitObjective.cpp index 87c0eff52d9faf2aaf9797b61dc56b8b31a53d65..ea011148717e4a124c50aafed7aa543f3cf13363 100644 --- a/Core/Fitting/FitObjective.cpp +++ b/Core/Fitting/FitObjective.cpp @@ -35,7 +35,7 @@ public: class ChiModuleWrapper : public IMetricWrapper { public: - ChiModuleWrapper(std::unique_ptr<IChiSquaredModule> module); + explicit ChiModuleWrapper(std::unique_ptr<IChiSquaredModule> module); double compute(const std::vector<SimDataPair>& fit_objects, size_t n_pars) const override; private: @@ -45,7 +45,7 @@ private: class ObjectiveMetricWrapper : public IMetricWrapper { public: - ObjectiveMetricWrapper(std::unique_ptr<ObjectiveMetric> module); + explicit ObjectiveMetricWrapper(std::unique_ptr<ObjectiveMetric> module); double compute(const std::vector<SimDataPair>& fit_objects, size_t n_pars) const override; private: @@ -64,7 +64,7 @@ simulation_builder_t FitObjective::simulationBuilder(PyBuilderCallback& callback FitObjective::FitObjective() : m_metric_module( - std::make_unique<ObjectiveMetricWrapper>(std::make_unique<PoissonLikeMetric>())), + std::make_unique<ObjectiveMetricWrapper>(std::make_unique<PoissonLikeMetric>())), m_fit_status(std::make_unique<FitStatus>(this)) { } diff --git a/Core/Fitting/FitObserver.h b/Core/Fitting/FitObserver.h index 7c56ec59c5eba9d1a0777521ab62b580f573ce0d..82c15e89d705d11184afb1d2bef55830300f6800 100644 --- a/Core/Fitting/FitObserver.h +++ b/Core/Fitting/FitObserver.h @@ -86,7 +86,7 @@ template <class T> void FitObserver<T>::notify_all(const T& data) template <class T> bool FitObserver<T>::need_notify(int every_nth) { - return m_notify_count == 0 || m_notify_count % every_nth == 0 ? true : false; + return m_notify_count == 0 || m_notify_count % every_nth == 0; } #endif // BORNAGAIN_CORE_FITTING_FITOBSERVER_H diff --git a/Core/Fitting/ObjectiveMetric.cpp b/Core/Fitting/ObjectiveMetric.cpp index b4062e48dd5bb921b832bdca1ce3f2d938a55d58..30c85677022488cb98b5a4cc90f48669711898db 100644 --- a/Core/Fitting/ObjectiveMetric.cpp +++ b/Core/Fitting/ObjectiveMetric.cpp @@ -234,8 +234,8 @@ double RQ4Metric::compute(const SimDataPair& data_pair, bool use_weights) const return Chi2Metric::compute(data_pair, use_weights); // fetching data in RQ4 form - auto sim_data = data_pair.simulationResult().data(AxesUnits::RQ4); - auto exp_data = data_pair.experimentalData().data(AxesUnits::RQ4); + auto sim_data = data_pair.simulationResult().data(Axes::Units::RQ4); + auto exp_data = data_pair.experimentalData().data(Axes::Units::RQ4); return computeFromArrays(sim_data->getRawDataVector(), exp_data->getRawDataVector(), data_pair.user_weights_array()); diff --git a/Core/Fitting/SimDataPair.cpp b/Core/Fitting/SimDataPair.cpp index ed6738ca6b73cfe3dab4f1d89d696635551ee549..395b1151a227479d2eb8f06e1ff3a3323ed4a53b 100644 --- a/Core/Fitting/SimDataPair.cpp +++ b/Core/Fitting/SimDataPair.cpp @@ -91,21 +91,21 @@ size_t SimDataPair::numberOfFitElements() const SimulationResult SimDataPair::simulationResult() const { - if (m_sim_data.size() == 0) + if (m_sim_data.empty()) throwInitializationException("simulationResult"); return m_sim_data; } SimulationResult SimDataPair::experimentalData() const { - if (m_exp_data.size() == 0) + if (m_exp_data.empty()) throwInitializationException("experimentalData"); return m_exp_data; } SimulationResult SimDataPair::uncertainties() const { - if (m_uncertainties.size() == 0) + if (m_uncertainties.empty()) throwInitializationException("uncertainties"); return m_uncertainties; } @@ -113,7 +113,7 @@ SimulationResult SimDataPair::uncertainties() const //! Returns the user uncertainties cut to the ROI area. SimulationResult SimDataPair::userWeights() const { - if (m_user_weights.size() == 0) + if (m_user_weights.empty()) throwInitializationException("userWeights"); return m_user_weights; } @@ -146,28 +146,28 @@ SimulationResult SimDataPair::absoluteDifference() const std::vector<double> SimDataPair::experimental_array() const { - if (m_exp_data.size() == 0) + if (m_exp_data.empty()) throwInitializationException("experimental_array"); return m_exp_data.data()->getRawDataVector(); } std::vector<double> SimDataPair::simulation_array() const { - if (m_sim_data.size() == 0) + if (m_sim_data.empty()) throwInitializationException("simulation_array"); return m_sim_data.data()->getRawDataVector(); } std::vector<double> SimDataPair::uncertainties_array() const { - if (m_uncertainties.size() == 0) + if (m_uncertainties.empty()) throwInitializationException("uncertainties_array"); return m_uncertainties.data()->getRawDataVector(); } std::vector<double> SimDataPair::user_weights_array() const { - if (m_user_weights.size() == 0) + if (m_user_weights.empty()) throwInitializationException("user_weights_array"); return m_user_weights.data()->getRawDataVector(); } diff --git a/Core/HardParticle/FormFactorCone.cpp b/Core/HardParticle/FormFactorCone.cpp index 832d542356201a6128638a8b5e616e2e8c7e8311..0c03df1fa4f166663d8649dcd9a7655132a44b6a 100644 --- a/Core/HardParticle/FormFactorCone.cpp +++ b/Core/HardParticle/FormFactorCone.cpp @@ -93,5 +93,5 @@ void FormFactorCone::onChange() { m_cot_alpha = MathFunctions::cot(m_alpha); double radius2 = m_radius - m_height * m_cot_alpha; - mP_shape.reset(new DoubleEllipse(m_radius, m_radius, m_height, radius2, radius2)); + mP_shape = std::make_unique<DoubleEllipse>(m_radius, m_radius, m_height, radius2, radius2); } diff --git a/Core/HardParticle/FormFactorCylinder.cpp b/Core/HardParticle/FormFactorCylinder.cpp index 9f07ba3992052c7cf534189048ebc29d476c67b6..9ceead80f11de0bdcba5f92afc17feb5235374cd 100644 --- a/Core/HardParticle/FormFactorCylinder.cpp +++ b/Core/HardParticle/FormFactorCylinder.cpp @@ -60,5 +60,5 @@ IFormFactor* FormFactorCylinder::sliceFormFactor(ZLimits limits, const IRotation void FormFactorCylinder::onChange() { - mP_shape.reset(new DoubleEllipse(m_radius, m_radius, m_height, m_radius, m_radius)); + mP_shape = std::make_unique<DoubleEllipse>(m_radius, m_radius, m_height, m_radius, m_radius); } diff --git a/Core/HardParticle/FormFactorDodecahedron.cpp b/Core/HardParticle/FormFactorDodecahedron.cpp index e0473f19203a314141f47ed15a6ea0d250d7356d..df8a23115068a888483f488baec5ab1f573c706e 100644 --- a/Core/HardParticle/FormFactorDodecahedron.cpp +++ b/Core/HardParticle/FormFactorDodecahedron.cpp @@ -36,7 +36,7 @@ const PolyhedralTopology FormFactorDodecahedron::topology = {{// bottom: //! @param edge: length of the edge in nanometers FormFactorDodecahedron::FormFactorDodecahedron(const std::vector<double> P) : IFormFactorPolyhedron( - {"Dodecahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), + {"Dodecahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), m_edge(m_P[0]) { onChange(); diff --git a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp index 753563bac09894f69f49ade31c7fafae1d847a1c..cded89c4ee5d8e442d4cd6f6bb6661015210a0fd 100644 --- a/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp +++ b/Core/HardParticle/FormFactorEllipsoidalCylinder.cpp @@ -68,5 +68,6 @@ IFormFactor* FormFactorEllipsoidalCylinder::sliceFormFactor(ZLimits limits, cons void FormFactorEllipsoidalCylinder::onChange() { - mP_shape.reset(new DoubleEllipse(m_radius_x, m_radius_y, m_height, m_radius_x, m_radius_y)); + mP_shape = + std::make_unique<DoubleEllipse>(m_radius_x, m_radius_y, m_height, m_radius_x, m_radius_y); } diff --git a/Core/HardParticle/FormFactorFullSphere.cpp b/Core/HardParticle/FormFactorFullSphere.cpp index 32e2fbca90c24ba105dba78703e6bc5ac535b098..789d758d22c2559f4e9ae77b79b37fa609f3e283 100644 --- a/Core/HardParticle/FormFactorFullSphere.cpp +++ b/Core/HardParticle/FormFactorFullSphere.cpp @@ -23,7 +23,7 @@ //! @param radius: radius of the sphere in nanometers FormFactorFullSphere::FormFactorFullSphere(const std::vector<double> P, bool position_at_center) : IFormFactorBorn( - {"FullSphere", "class_tooltip", {{"Radius", "nm", "para_tooltip", 0, +INF, 0}}}, P), + {"FullSphere", "class_tooltip", {{"Radius", "nm", "para_tooltip", 0, +INF, 0}}}, P), m_radius(m_P[0]), m_position_at_center(position_at_center) { onChange(); diff --git a/Core/HardParticle/FormFactorFullSpheroid.cpp b/Core/HardParticle/FormFactorFullSpheroid.cpp index 80eba59ee6a5a68787cc14baffddbf7c0263d667..e6dc0f48adc21516971a605ddae18067c8574f80 100644 --- a/Core/HardParticle/FormFactorFullSpheroid.cpp +++ b/Core/HardParticle/FormFactorFullSpheroid.cpp @@ -68,5 +68,6 @@ IFormFactor* FormFactorFullSpheroid::sliceFormFactor(ZLimits limits, const IRota void FormFactorFullSpheroid::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_radius, m_radius, m_height / 2.0, m_height, 0.0)); + mP_shape = + std::make_unique<TruncatedEllipsoid>(m_radius, m_radius, m_height / 2.0, m_height, 0.0); } diff --git a/Core/HardParticle/FormFactorHemiEllipsoid.cpp b/Core/HardParticle/FormFactorHemiEllipsoid.cpp index ee73ec817ff6627ba6cd075118aa202216fca58f..1cac04558eba94df068c22de8fb2002e3dabe7b2 100644 --- a/Core/HardParticle/FormFactorHemiEllipsoid.cpp +++ b/Core/HardParticle/FormFactorHemiEllipsoid.cpp @@ -78,5 +78,6 @@ complex_t FormFactorHemiEllipsoid::evaluate_for_q(cvector_t q) const void FormFactorHemiEllipsoid::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_radius_x, m_radius_x, m_height, m_height, 0.0)); + mP_shape = + std::make_unique<TruncatedEllipsoid>(m_radius_x, m_radius_x, m_height, m_height, 0.0); } diff --git a/Core/HardParticle/FormFactorHollowSphere.cpp b/Core/HardParticle/FormFactorHollowSphere.cpp index 0ecb1c8c14b2b436e7271bbd4ea1b1d8b50ee438..f9ab1169ec9f0e4a7c271ca89588a4972f5e3a9b 100644 --- a/Core/HardParticle/FormFactorHollowSphere.cpp +++ b/Core/HardParticle/FormFactorHollowSphere.cpp @@ -57,7 +57,7 @@ complex_t FormFactorHollowSphere::evaluate_for_q(cvector_t q) const void FormFactorHollowSphere::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0)); + mP_shape = std::make_unique<TruncatedEllipsoid>(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0); } bool FormFactorHollowSphere::checkParameters() const diff --git a/Core/HardParticle/FormFactorIcosahedron.cpp b/Core/HardParticle/FormFactorIcosahedron.cpp index f8d3893881be24d5b617afdf0b58e87d4603223d..cc7df3aad810d759cca3d45be1f3131669fa9171 100644 --- a/Core/HardParticle/FormFactorIcosahedron.cpp +++ b/Core/HardParticle/FormFactorIcosahedron.cpp @@ -46,7 +46,7 @@ const PolyhedralTopology FormFactorIcosahedron::topology = {{// bottom: //! @param edge: length of the edge in nanometers FormFactorIcosahedron::FormFactorIcosahedron(const std::vector<double> P) : IFormFactorPolyhedron( - {"Icosahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), + {"Icosahedron", "class_tooltip", {{"Edge", "nm", "para_tooltip", 0, +INF, 0}}}, P), m_edge(m_P[0]) { onChange(); diff --git a/Core/HardParticle/FormFactorLongBoxGauss.cpp b/Core/HardParticle/FormFactorLongBoxGauss.cpp index 427d8304318c54fa35b9f5dd6c9b025213e83d6c..61b95d01f38f4a340ddab622496b233667a19b4b 100644 --- a/Core/HardParticle/FormFactorLongBoxGauss.cpp +++ b/Core/HardParticle/FormFactorLongBoxGauss.cpp @@ -54,5 +54,5 @@ IFormFactor* FormFactorLongBoxGauss::sliceFormFactor(ZLimits limits, const IRota void FormFactorLongBoxGauss::onChange() { - mP_shape.reset(new Box(m_length, m_width, m_height)); + mP_shape = std::make_unique<Box>(m_length, m_width, m_height); } diff --git a/Core/HardParticle/FormFactorLongBoxLorentz.cpp b/Core/HardParticle/FormFactorLongBoxLorentz.cpp index 4691a262064f92c1141028a8c08763249a019bf4..00fc3657a4ade64867c7fc9d75f2195044d31812 100644 --- a/Core/HardParticle/FormFactorLongBoxLorentz.cpp +++ b/Core/HardParticle/FormFactorLongBoxLorentz.cpp @@ -54,5 +54,5 @@ IFormFactor* FormFactorLongBoxLorentz::sliceFormFactor(ZLimits limits, const IRo void FormFactorLongBoxLorentz::onChange() { - mP_shape.reset(new Box(m_length, m_width, m_height)); + mP_shape = std::make_unique<Box>(m_length, m_width, m_height); } diff --git a/Core/HardParticle/FormFactorTruncatedSphere.cpp b/Core/HardParticle/FormFactorTruncatedSphere.cpp index 9d6c62c8e448a3a6bdcde883a90ba662787ff50e..4f3f8312c426b4b7ed6e395284766d6f7ec02bfd 100644 --- a/Core/HardParticle/FormFactorTruncatedSphere.cpp +++ b/Core/HardParticle/FormFactorTruncatedSphere.cpp @@ -94,5 +94,5 @@ IFormFactor* FormFactorTruncatedSphere::sliceFormFactor(ZLimits limits, const IR void FormFactorTruncatedSphere::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_radius, m_radius, m_radius, m_height, m_dh)); + mP_shape = std::make_unique<TruncatedEllipsoid>(m_radius, m_radius, m_radius, m_height, m_dh); } diff --git a/Core/includeIncludes/HardParticles.h b/Core/HardParticle/HardParticles.h similarity index 97% rename from Core/includeIncludes/HardParticles.h rename to Core/HardParticle/HardParticles.h index 5b25fa17641a40880aa10b74a46f364f7eacb11b..c19444fbb7260710f7a3fc609bab52cdb84c73c9 100644 --- a/Core/includeIncludes/HardParticles.h +++ b/Core/HardParticle/HardParticles.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/includeIncludes/HardParticles.h +//! @file Core/HardParticle/HardParticles.h //! @brief Includes all particle-shape form-factor definitions. //! //! @homepage http://www.bornagainproject.org diff --git a/Core/HardParticle/IProfileRipple.cpp b/Core/HardParticle/IProfileRipple.cpp index 9e80716cce8c7e12da361a0a48b01f2ae032f863..29534dd9b94a03015188d3b6d67799f72587ec81 100644 --- a/Core/HardParticle/IProfileRipple.cpp +++ b/Core/HardParticle/IProfileRipple.cpp @@ -61,7 +61,7 @@ complex_t IProfileRectangularRipple::factor_yz(complex_t qy, complex_t qz) const void IProfileRectangularRipple::onChange() { - mP_shape.reset(new Box(m_length, m_width, m_height)); + mP_shape = std::make_unique<Box>(m_length, m_width, m_height); } // ************************************************************************** // @@ -82,7 +82,7 @@ complex_t ICosineRipple::factor_yz(complex_t qy, complex_t qz) const void ICosineRipple::onChange() { - mP_shape.reset(new RippleCosine(m_length, m_width, m_height)); + mP_shape = std::make_unique<RippleCosine>(m_length, m_width, m_height); } // ************************************************************************** // @@ -91,8 +91,8 @@ void ICosineRipple::onChange() ISawtoothRipple::ISawtoothRipple(const NodeMeta& meta, const std::vector<double>& PValues) : IProfileRipple( - nodeMetaUnion({{"AsymmetryLength", "nm", "Asymmetry of width", -INF, INF, 0.}}, meta), - PValues), + nodeMetaUnion({{"AsymmetryLength", "nm", "Asymmetry of width", -INF, INF, 0.}}, meta), + PValues), m_asymmetry(m_P[3]) { onChange(); @@ -106,5 +106,5 @@ complex_t ISawtoothRipple::factor_yz(complex_t qy, complex_t qz) const void ISawtoothRipple::onChange() { - mP_shape.reset(new RippleSawtooth(m_length, m_width, m_height, m_asymmetry)); + mP_shape = std::make_unique<RippleSawtooth>(m_length, m_width, m_height, m_asymmetry); } diff --git a/Core/HardParticle/Prism.cpp b/Core/HardParticle/Prism.cpp index 1ef1278b29bc6ce0191ce0681269d7c3aafb69fb..8f46827f5f2afed5cde7ed266a44014f2566e850 100644 --- a/Core/HardParticle/Prism.cpp +++ b/Core/HardParticle/Prism.cpp @@ -20,11 +20,6 @@ #include "Core/Tools/MathFunctions.h" #include <stdexcept> // need overlooked by g++ 5.4 -namespace -{ -const double eps = 2e-16; -} // namespace - Prism::Prism(bool symmetry_Ci, double height, const std::vector<kvector_t>& vertices) { m_height = height; diff --git a/Core/Instrument/FourierTransform.cpp b/Core/Instrument/FourierTransform.cpp index e08e5c32451453723fef8c28b529db5ce53eb56b..fde8f99463aeb3635778d06b963b109016b98b40 100644 --- a/Core/Instrument/FourierTransform.cpp +++ b/Core/Instrument/FourierTransform.cpp @@ -16,8 +16,8 @@ #include "Core/Instrument/FourierTransform.h" #include "Core/Basics/Exceptions.h" #include <algorithm> +#include <cmath> #include <iostream> -#include <math.h> #include <sstream> #include <stdexcept> diff --git a/Core/Instrument/SimulationResult.cpp b/Core/Instrument/SimulationResult.cpp index 24552555ffe798cb65e89959d68c8b7b8e46cd4e..88df3f7a17fd9993591eefe9036f77199d755369 100644 --- a/Core/Instrument/SimulationResult.cpp +++ b/Core/Instrument/SimulationResult.cpp @@ -56,7 +56,7 @@ SimulationResult& SimulationResult::operator=(SimulationResult&& other) return *this; } -std::unique_ptr<OutputData<double>> SimulationResult::data(AxesUnits units) const +std::unique_ptr<OutputData<double>> SimulationResult::data(Axes::Units units) const { if (!mP_data) throw std::runtime_error( @@ -64,7 +64,7 @@ std::unique_ptr<OutputData<double>> SimulationResult::data(AxesUnits units) cons return mP_unit_converter->createConvertedData(*mP_data, units); } -Histogram2D* SimulationResult::histogram2d(AxesUnits units) const +Histogram2D* SimulationResult::histogram2d(Axes::Units units) const { if (mP_data->getRank() != 2 || mP_unit_converter->dimension() != 2) throw std::runtime_error("Error in SimulationResult::histogram2d: " @@ -74,7 +74,7 @@ Histogram2D* SimulationResult::histogram2d(AxesUnits units) const return new Histogram2D(*P_data); } -std::vector<AxisInfo> SimulationResult::axisInfo(AxesUnits units) const +std::vector<AxisInfo> SimulationResult::axisInfo(Axes::Units units) const { if (!mP_unit_converter) return {}; @@ -119,7 +119,7 @@ size_t SimulationResult::size() const } #ifdef BORNAGAIN_PYTHON -PyObject* SimulationResult::array(AxesUnits units) const +PyObject* SimulationResult::array(Axes::Units units) const { if (!mP_data || !mP_unit_converter) throw std::runtime_error( @@ -128,12 +128,12 @@ PyObject* SimulationResult::array(AxesUnits units) const } #endif -std::vector<double> SimulationResult::axis(AxesUnits units) const +std::vector<double> SimulationResult::axis(Axes::Units units) const { return axis(0, units); } -std::vector<double> SimulationResult::axis(size_t i_axis, AxesUnits units) const +std::vector<double> SimulationResult::axis(size_t i_axis, Axes::Units units) const { if (i_axis >= mP_unit_converter->dimension()) throw std::runtime_error( @@ -147,5 +147,4 @@ void SimulationResult::checkDimensions() const if (mP_data->getRank() != mP_unit_converter->dimension()) throw std::runtime_error("Error in SimulationResults::checkDimensions(): " "dimensions of data and unit converter don't match"); - return; } diff --git a/Core/Instrument/SimulationResult.h b/Core/Instrument/SimulationResult.h index a1322ff1db251119271013d56f63c6b53463910e..2177126729f8dd411bebeca36728ea08c3bb0eff 100644 --- a/Core/Instrument/SimulationResult.h +++ b/Core/Instrument/SimulationResult.h @@ -49,13 +49,13 @@ public: SimulationResult& operator=(SimulationResult&& other); #ifndef SWIG - std::unique_ptr<OutputData<double>> data(AxesUnits units = AxesUnits::DEFAULT) const; + std::unique_ptr<OutputData<double>> data(Axes::Units units = Axes::Units::DEFAULT) const; #endif - Histogram2D* histogram2d(AxesUnits units = AxesUnits::DEFAULT) const; + Histogram2D* histogram2d(Axes::Units units = Axes::Units::DEFAULT) const; //! Provide AxisInfo for each axis and the given units - std::vector<AxisInfo> axisInfo(AxesUnits units = AxesUnits::DEFAULT) const; + std::vector<AxisInfo> axisInfo(Axes::Units units = Axes::Units::DEFAULT) const; //! Returns underlying unit converter const IUnitConverter& converter() const; @@ -64,17 +64,18 @@ public: double& operator[](size_t i); const double& operator[](size_t i) const; size_t size() const; + bool empty() const { return size() == 0; } //! returns intensity data as Python numpy array #ifdef BORNAGAIN_PYTHON - PyObject* array(AxesUnits units = AxesUnits::DEFAULT) const; + PyObject* array(Axes::Units units = Axes::Units::DEFAULT) const; #endif - std::vector<double> axis(AxesUnits units = AxesUnits::DEFAULT) const; + std::vector<double> axis(Axes::Units units = Axes::Units::DEFAULT) const; //! Returns axis coordinates as a numpy array. With no parameters given //! returns coordinates of x-axis in default units. - std::vector<double> axis(size_t i_axis, AxesUnits units = AxesUnits::DEFAULT) const; + std::vector<double> axis(size_t i_axis, Axes::Units units = Axes::Units::DEFAULT) const; private: void checkDimensions() const; diff --git a/Core/Intensity/AxisNames.cpp b/Core/Intensity/AxisNames.cpp index 1c6603359d97df5afe6d8ae67cf69074cdbad611..c2fd5595b50c0713fb835d562e0555fbd78dff61 100644 --- a/Core/Intensity/AxisNames.cpp +++ b/Core/Intensity/AxisNames.cpp @@ -18,85 +18,85 @@ namespace AxisNames { // For spherical detectors in GISAS simulations -std::map<AxesUnits, std::string> InitSphericalAxis0() +std::map<Axes::Units, std::string> InitSphericalAxis0() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "X [nbins]"; - result[AxesUnits::RADIANS] = "phi_f [rad]"; - result[AxesUnits::DEGREES] = "phi_f [deg]"; - result[AxesUnits::QSPACE] = "Qy [1/nm]"; - result[AxesUnits::QXQY] = "Qx [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "X [nbins]"; + result[Axes::Units::RADIANS] = "phi_f [rad]"; + result[Axes::Units::DEGREES] = "phi_f [deg]"; + result[Axes::Units::QSPACE] = "Qy [1/nm]"; + result[Axes::Units::QXQY] = "Qx [1/nm]"; return result; } -std::map<AxesUnits, std::string> InitSphericalAxis1() +std::map<Axes::Units, std::string> InitSphericalAxis1() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "Y [nbins]"; - result[AxesUnits::RADIANS] = "alpha_f [rad]"; - result[AxesUnits::DEGREES] = "alpha_f [deg]"; - result[AxesUnits::QSPACE] = "Qz [1/nm]"; - result[AxesUnits::QXQY] = "Qy [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "Y [nbins]"; + result[Axes::Units::RADIANS] = "alpha_f [rad]"; + result[Axes::Units::DEGREES] = "alpha_f [deg]"; + result[Axes::Units::QSPACE] = "Qz [1/nm]"; + result[Axes::Units::QXQY] = "Qy [1/nm]"; return result; } // For rectangular detectors in GISAS simulations -std::map<AxesUnits, std::string> InitRectangularAxis0() +std::map<Axes::Units, std::string> InitRectangularAxis0() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "X [nbins]"; - result[AxesUnits::RADIANS] = "phi_f [rad]"; - result[AxesUnits::DEGREES] = "phi_f [deg]"; - result[AxesUnits::MM] = "X [mm]"; - result[AxesUnits::QSPACE] = "Qy [1/nm]"; - result[AxesUnits::QXQY] = "Qx [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "X [nbins]"; + result[Axes::Units::RADIANS] = "phi_f [rad]"; + result[Axes::Units::DEGREES] = "phi_f [deg]"; + result[Axes::Units::MM] = "X [mm]"; + result[Axes::Units::QSPACE] = "Qy [1/nm]"; + result[Axes::Units::QXQY] = "Qx [1/nm]"; return result; } -std::map<AxesUnits, std::string> InitRectangularAxis1() +std::map<Axes::Units, std::string> InitRectangularAxis1() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "Y [nbins]"; - result[AxesUnits::RADIANS] = "alpha_f [rad]"; - result[AxesUnits::DEGREES] = "alpha_f [deg]"; - result[AxesUnits::MM] = "Y [mm]"; - result[AxesUnits::QSPACE] = "Qz [1/nm]"; - result[AxesUnits::QXQY] = "Qy [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "Y [nbins]"; + result[Axes::Units::RADIANS] = "alpha_f [rad]"; + result[Axes::Units::DEGREES] = "alpha_f [deg]"; + result[Axes::Units::MM] = "Y [mm]"; + result[Axes::Units::QSPACE] = "Qz [1/nm]"; + result[Axes::Units::QXQY] = "Qy [1/nm]"; return result; } // For off-specular simulations (both spherical and rectangular detectors) // Currently 'mm' is not supported for the y-axis -std::map<AxesUnits, std::string> InitOffSpecAxis0() +std::map<Axes::Units, std::string> InitOffSpecAxis0() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "X [nbins]"; - result[AxesUnits::RADIANS] = "alpha_i [rad]"; - result[AxesUnits::DEGREES] = "alpha_i [deg]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "X [nbins]"; + result[Axes::Units::RADIANS] = "alpha_i [rad]"; + result[Axes::Units::DEGREES] = "alpha_i [deg]"; return result; } -std::map<AxesUnits, std::string> InitOffSpecAxis1() +std::map<Axes::Units, std::string> InitOffSpecAxis1() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "Y [nbins]"; - result[AxesUnits::RADIANS] = "alpha_f [rad]"; - result[AxesUnits::DEGREES] = "alpha_f [deg]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "Y [nbins]"; + result[Axes::Units::RADIANS] = "alpha_f [rad]"; + result[Axes::Units::DEGREES] = "alpha_f [deg]"; return result; } -std::map<AxesUnits, std::string> InitSpecAxis() +std::map<Axes::Units, std::string> InitSpecAxis() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "X [nbins]"; - result[AxesUnits::RADIANS] = "alpha_i [rad]"; - result[AxesUnits::DEGREES] = "alpha_i [deg]"; - result[AxesUnits::QSPACE] = "Q [1/nm]"; - result[AxesUnits::RQ4] = "Q [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "X [nbins]"; + result[Axes::Units::RADIANS] = "alpha_i [rad]"; + result[Axes::Units::DEGREES] = "alpha_i [deg]"; + result[Axes::Units::QSPACE] = "Q [1/nm]"; + result[Axes::Units::RQ4] = "Q [1/nm]"; return result; } -std::map<AxesUnits, std::string> InitSpecAxisQ() +std::map<Axes::Units, std::string> InitSpecAxisQ() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "X [nbins]"; - result[AxesUnits::QSPACE] = "Q [1/nm]"; - result[AxesUnits::RQ4] = "Q [1/nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "X [nbins]"; + result[Axes::Units::QSPACE] = "Q [1/nm]"; + result[Axes::Units::RQ4] = "Q [1/nm]"; return result; } @@ -106,13 +106,13 @@ std::map<AxesUnits, std::string> InitSpecAxisQ() // converter correspond to inclination angular axis. // For this reason depth axis map returns always // nanometers except for bins. -std::map<AxesUnits, std::string> InitSampleDepthAxis() +std::map<Axes::Units, std::string> InitSampleDepthAxis() { - std::map<AxesUnits, std::string> result; - result[AxesUnits::NBINS] = "Y [nbins]"; - result[AxesUnits::RADIANS] = "Position [nm]"; - result[AxesUnits::DEGREES] = "Position [nm]"; - result[AxesUnits::QSPACE] = "Position [nm]"; + std::map<Axes::Units, std::string> result; + result[Axes::Units::NBINS] = "Y [nbins]"; + result[Axes::Units::RADIANS] = "Position [nm]"; + result[Axes::Units::DEGREES] = "Position [nm]"; + result[Axes::Units::QSPACE] = "Position [nm]"; return result; } diff --git a/Core/Intensity/AxisNames.h b/Core/Intensity/AxisNames.h index 997e8d2a07e43c9924a8e91db1a9d99f21e199ae..5ffa0c705d6af362a25b9f1dbe086a51a6e27ae6 100644 --- a/Core/Intensity/AxisNames.h +++ b/Core/Intensity/AxisNames.h @@ -24,15 +24,15 @@ namespace AxisNames { -std::map<AxesUnits, std::string> InitSphericalAxis0(); -std::map<AxesUnits, std::string> InitSphericalAxis1(); -std::map<AxesUnits, std::string> InitRectangularAxis0(); -std::map<AxesUnits, std::string> InitRectangularAxis1(); -std::map<AxesUnits, std::string> InitOffSpecAxis0(); -std::map<AxesUnits, std::string> InitOffSpecAxis1(); -std::map<AxesUnits, std::string> InitSpecAxis(); -std::map<AxesUnits, std::string> InitSpecAxisQ(); -std::map<AxesUnits, std::string> InitSampleDepthAxis(); +std::map<Axes::Units, std::string> InitSphericalAxis0(); +std::map<Axes::Units, std::string> InitSphericalAxis1(); +std::map<Axes::Units, std::string> InitRectangularAxis0(); +std::map<Axes::Units, std::string> InitRectangularAxis1(); +std::map<Axes::Units, std::string> InitOffSpecAxis0(); +std::map<Axes::Units, std::string> InitOffSpecAxis1(); +std::map<Axes::Units, std::string> InitSpecAxis(); +std::map<Axes::Units, std::string> InitSpecAxisQ(); +std::map<Axes::Units, std::string> InitSampleDepthAxis(); } // namespace AxisNames #endif // BORNAGAIN_CORE_INTENSITY_AXISNAMES_H diff --git a/Core/Intensity/IHistogram.cpp b/Core/Intensity/IHistogram.cpp index 0c2db2e61017d514bf4855a01c319914bc92e972..51c91e7126190247b20bf964803a273f1e560780 100644 --- a/Core/Intensity/IHistogram.cpp +++ b/Core/Intensity/IHistogram.cpp @@ -18,7 +18,7 @@ #include "Fit/TestEngine/Numeric.h" #include <memory> -IHistogram::IHistogram() {} +IHistogram::IHistogram() = default; IHistogram::IHistogram(const IHistogram& other) { diff --git a/Core/Intensity/IUnitConverter.cpp b/Core/Intensity/IUnitConverter.cpp index 75b6f3cd92b35374c06aaed75eefedb76ca78926..4a50d6803cad4d129a0989f14fcc6ecf5e3a1988 100644 --- a/Core/Intensity/IUnitConverter.cpp +++ b/Core/Intensity/IUnitConverter.cpp @@ -15,26 +15,9 @@ #include "Core/Intensity/IUnitConverter.h" #include "Core/Intensity/OutputData.h" -namespace -{ -const std::map<AxesUnits, std::string> unit_names = { - {AxesUnits::NBINS, "AxesUnits::NBINS"}, {AxesUnits::RADIANS, "AxesUnits::RADIANS"}, - {AxesUnits::DEGREES, "AxesUnits::DEGREES"}, {AxesUnits::MM, "AxesUnits::MM"}, - {AxesUnits::QSPACE, "AxesUnits::QSPACE"}, {AxesUnits::QXQY, "AxesUnits::QXQY"}, - {AxesUnits::RQ4, "AxesUnits::RQ4"}}; -} - -std::string AxesUnitsWrap::unitName(AxesUnits unit) -{ - auto iter = unit_names.find(unit); - if (iter != unit_names.end()) - return iter->second; - return "Unknown units"; -} - IUnitConverter::~IUnitConverter() = default; -std::string IUnitConverter::axisName(size_t i_axis, AxesUnits units_type) const +std::string IUnitConverter::axisName(size_t i_axis, Axes::Units units_type) const { const auto& name_maps = createNameMaps(); if (name_maps.size() <= i_axis) @@ -50,7 +33,7 @@ std::string IUnitConverter::axisName(size_t i_axis, AxesUnits units_type) const } std::unique_ptr<OutputData<double>> -IUnitConverter::createConvertedData(const OutputData<double>& data, AxesUnits units) const +IUnitConverter::createConvertedData(const OutputData<double>& data, Axes::Units units) const { const size_t dim = data.getRank(); std::unique_ptr<OutputData<double>> result(new OutputData<double>); @@ -68,18 +51,18 @@ void IUnitConverter::checkIndex(size_t i_axis) const + std::to_string(static_cast<int>(i_axis))); } -void IUnitConverter::throwUnitsError(std::string method, std::vector<AxesUnits> available) const +void IUnitConverter::throwUnitsError(std::string method, std::vector<Axes::Units> available) const { std::stringstream ss; ss << "Unit type error in " << method << ": unknown or unsupported unit type. Available units " "are:\n"; for (auto unit : available) - ss << AxesUnitsWrap::unitName(unit) << "\n"; + ss << axisUnitName.at(unit) << "\n"; throw std::runtime_error(ss.str()); } -AxesUnits IUnitConverter::substituteDefaultUnits(AxesUnits units) const +Axes::Units IUnitConverter::substituteDefaultUnits(Axes::Units units) const { - return units == AxesUnits::DEFAULT ? defaultUnits() : units; + return units == Axes::Units::DEFAULT ? defaultUnits() : units; } diff --git a/Core/Intensity/IUnitConverter.h b/Core/Intensity/IUnitConverter.h index 9a3a72d35596b6cc485f25afbd0a1fa10ddcce0e..3b7f38873212a85eee756bc91a81a4d61bc1b756 100644 --- a/Core/Intensity/IUnitConverter.h +++ b/Core/Intensity/IUnitConverter.h @@ -28,16 +28,22 @@ template <class T> class OutputData; //! detector axes units in python //! @ingroup detector -// workaround for SWIG (instead of just writing enum class AxesUnits...) -struct AxesUnitsWrap { - enum AxesUnits { DEFAULT, NBINS, RADIANS, DEGREES, MM, QSPACE, QXQY, RQ4 }; -#ifndef SWIG - // TODO: to automatize enum to string convertion, one can possibly use this solution - // https://stackoverflow.com/questions/147267/easy-way-to-use-variables-of-enum-types-as-string-in-c#202511 - static std::string unitName(AxesUnits unit); -#endif +class Axes +{ +public: + enum Units { DEFAULT, NBINS, RADIANS, DEGREES, MM, QSPACE, QXQY, RQ4 }; }; -typedef AxesUnitsWrap::AxesUnits AxesUnits; + +const std::map<Axes::Units, const char*> axisUnitName = { + {Axes::Units::NBINS, "Axes::Units::UNDEFINED"}, {Axes::Units::NBINS, "Axes::Units::NBINS"}, + {Axes::Units::RADIANS, "Axes::Units::RADIANS"}, {Axes::Units::DEGREES, "Axes::Units::DEGREES"}, + {Axes::Units::MM, "Axes::Units::MM"}, {Axes::Units::QSPACE, "Axes::Units::QSPACE"}, + {Axes::Units::QXQY, "Axes::Units::QXQY"}, {Axes::Units::RQ4, "Axes::Units::RQ4"}}; + +const std::map<Axes::Units, const char*> axisUnitLabel = { + {Axes::Units::NBINS, "undefined"}, {Axes::Units::NBINS, "bin"}, {Axes::Units::RADIANS, "rad"}, + {Axes::Units::DEGREES, "deg"}, {Axes::Units::MM, "mm"}, {Axes::Units::QSPACE, "1/nm"}, + {Axes::Units::QXQY, "1/nm"}, {Axes::Units::RQ4, "nm^-4?"}}; //! Interface to provide axis translations to different units for simulation output //! @ingroup simulation_internal @@ -51,32 +57,32 @@ public: virtual size_t dimension() const = 0; - virtual double calculateMin(size_t i_axis, AxesUnits units_type) const = 0; - virtual double calculateMax(size_t i_axis, AxesUnits units_type) const = 0; + virtual double calculateMin(size_t i_axis, Axes::Units units_type) const = 0; + virtual double calculateMax(size_t i_axis, Axes::Units units_type) const = 0; virtual size_t axisSize(size_t i_axis) const = 0; - std::string axisName(size_t i_axis, AxesUnits units_type = AxesUnits::DEFAULT) const; + std::string axisName(size_t i_axis, Axes::Units units_type = Axes::Units::DEFAULT) const; - virtual std::vector<AxesUnits> availableUnits() const = 0; - virtual AxesUnits defaultUnits() const = 0; - AxesUnits substituteDefaultUnits(AxesUnits units) const; + virtual std::vector<Axes::Units> availableUnits() const = 0; + virtual Axes::Units defaultUnits() const = 0; + Axes::Units substituteDefaultUnits(Axes::Units units) const; #ifndef SWIG - virtual std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, AxesUnits units) const = 0; + virtual std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, Axes::Units units) const = 0; //! Creates OutputData array in converter units. virtual std::unique_ptr<OutputData<double>> createConvertedData(const OutputData<double>& data, - AxesUnits units) const; + Axes::Units units) const; #endif // SWIG protected: void checkIndex(size_t i_axis) const; #ifndef SWIG - [[noreturn]] void throwUnitsError(std::string method, std::vector<AxesUnits> available) const; + [[noreturn]] void throwUnitsError(std::string method, std::vector<Axes::Units> available) const; #endif // SWIG private: - virtual std::vector<std::map<AxesUnits, std::string>> createNameMaps() const = 0; + virtual std::vector<std::map<Axes::Units, std::string>> createNameMaps() const = 0; }; #endif // BORNAGAIN_CORE_INTENSITY_IUNITCONVERTER_H diff --git a/Core/Intensity/IntensityDataFunctions.cpp b/Core/Intensity/IntensityDataFunctions.cpp index 79e8583cf2f4a872083ebac177d970f84e781b9e..6f4d3acfa8f81ec6e3b1ef5e1bb4dde546cbf7c3 100644 --- a/Core/Intensity/IntensityDataFunctions.cpp +++ b/Core/Intensity/IntensityDataFunctions.cpp @@ -21,8 +21,8 @@ #include "Core/Intensity/ArrayUtils.h" #include "Core/Intensity/IHistogram.h" #include "Fit/TestEngine/Numeric.h" +#include <cmath> #include <iostream> -#include <math.h> //! Returns sum of relative differences between each pair of elements: //! (a, b) -> 2*abs(a - b)/(|a| + |b|) ( and zero if a=b=0 within epsilon ) @@ -32,7 +32,7 @@ double IntensityDataFunctions::RelativeDifference(const SimulationResult& dat, if (dat.size() != ref.size()) throw std::runtime_error("Error in IntensityDataFunctions::RelativeDifference: " "different number of elements"); - if (dat.size() == 0) + if (dat.empty()) return 0.0; double sum_of_diff = 0.0; for (size_t i = 0; i < dat.size(); ++i) { diff --git a/Core/Intensity/OutputDataIterator.h b/Core/Intensity/OutputDataIterator.h index 64e21e1e2c01a14c776b94dd23f20c1b577a78b2..2d809708cb11cef650d0b5f21ae3bd62100d37af 100644 --- a/Core/Intensity/OutputDataIterator.h +++ b/Core/Intensity/OutputDataIterator.h @@ -137,8 +137,8 @@ OutputDataIterator<TValue, TContainer>::OutputDataIterator( template <class TValue, class TContainer> template <class TValue2, class TContainer2> -OutputDataIterator<TValue, TContainer>& OutputDataIterator<TValue, TContainer>:: -operator=(const OutputDataIterator<TValue2, TContainer2>& right) +OutputDataIterator<TValue, TContainer>& OutputDataIterator<TValue, TContainer>::operator=( + const OutputDataIterator<TValue2, TContainer2>& right) { OutputDataIterator<TValue, TContainer> copy(right); swap(copy); @@ -146,8 +146,8 @@ operator=(const OutputDataIterator<TValue2, TContainer2>& right) } template <class TValue, class TContainer> -OutputDataIterator<TValue, TContainer>& OutputDataIterator<TValue, TContainer>:: -operator=(const OutputDataIterator<TValue, TContainer>& right) +OutputDataIterator<TValue, TContainer>& OutputDataIterator<TValue, TContainer>::operator=( + const OutputDataIterator<TValue, TContainer>& right) { OutputDataIterator<TValue, TContainer> copy(right); swap(copy); diff --git a/Core/Intensity/SimpleUnitConverters.cpp b/Core/Intensity/SimpleUnitConverters.cpp index e3238c2d5f0f71d27fb0ccb78af8f9520a3f2620..39fcfa43dbe717e4a68f6ea4982474d40e14fecc 100644 --- a/Core/Intensity/SimpleUnitConverters.cpp +++ b/Core/Intensity/SimpleUnitConverters.cpp @@ -44,29 +44,29 @@ size_t UnitConverterSimple::dimension() const } void UnitConverterSimple::addAxisData(std::string name, double min, double max, - AxesUnits default_units, size_t nbins) + Axes::Units default_units, size_t nbins) { AxisData axis_data{name, min, max, default_units, nbins}; m_axis_data_table.push_back(axis_data); } -double UnitConverterSimple::calculateMin(size_t i_axis, AxesUnits units_type) const +double UnitConverterSimple::calculateMin(size_t i_axis, Axes::Units units_type) const { checkIndex(i_axis); units_type = substituteDefaultUnits(units_type); const auto& axis_data = m_axis_data_table[i_axis]; - if (units_type == AxesUnits::NBINS) { + if (units_type == Axes::Units::NBINS) { return 0.0; } return calculateValue(i_axis, units_type, axis_data.min); } -double UnitConverterSimple::calculateMax(size_t i_axis, AxesUnits units_type) const +double UnitConverterSimple::calculateMax(size_t i_axis, Axes::Units units_type) const { checkIndex(i_axis); units_type = substituteDefaultUnits(units_type); const auto& axis_data = m_axis_data_table[i_axis]; - if (units_type == AxesUnits::NBINS) { + if (units_type == Axes::Units::NBINS) { return static_cast<double>(axis_data.nbins); } return calculateValue(i_axis, units_type, axis_data.max); @@ -78,13 +78,13 @@ size_t UnitConverterSimple::axisSize(size_t i_axis) const return m_axis_data_table[i_axis].nbins; } -std::vector<AxesUnits> UnitConverterSimple::availableUnits() const +std::vector<Axes::Units> UnitConverterSimple::availableUnits() const { - return {AxesUnits::NBINS, AxesUnits::RADIANS, AxesUnits::DEGREES}; + return {Axes::Units::NBINS, Axes::Units::RADIANS, Axes::Units::DEGREES}; } std::unique_ptr<IAxis> UnitConverterSimple::createConvertedAxis(size_t i_axis, - AxesUnits units) const + Axes::Units units) const { const double min = calculateMin(i_axis, units); const double max = calculateMax(i_axis, units); @@ -133,30 +133,30 @@ SphericalConverter* SphericalConverter::clone() const return new SphericalConverter(*this); } -std::vector<AxesUnits> SphericalConverter::availableUnits() const +std::vector<Axes::Units> SphericalConverter::availableUnits() const { auto result = UnitConverterSimple::availableUnits(); - result.push_back(AxesUnits::QSPACE); + result.push_back(Axes::Units::QSPACE); return result; } -AxesUnits SphericalConverter::defaultUnits() const +Axes::Units SphericalConverter::defaultUnits() const { - return AxesUnits::DEGREES; + return Axes::Units::DEGREES; } SphericalConverter::SphericalConverter(const SphericalConverter& other) : UnitConverterSimple(other) { } -double SphericalConverter::calculateValue(size_t i_axis, AxesUnits units_type, double value) const +double SphericalConverter::calculateValue(size_t i_axis, Axes::Units units_type, double value) const { switch (units_type) { - case AxesUnits::RADIANS: + case Axes::Units::RADIANS: return value; - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return Units::rad2deg(value); - case AxesUnits::QSPACE: { + case Axes::Units::QSPACE: { const auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i); if (i_axis == 0) { const auto k_f = vecOfLambdaAlphaPhi(m_wavelength, 0.0, value); @@ -169,7 +169,7 @@ double SphericalConverter::calculateValue(size_t i_axis, AxesUnits units_type, d "incorrect axis index: " + std::to_string(static_cast<int>(i_axis))); } - case AxesUnits::QXQY: { + case Axes::Units::QXQY: { const auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i); if (i_axis == 0) { const auto k_f = vecOfLambdaAlphaPhi(m_wavelength, 0.0, value); @@ -187,9 +187,9 @@ double SphericalConverter::calculateValue(size_t i_axis, AxesUnits units_type, d } } -std::vector<std::map<AxesUnits, std::string>> SphericalConverter::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> SphericalConverter::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitSphericalAxis0()); result.push_back(AxisNames::InitSphericalAxis1()); return result; @@ -216,17 +216,17 @@ RectangularConverter* RectangularConverter::clone() const return new RectangularConverter(*this); } -std::vector<AxesUnits> RectangularConverter::availableUnits() const +std::vector<Axes::Units> RectangularConverter::availableUnits() const { auto result = UnitConverterSimple::availableUnits(); - result.push_back(AxesUnits::QSPACE); - result.push_back(AxesUnits::MM); + result.push_back(Axes::Units::QSPACE); + result.push_back(Axes::Units::MM); return result; } -AxesUnits RectangularConverter::defaultUnits() const +Axes::Units RectangularConverter::defaultUnits() const { - return AxesUnits::MM; + return Axes::Units::MM; } RectangularConverter::RectangularConverter(const RectangularConverter& other) @@ -234,9 +234,10 @@ RectangularConverter::RectangularConverter(const RectangularConverter& other) { } -double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type, double value) const +double RectangularConverter::calculateValue(size_t i_axis, Axes::Units units_type, + double value) const { - if (units_type == AxesUnits::MM) + if (units_type == Axes::Units::MM) return value; const auto k00 = mP_detector_pixel->getPosition(0.0, 0.0); const auto k01 = mP_detector_pixel->getPosition(0.0, 1.0); @@ -245,11 +246,11 @@ double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type, const double shift = value - m_axis_data_table[i_axis].min; const auto k_f = normalizeToWavelength(k00 + shift * (max_pos - k00).unit()); switch (units_type) { - case AxesUnits::RADIANS: + case Axes::Units::RADIANS: return axisAngle(i_axis, k_f); - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return Units::rad2deg(axisAngle(i_axis, k_f)); - case AxesUnits::QSPACE: { + case Axes::Units::QSPACE: { const auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i); if (i_axis == 0) { return (k_i - k_f).y(); @@ -260,7 +261,7 @@ double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type, "incorrect axis index: " + std::to_string(static_cast<int>(i_axis))); } - case AxesUnits::QXQY: { + case Axes::Units::QXQY: { const auto k_i = vecOfLambdaAlphaPhi(m_wavelength, m_alpha_i, m_phi_i); if (i_axis == 0) { return (k_i - k_f).y(); @@ -276,9 +277,9 @@ double RectangularConverter::calculateValue(size_t i_axis, AxesUnits units_type, } } -std::vector<std::map<AxesUnits, std::string>> RectangularConverter::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> RectangularConverter::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitRectangularAxis0()); result.push_back(AxisNames::InitRectangularAxis1()); return result; @@ -327,9 +328,9 @@ OffSpecularConverter* OffSpecularConverter::clone() const return new OffSpecularConverter(*this); } -AxesUnits OffSpecularConverter::defaultUnits() const +Axes::Units OffSpecularConverter::defaultUnits() const { - return AxesUnits::DEGREES; + return Axes::Units::DEGREES; } OffSpecularConverter::OffSpecularConverter(const OffSpecularConverter& other) @@ -337,21 +338,21 @@ OffSpecularConverter::OffSpecularConverter(const OffSpecularConverter& other) { } -double OffSpecularConverter::calculateValue(size_t, AxesUnits units_type, double value) const +double OffSpecularConverter::calculateValue(size_t, Axes::Units units_type, double value) const { switch (units_type) { - case AxesUnits::RADIANS: + case Axes::Units::RADIANS: return value; - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return Units::rad2deg(value); default: throwUnitsError("OffSpecularConverter::calculateValue", availableUnits()); } } -std::vector<std::map<AxesUnits, std::string>> OffSpecularConverter::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> OffSpecularConverter::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitOffSpecAxis0()); result.push_back(AxisNames::InitOffSpecAxis1()); return result; @@ -410,10 +411,10 @@ DepthProbeConverter* DepthProbeConverter::clone() const return new DepthProbeConverter(*this); } -std::vector<AxesUnits> DepthProbeConverter::availableUnits() const +std::vector<Axes::Units> DepthProbeConverter::availableUnits() const { auto result = UnitConverterSimple::availableUnits(); - result.push_back(AxesUnits::QSPACE); + result.push_back(Axes::Units::QSPACE); return result; } @@ -422,30 +423,31 @@ DepthProbeConverter::DepthProbeConverter(const DepthProbeConverter& other) { } -double DepthProbeConverter::calculateValue(size_t i_axis, AxesUnits units_type, double value) const +double DepthProbeConverter::calculateValue(size_t i_axis, Axes::Units units_type, + double value) const { checkUnits(units_type); if (i_axis == 1) return value; // unit conversions are not applied to sample position axis switch (units_type) { - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return Units::rad2deg(value); - case AxesUnits::QSPACE: + case Axes::Units::QSPACE: return getQ(m_wavelength, value); default: return value; } } -std::vector<std::map<AxesUnits, std::string>> DepthProbeConverter::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> DepthProbeConverter::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitSpecAxis()); result.push_back(AxisNames::InitSampleDepthAxis()); return result; } -void DepthProbeConverter::checkUnits(AxesUnits units_type) const +void DepthProbeConverter::checkUnits(Axes::Units units_type) const { const auto& available_units = availableUnits(); if (std::find(available_units.begin(), available_units.end(), units_type) diff --git a/Core/Intensity/SimpleUnitConverters.h b/Core/Intensity/SimpleUnitConverters.h index efed715448f252e3d0c0711f0e7fdb3ea3b5e02f..1057cc515f9072ed5a83bdd4bd9effb39f9da6a8 100644 --- a/Core/Intensity/SimpleUnitConverters.h +++ b/Core/Intensity/SimpleUnitConverters.h @@ -36,27 +36,27 @@ public: virtual size_t dimension() const final; - double calculateMin(size_t i_axis, AxesUnits units_type) const final; - double calculateMax(size_t i_axis, AxesUnits units_type) const final; + double calculateMin(size_t i_axis, Axes::Units units_type) const final; + double calculateMax(size_t i_axis, Axes::Units units_type) const final; size_t axisSize(size_t i_axis) const final; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const override; + std::vector<Axes::Units> availableUnits() const override; - std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, AxesUnits units) const final; + std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, Axes::Units units) const final; protected: UnitConverterSimple(const UnitConverterSimple& other); void addDetectorAxis(const IDetector& detector, size_t i_axis); - void addAxisData(std::string name, double min, double max, AxesUnits default_units, + void addAxisData(std::string name, double min, double max, Axes::Units default_units, size_t nbins); #ifndef SWIG struct AxisData { std::string name; double min, max; - AxesUnits default_units; + Axes::Units default_units; size_t nbins; }; std::vector<AxisData> m_axis_data_table; @@ -66,7 +66,7 @@ protected: double m_phi_i; private: - virtual double calculateValue(size_t i_axis, AxesUnits units_type, double value) const = 0; + virtual double calculateValue(size_t i_axis, Axes::Units units_type, double value) const = 0; }; //! IUnitConverter class that handles the unit translations for spherical detectors @@ -83,14 +83,14 @@ public: SphericalConverter* clone() const final; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const final; + std::vector<Axes::Units> availableUnits() const final; - AxesUnits defaultUnits() const final; + Axes::Units defaultUnits() const final; private: SphericalConverter(const SphericalConverter& other); - double calculateValue(size_t i_axis, AxesUnits units_type, double value) const final; - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const final; + double calculateValue(size_t i_axis, Axes::Units units_type, double value) const final; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const final; }; //! IUnitConverter class that handles the unit translations for rectangular detectors @@ -106,14 +106,14 @@ public: RectangularConverter* clone() const final; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const final; + std::vector<Axes::Units> availableUnits() const final; - AxesUnits defaultUnits() const final; + Axes::Units defaultUnits() const final; private: RectangularConverter(const RectangularConverter& other); - double calculateValue(size_t i_axis, AxesUnits units_type, double value) const final; - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const final; + double calculateValue(size_t i_axis, Axes::Units units_type, double value) const final; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const final; kvector_t normalizeToWavelength(kvector_t vector) const; double axisAngle(size_t i_axis, kvector_t k_f) const; std::unique_ptr<RectangularPixel> mP_detector_pixel; @@ -132,12 +132,12 @@ public: OffSpecularConverter* clone() const final; - AxesUnits defaultUnits() const final; + Axes::Units defaultUnits() const final; private: OffSpecularConverter(const OffSpecularConverter& other); - double calculateValue(size_t i_axis, AxesUnits units_type, double value) const final; - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const final; + double calculateValue(size_t i_axis, Axes::Units units_type, double value) const final; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const final; void addDetectorYAxis(const IDetector2D& detector); }; @@ -154,15 +154,15 @@ public: DepthProbeConverter* clone() const final; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const final; + std::vector<Axes::Units> availableUnits() const final; - AxesUnits defaultUnits() const final { return AxesUnits::DEGREES; } + Axes::Units defaultUnits() const final { return Axes::Units::DEGREES; } private: DepthProbeConverter(const DepthProbeConverter& other); - double calculateValue(size_t, AxesUnits units_type, double value) const final; - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const final; - void checkUnits(AxesUnits units_type) const; + double calculateValue(size_t, Axes::Units units_type, double value) const final; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const final; + void checkUnits(Axes::Units units_type) const; }; #endif // BORNAGAIN_CORE_INTENSITY_SIMPLEUNITCONVERTERS_H diff --git a/Core/Intensity/UnitConverter1D.cpp b/Core/Intensity/UnitConverter1D.cpp index 6470d7d99f133044ded2e69635b02ab59a42ec60..fed57c1d44c4b7c72817e5210b5974ccf9a27d82 100644 --- a/Core/Intensity/UnitConverter1D.cpp +++ b/Core/Intensity/UnitConverter1D.cpp @@ -50,39 +50,39 @@ size_t UnitConverter1D::dimension() const return 1u; } -double UnitConverter1D::calculateMin(size_t i_axis, AxesUnits units_type) const +double UnitConverter1D::calculateMin(size_t i_axis, Axes::Units units_type) const { checkIndex(i_axis); units_type = substituteDefaultUnits(units_type); - if (units_type == AxesUnits::NBINS) + if (units_type == Axes::Units::NBINS) return 0.0; auto translator = getTraslatorTo(units_type); return translator(coordinateAxis()->getBinCenter(0)); } -double UnitConverter1D::calculateMax(size_t i_axis, AxesUnits units_type) const +double UnitConverter1D::calculateMax(size_t i_axis, Axes::Units units_type) const { checkIndex(i_axis); units_type = substituteDefaultUnits(units_type); auto coordinate_axis = coordinateAxis(); - if (units_type == AxesUnits::NBINS) + if (units_type == Axes::Units::NBINS) return static_cast<double>(coordinate_axis->size()); auto translator = getTraslatorTo(units_type); return translator(coordinate_axis->getBinCenter(coordinate_axis->size() - 1)); } -std::unique_ptr<IAxis> UnitConverter1D::createConvertedAxis(size_t i_axis, AxesUnits units) const +std::unique_ptr<IAxis> UnitConverter1D::createConvertedAxis(size_t i_axis, Axes::Units units) const { checkIndex(i_axis); units = substituteDefaultUnits(units); - if (units == AxesUnits::NBINS) + if (units == Axes::Units::NBINS) return std::make_unique<FixedBinAxis>(axisName(0, units), coordinateAxis()->size(), calculateMin(0, units), calculateMax(0, units)); return createTranslatedAxis(*coordinateAxis(), getTraslatorTo(units), axisName(0, units)); } std::unique_ptr<OutputData<double>> -UnitConverter1D::createConvertedData(const OutputData<double>& data, AxesUnits units) const +UnitConverter1D::createConvertedData(const OutputData<double>& data, Axes::Units units) const { if (data.getRank() != 1) throw std::runtime_error("Error in UnitConverter1D::createConvertedData: unexpected " @@ -92,7 +92,7 @@ UnitConverter1D::createConvertedData(const OutputData<double>& data, AxesUnits u auto q_axis = createConvertedAxis(0, units); result->addAxis(*q_axis); - if (units != AxesUnits::RQ4) { + if (units != Axes::Units::RQ4) { result->setRawDataVector(data.getRawDataVector()); return result; } @@ -103,7 +103,7 @@ UnitConverter1D::createConvertedData(const OutputData<double>& data, AxesUnits u } UnitConverterConvSpec::UnitConverterConvSpec(const Beam& beam, const IAxis& axis, - AxesUnits axis_units) + Axes::Units axis_units) : m_wavelength(beam.getWavelength()) { m_axis = createTranslatedAxis(axis, getTraslatorFrom(axis_units), axisName(0, axis_units)); @@ -129,15 +129,15 @@ size_t UnitConverterConvSpec::axisSize(size_t i_axis) const return m_axis->size(); } -std::vector<AxesUnits> UnitConverterConvSpec::availableUnits() const +std::vector<Axes::Units> UnitConverterConvSpec::availableUnits() const { - return {AxesUnits::NBINS, AxesUnits::RADIANS, AxesUnits::DEGREES, AxesUnits::QSPACE, - AxesUnits::RQ4}; + return {Axes::Units::NBINS, Axes::Units::RADIANS, Axes::Units::DEGREES, Axes::Units::QSPACE, + Axes::Units::RQ4}; } -AxesUnits UnitConverterConvSpec::defaultUnits() const +Axes::Units UnitConverterConvSpec::defaultUnits() const { - return AxesUnits::DEGREES; + return Axes::Units::DEGREES; } UnitConverterConvSpec::UnitConverterConvSpec(const UnitConverterConvSpec& other) @@ -145,38 +145,38 @@ UnitConverterConvSpec::UnitConverterConvSpec(const UnitConverterConvSpec& other) { } -std::vector<std::map<AxesUnits, std::string>> UnitConverterConvSpec::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> UnitConverterConvSpec::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitSpecAxis()); return result; } -std::function<double(double)> UnitConverterConvSpec::getTraslatorFrom(AxesUnits units_type) const +std::function<double(double)> UnitConverterConvSpec::getTraslatorFrom(Axes::Units units_type) const { switch (units_type) { - case AxesUnits::RADIANS: + case Axes::Units::RADIANS: return [](double value) { return value; }; - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return [](double value) { return Units::deg2rad(value); }; - case AxesUnits::QSPACE: + case Axes::Units::QSPACE: return [this](double value) { return getInvQ(m_wavelength, value); }; default: throwUnitsError("UnitConverterConvSpec::getTraslatorFrom", - {AxesUnits::RADIANS, AxesUnits::DEGREES, AxesUnits::QSPACE}); + {Axes::Units::RADIANS, Axes::Units::DEGREES, Axes::Units::QSPACE}); } } -std::function<double(double)> UnitConverterConvSpec::getTraslatorTo(AxesUnits units_type) const +std::function<double(double)> UnitConverterConvSpec::getTraslatorTo(Axes::Units units_type) const { switch (units_type) { - case AxesUnits::RADIANS: + case Axes::Units::RADIANS: return [](double value) { return value; }; - case AxesUnits::DEGREES: + case Axes::Units::DEGREES: return [](double value) { return Units::rad2deg(value); }; - case AxesUnits::QSPACE: + case Axes::Units::QSPACE: return [wl = m_wavelength](double value) { return getQ(wl, value); }; - case AxesUnits::RQ4: + case Axes::Units::RQ4: return [wl = m_wavelength](double value) { return getQ(wl, value); }; default: throwUnitsError("UnitConverterConvSpec::getTraslatorTo", availableUnits()); @@ -203,15 +203,15 @@ size_t UnitConverterQSpec::axisSize(size_t i_axis) const } //! Returns the list of all available units -std::vector<AxesUnits> UnitConverterQSpec::availableUnits() const +std::vector<Axes::Units> UnitConverterQSpec::availableUnits() const { - return {AxesUnits::NBINS, AxesUnits::QSPACE, AxesUnits::RQ4}; + return {Axes::Units::NBINS, Axes::Units::QSPACE, Axes::Units::RQ4}; } //! Returns default units to convert to. -AxesUnits UnitConverterQSpec::defaultUnits() const +Axes::Units UnitConverterQSpec::defaultUnits() const { - return AxesUnits::QSPACE; + return Axes::Units::QSPACE; } UnitConverterQSpec::UnitConverterQSpec(const UnitConverterQSpec& other) @@ -220,20 +220,20 @@ UnitConverterQSpec::UnitConverterQSpec(const UnitConverterQSpec& other) } //! Creates name map for axis in various units -std::vector<std::map<AxesUnits, std::string>> UnitConverterQSpec::createNameMaps() const +std::vector<std::map<Axes::Units, std::string>> UnitConverterQSpec::createNameMaps() const { - std::vector<std::map<AxesUnits, std::string>> result; + std::vector<std::map<Axes::Units, std::string>> result; result.push_back(AxisNames::InitSpecAxisQ()); return result; } //! Returns translating functional (inv. nm --> desired units) -std::function<double(double)> UnitConverterQSpec::getTraslatorTo(AxesUnits units_type) const +std::function<double(double)> UnitConverterQSpec::getTraslatorTo(Axes::Units units_type) const { switch (units_type) { - case AxesUnits::QSPACE: + case Axes::Units::QSPACE: return [](double value) { return value; }; - case AxesUnits::RQ4: + case Axes::Units::RQ4: return [](double value) { return value; }; default: throwUnitsError("UnitConverterQSpec::getTraslatorTo", availableUnits()); diff --git a/Core/Intensity/UnitConverter1D.h b/Core/Intensity/UnitConverter1D.h index 7f70d36b72c5906842fd6e4212e0557d57f192f9..663e7a543d6933891dee3d1e1697632269be479c 100644 --- a/Core/Intensity/UnitConverter1D.h +++ b/Core/Intensity/UnitConverter1D.h @@ -40,21 +40,21 @@ public: size_t dimension() const override; //! Calculates minimum on-axis value in given units. - double calculateMin(size_t i_axis, AxesUnits units_type) const override; + double calculateMin(size_t i_axis, Axes::Units units_type) const override; //! Calculates maximum on-axis value in given units. - double calculateMax(size_t i_axis, AxesUnits units_type) const override; + double calculateMax(size_t i_axis, Axes::Units units_type) const override; //! Creates axis in converted units. - std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, AxesUnits units) const override; + std::unique_ptr<IAxis> createConvertedAxis(size_t i_axis, Axes::Units units) const override; //! Creates OutputData array in converter units. std::unique_ptr<OutputData<double>> createConvertedData(const OutputData<double>& data, - AxesUnits units) const override; + Axes::Units units) const override; protected: //! Returns translating functional (rads --> output units) - virtual std::function<double(double)> getTraslatorTo(AxesUnits units_type) const = 0; + virtual std::function<double(double)> getTraslatorTo(Axes::Units units_type) const = 0; virtual const IAxis* coordinateAxis() const = 0; }; @@ -65,7 +65,7 @@ class UnitConverterConvSpec : public UnitConverter1D public: //! Constructs the object for unit conversion. UnitConverterConvSpec(const Beam& beam, const IAxis& axis, - AxesUnits axis_units = AxesUnits::RADIANS); + Axes::Units axis_units = Axes::Units::RADIANS); UnitConverterConvSpec(const AngularSpecScan& handler); ~UnitConverterConvSpec() override; @@ -75,22 +75,22 @@ public: size_t axisSize(size_t i_axis) const override; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const override; + std::vector<Axes::Units> availableUnits() const override; //! Returns default units to convert to. - AxesUnits defaultUnits() const override; + Axes::Units defaultUnits() const override; protected: UnitConverterConvSpec(const UnitConverterConvSpec& other); //! Creates name map for axis in various units - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const override; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const override; //! Returns translating functional (input units --> rads) - std::function<double(double)> getTraslatorFrom(AxesUnits units_type) const; + std::function<double(double)> getTraslatorFrom(Axes::Units units_type) const; //! Returns translating functional (rads --> desired units) - std::function<double(double)> getTraslatorTo(AxesUnits units_type) const override; + std::function<double(double)> getTraslatorTo(Axes::Units units_type) const override; const IAxis* coordinateAxis() const override { return m_axis.get(); } @@ -111,19 +111,19 @@ public: size_t axisSize(size_t i_axis) const override; //! Returns the list of all available units - std::vector<AxesUnits> availableUnits() const override; + std::vector<Axes::Units> availableUnits() const override; //! Returns default units to convert to. - AxesUnits defaultUnits() const override; + Axes::Units defaultUnits() const override; protected: UnitConverterQSpec(const UnitConverterQSpec& other); //! Creates name map for axis in various units - std::vector<std::map<AxesUnits, std::string>> createNameMaps() const override; + std::vector<std::map<Axes::Units, std::string>> createNameMaps() const override; //! Returns translating functional (inv. nm --> desired units) - std::function<double(double)> getTraslatorTo(AxesUnits units_type) const override; + std::function<double(double)> getTraslatorTo(Axes::Units units_type) const override; const IAxis* coordinateAxis() const override { return m_axis.get(); } diff --git a/Core/Material/MaterialBySLDImpl.cpp b/Core/Material/MaterialBySLDImpl.cpp index 586d78b04baa0158cdf341d2d5e2336ad84f6079..32961d316cfae264ac8d935756fc094625f93d93 100644 --- a/Core/Material/MaterialBySLDImpl.cpp +++ b/Core/Material/MaterialBySLDImpl.cpp @@ -30,7 +30,7 @@ MaterialBySLDImpl::MaterialBySLDImpl(const std::string& name, double sld_real, d kvector_t magnetization) : MagneticMaterialImpl(name, magnetization), m_sld_real(sld_real), m_sld_imag(sld_imag < 0. ? throw std::runtime_error( - "The imaginary part of the SLD must be greater or equal zero") + "The imaginary part of the SLD must be greater or equal zero") : sld_imag) { } diff --git a/Core/Material/RefractiveMaterialImpl.cpp b/Core/Material/RefractiveMaterialImpl.cpp index 9709fea4a3ef9bc2a0c822928ca0810fcc86d1f9..eae8b95d44f1bce0f1e1cfdcb8206366c7d9c492 100644 --- a/Core/Material/RefractiveMaterialImpl.cpp +++ b/Core/Material/RefractiveMaterialImpl.cpp @@ -18,10 +18,9 @@ RefractiveMaterialImpl::RefractiveMaterialImpl(const std::string& name, double delta, double beta, kvector_t magnetization) : MagneticMaterialImpl(name, magnetization), m_delta(delta), - m_beta(beta < 0. - ? throw std::runtime_error( - "The imaginary part of the refractive index must be greater or equal zero") - : beta) + m_beta(beta < 0. ? throw std::runtime_error( + "The imaginary part of the refractive index must be greater or equal zero") + : beta) { } diff --git a/Core/Multilayer/FormFactorDWBA.cpp b/Core/Multilayer/FormFactorDWBA.cpp index 91c817e20975a909020727c188dbe7d3dbc95c2d..da838a4dc28da2def9bb3de5de7597ac57bc3620 100644 --- a/Core/Multilayer/FormFactorDWBA.cpp +++ b/Core/Multilayer/FormFactorDWBA.cpp @@ -21,7 +21,7 @@ FormFactorDWBA::FormFactorDWBA(const IFormFactor& form_factor) : mP_form_factor( setName("FormFactorDWBA"); } -FormFactorDWBA::~FormFactorDWBA() {} +FormFactorDWBA::~FormFactorDWBA() = default; FormFactorDWBA* FormFactorDWBA::clone() const { diff --git a/Core/Multilayer/FormFactorDWBAPol.cpp b/Core/Multilayer/FormFactorDWBAPol.cpp index b0ad6cfdee67b97ef92970951ff78b876b4eb35b..8ac9694656844f4397ea9e5bcfb0d7550e3d11fd 100644 --- a/Core/Multilayer/FormFactorDWBAPol.cpp +++ b/Core/Multilayer/FormFactorDWBAPol.cpp @@ -31,7 +31,7 @@ FormFactorDWBAPol::FormFactorDWBAPol(const IFormFactor& form_factor) setName("FormFactorDWBAPol"); } -FormFactorDWBAPol::~FormFactorDWBAPol() {} +FormFactorDWBAPol::~FormFactorDWBAPol() = default; FormFactorDWBAPol* FormFactorDWBAPol::clone() const { diff --git a/Core/Multilayer/IInterferenceFunctionStrategy.cpp b/Core/Multilayer/IInterferenceFunctionStrategy.cpp index 96277e44db91c178de3830300026ef968824eeae..704419b984b408f9636e10d05ae18dadbf4a5365 100644 --- a/Core/Multilayer/IInterferenceFunctionStrategy.cpp +++ b/Core/Multilayer/IInterferenceFunctionStrategy.cpp @@ -33,7 +33,7 @@ void IInterferenceFunctionStrategy::init( const std::vector<FormFactorCoherentSum>& weighted_formfactors, const IInterferenceFunction* p_iff) { - if (weighted_formfactors.size() == 0) + if (weighted_formfactors.empty()) throw Exceptions::ClassInitializationException( "IInterferenceFunctionStrategy::init: strategy gets no form factors."); m_formfactor_wrappers = weighted_formfactors; diff --git a/Core/Multilayer/KzComputation.cpp b/Core/Multilayer/KzComputation.cpp index f998cac554e53ec13a73e83a4d379a1ff081db1c..4fa78bf44c51b813842caab05dbb7eb54c8b464a 100644 --- a/Core/Multilayer/KzComputation.cpp +++ b/Core/Multilayer/KzComputation.cpp @@ -14,8 +14,6 @@ #include "Core/Multilayer/KzComputation.h" #include "Core/Basics/Units.h" -#include "Core/Multilayer/Layer.h" -#include "Core/Multilayer/MultiLayer.h" #include "Core/Multilayer/Slice.h" namespace diff --git a/Core/Multilayer/Layer.cpp b/Core/Multilayer/Layer.cpp index 76e5d3097415f6ffabd9d0a178092833df652608..4d351d19be9ca1e9627da9361264f665064e5bd0 100644 --- a/Core/Multilayer/Layer.cpp +++ b/Core/Multilayer/Layer.cpp @@ -28,7 +28,7 @@ Layer::Layer(Material material, double thickness) registerThickness(); } -Layer::~Layer() {} +Layer::~Layer() = default; Layer* Layer::clone() const { diff --git a/Core/Multilayer/LayerInterface.cpp b/Core/Multilayer/LayerInterface.cpp index 7b426a0c0ee7af93afd205a238b3808de48710b4..2fff35fd2b51e670a903ec29000ac0a419dc41e3 100644 --- a/Core/Multilayer/LayerInterface.cpp +++ b/Core/Multilayer/LayerInterface.cpp @@ -21,7 +21,7 @@ LayerInterface::LayerInterface() : m_topLayer(nullptr), m_bottomLayer(nullptr) setName("LayerInterface"); } -LayerInterface::~LayerInterface() {} +LayerInterface::~LayerInterface() = default; LayerInterface* LayerInterface::clone() const { diff --git a/Core/Multilayer/MultiLayer.cpp b/Core/Multilayer/MultiLayer.cpp index f819e4334da45bb5ca7d79697311d7839b6ecf0b..284769d2408148b211ef0e9b844d565ca535c2ae 100644 --- a/Core/Multilayer/MultiLayer.cpp +++ b/Core/Multilayer/MultiLayer.cpp @@ -144,7 +144,7 @@ void MultiLayer::handleLayerThicknessRegistration() { size_t n_layers = numberOfLayers(); for (size_t i = 0; i < numberOfLayers(); ++i) - m_layers[i]->registerThickness(i>0 && i<n_layers - 1); + m_layers[i]->registerThickness(i > 0 && i < n_layers - 1); } size_t MultiLayer::check_layer_index(size_t i_layer) const diff --git a/Core/Multilayer/SpecularSimulationElement.cpp b/Core/Multilayer/SpecularSimulationElement.cpp index bce595d48c8af95fbcca448d1b08c973769909e1..0489fdb21441eb4c4961421d86670f3f1fcbc326 100644 --- a/Core/Multilayer/SpecularSimulationElement.cpp +++ b/Core/Multilayer/SpecularSimulationElement.cpp @@ -14,8 +14,6 @@ #include "Core/Multilayer/SpecularSimulationElement.h" #include "Core/Multilayer/KzComputation.h" -#include "Core/Multilayer/Layer.h" -#include "Core/Multilayer/MultiLayer.h" SpecularSimulationElement::SpecularSimulationElement(double kz) : m_intensity(0.0), m_calculation_flag(true), @@ -49,8 +47,8 @@ SpecularSimulationElement::SpecularSimulationElement(SpecularSimulationElement&& SpecularSimulationElement::~SpecularSimulationElement() = default; -SpecularSimulationElement& SpecularSimulationElement:: -operator=(const SpecularSimulationElement& other) +SpecularSimulationElement& +SpecularSimulationElement::operator=(const SpecularSimulationElement& other) { if (this != &other) { SpecularSimulationElement tmp(other); diff --git a/Core/Parametrization/DistributionHandler.cpp b/Core/Parametrization/DistributionHandler.cpp index 26a52ccdb234b8de01125b94b1580f7059835b18..3011e1314cbf18bc2cf882f44cc3f3d24337c0c2 100644 --- a/Core/Parametrization/DistributionHandler.cpp +++ b/Core/Parametrization/DistributionHandler.cpp @@ -23,7 +23,7 @@ DistributionHandler::DistributionHandler() : m_nbr_combinations(1) setName("DistributionHandler"); } -DistributionHandler::~DistributionHandler() {} +DistributionHandler::~DistributionHandler() = default; void DistributionHandler::addParameterDistribution(const ParameterDistribution& par_distr) { diff --git a/Core/Parametrization/Distributions.cpp b/Core/Parametrization/Distributions.cpp index bfafd06bd2cb6e1060f4c3349badd94aa9571add..9b2debaad75a76720029b4ffe55088a399576044 100644 --- a/Core/Parametrization/Distributions.cpp +++ b/Core/Parametrization/Distributions.cpp @@ -125,11 +125,11 @@ IDistribution1D::generateSamplesFromValues(const std::vector<double>& sample_val // ************************************************************************** // DistributionGate::DistributionGate(const std::vector<double> P) - : IDistribution1D({"DistributionGate", - "class_tooltip", - {{"Min", "", "para_tooltip", -INF, +INF, 0}, - {"Max", "", "para_tooltip", -INF, +INF, 0}}}, - P), + : IDistribution1D( + {"DistributionGate", + "class_tooltip", + {{"Min", "", "para_tooltip", -INF, +INF, 0}, {"Max", "", "para_tooltip", -INF, +INF, 0}}}, + P), m_min(m_P[0]), m_max(m_P[1]) { if (m_max < m_min) diff --git a/Core/Parametrization/IParameterized.cpp b/Core/Parametrization/IParameterized.cpp index 82e67b66b502a89783a8f9f8ecd767bbb9f154ca..f0a034ae8a39d583f87a1b23ebe30b8bec90d176 100644 --- a/Core/Parametrization/IParameterized.cpp +++ b/Core/Parametrization/IParameterized.cpp @@ -25,7 +25,7 @@ IParameterized::IParameterized(const std::string& name) : m_name{name}, m_pool{n IParameterized::IParameterized(const IParameterized& other) : IParameterized(other.getName()) { - if (other.parameterPool()->size()) + if (!other.parameterPool()->empty()) throw std::runtime_error("BUG: not prepared to copy parameters of " + getName()); } diff --git a/Core/Parametrization/IterationStrategy.cpp b/Core/Parametrization/IterationStrategy.cpp index 48aeb7793ea78a8c61c5d61e365a776ffcf5cd85..399908577f6d6ae8a9776f6f1ecc8da82377ca28 100644 --- a/Core/Parametrization/IterationStrategy.cpp +++ b/Core/Parametrization/IterationStrategy.cpp @@ -17,7 +17,7 @@ #include "Core/Parametrization/INode.h" #include "Core/Parametrization/NodeIterator.h" -PreorderStrategy::PreorderStrategy() {} +PreorderStrategy::PreorderStrategy() = default; PreorderStrategy* PreorderStrategy::clone() const { @@ -53,7 +53,7 @@ bool PreorderStrategy::isDone(IteratorMemento& iterator_stack) const return iterator_stack.empty(); } -PostorderStrategy::PostorderStrategy() {} +PostorderStrategy::PostorderStrategy() = default; PostorderStrategy* PostorderStrategy::clone() const { diff --git a/Core/Parametrization/ParameterDistribution.cpp b/Core/Parametrization/ParameterDistribution.cpp index ea429334efecda8fe76ec45e1db9173b79d5c056..0e84f67364110b2a3ad21f343aa8a40d4dd464ce 100644 --- a/Core/Parametrization/ParameterDistribution.cpp +++ b/Core/Parametrization/ParameterDistribution.cpp @@ -68,7 +68,7 @@ ParameterDistribution::ParameterDistribution(const ParameterDistribution& other) mP_distribution.reset(other.mP_distribution->clone()); } -ParameterDistribution::~ParameterDistribution() {} +ParameterDistribution::~ParameterDistribution() = default; ParameterDistribution& ParameterDistribution::operator=(const ParameterDistribution& other) { diff --git a/Core/Parametrization/ParameterPool.cpp b/Core/Parametrization/ParameterPool.cpp index 88610abcb1bc81ba0cbc4e47113d7c63a14085ae..99cbaf84bd019abbec09ad221e2a8e025449a50b 100644 --- a/Core/Parametrization/ParameterPool.cpp +++ b/Core/Parametrization/ParameterPool.cpp @@ -25,7 +25,7 @@ //! Constructs an empty parameter pool. -ParameterPool::ParameterPool() {} +ParameterPool::ParameterPool() = default; ParameterPool::~ParameterPool() { diff --git a/Core/Parametrization/ParameterPool.h b/Core/Parametrization/ParameterPool.h index 97988e29b5462e3545903c080f3f7a94d700bcf9..0ffc380d9b33edfc38109d1f4a0021a71e46eb4a 100644 --- a/Core/Parametrization/ParameterPool.h +++ b/Core/Parametrization/ParameterPool.h @@ -40,6 +40,7 @@ public: //! Returns number of parameters in the pool. size_t size() const { return m_params.size(); } + bool empty() const { return size() == 0; } RealParameter& addParameter(RealParameter* newPar); diff --git a/Core/Particle/Crystal.cpp b/Core/Particle/Crystal.cpp index 17e06f3bc1597a0b3bd1d601ab7119b049ad1811..e4b17a82febd9c57937722bc545459641bc5a59b 100644 --- a/Core/Particle/Crystal.cpp +++ b/Core/Particle/Crystal.cpp @@ -27,7 +27,7 @@ Crystal::Crystal(const IParticle& lattice_basis, const Lattice& lattice) registerChild(&m_lattice); } -Crystal::~Crystal() {} +Crystal::~Crystal() = default; Crystal* Crystal::clone() const { diff --git a/Core/Particle/FormFactorCoreShell.cpp b/Core/Particle/FormFactorCoreShell.cpp index 6d14bd774fb4cb4f534dced9f79f07ab458484d3..73d26288ce04fa8cb221a9d57d6131579c24df4b 100644 --- a/Core/Particle/FormFactorCoreShell.cpp +++ b/Core/Particle/FormFactorCoreShell.cpp @@ -20,7 +20,7 @@ FormFactorCoreShell::FormFactorCoreShell(IFormFactor* core, IFormFactor* shell) setName("FormFactorCoreShell"); } -FormFactorCoreShell::~FormFactorCoreShell() {} +FormFactorCoreShell::~FormFactorCoreShell() = default; FormFactorCoreShell* FormFactorCoreShell::clone() const { diff --git a/Core/Particle/FormFactorWeighted.cpp b/Core/Particle/FormFactorWeighted.cpp index 71c192bffc1195e118cfdc73a7eb1961b8e34463..defc4782d302d136e4ddcced748713031c1ee2ce 100644 --- a/Core/Particle/FormFactorWeighted.cpp +++ b/Core/Particle/FormFactorWeighted.cpp @@ -44,7 +44,7 @@ double FormFactorWeighted::radialExtension() const double FormFactorWeighted::bottomZ(const IRotation& rotation) const { - if (m_form_factors.size() == 0) + if (m_form_factors.empty()) throw std::runtime_error("FormFactorWeighted::bottomZ() -> Error: " "'this' contains no form factors."); return algo::min_value(m_form_factors.begin(), m_form_factors.end(), @@ -53,7 +53,7 @@ double FormFactorWeighted::bottomZ(const IRotation& rotation) const double FormFactorWeighted::topZ(const IRotation& rotation) const { - if (m_form_factors.size() == 0) + if (m_form_factors.empty()) throw std::runtime_error("FormFactorWeighted::topZ() -> Error: " "'this' contains no form factors."); return algo::max_value(m_form_factors.begin(), m_form_factors.end(), diff --git a/Core/Particle/MesoCrystal.cpp b/Core/Particle/MesoCrystal.cpp index ad583abd77561aaa30d7eb38ef1ef1108d874583..a6184eac39a5e1f330122756b67641e08a747509 100644 --- a/Core/Particle/MesoCrystal.cpp +++ b/Core/Particle/MesoCrystal.cpp @@ -24,7 +24,7 @@ MesoCrystal::MesoCrystal(const IClusteredParticles& particle_structure, initialize(); } -MesoCrystal::~MesoCrystal() {} +MesoCrystal::~MesoCrystal() = default; MesoCrystal* MesoCrystal::clone() const { diff --git a/Core/Particle/ParticleComposition.cpp b/Core/Particle/ParticleComposition.cpp index e104cf0e208215fd6cfff3b97e8c99fdc3106f39..053ee5dfe97b7abb80d23349dc1a725f875e36f8 100644 --- a/Core/Particle/ParticleComposition.cpp +++ b/Core/Particle/ParticleComposition.cpp @@ -29,7 +29,7 @@ ParticleComposition::ParticleComposition(const IParticle& particle, addParticles(particle, positions); } -ParticleComposition::~ParticleComposition() {} +ParticleComposition::~ParticleComposition() = default; ParticleComposition* ParticleComposition::clone() const { @@ -45,7 +45,7 @@ ParticleComposition* ParticleComposition::clone() const IFormFactor* ParticleComposition::createFormFactor() const { - if (m_particles.size() == 0) + if (m_particles.empty()) return {}; std::unique_ptr<FormFactorWeighted> P_result{new FormFactorWeighted()}; auto particles = decompose(); @@ -119,7 +119,7 @@ size_t ParticleComposition::check_index(size_t index) const return index < m_particles.size() ? index : throw Exceptions::OutOfBoundsException( - "ParticleComposition::check_index() -> Index is out of bounds"); + "ParticleComposition::check_index() -> Index is out of bounds"); } void ParticleComposition::addParticlePointer(IParticle* p_particle) diff --git a/Core/Particle/ParticleCoreShell.cpp b/Core/Particle/ParticleCoreShell.cpp index 50e910fa326be88928cb2a2bbe9bd497f5676ece..f425e8ae444231979609865fb20d9a3ceab54472 100644 --- a/Core/Particle/ParticleCoreShell.cpp +++ b/Core/Particle/ParticleCoreShell.cpp @@ -25,13 +25,13 @@ ParticleCoreShell::ParticleCoreShell(const Particle& shell, const Particle& core addAndRegisterShell(shell); } -ParticleCoreShell::~ParticleCoreShell() {} +ParticleCoreShell::~ParticleCoreShell() = default; ParticleCoreShell* ParticleCoreShell::clone() const { ParticleCoreShell* p_result = new ParticleCoreShell(*mp_shell, *mp_core); p_result->setAbundance(m_abundance); - if (mP_rotation.get()) + if (mP_rotation) p_result->setRotation(*mP_rotation); p_result->setPosition(m_position); return p_result; diff --git a/Core/PyIO/PyEmbeddedUtils.cpp b/Core/PyIO/PyEmbeddedUtils.cpp index 4fa52fb62c8ebda82d1ed168dfa15360c5c50f26..b1164ac30432821ab98f82fbe042c3349b452393 100644 --- a/Core/PyIO/PyEmbeddedUtils.cpp +++ b/Core/PyIO/PyEmbeddedUtils.cpp @@ -15,11 +15,11 @@ #ifdef BORNAGAIN_PYTHON #include "Core/PyIO/PyEmbeddedUtils.h" -#include "Core/Multilayer/MultiLayer.h" #include "Core/PyIO/PythonFormatting.h" #include "Core/Tools/PythonCore.h" #include "Core/Tools/SysUtils.h" #include <iostream> +#include <sstream> #include <stdexcept> std::string PyEmbeddedUtils::toString(PyObject* obj) diff --git a/Core/SampleBuilderEngine/FixedBuilder.cpp b/Core/SampleBuilderEngine/FixedBuilder.cpp index 786dc4df6679e8be7840210672ce08a802986f0b..b6e49805b41667dcb0b94987e49e3f8845414ca6 100644 --- a/Core/SampleBuilderEngine/FixedBuilder.cpp +++ b/Core/SampleBuilderEngine/FixedBuilder.cpp @@ -15,10 +15,7 @@ #include "Core/SampleBuilderEngine/FixedBuilder.h" #include "Core/Multilayer/MultiLayer.h" -FixedBuilder::FixedBuilder(const MultiLayer& sample) - : m_sample(sample.clone()) -{ -} +FixedBuilder::FixedBuilder(const MultiLayer& sample) : m_sample(sample.clone()) {} MultiLayer* FixedBuilder::buildSample() const { diff --git a/Core/SampleBuilderEngine/FixedBuilder.h b/Core/SampleBuilderEngine/FixedBuilder.h index fd5576fc149a913b4639065a66b02e669951c7a4..c529cb07147e8ce5002ae393e28860ec4748f043 100644 --- a/Core/SampleBuilderEngine/FixedBuilder.h +++ b/Core/SampleBuilderEngine/FixedBuilder.h @@ -28,6 +28,7 @@ public: FixedBuilder() = delete; FixedBuilder(const MultiLayer&); MultiLayer* buildSample() const; + private: std::unique_ptr<const MultiLayer> m_sample; }; diff --git a/Core/SampleBuilderEngine/SampleBuilderNode.h b/Core/SampleBuilderEngine/SampleBuilderNode.h index a71d2c464880257ea71ed46b9d60bc1c974e6a89..07f93bb77b385c99e630f4b1ce6ace8ea1c67e9d 100644 --- a/Core/SampleBuilderEngine/SampleBuilderNode.h +++ b/Core/SampleBuilderEngine/SampleBuilderNode.h @@ -27,7 +27,6 @@ class ISampleBuilder; class SampleBuilderNode : public INode { public: - SampleBuilderNode(); SampleBuilderNode(const SampleBuilderNode& other); SampleBuilderNode& operator=(const SampleBuilderNode& other); diff --git a/Core/SampleBuilderEngine/SampleComponents.cpp b/Core/SampleBuilderEngine/SampleComponents.cpp index b90803bf005ba94479d921891aea52189b5dbb9f..55027af001272a0c37a1d03b256b6b68425d4c6c 100644 --- a/Core/SampleBuilderEngine/SampleComponents.cpp +++ b/Core/SampleBuilderEngine/SampleComponents.cpp @@ -14,7 +14,7 @@ #include "Core/SampleBuilderEngine/SampleComponents.h" #include "Core/Basics/Units.h" -#include "Core/includeIncludes/HardParticles.h" +#include "Core/HardParticle/HardParticles.h" // ************************************************************************** // FTDistribution2DComponents::FTDistribution2DComponents() diff --git a/Core/SampleBuilderEngine/SampleProvider.cpp b/Core/SampleBuilderEngine/SampleProvider.cpp index f975fe2073c56bdf2a59b0ff9614ce06a194ae05..fcf27e366e647d1b36a23d9c195fb7774b973616 100644 --- a/Core/SampleBuilderEngine/SampleProvider.cpp +++ b/Core/SampleBuilderEngine/SampleProvider.cpp @@ -15,7 +15,7 @@ #include "Core/SampleBuilderEngine/SampleProvider.h" #include "Core/Multilayer/MultiLayer.h" -SampleProvider::SampleProvider() {} +SampleProvider::SampleProvider() = default; SampleProvider::SampleProvider(const SampleProvider& other) : INode() { @@ -36,7 +36,7 @@ SampleProvider& SampleProvider::operator=(const SampleProvider& other) return *this; } -SampleProvider::~SampleProvider() {} +SampleProvider::~SampleProvider() = default; void SampleProvider::setSample(const MultiLayer& multilayer) { diff --git a/Core/Scattering/FormFactorDecoratorMaterial.cpp b/Core/Scattering/FormFactorDecoratorMaterial.cpp index 003010b9a515c71e72b0b8b0197154c29ea4e0e5..635058a976fe83c6ce925e6d01354808358b5399 100644 --- a/Core/Scattering/FormFactorDecoratorMaterial.cpp +++ b/Core/Scattering/FormFactorDecoratorMaterial.cpp @@ -24,7 +24,7 @@ FormFactorDecoratorMaterial::FormFactorDecoratorMaterial(const IFormFactor& form setName("FormFactorDecoratorMaterial"); } -FormFactorDecoratorMaterial::~FormFactorDecoratorMaterial() {} +FormFactorDecoratorMaterial::~FormFactorDecoratorMaterial() = default; FormFactorDecoratorMaterial* FormFactorDecoratorMaterial::clone() const { diff --git a/Core/Scattering/IFormFactor.cpp b/Core/Scattering/IFormFactor.cpp index 4a3d42d2d99119245103bfae0119493332dba9a1..522e249eaefc8f23f48b02b205c9e0dc523eb626 100644 --- a/Core/Scattering/IFormFactor.cpp +++ b/Core/Scattering/IFormFactor.cpp @@ -82,11 +82,11 @@ IFormFactor* createTransformedFormFactor(const IFormFactor& formfactor, const IR { std::unique_ptr<IFormFactor> P_fftemp, P_result; if (!rot.isIdentity()) - P_fftemp.reset(new FormFactorDecoratorRotation(formfactor, rot)); + P_fftemp = std::make_unique<FormFactorDecoratorRotation>(formfactor, rot); else P_fftemp.reset(formfactor.clone()); if (translation != kvector_t()) - P_result.reset(new FormFactorDecoratorPositionFactor(*P_fftemp, translation)); + P_result = std::make_unique<FormFactorDecoratorPositionFactor>(*P_fftemp, translation); else std::swap(P_fftemp, P_result); return P_result.release(); diff --git a/Core/Scattering/Rotations.cpp b/Core/Scattering/Rotations.cpp index cb4388133056accdcaf12f461f313e91ab7c63d4..fb499db3e0c13fcb671ffbe54cd33f103b583696 100644 --- a/Core/Scattering/Rotations.cpp +++ b/Core/Scattering/Rotations.cpp @@ -102,8 +102,8 @@ Transform3D IdentityRotation::getTransform3D() const //! @param angle: rotation angle around x-axis in radians RotationX::RotationX(const std::vector<double> P) : IRotation( - {"XRotation", "class_tooltip", {{"Angle", "rad", "Angle around x axis", -INF, +INF, 0}}}, - P), + {"XRotation", "class_tooltip", {{"Angle", "rad", "Angle around x axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } @@ -123,8 +123,8 @@ Transform3D RotationX::getTransform3D() const //! @param angle: rotation angle around y-axis in radians RotationY::RotationY(const std::vector<double> P) : IRotation( - {"YRotation", "class_tooltip", {{"Angle", "rad", "Angle around y axis", -INF, +INF, 0}}}, - P), + {"YRotation", "class_tooltip", {{"Angle", "rad", "Angle around y axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } @@ -146,8 +146,8 @@ Transform3D RotationY::getTransform3D() const //! @param angle: rotation angle around z-axis in radians RotationZ::RotationZ(const std::vector<double> P) : IRotation( - {"ZRotation", "class_tooltip", {{"Angle", "rad", "Angle around z axis", -INF, +INF, 0}}}, - P), + {"ZRotation", "class_tooltip", {{"Angle", "rad", "Angle around z axis", -INF, +INF, 0}}}, + P), m_angle(m_P[0]) { } diff --git a/Core/Shapes/Box.cpp b/Core/Shapes/Box.cpp index c12373bb8b170d2227c4ebc82b1dd53e6bee5722..1c727b1d31c85363bcfddd5e60aa782a8d9fffae 100644 --- a/Core/Shapes/Box.cpp +++ b/Core/Shapes/Box.cpp @@ -25,4 +25,4 @@ Box::Box(double length, double width, double height) std::move(top_face.begin(), top_face.end(), m_vertices.begin() + 4); } -Box::~Box() {} +Box::~Box() = default; diff --git a/Core/Shapes/DoubleEllipse.cpp b/Core/Shapes/DoubleEllipse.cpp index 541c26b79b86606fd16fb8979f70ac5b3ad7b007..9604456d7e3b45523bbefed3e8ddd1fbce5d0d55 100644 --- a/Core/Shapes/DoubleEllipse.cpp +++ b/Core/Shapes/DoubleEllipse.cpp @@ -26,4 +26,4 @@ DoubleEllipse::DoubleEllipse(double r0_x, double r0_y, double z, double rz_x, do std::move(top_face.begin(), top_face.end(), m_vertices.begin() + n_bottom); } -DoubleEllipse::~DoubleEllipse() {} +DoubleEllipse::~DoubleEllipse() = default; diff --git a/Core/Shapes/RippleCosine.cpp b/Core/Shapes/RippleCosine.cpp index 4e70795c551cd92497ca16a0fcb4094154418b56..80e11b4719c6d8643ae831ff499341d141c6c4c2 100644 --- a/Core/Shapes/RippleCosine.cpp +++ b/Core/Shapes/RippleCosine.cpp @@ -29,4 +29,4 @@ RippleCosine::RippleCosine(double length, double width, double height) } } -RippleCosine::~RippleCosine() {} +RippleCosine::~RippleCosine() = default; diff --git a/Core/Shapes/RippleSawtooth.cpp b/Core/Shapes/RippleSawtooth.cpp index d67cd1139a5768a0ed4e883ff2a7ecd0ce9470e3..69cd09bf998c6363f7c72fc10ec657f0d95fef75 100644 --- a/Core/Shapes/RippleSawtooth.cpp +++ b/Core/Shapes/RippleSawtooth.cpp @@ -27,4 +27,4 @@ RippleSawtooth::RippleSawtooth(double length, double width, double height, doubl m_vertices[5] = kvector_t(-length / 2.0, 0.0, height); } -RippleSawtooth::~RippleSawtooth() {} +RippleSawtooth::~RippleSawtooth() = default; diff --git a/Core/Shapes/TruncatedEllipsoid.cpp b/Core/Shapes/TruncatedEllipsoid.cpp index c56f9be2951cf08db5c830bd746257ded179ec65..9bf57a7cff37633312f6cb36e4e490b91ccaefeb 100644 --- a/Core/Shapes/TruncatedEllipsoid.cpp +++ b/Core/Shapes/TruncatedEllipsoid.cpp @@ -34,4 +34,4 @@ TruncatedEllipsoid::TruncatedEllipsoid(double r_x, double r_y, double r_z, doubl } } -TruncatedEllipsoid::~TruncatedEllipsoid() {} +TruncatedEllipsoid::~TruncatedEllipsoid() = default; diff --git a/Core/Simulation/DepthProbeSimulation.cpp b/Core/Simulation/DepthProbeSimulation.cpp index b65d7e4de0d6c68348b10d5c9d4b07d92be6f41e..8db4b184642fbf296489fd637b5c4c16e1e4d44a 100644 --- a/Core/Simulation/DepthProbeSimulation.cpp +++ b/Core/Simulation/DepthProbeSimulation.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "Core/Simulation/DepthProbeSimulation.h" +#include "Core/Basics/Assert.h" #include "Core/Basics/MathConstants.h" #include "Core/Beam/IFootprintFactor.h" #include "Core/Computation/DepthProbeComputation.h" @@ -55,7 +56,7 @@ SimulationResult DepthProbeSimulation::result() const { validityCheck(); auto data = createIntensityData(); - return SimulationResult(*data, *createUnitConverter().get()); + return SimulationResult(*data, *createUnitConverter()); } void DepthProbeSimulation::setBeamParameters(double lambda, int nbins, double alpha_i_min, @@ -109,9 +110,8 @@ DepthProbeSimulation::DepthProbeSimulation(const DepthProbeSimulation& other) m_alpha_axis.reset(other.m_alpha_axis->clone()); if (other.m_z_axis) m_z_axis.reset(other.m_z_axis->clone()); - if (!m_sim_elements.empty()) - for (auto iter = m_sim_elements.begin(); iter != m_sim_elements.end(); ++iter) - iter->setZPositions(m_alpha_axis.get()); + for (auto iter = m_sim_elements.begin(); iter != m_sim_elements.end(); ++iter) + iter->setZPositions(m_alpha_axis.get()); initialize(); } diff --git a/Core/Simulation/Simulation.cpp b/Core/Simulation/Simulation.cpp index 198a9f095164fb9b9cf895f7afe8a52c31674f38..c8c3360ed7d8d4b6bccc1557e8235c6263a37665 100644 --- a/Core/Simulation/Simulation.cpp +++ b/Core/Simulation/Simulation.cpp @@ -93,7 +93,7 @@ void runComputations(std::vector<std::unique_ptr<IComputation>> computations) if (!comp->isCompleted()) failure_messages.push_back(comp->errorMessage()); - if (failure_messages.size() == 0) + if (failure_messages.empty()) return; throw Exceptions::RuntimeErrorException( "Error in runComputations: " @@ -309,8 +309,7 @@ SimulationResult Simulation::convertData(const OutputData<double>& data, bool put_masked_areas_to_zero) { auto converter = UnitConverterUtils::createConverter(*this); - auto roi_data = - UnitConverterUtils::createOutputData(*converter.get(), converter->defaultUnits()); + auto roi_data = UnitConverterUtils::createOutputData(*converter, converter->defaultUnits()); const IDetector& detector = getInstrument().detector(); diff --git a/Core/Simulation/UnitConverterUtils.cpp b/Core/Simulation/UnitConverterUtils.cpp index bddc3647ce78c655ec7a47cf018239f001807e65..47fe726dfadc301b66f5758550cdc28d3bb7d79f 100644 --- a/Core/Simulation/UnitConverterUtils.cpp +++ b/Core/Simulation/UnitConverterUtils.cpp @@ -25,7 +25,7 @@ #include "Core/Simulation/SpecularSimulation.h" std::unique_ptr<OutputData<double>> -UnitConverterUtils::createOutputData(const IUnitConverter& converter, AxesUnits units) +UnitConverterUtils::createOutputData(const IUnitConverter& converter, Axes::Units units) { std::unique_ptr<OutputData<double>> result = std::make_unique<OutputData<double>>(); for (size_t i = 0; i < converter.dimension(); ++i) diff --git a/Core/Simulation/UnitConverterUtils.h b/Core/Simulation/UnitConverterUtils.h index 3a2252bebb7a0d95eb34e4ba17ca780c27f436cd..a32aea45d8bbdab1293dcb1aadfa139397721c89 100644 --- a/Core/Simulation/UnitConverterUtils.h +++ b/Core/Simulation/UnitConverterUtils.h @@ -28,7 +28,7 @@ namespace UnitConverterUtils //! Returns zero-valued output data array in specified units std::unique_ptr<OutputData<double>> createOutputData(const IUnitConverter& converter, - AxesUnits units); + Axes::Units units); //! Helper factory function to use in GISASSimulation. Depending on the type of detector, //! returns either RectangularConverter or SphericalConverter. diff --git a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp index cb128553f7358a280a72dff9c200d29cbfc5fad1..e6483e89224c3ea476ddcf10d6dcd9cf696c1bed 100644 --- a/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp +++ b/Core/SoftParticle/FormFactorSphereGaussianRadius.cpp @@ -44,7 +44,7 @@ complex_t FormFactorSphereGaussianRadius::evaluate_for_q(cvector_t q) const void FormFactorSphereGaussianRadius::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0)); + mP_shape = std::make_unique<TruncatedEllipsoid>(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0); } double FormFactorSphereGaussianRadius::calculateMeanR3() const diff --git a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp index dc1c459a57a84f7481b52fb1359d8a5b8f6f0a51..fa7bf279c7d0b4d5a9334b3d87a1e4f5ec75aeac 100644 --- a/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp +++ b/Core/SoftParticle/FormFactorSphereLogNormalRadius.cpp @@ -60,5 +60,5 @@ complex_t FormFactorSphereLogNormalRadius::evaluate_for_q(cvector_t q) const void FormFactorSphereLogNormalRadius::onChange() { - mP_shape.reset(new TruncatedEllipsoid(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0)); + mP_shape = std::make_unique<TruncatedEllipsoid>(m_mean, m_mean, m_mean, 2.0 * m_mean, 0.0); } diff --git a/Core/includeIncludes/SoftParticles.h b/Core/SoftParticle/SoftParticles.h similarity index 94% rename from Core/includeIncludes/SoftParticles.h rename to Core/SoftParticle/SoftParticles.h index c3a2eb0b62c3499b5e08b55d9108d233f8851a1d..5fc53b773df79dd87a4f46a559a1b853132325b9 100644 --- a/Core/includeIncludes/SoftParticles.h +++ b/Core/SoftParticle/SoftParticles.h @@ -2,7 +2,7 @@ // // BornAgain: simulate and fit scattering at grazing incidence // -//! @file Core/includeIncludes/SoftParticles.h +//! @file Core/SoftParticle/SoftParticles.h //! @brief Includes all soft-particle form-factor definitions. //! //! @homepage http://www.bornagainproject.org diff --git a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp index b5800890a83d8001975f14161c96d3c84914d0dc..3db0b871f1dcffc4dc3758aee7790e6d684dc012 100644 --- a/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp +++ b/Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.cpp @@ -15,11 +15,11 @@ #include "Core/StandardSamples/LayersWithAbsorptionBySLDBuilder.h" #include "Core/Aggregate/ParticleLayout.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/FormFactorFullSphere.h" #include "Core/Material/MaterialFactoryFuncs.h" #include "Core/Multilayer/Layer.h" #include "Core/Multilayer/MultiLayer.h" #include "Core/Particle/Particle.h" -#include "Core/includeIncludes/FormFactors.h" const double middle_layer_thickness(60.0 * Units::nanometer); diff --git a/Core/StandardSamples/ParticleInVacuumBuilder.cpp b/Core/StandardSamples/ParticleInVacuumBuilder.cpp index 7acfdb4a0b611143927c7861634505064d2c9db0..700b7514a165d375a2b650ebddac8c816db65c29 100644 --- a/Core/StandardSamples/ParticleInVacuumBuilder.cpp +++ b/Core/StandardSamples/ParticleInVacuumBuilder.cpp @@ -16,12 +16,12 @@ #include "Core/Aggregate/ParticleLayout.h" #include "Core/Basics/Exceptions.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/FormFactorFullSphere.h" #include "Core/Multilayer/Layer.h" #include "Core/Multilayer/MultiLayer.h" #include "Core/Particle/Particle.h" #include "Core/SampleBuilderEngine/SampleComponents.h" #include "Core/StandardSamples/ReferenceMaterials.h" -#include "Core/includeIncludes/FormFactors.h" namespace { diff --git a/Core/Tools/CloneableVector.h b/Core/Tools/CloneableVector.h new file mode 100644 index 0000000000000000000000000000000000000000..0bc60c3657b0844444dae542cf50bc4c9a58051f --- /dev/null +++ b/Core/Tools/CloneableVector.h @@ -0,0 +1,46 @@ +// ************************************************************************** // +// +// BornAgain: simulate and fit scattering at grazing incidence +// +//! @file Core/Tools/CloneableVector.h +//! @brief Defines and implements templated class CloneableVector. +//! +//! @homepage http://www.bornagainproject.org +//! @license GNU General Public License v3 or higher (see COPYING) +//! @copyright Forschungszentrum Jülich GmbH 2018 +//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) +// +// ************************************************************************** // + +#ifndef BORNAGAIN_CORE_TOOLS_CLONEABLEVECTOR_H +#define BORNAGAIN_CORE_TOOLS_CLONEABLEVECTOR_H + +#include <memory> +#include <vector> + +//! A vector of unique pointers to objects that are cloneable. +//! +//! Equips vector<unique_ptr<T>> with copy constructor. +//! For use with polymorphic objects, or in pimpl idiom. +//! +//! @ingroup tools_internal + +//! The objects pointed to must posses a clone() function. + +template <class T> class CloneableVector : public std::vector<std::unique_ptr<T>> +{ + using super = std::vector<std::unique_ptr<T>>; + +public: + CloneableVector() : super() {} + CloneableVector(const CloneableVector& other) : super() + { + super::reserve(other.size()); + for (const std::unique_ptr<T>& t : other) + super::emplace_back(t->clone()); + } + void push_back(T* t) { super::emplace_back(std::unique_ptr<T>(t)); } + void emplace_back(std::unique_ptr<T>&& t) { super::emplace_back(t); } +}; + +#endif // BORNAGAIN_CORE_TOOLS_CLONEABLEVECTOR_H diff --git a/Core/Tools/PyFmt.cpp b/Core/Tools/PyFmt.cpp index c284d50d488577f7e9020126891f98252af69f1a..3a56b7498224c0a219daaa662e2db895d66cd8d4 100644 --- a/Core/Tools/PyFmt.cpp +++ b/Core/Tools/PyFmt.cpp @@ -188,14 +188,6 @@ std::string printKvector(const kvector_t value) return result.str(); } -//! returns true if it is (0, -1, 0) vector -bool isDefaultDirection(const kvector_t direction) -{ - return Numeric::AreAlmostEqual(direction.x(), 0.0) - && Numeric::AreAlmostEqual(direction.y(), -1.0) - && Numeric::AreAlmostEqual(direction.z(), 0.0); -} - std::string indent(size_t width) { return std::string(width, ' '); diff --git a/Core/Tools/PythonCore.h b/Core/Tools/PythonCore.h index edb50d32cfe5e2889bb170c14edc6fa4ee35a408..52a79e4cbede38131acc7ec450d25df728f5c4ea 100644 --- a/Core/Tools/PythonCore.h +++ b/Core/Tools/PythonCore.h @@ -33,7 +33,7 @@ #define NO_IMPORT_ARRAY #include <numpy/arrayobject.h> -#include "swig_runtime.h" +#include "auto/Wrap/swig_runtime.h" #ifdef __GNUC__ #pragma GCC diagnostic pop diff --git a/Core/includeIncludes/FormFactors.h b/Core/includeIncludes/FormFactors.h deleted file mode 100644 index 9026de0cb335fe59177bae3301dc4c579428e9ad..0000000000000000000000000000000000000000 --- a/Core/includeIncludes/FormFactors.h +++ /dev/null @@ -1,25 +0,0 @@ -// ************************************************************************** // -// -// BornAgain: simulate and fit scattering at grazing incidence -// -//! @file Core/includeIncludes/FormFactors.h -//! @brief Includes form-factor related include files. -//! -//! @homepage http://www.bornagainproject.org -//! @license GNU General Public License v3 or higher (see COPYING) -//! @copyright Forschungszentrum Jülich GmbH 2018 -//! @authors Scientific Computing Group at MLZ (see CITATION, AUTHORS) -// -// ************************************************************************** // - -#ifndef BORNAGAIN_CORE_INCLUDEINCLUDES_FORMFACTORS_H -#define BORNAGAIN_CORE_INCLUDEINCLUDES_FORMFACTORS_H - -#include "Core/Particle/FormFactorWeighted.h" -#include "Core/Scattering/FormFactorDecoratorMaterial.h" -#include "Core/Scattering/FormFactorDecoratorPositionFactor.h" -#include "Core/Scattering/FormFactorDecoratorRotation.h" -#include "Core/includeIncludes/HardParticles.h" -#include "Core/includeIncludes/SoftParticles.h" - -#endif // BORNAGAIN_CORE_INCLUDEINCLUDES_FORMFACTORS_H diff --git a/Examples/python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py b/Examples/python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py index e0033ae3dd8b8187fa35a430bd5ff84ec9c347c8..a03e63688548dac9cedcfab75d6e051d80f7136e 100644 --- a/Examples/python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py +++ b/Examples/python/fitting/ex03_ExtendedExamples/specular/FitWithUncertainties.py @@ -118,7 +118,7 @@ def run_fitting(): fit_objective = ba.FitObjective() fit_objective.addSimulationAndData(get_simulation, real_data, uncertainties) - plot_observer = ba.PlotterSpecular(units=ba.AxesUnits.RQ4) + plot_observer = ba.PlotterSpecular(units=ba.Axes.RQ4) fit_objective.initPrint(10) fit_objective.initPlot(10, plot_observer) fit_objective.setObjectiveMetric("Chi2", "L1") diff --git a/Examples/python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py b/Examples/python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py index 9400dfb9af3c1ea21a3c3bf503603090a58d6f2c..5ac85e84fd6f10383fa96e01117f031c0f58b436 100644 --- a/Examples/python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py +++ b/Examples/python/fitting/ex03_ExtendedExamples/specular/RealLifeReflectometryFitting.py @@ -253,7 +253,7 @@ def plot_result(sim_result, ref_result, bin_start=0, bin_end=-1): sim_result.axis(), sim_data, ref_result.axis(), ref_data) - xlabel = ba.get_axes_labels(sim_result, ba.AxesUnits.DEFAULT)[0] + xlabel = ba.get_axes_labels(sim_result, ba.Axes.DEFAULT)[0] ylabel = "Intensity" plt.xlabel(xlabel, fontsize=16) plt.ylabel(ylabel, fontsize=16) diff --git a/Examples/python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py b/Examples/python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py index 0b9c24c381efd039a1e3ea9480675f5769dc49de..9c23535da866b402bd0d70df66ea077ab108b05d 100644 --- a/Examples/python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py +++ b/Examples/python/simulation/ex07_Miscellaneous/AxesInDifferentUnits.py @@ -90,16 +90,16 @@ def plot(result): xlabel=r'$X_{mm}$', ylabel=r'$Y_{mm}$', zlabel=None) plt.subplot(2, 2, 2) - ba.plot_colormap(result, units=ba.AxesUnits.NBINS, title="In number of bins", + ba.plot_colormap(result, units=ba.Axes.NBINS, title="In number of bins", xlabel=r'$X_{nbins}$', ylabel=r'$Y_{nbins}$', zlabel=None) plt.subplot(2, 2, 3) - ba.plot_colormap(result, units=ba.AxesUnits.DEGREES, title="In degs", + ba.plot_colormap(result, units=ba.Axes.DEGREES, title="In degs", xlabel=r'$\phi_f ^{\circ}$', ylabel=r'$\alpha_f ^{\circ}$', zlabel=None) plt.subplot(2, 2, 4) - ba.plot_colormap(result, units=ba.AxesUnits.QSPACE, title="Q-space", + ba.plot_colormap(result, units=ba.Axes.QSPACE, title="Q-space", xlabel=r'$Q_{y} [1/nm]$', ylabel=r'$Q_{z} [1/nm]$', zlabel=None) plt.subplots_adjust(left=0.07, right=0.97, top=0.9, bottom=0.1, hspace=0.25) diff --git a/Examples/python/simulation/ex07_Miscellaneous/PolarizedSANS.py b/Examples/python/simulation/ex07_Miscellaneous/PolarizedSANS.py index 2f8e4bdbe7c1c56ada277ac09a3ce0525a3e0a35..ce4f30ebc72f482284c6dd61f2c16f00f47ec93f 100644 --- a/Examples/python/simulation/ex07_Miscellaneous/PolarizedSANS.py +++ b/Examples/python/simulation/ex07_Miscellaneous/PolarizedSANS.py @@ -76,5 +76,5 @@ def run_simulation(): if __name__ == '__main__': result = run_simulation() - ba.plot_simulation_result(result, cmap='jet', units=ba.AxesUnits.QSPACE, + ba.plot_simulation_result(result, cmap='jet', units=ba.Axes.QSPACE, aspect='auto') diff --git a/Fit/CMakeLists.txt b/Fit/CMakeLists.txt index 548f48b5f967824961c0384f5ff229315d427a20..f46b075435f0ff9a5a64b4b90d78e0761dfb2abc 100644 --- a/Fit/CMakeLists.txt +++ b/Fit/CMakeLists.txt @@ -1,30 +1,32 @@ ############################################################################ -# CMakeLists.txt file for building libBornAgainFit library +# CMakeLists.txt file for building libBornAgainFit ############################################################################ -set(lib BornAgainFit) +set(name Fit) +set(lib BornAgain${name}) + +# --- source and include files --- -# --- source and include files ------ file(GLOB source_files */*.cpp) file(GLOB include_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} */*.h) if(BORNAGAIN_PYTHON) + set(WRAP_DIR ${CMAKE_SOURCE_DIR}/Wrap) set(AUTO_DIR ${CMAKE_SOURCE_DIR}/auto/Wrap) file(MAKE_DIRECTORY ${AUTO_DIR}) if(CONFIGURE_BINDINGS) - set(WRAP_DIR ${CMAKE_SOURCE_DIR}/Wrap) set(TMP_DIR ${CMAKE_CURRENT_BINARY_DIR}/Wrap) file(MAKE_DIRECTORY ${TMP_DIR}) - GeneratePythonDocs(${AUTO_DIR}/doxygen_fit.i ${WRAP_DIR}/swig) + GeneratePythonDocs(${AUTO_DIR}/doxygen${name}.i ${WRAP_DIR}/swig) set(swig_dependencies - ${WRAP_DIR}/swig/libBornAgainFit.i + ${WRAP_DIR}/swig/lib${lib}.i ${WRAP_DIR}/swig/directors.i - ${WRAP_DIR}/swig/extendFit.i + ${WRAP_DIR}/swig/extend${name}.i ${WRAP_DIR}/swig/ignores.i ${WRAP_DIR}/swig/shared_pointers.i ${WRAP_DIR}/swig/warnings.i @@ -34,23 +36,23 @@ if(BORNAGAIN_PYTHON) message(FATAL_ERROR "Could NOT find SWIG input ${FNAM}") endif() endforeach() - list(APPEND swig_dependencies ${AUTO_DIR}/doxygen_fit.i) + list(APPEND swig_dependencies ${AUTO_DIR}/doxygen${name}.i) - set(SWIG_FLAGS "-c++;-python;-o;${AUTO_DIR}/libBornAgainFit_wrap.cpp;-outdir;${TMP_DIR}" - ";-I${CMAKE_SOURCE_DIR}") + set(SWIG_FLAGS "-c++;-python;-o;${AUTO_DIR}/lib${lib}_wrap.cpp;-outdir;${TMP_DIR}" + ";-I${CMAKE_SOURCE_DIR};-I${CMAKE_BINARY_DIR}/inc") add_custom_command( - OUTPUT ${AUTO_DIR}/libBornAgainFit.py + OUTPUT ${AUTO_DIR}/lib${lib}.py COMMAND ${Python3_EXECUTABLE} ${WRAP_DIR}/swig/tweaks.py - ${TMP_DIR}/libBornAgainFit.py - ${AUTO_DIR}/libBornAgainFit.py - DEPENDS ${TMP_DIR}/libBornAgainFit.py + ${TMP_DIR}/lib${lib}.py + ${AUTO_DIR}/lib${lib}.py + DEPENDS ${TMP_DIR}/lib${lib}.py ) add_custom_command( - OUTPUT ${TMP_DIR}/libBornAgainFit.py - ${AUTO_DIR}/libBornAgainFit_wrap.h - ${AUTO_DIR}/libBornAgainFit_wrap.cpp - COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${WRAP_DIR}/swig/libBornAgainFit.i + OUTPUT ${TMP_DIR}/lib${lib}.py + ${AUTO_DIR}/lib${lib}_wrap.h + ${AUTO_DIR}/lib${lib}_wrap.cpp + COMMAND ${SWIG_EXECUTABLE} ${SWIG_FLAGS} ${WRAP_DIR}/swig/lib${lib}.i DEPENDS ${swig_dependencies} ${include_files} ) @@ -58,31 +60,32 @@ if(BORNAGAIN_PYTHON) add_custom_target( ${lib}_python - COMMAND ${CMAKE_COMMAND} -E copy ${AUTO_DIR}/libBornAgainFit.py - ${CMAKE_BINARY_DIR}/lib/libBornAgainFit.py - COMMAND ${CMAKE_COMMAND} -E copy ${AUTO_DIR}/libBornAgainFit.py - ${CMAKE_BINARY_DIR}/lib/bornagain/libBornAgainFit.py - DEPENDS ${AUTO_DIR}/libBornAgainFit.py + COMMAND ${CMAKE_COMMAND} + -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/lib${lib}.py + COMMAND ${CMAKE_COMMAND} + -E copy ${AUTO_DIR}/lib${lib}.py ${CMAKE_BINARY_DIR}/lib/bornagain/lib${lib}.py + DEPENDS ${AUTO_DIR}/lib${lib}.py ) if((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")) # suppress warnings from auto-generated code (last updated for Swig 4.0.1) - set_source_files_properties(${AUTO_DIR}/libBornAgainFit_wrap.cpp + set_source_files_properties(${AUTO_DIR}/lib${lib}_wrap.cpp PROPERTIES COMPILE_OPTIONS - "-Wno-unused-parameter;-Wno-missing-field-initializers;-Wno-deprecated-declarations") + "-Wno-unused-parameter;-Wno-missing-field-initializers;-Wno-sometimes-uninitialized;\ +-Wno-deprecated-declarations") endif() - list(APPEND source_files "${AUTO_DIR}/libBornAgainFit_wrap.cpp") + list(APPEND source_files "${AUTO_DIR}/lib${lib}_wrap.cpp") -endif() +endif(BORNAGAIN_PYTHON) + +# --- making library --- -# --- definitions --------- if(WIN32) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBA_CORE_BUILD_DLL") endif() -# --- making library --------- add_library(${lib} SHARED ${source_files}) set_target_properties(${lib} PROPERTIES PREFIX ${libprefix} SUFFIX ${libsuffix}) set(${lib}_LIBRARY_TYPE SHARED) @@ -92,60 +95,39 @@ if(BORNAGAIN_PYTHON) endif() # exposing library name and list of include directories outside -set(${lib}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR} ${WRAP_DIR} PARENT_SCOPE) set(${lib}_LIBRARY ${lib} PARENT_SCOPE) -# --- dependencies --------- +# --- external dependencies --- + target_include_directories(${lib} PUBLIC ${RootMinimizers_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}) target_link_libraries(${lib} ${RootMinimizers_LIBRARY} ${Boost_LIBRARIES}) + if(BORNAGAIN_PYTHON) - target_include_directories(${lib} - PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) + target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_PYTHON) + target_include_directories(${lib} PUBLIC ${Python3_INCLUDE_DIRS} ${Python3_NumPy_INCLUDE_DIRS}) target_link_libraries(${lib} ${Python3_LIBRARIES}) endif() -# --- custom actions -# python in windows required .pyd extention for the library name -if(WIN32 AND BORNAGAIN_PYTHON) - add_custom_command( - TARGET ${lib} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}".pyd" - ) - # for functional tests - add_custom_command( - TARGET ${lib} - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} - ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}${libsuffix} - ) - -endif() - if(APPLE AND BORNAGAIN_APPLE_BUNDLE) - # set(link_flags "-Wl,-rpath,@loader_path/../..") set(link_flags "-Wl,-rpath,@loader_path/../../Frameworks") set_target_properties(${lib} PROPERTIES LINK_FLAGS ${link_flags}) endif() -# ----------------------------------------------- -# installation -# ----------------------------------------------- +# --- installation --- + install(TARGETS ${lib} DESTINATION ${destination_lib} COMPONENT Libraries) install(FILES ${CMAKE_BINARY_DIR}/lib/lib${lib}.py - DESTINATION ${destination_lib} COMPONENT Libraries) # required by SWIG + DESTINATION ${destination_lib} COMPONENT Libraries) # required by swig foreach(file ${include_files}) get_filename_component(dir ${file} DIRECTORY) - install(FILES ${file} DESTINATION ${destination_include}/Fit/${dir}) + install(FILES ${file} DESTINATION ${destination_include}/${name}/${dir}) endforeach() if(WIN32) + # python in windows required .pyd extension for the library name if(BORNAGAIN_PYTHON) add_custom_command( TARGET ${lib} @@ -154,8 +136,14 @@ if(WIN32) ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}".pyd" ) - install(FILES ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}.pyd DESTINATION ${destination_lib} COMPONENT Libraries) + add_custom_command( + TARGET ${lib} + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + ${CMAKE_BINARY_DIR}/bin/${libprefix}${lib}${libsuffix} + ${CMAKE_BINARY_DIR}/lib/${libprefix}${lib}${libsuffix} + ) endif() endif() diff --git a/Fit/Minimizer/MinimizerOptions.cpp b/Fit/Minimizer/MinimizerOptions.cpp index 769b849fa8e66950324c83850bdda9b843f2ac3b..97348b4cefe932b7227f9c438a06a8732ebf64d9 100644 --- a/Fit/Minimizer/MinimizerOptions.cpp +++ b/Fit/Minimizer/MinimizerOptions.cpp @@ -38,7 +38,7 @@ void MinimizerOptions::setOptionString(const std::string& options) std::vector<std::string> tokens = StringUtils::split(options, delimeter); try { for (std::string opt : tokens) - if (opt.size()) + if (!opt.empty()) processCommand(opt); } catch (std::exception& ex) { std::ostringstream ostr; diff --git a/Fit/Minimizer/TestMinimizer.cpp b/Fit/Minimizer/TestMinimizer.cpp index 63f226e62e62ef183e1efd7a722a7b7491ee67e6..41429f7a1fe5ed3c0b018620f17d28b76cbb50c0 100644 --- a/Fit/Minimizer/TestMinimizer.cpp +++ b/Fit/Minimizer/TestMinimizer.cpp @@ -18,7 +18,7 @@ using namespace Fit; -TestMinimizer::TestMinimizer() {} +TestMinimizer::TestMinimizer() = default; TestMinimizer::~TestMinimizer() = default; diff --git a/Fit/RootAdapter/MinimizerResultUtils.cpp b/Fit/RootAdapter/MinimizerResultUtils.cpp index bf89141dc5bcfa7735b6d345b6d0eb1d71aad567..a1c9110b6102aea2da463c18e62603da99b717ea 100644 --- a/Fit/RootAdapter/MinimizerResultUtils.cpp +++ b/Fit/RootAdapter/MinimizerResultUtils.cpp @@ -67,7 +67,7 @@ std::string MinimizerResultUtils::reportParameters(const Fit::Parameters& parame } Fit::Parameters::corr_matrix_t matrix = parameters.correlationMatrix(); - if (matrix.size()) { + if (!matrix.empty()) { result << MinimizerUtils::sectionString("Correlations"); for (size_t i = 0; i < matrix.size(); ++i) { result << boost::format("#%-2d ") % i; @@ -93,7 +93,7 @@ std::string reportDescription(const RootMinimizerAdapter& minimizer) std::string reportOption(const RootMinimizerAdapter& minimizer) { - if (minimizer.options().size() == 0) + if (minimizer.options().empty()) return ""; std::ostringstream result; diff --git a/Fit/RootAdapter/ResidualFunctionAdapter.cpp b/Fit/RootAdapter/ResidualFunctionAdapter.cpp index a20266b132f8d15b24f2e5cbef4aa2c4b23e7288..39f411737a7b770efc0b3ba45fd125104f7c267d 100644 --- a/Fit/RootAdapter/ResidualFunctionAdapter.cpp +++ b/Fit/RootAdapter/ResidualFunctionAdapter.cpp @@ -104,7 +104,7 @@ double ResidualFunctionAdapter::element_residual(const std::vector<double>& pars m_residuals = get_residuals(pars); } - if (gradients.size()) { + if (!gradients.empty()) { // Non zero size means that minimizer wants to know gradients. if (pars.size() != gradients.size()) throw std::runtime_error("ResidualFunctionAdapter::element_residual() -> Error. " diff --git a/Fit/RootAdapter/ScalarFunctionAdapter.cpp b/Fit/RootAdapter/ScalarFunctionAdapter.cpp index 098567fb3602226eefdcd9ff56aa7106df75bed5..3891fe16c9079833bd79e790ed353cb4142b285f 100644 --- a/Fit/RootAdapter/ScalarFunctionAdapter.cpp +++ b/Fit/RootAdapter/ScalarFunctionAdapter.cpp @@ -34,6 +34,7 @@ const RootScalarFunction* ScalarFunctionAdapter::rootObjectiveFunction() return m_fcn(m_parameters); }; - m_root_objective.reset(new RootScalarFunction(rootfun, static_cast<int>(m_parameters.size()))); + m_root_objective = + std::make_unique<RootScalarFunction>(rootfun, static_cast<int>(m_parameters.size())); return m_root_objective.get(); } diff --git a/Fit/Tools/OptionContainer.h b/Fit/Tools/OptionContainer.h index 424ff4fe63db25dda98f0bde45ca9978c8b74c97..828d103179659aeec80cd8826720f7edb48107f4 100644 --- a/Fit/Tools/OptionContainer.h +++ b/Fit/Tools/OptionContainer.h @@ -54,6 +54,7 @@ public: const_iterator end() const { return m_options.end(); } size_t size() const { return m_options.size(); } + bool empty() const { return size() == 0; } protected: bool exists(const std::string& name); diff --git a/GUI/ba3d/model/particles.cpp b/GUI/ba3d/model/particles.cpp index db0773cb93504ba7b1c515fcbefe91e7a15bcc98..80733fcde1c7c2a8a2f72a058899adc9fb723a68 100644 --- a/GUI/ba3d/model/particles.cpp +++ b/GUI/ba3d/model/particles.cpp @@ -350,8 +350,8 @@ TruncatedSphere::TruncatedSphere(float R, float H, float deltaH) } TruncatedSpheroid::TruncatedSpheroid(float R, float H, float fp, float deltaH) - : Particle(Key(BaseShape::Sphere, 1 - H / fp / R / 2, (H - fp * R) / fp / R / 2, - deltaH / fp / R / 2)) + : Particle( + Key(BaseShape::Sphere, 1 - H / fp / R / 2, (H - fp * R) / fp / R / 2, deltaH / fp / R / 2)) { isNull = (R <= 0 || H <= 0 || fp <= 0); scale = Vector3D(R * 2, R * 2, fp * R * 2); diff --git a/GUI/ba3d/widget.cpp b/GUI/ba3d/widget.cpp index a5ea61f40e05cee7fcbdc6159d00862cf1a59c94..4ee21dfb533d3d04e714df3a3752d4d2c9f48d98 100644 --- a/GUI/ba3d/widget.cpp +++ b/GUI/ba3d/widget.cpp @@ -32,7 +32,7 @@ Widget3D::Widget3D() : canvas(nullptr) box->addWidget((canvas = new Canvas)); } -Widget3D::~Widget3D() {} +Widget3D::~Widget3D() = default; Camera& Widget3D::cam() { diff --git a/GUI/coregui/Models/ApplicationModels.cpp b/GUI/coregui/Models/ApplicationModels.cpp index b37818417c084a1eaed7498391a5e264b49ef1af..8ffb4fb2551627bf705ca3bf5bf11b1c84db5f53 100644 --- a/GUI/coregui/Models/ApplicationModels.cpp +++ b/GUI/coregui/Models/ApplicationModels.cpp @@ -45,7 +45,7 @@ ApplicationModels::ApplicationModels(QObject* parent) // createTestJob(); } -ApplicationModels::~ApplicationModels() {} +ApplicationModels::~ApplicationModels() = default; DocumentModel* ApplicationModels::documentModel() { diff --git a/GUI/coregui/Models/AxesItems.cpp b/GUI/coregui/Models/AxesItems.cpp index de727517aa5a3686b9baebe90055f714c78086a4..9ba6d00dcf8d1caccd3bfc16bc90dbfdd1f8c499 100644 --- a/GUI/coregui/Models/AxesItems.cpp +++ b/GUI/coregui/Models/AxesItems.cpp @@ -22,7 +22,7 @@ const QString BasicAxisItem::P_MAX_DEG = "Max [deg]"; const QString BasicAxisItem::P_TITLE = "Title"; const QString BasicAxisItem::P_TITLE_IS_VISIBLE = "Title Visibility"; -static const int max_detector_pixels = 65536; +const int max_detector_pixels = 65536; BasicAxisItem::BasicAxisItem(const QString& type) : SessionItem(type) { diff --git a/GUI/coregui/Models/ComboProperty.cpp b/GUI/coregui/Models/ComboProperty.cpp index 7af2c87483f6a8de79d75fdcf4b243910bcfafcc..cdba924253a1a989697cb8204e64199ec7f9f031 100644 --- a/GUI/coregui/Models/ComboProperty.cpp +++ b/GUI/coregui/Models/ComboProperty.cpp @@ -93,7 +93,7 @@ void ComboProperty::setCurrentIndex(int index) ComboProperty& ComboProperty::operator<<(const QString& str) { m_values.append(str); - if (m_values.size()) + if (!m_values.empty()) setCurrentIndex(0); return *this; } @@ -101,7 +101,7 @@ ComboProperty& ComboProperty::operator<<(const QString& str) ComboProperty& ComboProperty::operator<<(const QStringList& str) { m_values.append(str); - if (m_values.size()) + if (!m_values.empty()) setCurrentIndex(0); return *this; } diff --git a/GUI/coregui/Models/ComponentProxyStrategy.cpp b/GUI/coregui/Models/ComponentProxyStrategy.cpp index b5c3c4436b47bc1981948e8ca704b5afe1a4679e..26419c78b642666025787371de42c3bdb6af0572 100644 --- a/GUI/coregui/Models/ComponentProxyStrategy.cpp +++ b/GUI/coregui/Models/ComponentProxyStrategy.cpp @@ -65,7 +65,7 @@ bool ComponentProxyStrategy::isPropertyRelated(SessionItem* item) if (m_sourceRootIndex.isValid() && item->parent()->index() == m_sourceRootIndex && item->parent()->modelType() != "GroupProperty") - return propertyRelated.contains(item->modelType()) ? true : false; + return propertyRelated.contains(item->modelType()); return true; } diff --git a/GUI/coregui/Models/DataViewUtils.cpp b/GUI/coregui/Models/DataViewUtils.cpp index 261bb7a235fe62ea00f955b44252c98073829bd9..7049696dbd3df73ebf2c5a28aabfc910150be4a4 100644 --- a/GUI/coregui/Models/DataViewUtils.cpp +++ b/GUI/coregui/Models/DataViewUtils.cpp @@ -31,7 +31,7 @@ std::unique_ptr<IUnitConverter> getConverter(Data1DViewItem* view_item) return DomainObjectBuilder::createUnitConverter(job_item->instrumentItem()); } -AxesUnits selectedUnits(Data1DViewItem* view_item) +Axes::Units selectedUnits(Data1DViewItem* view_item) { auto current_unit_name = view_item->getItemValue(Data1DViewItem::P_AXES_UNITS).value<ComboProperty>().getValue(); diff --git a/GUI/coregui/Models/DomainObjectBuilder.cpp b/GUI/coregui/Models/DomainObjectBuilder.cpp index 9a35e8f74bbeb0aa7da620c775a5e5a48419d011..5bfa534db6f6c4d668426863d3d6213bbd449f91 100644 --- a/GUI/coregui/Models/DomainObjectBuilder.cpp +++ b/GUI/coregui/Models/DomainObjectBuilder.cpp @@ -85,7 +85,7 @@ std::unique_ptr<ParticleLayout> DomainObjectBuilder::buildParticleLayout(const S QString par_name = prop.getValue(); if (par_name == ParticleDistributionItem::NO_SELECTION) { auto grandchildren = children[i]->getItems(); - if (grandchildren.size() == 0) { + if (grandchildren.empty()) { continue; } if (grandchildren.size() > 1) { diff --git a/GUI/coregui/Models/DomainSimulationBuilder.cpp b/GUI/coregui/Models/DomainSimulationBuilder.cpp index c962d3e8c437506df24e9bb2d9856ca0d93fd789..0e52a4f51a087aae90ed6ae0c87de470bf75d60e 100644 --- a/GUI/coregui/Models/DomainSimulationBuilder.cpp +++ b/GUI/coregui/Models/DomainSimulationBuilder.cpp @@ -115,10 +115,9 @@ std::unique_ptr<GISASSimulation> createGISASSimulation(std::unique_ptr<MultiLaye return ret; } -std::unique_ptr<OffSpecSimulation> -createOffSpecSimulation(std::unique_ptr<MultiLayer> P_multilayer, - const OffSpecInstrumentItem* instrument, - const SimulationOptionsItem* optionsItem) +std::unique_ptr<OffSpecSimulation> createOffSpecSimulation(std::unique_ptr<MultiLayer> P_multilayer, + const OffSpecInstrumentItem* instrument, + const SimulationOptionsItem* optionsItem) { std::unique_ptr<OffSpecSimulation> ret(new OffSpecSimulation); auto P_instrument = DomainObjectBuilder::buildInstrument(*instrument); @@ -126,10 +125,10 @@ createOffSpecSimulation(std::unique_ptr<MultiLayer> P_multilayer, ret->setInstrument(*P_instrument); auto beamItem = instrument->beamItem(); - auto axisItem = dynamic_cast<BasicAxisItem*>( - instrument->getItem(OffSpecInstrumentItem::P_ALPHA_AXIS)); + auto axisItem = + dynamic_cast<BasicAxisItem*>(instrument->getItem(OffSpecInstrumentItem::P_ALPHA_AXIS)); ret->setBeamParameters(beamItem->getWavelength(), *axisItem->createAxis(Units::degree), - beamItem->getAzimuthalAngle()); + beamItem->getAzimuthalAngle()); // TODO Take care about distributions // TransformToDomain::addDistributionParametersToSimulation(*gisasInstrument->beamItem(), diff --git a/GUI/coregui/Models/FitParameterItems.cpp b/GUI/coregui/Models/FitParameterItems.cpp index 8db8b1e303ff58397f2cb207a69b6b919ed1cd36..ae45fe4253a46fd81e4a7f258323e6a058081a02 100644 --- a/GUI/coregui/Models/FitParameterItems.cpp +++ b/GUI/coregui/Models/FitParameterItems.cpp @@ -283,7 +283,7 @@ void FitParameterContainerItem::setValuesInParameterContainer( int index(0); for (int i = 0; i < fitPars.size(); ++i) { auto link_list = fitPars[i]->getItems(FitParameterItem::T_LINK); - if (link_list.size() == 0) + if (link_list.empty()) continue; for (auto linkItem : link_list) { QString parPath = linkItem->getItemValue(FitParameterLinkItem::P_LINK).toString(); diff --git a/GUI/coregui/Models/FormFactorItems.cpp b/GUI/coregui/Models/FormFactorItems.cpp index b458f23d44c36ff24cccb187d375c5ee2d3a39d7..85dd874fd152786b0ec81814410421e98b954c20 100644 --- a/GUI/coregui/Models/FormFactorItems.cpp +++ b/GUI/coregui/Models/FormFactorItems.cpp @@ -14,7 +14,8 @@ #include "GUI/coregui/Models/FormFactorItems.h" #include "Core/Basics/Units.h" -#include "Core/includeIncludes/FormFactors.h" +#include "Core/HardParticle/HardParticles.h" +#include "Core/SoftParticle/SoftParticles.h" /* ------------------------------------------------ */ diff --git a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp index 348b65fd5bb3dd96d623965aabc342e3e5166336..b81b2eefcbaa17233e601cc81cb067ded58cc44d 100644 --- a/GUI/coregui/Models/GUIDomainSampleVisitor.cpp +++ b/GUI/coregui/Models/GUIDomainSampleVisitor.cpp @@ -15,6 +15,7 @@ #include "GUI/coregui/Models/GUIDomainSampleVisitor.h" #include "Core/Aggregate/ParticleLayout.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Material/Material.h" #include "Core/Multilayer/Layer.h" #include "Core/Multilayer/MultiLayer.h" @@ -25,7 +26,7 @@ #include "Core/Particle/ParticleComposition.h" #include "Core/Particle/ParticleCoreShell.h" #include "Core/Particle/ParticleDistribution.h" -#include "Core/includeIncludes/FormFactors.h" +#include "Core/SoftParticle/SoftParticles.h" #include "GUI/coregui/Models/ComboProperty.h" #include "GUI/coregui/Models/FormFactorItems.h" #include "GUI/coregui/Models/LayerItem.h" diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp index 0429b857404a501b89bcd5ba2412ad470db1088c..39ae110f68c9f8f3ed93f61bd5959e8c20c96c5d 100644 --- a/GUI/coregui/Models/InstrumentItems.cpp +++ b/GUI/coregui/Models/InstrumentItems.cpp @@ -170,12 +170,12 @@ std::unique_ptr<IUnitConverter> SpecularInstrumentItem::createUnitConverter() co if (auto pointwise_axis = dynamic_cast<PointwiseAxisItem*>(axis_item)) { if (!pointwise_axis->containsNonXMLData()) // workaround for loading project return nullptr; - AxesUnits native_units = JobItemUtils::axesUnitsFromName(pointwise_axis->getUnitsLabel()); + Axes::Units native_units = JobItemUtils::axesUnitsFromName(pointwise_axis->getUnitsLabel()); return std::make_unique<UnitConverterConvSpec>(instrument->getBeam(), *pointwise_axis->getAxis(), native_units); } else return std::make_unique<UnitConverterConvSpec>( - instrument->getBeam(), *axis_item->createAxis(1.0), AxesUnits::DEGREES); + instrument->getBeam(), *axis_item->createAxis(1.0), Axes::Units::DEGREES); } const QString Instrument2DItem::P_DETECTOR = "Detector"; diff --git a/GUI/coregui/Models/InterferenceFunctionItems.cpp b/GUI/coregui/Models/InterferenceFunctionItems.cpp index 1a567be9c542fe22e3e0cfac77f87a2cdf30ac3d..eb05ce5bfd81eb22ffc82c6a45c3121439849e37 100644 --- a/GUI/coregui/Models/InterferenceFunctionItems.cpp +++ b/GUI/coregui/Models/InterferenceFunctionItems.cpp @@ -13,11 +13,11 @@ // ************************************************************************** // #include "GUI/coregui/Models/InterferenceFunctionItems.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Units.h" #include "Core/Correlations/FTDecay1D.h" #include "Core/Correlations/FTDecay2D.h" #include "Core/Correlations/FTDistributions2D.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Models/FTDecayFunctionItems.h" #include "GUI/coregui/Models/FTDistributionItems.h" #include "GUI/coregui/Models/GroupItem.h" @@ -43,7 +43,7 @@ InterferenceFunctionItem::InterferenceFunctionItem(const QString& modelType) ->setToolTip("Variance of the position in each dimension (nm^2)"); } -InterferenceFunctionItem::~InterferenceFunctionItem() {} +InterferenceFunctionItem::~InterferenceFunctionItem() = default; void InterferenceFunctionItem::setPositionVariance(IInterferenceFunction* p_iff) const { diff --git a/GUI/coregui/Models/JobItem.cpp b/GUI/coregui/Models/JobItem.cpp index 6d624d30df641a4255005db101586aff2a856c36..854750eedaee26f7f8b6679b63694d5397906194 100644 --- a/GUI/coregui/Models/JobItem.cpp +++ b/GUI/coregui/Models/JobItem.cpp @@ -165,7 +165,7 @@ bool JobItem::isFailed() const bool JobItem::isValidForFitting() { - return isTag(T_REALDATA) && getItem(T_REALDATA) ? true : false; + return isTag(T_REALDATA) && getItem(T_REALDATA); } void JobItem::setBeginTime(const QString& begin_time) diff --git a/GUI/coregui/Models/JobItemUtils.cpp b/GUI/coregui/Models/JobItemUtils.cpp index 06ae6877b7232daa51e4002815a13b2e281e5ce9..8b86f62f8ed03132ed888db7bc8d8dec3c61dc04 100644 --- a/GUI/coregui/Models/JobItemUtils.cpp +++ b/GUI/coregui/Models/JobItemUtils.cpp @@ -27,20 +27,20 @@ namespace { -const std::map<QString, AxesUnits> units_from_names{{"nbins", AxesUnits::NBINS}, - {"Radians", AxesUnits::RADIANS}, - {"Degrees", AxesUnits::DEGREES}, - {"mm", AxesUnits::MM}, - {"q-space", AxesUnits::QSPACE}}; - -const std::map<AxesUnits, QString> names_from_units{{AxesUnits::NBINS, "nbins"}, - {AxesUnits::RADIANS, "Radians"}, - {AxesUnits::MM, "mm"}, - {AxesUnits::QSPACE, "q-space"}, - {AxesUnits::DEGREES, "Degrees"}}; +const std::map<QString, Axes::Units> units_from_names{{"nbins", Axes::Units::NBINS}, + {"Radians", Axes::Units::RADIANS}, + {"Degrees", Axes::Units::DEGREES}, + {"mm", Axes::Units::MM}, + {"q-space", Axes::Units::QSPACE}}; + +const std::map<Axes::Units, QString> names_from_units{{Axes::Units::NBINS, "nbins"}, + {Axes::Units::RADIANS, "Radians"}, + {Axes::Units::MM, "mm"}, + {Axes::Units::QSPACE, "q-space"}, + {Axes::Units::DEGREES, "Degrees"}}; //! Updates axes' titles -void updateAxesTitle(DataItem* intensityItem, const IUnitConverter& converter, AxesUnits units); +void updateAxesTitle(DataItem* intensityItem, const IUnitConverter& converter, Axes::Units units); } // namespace //! Updates axes of OutputData in IntensityData item to correspond with ::P_AXES_UNITS selection. @@ -60,7 +60,7 @@ void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem* if (!intensityItem->getOutputData()) return; - AxesUnits requested_units = axesUnitsFromName(intensityItem->selectedAxesUnits()); + Axes::Units requested_units = axesUnitsFromName(intensityItem->selectedAxesUnits()); const auto converter = DomainObjectBuilder::createUnitConverter(instrumentItem); auto newData = UnitConverterUtils::createOutputData(*converter.get(), requested_units); @@ -73,7 +73,7 @@ void JobItemUtils::updateDataAxes(DataItem* intensityItem, const InstrumentItem* //! Correspondance of domain detector axes types to their gui counterpart. -QString JobItemUtils::nameFromAxesUnits(AxesUnits units) +QString JobItemUtils::nameFromAxesUnits(Axes::Units units) { return names_from_units.find(units) != names_from_units.end() ? names_from_units.at(units) : QString(); @@ -81,7 +81,7 @@ QString JobItemUtils::nameFromAxesUnits(AxesUnits units) //! Correspondance of GUI axes units names to their domain counterpart. -AxesUnits JobItemUtils::axesUnitsFromName(const QString& name) +Axes::Units JobItemUtils::axesUnitsFromName(const QString& name) { return units_from_names.at(name); } @@ -142,7 +142,7 @@ ComboProperty JobItemUtils::availableUnits(const IUnitConverter& converter) namespace { -void updateAxesTitle(DataItem* intensityItem, const IUnitConverter& converter, AxesUnits units) +void updateAxesTitle(DataItem* intensityItem, const IUnitConverter& converter, Axes::Units units) { intensityItem->setXaxisTitle(QString::fromStdString(converter.axisName(0, units))); if (converter.dimension() > 1) diff --git a/GUI/coregui/Models/JobItemUtils.h b/GUI/coregui/Models/JobItemUtils.h index 5aa2494bcdc5a0dc253cd642ac1fb793245040d4..a68f94abbd9e9a1cb311433d339ff84fe8fa321b 100644 --- a/GUI/coregui/Models/JobItemUtils.h +++ b/GUI/coregui/Models/JobItemUtils.h @@ -33,10 +33,10 @@ namespace JobItemUtils void updateDataAxes(DataItem* intensityItem, const InstrumentItem* instrumentItem); //! returns axes units names from their domain counterpart -QString nameFromAxesUnits(AxesUnits units); +QString nameFromAxesUnits(Axes::Units units); //! returns domain axes units type from their GUI name -AxesUnits axesUnitsFromName(const QString& name); +Axes::Units axesUnitsFromName(const QString& name); void setIntensityItemAxesUnits(DataItem* intensityItem, const InstrumentItem* instrumentItem); diff --git a/GUI/coregui/Models/JobModelFunctions.cpp b/GUI/coregui/Models/JobModelFunctions.cpp index 552c0cc3046af5f3bab72f33f05cbcf9c4b54a3a..bdb2cc71ae9199fdc95856053736fd513591064f 100644 --- a/GUI/coregui/Models/JobModelFunctions.cpp +++ b/GUI/coregui/Models/JobModelFunctions.cpp @@ -281,7 +281,7 @@ void createFitContainers(JobItem* jobItem) "a second FitParameterContainer."); } - parsContainerItem = model->insertNewItem("FitParameterContainer", fitSuiteItem->index(), -1, + model->insertNewItem("FitParameterContainer", fitSuiteItem->index(), -1, FitSuiteItem::T_FIT_PARAMETERS_CONTAINER); // Minimizer settings @@ -291,7 +291,7 @@ void createFitContainers(JobItem* jobItem) "a second MinimizerContainer."); } - minimizerContainerItem = model->insertNewItem("MinimizerContainer", fitSuiteItem->index(), -1, + model->insertNewItem("MinimizerContainer", fitSuiteItem->index(), -1, FitSuiteItem::T_MINIMIZER); } diff --git a/GUI/coregui/Models/ModelMapper.h b/GUI/coregui/Models/ModelMapper.h index 84d62ddcc1fd2af65690b22de74567f1681b715d..082601c55d53cfb9e1dc2edb19788f9194f55bdc 100644 --- a/GUI/coregui/Models/ModelMapper.h +++ b/GUI/coregui/Models/ModelMapper.h @@ -107,10 +107,9 @@ private: template <class U> inline void ModelMapper::clean_container(U& v, const void* caller) { - v.erase(std::remove_if(v.begin(), v.end(), - [caller](typename U::value_type const& x) -> bool { - return (x.second == caller ? true : false); - }), + v.erase(std::remove_if( + v.begin(), v.end(), + [caller](typename U::value_type const& x) -> bool { return (x.second == caller); }), v.end()); } diff --git a/GUI/coregui/Models/ParameterTranslators.cpp b/GUI/coregui/Models/ParameterTranslators.cpp index f028ec598ececbf89eed7aee3da436c0464e083c..3588f1354b4aa057aecc51c5cda9665329c85587 100644 --- a/GUI/coregui/Models/ParameterTranslators.cpp +++ b/GUI/coregui/Models/ParameterTranslators.cpp @@ -25,7 +25,7 @@ const QStringList expectedRoughnessPars = << QString::fromStdString("CorrelationLength"); } -IPathTranslator::~IPathTranslator() {} +IPathTranslator::~IPathTranslator() = default; ModelTypeTranslator::ModelTypeTranslator(QString gui_model_type, QString domain_name) : m_gui_model_type{std::move(gui_model_type)}, m_domain_name{std::move(domain_name)} diff --git a/GUI/coregui/Models/ParticleDistributionItem.cpp b/GUI/coregui/Models/ParticleDistributionItem.cpp index 131cf152a4cdf924b080fc2adcd3f5cd5660dea3..2f8a70c5de6bfe0f4c4a45296b6878d0e1fd7c4a 100644 --- a/GUI/coregui/Models/ParticleDistributionItem.cpp +++ b/GUI/coregui/Models/ParticleDistributionItem.cpp @@ -81,7 +81,7 @@ ParticleDistributionItem::ParticleDistributionItem() : SessionGraphicsItem("Part std::unique_ptr<ParticleDistribution> ParticleDistributionItem::createParticleDistribution() const { - if (children().size() == 0) + if (children().empty()) return nullptr; std::unique_ptr<IParticle> P_particle = TransformToDomain::createIParticle(*getItem()); if (!P_particle) @@ -199,7 +199,7 @@ QString ParticleDistributionItem::translateParameterNameToGUI(const QString& dom const SessionItem* ParticleDistributionItem::childParticle() const { - if (getItems(T_PARTICLES).size() == 0) + if (getItems(T_PARTICLES).empty()) return nullptr; ASSERT(getItems(T_PARTICLES).size() == 1); diff --git a/GUI/coregui/Models/ParticleLayoutItem.cpp b/GUI/coregui/Models/ParticleLayoutItem.cpp index 6a895b7c5d95af547fddd3aa14ce4024c342adb1..c31ebeadb9996dd7d8383c1d5b41035068754696 100644 --- a/GUI/coregui/Models/ParticleLayoutItem.cpp +++ b/GUI/coregui/Models/ParticleLayoutItem.cpp @@ -33,7 +33,7 @@ bool isInterference2D(const QString& name) //! Returns true if name is related to 2D interference functions. bool isLattice2D(SessionItem* item) { - return dynamic_cast<Lattice2DItem*>(item) ? true : false; + return dynamic_cast<Lattice2DItem*>(item); } const QString density_tooltip = diff --git a/GUI/coregui/Models/PointwiseAxisItem.cpp b/GUI/coregui/Models/PointwiseAxisItem.cpp index 697801bca17bd3e7cd74ceeffd8deca5386cc53d..565a8620667a9616db466bbe9dcec3fff08ef645 100644 --- a/GUI/coregui/Models/PointwiseAxisItem.cpp +++ b/GUI/coregui/Models/PointwiseAxisItem.cpp @@ -68,7 +68,7 @@ std::unique_ptr<IAxis> PointwiseAxisItem::createAxis(double scale) const return nullptr; const auto converter = m_instrument->createUnitConverter(); - const auto converted_axis = converter->createConvertedAxis(0, AxesUnits::DEGREES); + const auto converted_axis = converter->createConvertedAxis(0, Axes::Units::DEGREES); // applying scaling std::vector<double> centers = converted_axis->getBinCenters(); @@ -139,8 +139,8 @@ void PointwiseAxisItem::updateIndicators() return; const auto converter = m_instrument->createUnitConverter(); - getItem(P_MIN_DEG)->setValue(converter->calculateMin(0, AxesUnits::DEGREES)); - getItem(P_MAX_DEG)->setValue(converter->calculateMax(0, AxesUnits::DEGREES)); + getItem(P_MIN_DEG)->setValue(converter->calculateMin(0, Axes::Units::DEGREES)); + getItem(P_MAX_DEG)->setValue(converter->calculateMax(0, Axes::Units::DEGREES)); getItem(P_NBINS)->setValue(static_cast<int>(m_axis->size())); emitDataChanged(); diff --git a/GUI/coregui/Models/TransformFromDomain.cpp b/GUI/coregui/Models/TransformFromDomain.cpp index 19e26fd6fc579eb18381e7a000664a746ab63f12..7d4ddc4d4b946e9872628ca33395f4a65e8a4cc1 100644 --- a/GUI/coregui/Models/TransformFromDomain.cpp +++ b/GUI/coregui/Models/TransformFromDomain.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "GUI/coregui/Models/TransformFromDomain.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Units.h" #include "Core/Beam/Beam.h" #include "Core/Beam/FootprintGauss.h" @@ -46,7 +47,6 @@ #include "Core/Simulation/GISASSimulation.h" #include "Core/Simulation/OffSpecSimulation.h" #include "Core/Simulation/SpecularSimulation.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Models/AxesItems.h" #include "GUI/coregui/Models/BackgroundItems.h" #include "GUI/coregui/Models/BeamAngleItems.h" diff --git a/GUI/coregui/Models/TransformToDomain.cpp b/GUI/coregui/Models/TransformToDomain.cpp index 7ec3667d43cb222ca27302eba8d8412eff719951..0a383e76272eb7b52d1b28ed40db0198ddd5a022 100644 --- a/GUI/coregui/Models/TransformToDomain.cpp +++ b/GUI/coregui/Models/TransformToDomain.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "GUI/coregui/Models/TransformToDomain.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Units.h" #include "Core/Detector/ScanResolution.h" #include "Core/Instrument/AngularSpecScan.h" @@ -23,7 +24,6 @@ #include "Core/Particle/Particle.h" #include "Core/Particle/ParticleCoreShell.h" #include "Core/Simulation/GISASSimulation.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Models/BeamAngleItems.h" #include "GUI/coregui/Models/BeamItems.h" #include "GUI/coregui/Models/BeamWavelengthItem.h" diff --git a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp index 0f24b34cd83c4bfc9c6f21406a9dc8af9c71b707..c467479df555af1e61f1fccd5e51e2bb20590566 100644 --- a/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp +++ b/GUI/coregui/Views/CommonWidgets/ItemSelectorWidget.cpp @@ -38,7 +38,7 @@ ItemSelectorWidget::ItemSelectorWidget(QWidget* parent) SLOT(onCustomContextMenuRequested(const QPoint&))); } -ItemSelectorWidget::~ItemSelectorWidget() {} +ItemSelectorWidget::~ItemSelectorWidget() = default; QSize ItemSelectorWidget::sizeHint() const { @@ -100,7 +100,7 @@ void ItemSelectorWidget::onSelectionChanged(const QItemSelection& selected, cons QModelIndexList indexes = selected.indexes(); SessionItem* selectedItem(0); - if (indexes.size()) + if (!indexes.empty()) selectedItem = m_model->itemForIndex(indexes.back()); emit selectionChanged(selectedItem); @@ -116,7 +116,7 @@ void ItemSelectorWidget::connectModel() if (!m_model) return; - m_decorationModel.reset(new SessionDecorationModel(nullptr, m_model)); + m_decorationModel = std::make_unique<SessionDecorationModel>(nullptr, m_model); m_listView->setModel(m_decorationModel.get()); connect(m_listView->selectionModel(), diff --git a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h index 9d26e2f6764666ace89925fb9c5d4370b05c29c2..8d603615f79da76e6ae4280192cae1d6486c682f 100644 --- a/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h +++ b/GUI/coregui/Views/CommonWidgets/ItemStackPresenter.h @@ -85,7 +85,7 @@ template <class T> T* ItemStackPresenter<T>::currentWidget() template <class T> T* ItemStackPresenter<T>::itemWidget(SessionItem* item) { if (m_single_widget) { - if (m_itemToWidget.size()) + if (!m_itemToWidget.empty()) return m_itemToWidget.first(); } else { return m_itemToWidget[item]; diff --git a/GUI/coregui/Views/CommonWidgets/detailswidget.cpp b/GUI/coregui/Views/CommonWidgets/detailswidget.cpp index d79f5a26fec3f1a21dc637e9dabc89b351b06349..db12c1c523b418a11e6f17cb8ee3ba9080449640 100644 --- a/GUI/coregui/Views/CommonWidgets/detailswidget.cpp +++ b/GUI/coregui/Views/CommonWidgets/detailswidget.cpp @@ -63,7 +63,7 @@ const bool FlatProjectsMode(false); namespace Utils { -static const int MARGIN = 8; +const int MARGIN = 8; class DetailsWidgetPrivate { diff --git a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp index dae3735aef4cd4ee89a2383238aa06039451bb67..29bdda82258599a0d3231b5474083aef9fe59574 100644 --- a/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp +++ b/GUI/coregui/Views/FitWidgets/FitObjectiveBuilder.cpp @@ -59,13 +59,13 @@ void FitObjectiveBuilder::runFit() auto result = requires_residuals ? minimizer.minimize( - [&](const Fit::Parameters& params) { - return m_fit_objective->evaluate_residuals(params); - }, - createParameters()) + [&](const Fit::Parameters& params) { + return m_fit_objective->evaluate_residuals(params); + }, + createParameters()) : minimizer.minimize( - [&](const Fit::Parameters& params) { return m_fit_objective->evaluate(params); }, - createParameters()); + [&](const Fit::Parameters& params) { return m_fit_objective->evaluate(params); }, + createParameters()); m_fit_objective->finalize(result); } diff --git a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp index dd3e82b56460cfa08ee79c6db98a37100baab6fc..378816dfd10b2a5525b60f1ea8b362dded06e703 100644 --- a/GUI/coregui/Views/FitWidgets/FitSessionController.cpp +++ b/GUI/coregui/Views/FitWidgets/FitSessionController.cpp @@ -75,7 +75,7 @@ void FitSessionController::onStartFittingRequest() return; try { - m_objectiveBuilder.reset(new FitObjectiveBuilder(m_jobItem)); + m_objectiveBuilder = std::make_unique<FitObjectiveBuilder>(m_jobItem); m_observer->setInterval( m_jobItem->fitSuiteItem()->getItemValue(FitSuiteItem::P_UPDATE_INTERVAL).toInt()); m_objectiveBuilder->attachObserver(m_observer); @@ -177,7 +177,7 @@ void FitSessionController::updateLog(const FitProgressInfo& info) int index(0); QVector<double> values = GUIHelpers::fromStdVector(info.parValues()); for (auto item : fitParContainer->getItems(FitParameterContainerItem::T_FIT_PARAMETERS)) { - if (item->getItems(FitParameterItem::T_LINK).size() == 0) + if (item->getItems(FitParameterItem::T_LINK).empty()) continue; QString parinfo = QString(" %1 %2\n").arg(item->displayName()).arg(values[index++]); message.append(parinfo); diff --git a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp index cd2b2fb0dfdb5643b664ebf206db4231ed0aa827..ff06be296ba7102befa3f26a64ea4c90ee87087a 100644 --- a/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp +++ b/GUI/coregui/Views/FitWidgets/GUIFitObserver.cpp @@ -24,7 +24,7 @@ GUIFitObserver::GUIFitObserver(QObject* parent) { } -GUIFitObserver::~GUIFitObserver() {} +GUIFitObserver::~GUIFitObserver() = default; void GUIFitObserver::update(const FitObjective* subject) { diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp index 609eac4705dc4b7ba5be0d0e020ebfa7e633907d..6450abe95388302f5de854c9f422d91717ef8679 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.cpp @@ -66,7 +66,7 @@ void CsvIntensityColumn::resetColumn(int colNum, double multiplier, csv::DataCol /*Csv Coordinate Column*/ // Constructors: -CsvCoordinateColumn::CsvCoordinateColumn() : CsvIntensityColumn(), m_units(AxesUnits::NBINS) {} +CsvCoordinateColumn::CsvCoordinateColumn() : CsvIntensityColumn(), m_units(Axes::Units::NBINS) {} CsvCoordinateColumn::CsvCoordinateColumn(const CsvCoordinateColumn& toCopy) : CsvIntensityColumn(toCopy), m_units(toCopy.units()) @@ -74,18 +74,18 @@ CsvCoordinateColumn::CsvCoordinateColumn(const CsvCoordinateColumn& toCopy) } CsvCoordinateColumn::CsvCoordinateColumn(int colNum, double multiplier, csv::DataColumn values, - AxesUnits units) + Axes::Units units) : CsvIntensityColumn(colNum, multiplier, values), m_units(units) { } // Getters: -AxesUnits CsvCoordinateColumn::units() const +Axes::Units CsvCoordinateColumn::units() const { return m_units; } // Setters: -void CsvCoordinateColumn::setUnits(AxesUnits const units) +void CsvCoordinateColumn::setUnits(Axes::Units const units) { m_units = units; } @@ -94,7 +94,7 @@ void CsvCoordinateColumn::setName(csv::ColumnType const name) m_name = name; } void CsvCoordinateColumn::resetColumn(int colNum, double multiplier, csv::DataColumn values, - AxesUnits units, csv::ColumnType name) + Axes::Units units, csv::ColumnType name) { CsvIntensityColumn::resetColumn(colNum, multiplier, values); m_units = units; diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h index 0fd9f3de8bfa029959578bc13444e848740ff39e..c105ac459dc8fd5812b8ae149cb6e2e56a85a570 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvDataColumn.h @@ -49,20 +49,21 @@ public: // Constructors: CsvCoordinateColumn(); CsvCoordinateColumn(const CsvCoordinateColumn& toCopy); - CsvCoordinateColumn(int colNum, double multiplier, csv::DataColumn values, AxesUnits units); + CsvCoordinateColumn(int colNum, double multiplier, csv::DataColumn values, Axes::Units units); // Getters: - AxesUnits units() const; + Axes::Units units() const; csv::ColumnType name() const { return m_name; } // Setters: - void setUnits(AxesUnits const units); + void setUnits(Axes::Units const units); void setName(csv::ColumnType const name); void resetColumn(int colNum = -1, double multiplier = 1., csv::DataColumn values = {}, - AxesUnits units = AxesUnits::NBINS, csv::ColumnType name = csv::_intensity_); + Axes::Units units = Axes::Units::NBINS, + csv::ColumnType name = csv::_intensity_); private: - AxesUnits m_units; + Axes::Units m_units; csv::ColumnType m_name; }; diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp index 6c3b29620c17d8b4099a44a0ef8f64b8146ee2f9..e800a123415fdada6b188005f6d79bddb32ad0b5 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.cpp @@ -32,7 +32,7 @@ CsvImportAssistant::CsvImportAssistant(const QString& file, const bool useGUI, QWidget* parent) : m_fileName(file), m_csvFile(nullptr), m_csvArray(), m_separator('\0'), m_intensityColNum(-1), m_intensityMultiplier(1.0), m_coordinateColNum(-1), m_coordinateMultiplier(1.0), - m_firstRow(-1), m_lastRow(-1), m_units(AxesUnits::NBINS), m_dataAvailable(false) + m_firstRow(-1), m_lastRow(-1), m_units(Axes::Units::NBINS), m_dataAvailable(false) { if (!loadCsvFile()) { return; @@ -43,7 +43,7 @@ CsvImportAssistant::CsvImportAssistant(const QString& file, const bool useGUI, Q } else { m_intensityColNum = 0; m_coordinateColNum = -1; - m_units = AxesUnits::NBINS; + m_units = Axes::Units::NBINS; m_firstRow = 0; m_lastRow = int(m_csvFile->NumberOfRows() - 1); m_dataAvailable = true; @@ -87,7 +87,7 @@ void CsvImportAssistant::setIntensityColumn(int iCol, double multiplier) m_intensityColNum = iCol - 1; m_intensityMultiplier = multiplier; } -void CsvImportAssistant::setCoordinateColumn(int iCol, AxesUnits units, double multiplier) +void CsvImportAssistant::setCoordinateColumn(int iCol, Axes::Units units, double multiplier) { m_coordinateColNum = iCol - 1; m_units = units; @@ -167,7 +167,7 @@ ImportDataInfo CsvImportAssistant::fillData() getValuesFromColumns(intensityValues, coordinateValues); - auto axisName = csv::UnitsLabels[m_units].toStdString(); + const auto axisName = axisUnitLabel.at(m_units); PointwiseAxis coordAxis(axisName, coordinateValues); resultOutputData->addAxis(coordAxis); resultOutputData->setRawDataVector(intensityValues); @@ -377,6 +377,6 @@ void CsvImportAssistant::resetSelection() m_coordinateColNum = -1; m_firstRow = -1; m_lastRow = -1; - m_units = AxesUnits::NBINS; + m_units = Axes::Units::NBINS; m_dataAvailable = false; } diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h index 8f34d3effe9ab54528ac414e8385a7b3e3bb7bf9..e2d29fe36cac4afc1dbf95a9d3e6501ef3095203 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportAssistant.h @@ -29,7 +29,7 @@ class csvSelectionState public: csvSelectionState() : m_intensityColNum(-1), m_intensityMultiplier(1.), m_coordinateColNum(-1), - m_coordinateMultiplier(1.), m_firstRow(-1), m_lastRow(-1), m_units(AxesUnits::NBINS) + m_coordinateMultiplier(1.), m_firstRow(-1), m_lastRow(-1), m_units(Axes::Units::NBINS) { } @@ -39,7 +39,7 @@ public: double m_coordinateMultiplier; int m_firstRow; int m_lastRow; - AxesUnits m_units; + Axes::Units m_units; bool availableData() { return m_intensityColNum > -1; } }; @@ -53,7 +53,7 @@ public: ImportDataInfo getData() { return m_dataAvailable ? fillData() : ImportDataInfo(); } static void showErrorMessage(std::string message); void setIntensityColumn(int iCol, double multiplier = 1.0); - void setCoordinateColumn(int iCol, AxesUnits units, double multiplier = 1.0); + void setCoordinateColumn(int iCol, Axes::Units units, double multiplier = 1.0); void setFirstRow(int iRow); void setLastRow(int iRow); size_t columnCount() { return m_csvArray[0].size(); } @@ -82,7 +82,7 @@ private: int m_firstRow; int m_lastRow; std::set<int> m_rowsToDiscard; - AxesUnits m_units; + Axes::Units m_units; bool m_dataAvailable; }; #endif // BORNAGAIN_GUI_COREGUI_VIEWS_IMPORTDATAWIDGETS_CSVIMPORTASSISTANT_CSVIMPORTASSISTANT_H diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp index 28a71e3a4f81577e8bef071ce27703a8c21c4491..a56a631a70389c41367d74fcb6e0b3e9249ad6cd 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/CsvImportTable.cpp @@ -168,14 +168,14 @@ QString CsvImportData::columnLabel(CsvImportData::DATA_TYPE type) const QList<QString> CsvImportData::availableCoordinateUnits() const { if (column(Coordinate) < 0) - return {csv::UnitsLabels[AxesUnits::NBINS]}; + return {axisUnitLabel.at(Axes::Units::NBINS)}; auto coordinate_type = m_selected_cols.at(Coordinate).name(); if (coordinate_type == csv::_q_) - return {csv::UnitsLabels[AxesUnits::QSPACE]}; + return {axisUnitLabel.at(Axes::Units::QSPACE)}; else if (coordinate_type == csv::_theta_) - return {{csv::UnitsLabels[AxesUnits::DEGREES]}, {csv::UnitsLabels[AxesUnits::RADIANS]}}; - return {csv::UnitsLabels[AxesUnits::NBINS]}; + return {{axisUnitLabel.at(Axes::Units::DEGREES)}, {axisUnitLabel.at(Axes::Units::RADIANS)}}; + return {axisUnitLabel.at(Axes::Units::NBINS)}; } size_t CsvImportData::nCols() const diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp index d87e4295c13bbd6bd3796b3dc1b5bc4e034a285a..ae5f267114f546b38056932c09035a97dc931161 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.cpp @@ -139,7 +139,7 @@ void DataSelector::updateSelection() m_coordinateUnitsComboBox->setEnabled(true); } else { m_coordinateUnitsComboBox->clear(); - m_coordinateUnitsComboBox->addItem(csv::UnitsLabels[AxesUnits::NBINS]); + m_coordinateUnitsComboBox->addItem(axisUnitLabel.at(Axes::Units::NBINS)); } } @@ -223,13 +223,14 @@ size_t DataSelector::maxLines() const return size_t(m_lastDataRowSpinBox->maximum()); } -AxesUnits DataSelector::units() const +Axes::Units DataSelector::units() const { - AxesUnits defaultUnits = AxesUnits::NBINS; - for (int i = 0; i < csv::UnitsLabels.size(); i++) - if (m_coordinateUnitsComboBox->currentText() == csv::UnitsLabels[i]) - return AxesUnits(i); - return defaultUnits; + for (int i = 0; i < csv::UnitsLabels.size(); i++) { + const Axes::Units u = static_cast<Axes::Units>(i); + if (m_coordinateUnitsComboBox->currentText() == QString(axisUnitLabel.at(u))) + return u; + } + return Axes::Units::NBINS; // default } char DataSelector::separator() const @@ -322,7 +323,7 @@ QBoxLayout* DataSelector::createLayout() m_coordinateUnitsComboBox = new QComboBox(); m_coordinateUnitsComboBox->setMaximumWidth(70); m_coordinateUnitsComboBox->setMinimumWidth(70); - m_coordinateUnitsComboBox->addItem(csv::UnitsLabels[AxesUnits::NBINS]); + m_coordinateUnitsComboBox->addItem(axisUnitLabel.at(Axes::Units::NBINS)); auto layout = new QVBoxLayout; layout->setContentsMargins(0, 0, 0, 0); diff --git a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h index aa41d17a7935a30c05185f8de2525a6b1186fed0..12a5b3d7bf64a8c65fcc420a598c5b4f7d901b47 100644 --- a/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h +++ b/GUI/coregui/Views/ImportDataWidgets/CsvImportAssistant/DataSelector.h @@ -44,7 +44,7 @@ public: double intensityMultiplier() const { return m_tableWidget->intensityMultiplier(); } double coordinateMultiplier() const { return m_tableWidget->coordinateMultiplier(); } std::set<int> rowsToDiscard() const { return m_tableWidget->rowsToDiscard(); } - AxesUnits units() const; + Axes::Units units() const; void setDataArray(csv::DataArray csvArray) { m_data = std::move(csvArray); diff --git a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp index 4c69e96955a1b87732db555146d2e8eec186227b..5bf848948210920770b72a9da25c5b8d2238804d 100644 --- a/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp +++ b/GUI/coregui/Views/ImportDataWidgets/ImportDataUtils.cpp @@ -89,13 +89,13 @@ ImportDataInfo ImportDataUtils::Import1dData(QString& fileName) || DataFormatUtils::isIntFile(fileName.toStdString()) || DataFormatUtils::isTiffFile(fileName.toStdString())) { try { - return ImportDataInfo(ImportKnownData(fileName), AxesUnits::QSPACE); + return ImportDataInfo(ImportKnownData(fileName), Axes::Units::QSPACE); } catch (...) { return getFromImportAssistant(fileName); } } else { try { - return ImportDataInfo(ImportReflectometryData(fileName), AxesUnits::QSPACE); + return ImportDataInfo(ImportReflectometryData(fileName), Axes::Units::QSPACE); } catch (...) { QString message = QString("There was a problem while trying to import data from " diff --git a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp index 3d79534afdb596d5b2cf38da5631cd03b1015b05..c2861b4b7715a98bf9610bce8136edfba59a0ed5 100644 --- a/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp +++ b/GUI/coregui/Views/IntensityDataWidgets/ProjectionsPlot.cpp @@ -169,7 +169,7 @@ void ProjectionsPlot::unsubscribeFromChildren() void ProjectionsPlot::updateProjectionsData() { - m_hist2d.reset(new Histogram2D(*intensityItem()->getOutputData())); + m_hist2d = std::make_unique<Histogram2D>(*intensityItem()->getOutputData()); updateAxesRange(); updateAxesTitle(); setLogz(intensityItem()->isLogz()); diff --git a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp index 495d6185a00c83f7fe9d94f5f39bfa09365df65b..67b54da97c59aba3b6fa7754799159de219f23fe 100644 --- a/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp +++ b/GUI/coregui/Views/IntensityDataWidgets/SaveProjectionsAssistant.cpp @@ -62,7 +62,7 @@ void SaveProjectionsAssistant::saveProjections(QWidget* parent, IntensityDataIte throw GUIHelpers::Error("TestProjectUtils::createTestFile() -> Error. " "Can't create file"); - m_hist2d.reset(new Histogram2D(*intensityItem->getOutputData())); + m_hist2d = std::make_unique<Histogram2D>(*intensityItem->getOutputData()); QTextStream out(&file); diff --git a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp index 5e144ee0138e0f75aa20d604dc3e507662757665..eed5b59a6293f7021652e4c50e7a1ecfe33f3808 100644 --- a/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp +++ b/GUI/coregui/Views/JobWidgets/JobSelectorActions.cpp @@ -115,7 +115,7 @@ void JobSelectorActions::initItemContextMenu(QMenu& menu, const QModelIndex& ind QModelIndex targetIndex = indexAtPoint; if (!targetIndex.isValid()) { QModelIndexList indexList = m_selectionModel->selectedIndexes(); - if (indexList.size()) + if (!indexList.empty()) targetIndex = indexList.first(); } m_runJobAction->setEnabled(canRunJob(targetIndex)); diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp index d50b00da3f26444f5308b72d51162289c01727b5..07efb7fad8fb80b6d5d33dfe2c937f9d5d631af9 100644 --- a/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp +++ b/GUI/coregui/Views/JobWidgets/ParameterTuningDelegate.cpp @@ -92,7 +92,7 @@ ParameterTuningDelegate::ParameterTuningDelegate(QObject* parent) { } -ParameterTuningDelegate::~ParameterTuningDelegate() {} +ParameterTuningDelegate::~ParameterTuningDelegate() = default; void ParameterTuningDelegate::paint(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& index) const diff --git a/GUI/coregui/Views/MaskWidgets/EllipseView.cpp b/GUI/coregui/Views/MaskWidgets/EllipseView.cpp index 2d7748a35071460698160b4fd61e230ee66b9ae5..5606a2f7781a9780fd2e720d9da56510de6fa8e3 100644 --- a/GUI/coregui/Views/MaskWidgets/EllipseView.cpp +++ b/GUI/coregui/Views/MaskWidgets/EllipseView.cpp @@ -18,7 +18,7 @@ #include <QGraphicsSceneMouseEvent> #include <QPainter> -EllipseView::EllipseView() {} +EllipseView::EllipseView() = default; void EllipseView::onChangedX() { diff --git a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp index ee403d40ec00ed3e3f6c7c333840bbe38e58c7c3..47af7004027e533a9ab59da68fb6644edc4d20dd 100644 --- a/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp +++ b/GUI/coregui/Views/MaskWidgets/MaskEditorPropertyPanel.cpp @@ -123,7 +123,7 @@ void MaskEditorPropertyPanel::setPanelHidden(bool value) m_plotPropertyEditor->setItem(nullptr); } else { QModelIndexList indexes = selectionModel()->selectedIndexes(); - if (indexes.size()) + if (!indexes.empty()) m_maskPropertyEditor->setItem(m_maskModel->itemForIndex(indexes.front())); m_plotPropertyEditor->setItem(m_intensityDataItem); @@ -133,7 +133,7 @@ void MaskEditorPropertyPanel::setPanelHidden(bool value) void MaskEditorPropertyPanel::onSelectionChanged(const QItemSelection& selected, const QItemSelection&) { - if (selected.size()) + if (!selected.empty()) m_maskPropertyEditor->setItem(m_maskModel->itemForIndex(selected.indexes().front())); else m_maskPropertyEditor->setItem(nullptr); diff --git a/GUI/coregui/Views/MaskWidgets/RectangleView.cpp b/GUI/coregui/Views/MaskWidgets/RectangleView.cpp index 879b27853444488d5379fd294370b4fe33c32a13..a08c5d4b953519dd21edba38843f3d0898e669bb 100644 --- a/GUI/coregui/Views/MaskWidgets/RectangleView.cpp +++ b/GUI/coregui/Views/MaskWidgets/RectangleView.cpp @@ -17,7 +17,7 @@ #include <QGraphicsSceneMouseEvent> #include <QPainter> -RectangleView::RectangleView() {} +RectangleView::RectangleView() = default; void RectangleView::onChangedX() { diff --git a/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp b/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp index fff77a123707db07874133aef216b3eb48eb0c41..fce9a49c5ef0356da5aa7dba8403189115e52377 100644 --- a/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp +++ b/GUI/coregui/Views/MaterialEditor/ExternalProperty.cpp @@ -16,7 +16,7 @@ #include "GUI/coregui/Models/MaterialItem.h" #include "GUI/coregui/Models/MaterialModel.h" -ExternalProperty::ExternalProperty() {} +ExternalProperty::ExternalProperty() = default; QString ExternalProperty::text() const { diff --git a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp index 675567f7fd3c79f3816f1757d333cdd04429c8b1..9f4248ee7fd6b2c81c8411474a7cb392ca9d9ef6 100644 --- a/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp +++ b/GUI/coregui/Views/PropertyEditor/MultiComboPropertyEditor.cpp @@ -96,7 +96,7 @@ void MultiComboPropertyEditor::onModelDataChanged(const QModelIndex& topLeft, co return; ComboProperty comboProperty = m_data.value<ComboProperty>(); - auto state = item->checkState() == Qt::Checked ? true : false; + auto state = item->checkState() == Qt::Checked; comboProperty.setSelected(topLeft.row(), state); updateBoxLabel(); diff --git a/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp b/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp index bfd5971d6dfb51f5e715f25117a92ca25656eea9..3f2c1aa2f35bc0723311cfefaf4185cb3db55cf3 100644 --- a/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp +++ b/GUI/coregui/Views/PropertyEditor/TestComponentView.cpp @@ -130,7 +130,7 @@ void TestComponentView::onSelectionChanged(const QItemSelection& selected, const { QModelIndexList indices = selected.indexes(); - if (indices.size()) { + if (!indices.empty()) { // QModelIndex selectedIndex = indices.front(); // m_componentTree->setRootIndex(selectedIndex); // m_componentTree->treeView()->expandAll(); diff --git a/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp index 77cca438bc717e5ec60024a86d64daad48009e8a..7f53720907d95f6515462132b85d23d2e90f2dbe 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.cpp @@ -13,8 +13,8 @@ // ************************************************************************** // #include "GUI/coregui/Views/RealSpaceWidgets/IPositionBuilder.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Lattice/Lattice2D.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Views/RealSpaceWidgets/RealSpace2DParacrystalUtils.h" #include <cmath> #include <random> diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp index ca86d502f29ac2606be2607b4bc0da943569c8b1..2b5867480a0331d0ea77ad557e1f6bb5f7b49538 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.cpp @@ -13,10 +13,10 @@ // ************************************************************************** // #include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilder.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Units.h" #include "Core/Particle/Particle.h" #include "Core/Particle/ParticleCoreShell.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/ba3d/model/layer.h" #include "GUI/coregui/Models/InterferenceFunctionItems.h" #include "GUI/coregui/Models/Lattice2DItems.h" @@ -46,7 +46,7 @@ std::unique_ptr<IInterferenceFunction> GetInterferenceFunction(const SessionItem RealSpaceBuilder::RealSpaceBuilder(QWidget* parent) : QWidget(parent) {} -RealSpaceBuilder::~RealSpaceBuilder() {} +RealSpaceBuilder::~RealSpaceBuilder() = default; void RealSpaceBuilder::populate(RealSpaceModel* model, const SessionItem& item, const SceneGeometry& sceneGeometry, @@ -88,7 +88,7 @@ void RealSpaceBuilder::populateMultiLayer(RealSpaceModel* model, const SessionIt int index(0); for (auto layer : item.getItems(MultiLayerItem::T_LAYERS)) { - bool isTopLayer = index == 0 ? true : false; + bool isTopLayer = index == 0; populateLayer(model, *layer, sceneGeometry, QVector3D(0, 0, static_cast<float>(-total_height)), isTopLayer); diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp index b45578044abd7a2ca95fe2cc2b6ded248b517fec..af9ddc8e13e37c0f98e86578fec4c6f38f4563f4 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.cpp @@ -13,6 +13,7 @@ // ************************************************************************** // #include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceBuilderUtils.h" +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Exceptions.h" #include "Core/Basics/Units.h" #include "Core/Particle/FormFactorCrystal.h" @@ -23,7 +24,6 @@ #include "Core/Particle/ParticleDistribution.h" #include "Core/Scattering/IFormFactorDecorator.h" #include "Core/Scattering/Rotations.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Models/InterferenceFunctionItems.h" #include "GUI/coregui/Models/Lattice2DItems.h" #include "GUI/coregui/Models/LayerItem.h" diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp index eb61ad7ba9244a69b1afcf153b29f94dd3a8aea0..adcd229f925363c531865e3832d5d7ea290c06dc 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceCanvas.cpp @@ -81,7 +81,7 @@ void RealSpaceCanvas::updateToSelection() if (!m_view_locked) { QModelIndexList indices = m_selectionModel->selection().indexes(); - if (indices.size()) + if (!indices.empty()) m_currentSelection = FilterPropertyProxy::toSourceIndex(indices.back()); else m_currentSelection = {}; @@ -242,8 +242,9 @@ void RealSpaceCanvas::setConnected(SampleModel* model, bool makeConnected) Qt::UniqueConnection); connect(model, &SampleModel::modelReset, this, &RealSpaceCanvas::resetScene, Qt::UniqueConnection); - connect(model, &SampleModel::modelAboutToBeReset, this, [&]() { m_currentSelection = {}; }, - Qt::UniqueConnection); + connect( + model, &SampleModel::modelAboutToBeReset, this, [&]() { m_currentSelection = {}; }, + Qt::UniqueConnection); } else { disconnect(model, &SampleModel::rowsInserted, this, &RealSpaceCanvas::updateScene); diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp index be67cebf8d62bf8f54967e8350b926321bdadfce..d2bb7af2accdd2bb1c08981fb6b7b9fbe6236745 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.cpp @@ -15,13 +15,13 @@ #include "GUI/coregui/Views/RealSpaceWidgets/RealSpaceMesoCrystalUtils.h" #include "Core/Basics/Exceptions.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Particle/IParticle.h" #include "Core/Particle/MesoCrystal.h" #include "Core/Particle/Particle.h" #include "Core/Particle/ParticleCoreShell.h" #include "Core/Particle/ParticleDistribution.h" #include "Core/Scattering/IFormFactor.h" -#include "Core/includeIncludes/HardParticles.h" #include "GUI/ba3d/model/particles.h" #include "GUI/coregui/Models/Lattice2DItems.h" #include "GUI/coregui/Models/MesoCrystalItem.h" @@ -348,7 +348,7 @@ bool isPositionInsideMesoCrystal(const IFormFactor* outerShape, kvector_t positi } } // namespace -RealSpaceMesoCrystal::~RealSpaceMesoCrystal() {} +RealSpaceMesoCrystal::~RealSpaceMesoCrystal() = default; RealSpaceMesoCrystal::RealSpaceMesoCrystal(const MesoCrystalItem* mesoCrystalItem, double total_abundance, const QVector3D& origin) diff --git a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp index 164490fe6fa5afe5046577aa9c3e162f8c5b4575..d650ccc1c57c13477f08f92b5e4de2a76c502a6b 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/RealSpacePositionBuilder.cpp @@ -23,27 +23,27 @@ RealSpacePositionBuilder::~RealSpacePositionBuilder() = default; void RealSpacePositionBuilder::visit(const InterferenceFunction1DLattice* p_iff) { - mP_pos_builder.reset(new Lattice1DPositionBuilder(p_iff)); + mP_pos_builder = std::make_unique<Lattice1DPositionBuilder>(p_iff); } void RealSpacePositionBuilder::visit(const InterferenceFunction2DLattice* p_iff) { - mP_pos_builder.reset(new Lattice2DPositionBuilder(p_iff)); + mP_pos_builder = std::make_unique<Lattice2DPositionBuilder>(p_iff); } void RealSpacePositionBuilder::visit(const InterferenceFunction2DParaCrystal* p_iff) { - mP_pos_builder.reset(new ParaCrystal2DPositionBuilder(p_iff)); + mP_pos_builder = std::make_unique<ParaCrystal2DPositionBuilder>(p_iff); } void RealSpacePositionBuilder::visit(const InterferenceFunctionFinite2DLattice* p_iff) { - mP_pos_builder.reset(new Finite2DLatticePositionBuilder(p_iff)); + mP_pos_builder = std::make_unique<Finite2DLatticePositionBuilder>(p_iff); } void RealSpacePositionBuilder::visit(const InterferenceFunctionRadialParaCrystal* p_iff) { - mP_pos_builder.reset(new RadialParacrystalPositionBuilder(p_iff)); + mP_pos_builder = std::make_unique<RadialParacrystalPositionBuilder>(p_iff); } void RealSpacePositionBuilder::visit(const InterferenceFunctionNone*) diff --git a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp index 0867a3c98d2d7be969e3c5d8636bff1e929523b6..33c2694cbd5a69437ea9959cc7e62d5493b27cb3 100644 --- a/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp +++ b/GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.cpp @@ -14,8 +14,8 @@ #include "GUI/coregui/Views/RealSpaceWidgets/TransformTo3D.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Particle/ParticleComposition.h" -#include "Core/includeIncludes/HardParticles.h" #include "GUI/coregui/Models/FormFactorItems.h" #include "GUI/coregui/Models/GUIDomainSampleVisitor.h" #include "GUI/coregui/Models/LayerItem.h" diff --git a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp index 279302d0deaa72c8f765a48e0f7d2fb796782de3..5ca043437596f55b46c24a6cd66fe214ca55badd 100644 --- a/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp +++ b/GUI/coregui/Views/SampleDesigner/DesignerMimeData.cpp @@ -91,7 +91,7 @@ void DesignerMimeData::read_widget(QXmlStreamReader& reader) Qt::DropAction DesignerMimeData::execDrag(const QString& name, const QString& xmldescr, QWidget* dragSource) { - if (!xmldescr.size()) + if (xmldescr.size() == 0) return Qt::IgnoreAction; QDrag* drag = new QDrag(dragSource); diff --git a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp index c1f2da5f1c1712dc882b8dde2ad2780f762e08b3..55094908a307ac79c611d1805e161a834a895f3a 100644 --- a/GUI/coregui/Views/SampleDesigner/ILayerView.cpp +++ b/GUI/coregui/Views/SampleDesigner/ILayerView.cpp @@ -246,7 +246,7 @@ MultiLayerCandidate ILayerView::getMultiLayerCandidate() } } // sorting MultiLayerView candidates to find one whose drop area is closer - if (candidates.size()) { + if (!candidates.empty()) { std::sort(candidates.begin(), candidates.end()); return candidates.back(); } diff --git a/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp b/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp index 76ab8314d37b1bf6d5402c018e0101ad42b75d32..ef8fcd7b457b353a55cd150771e4959572456d86 100644 --- a/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp +++ b/GUI/coregui/Views/SampleDesigner/ItemTreeView.cpp @@ -28,7 +28,7 @@ ItemTreeView::ItemTreeView(QWidget* parent) : QTreeView(parent) setDragDropMode(QAbstractItemView::InternalMove); } -ItemTreeView::~ItemTreeView() {} +ItemTreeView::~ItemTreeView() = default; void ItemTreeView::dragMoveEvent(QDragMoveEvent* event) { diff --git a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp index b3cc843b84da2b23919c3778a3a6f511bd920b51..3445d7e3935cd2c9e9d23cd1c5b70f62cd3b9857 100644 --- a/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp +++ b/GUI/coregui/Views/SampleDesigner/MultiLayerView.cpp @@ -37,7 +37,7 @@ MultiLayerView::MultiLayerView(QGraphicsItem* parent) : ILayerView(parent) QRectF MultiLayerView::boundingRect() const { QRectF result = m_rect; - if (m_layers.size()) { + if (!m_layers.empty()) { qreal toplayer_height = m_layers.front()->boundingRect().height(); qreal bottomlayer_height = m_layers.back()->boundingRect().height(); result.setTop(-toplayer_height / 2.); @@ -118,7 +118,7 @@ void MultiLayerView::updateHeight() m_interfaces.clear(); int total_height = 0; - if (m_layers.size()) { + if (!m_layers.empty()) { for (ILayerView* layer : m_layers) { layer->setY(total_height); layer->update(); diff --git a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp index 8134b849aa339c524593805a7063c730ced548a5..6c13f9572e04b7a2081e009e45ecb354b5b4e9ce 100644 --- a/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp +++ b/GUI/coregui/Views/SampleDesigner/NodeEditorPort.cpp @@ -55,7 +55,7 @@ NodeEditorPort::~NodeEditorPort() bool NodeEditorPort::isOutput() { - return (m_direction == OUTPUT ? true : false); + return (m_direction == OUTPUT); } bool NodeEditorPort::isInput() diff --git a/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp b/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp index 02b85a8c02d40db829a1c5937f8ef1f2284f267e..b6e2744a0842fd1e12fe39063f6b030b53175396 100644 --- a/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp +++ b/GUI/coregui/Views/SampleDesigner/SampleDesigner.cpp @@ -27,7 +27,7 @@ SampleDesigner::SampleDesigner(QWidget* parent) m_designerView = new DesignerView(m_designerScene, parent); } -SampleDesigner::~SampleDesigner() {} +SampleDesigner::~SampleDesigner() = default; void SampleDesigner::setModels(ApplicationModels* models) { diff --git a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp index 808e423f2cd1371f3d1a2f8b9f8a18f92272047b..0af33132b727130525b86230798ed8c1d0880501 100644 --- a/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp +++ b/GUI/coregui/Views/SampleDesigner/SamplePropertyWidget.cpp @@ -72,7 +72,7 @@ void SamplePropertyWidget::selectionChanged(const QItemSelection& selected, cons { QModelIndexList indices = selected.indexes(); - if (indices.size()) { + if (!indices.empty()) { QModelIndex index = indices.back(); if (auto proxy = dynamic_cast<QSortFilterProxyModel*>( diff --git a/GUI/coregui/Views/widgetbox/widgetbox.cpp b/GUI/coregui/Views/widgetbox/widgetbox.cpp index 68aa0e58ce9e4c850ca170c47b5fe8bb9187e2ec..bf5794e113948663c7cfa9ac3ec8a75c706f95cf 100644 --- a/GUI/coregui/Views/widgetbox/widgetbox.cpp +++ b/GUI/coregui/Views/widgetbox/widgetbox.cpp @@ -157,7 +157,7 @@ WidgetBox::WidgetBox(SampleDesignerInterface* core, QWidget* parent, Qt::WindowF // setAcceptDrops (true); } -WidgetBox::~WidgetBox() {} +WidgetBox::~WidgetBox() = default; // QDesignerFormEditorInterface *WidgetBox::core() const //{ diff --git a/GUI/coregui/mainwindow/SaveService.cpp b/GUI/coregui/mainwindow/SaveService.cpp index 5b7b63f916042a02d5f30acb5aec3d5c02fe46d1..d9274daa179937a09155526e6297593ba65d7a54 100644 --- a/GUI/coregui/mainwindow/SaveService.cpp +++ b/GUI/coregui/mainwindow/SaveService.cpp @@ -63,7 +63,7 @@ void SaveService::setAutosaveEnabled(bool value) bool SaveService::isAutosaveEnabled() const { - return m_autosave ? true : false; + return m_autosave; } void SaveService::setAutosaveTime(int timerInterval) diff --git a/GUI/coregui/utils/ImportDataInfo.cpp b/GUI/coregui/utils/ImportDataInfo.cpp index afa8c63f124b7ed07689150aa53b234c5dd45d02..ba22e3d0ad81ab8f8ab7f06383ef1b2a8db1bbb2 100644 --- a/GUI/coregui/utils/ImportDataInfo.cpp +++ b/GUI/coregui/utils/ImportDataInfo.cpp @@ -21,9 +21,9 @@ namespace { -std::vector<AxesUnits> specularUnits() +std::vector<Axes::Units> specularUnits() { - std::vector<AxesUnits> result; + std::vector<Axes::Units> result; const auto units_map = AxisNames::InitSpecAxis(); for (auto& pair : units_map) result.push_back(pair.first); @@ -31,20 +31,21 @@ std::vector<AxesUnits> specularUnits() } // map: data rank --> available units -std::map<size_t, std::vector<AxesUnits>> available_units = {{1u, specularUnits()}, - {2u, {AxesUnits::NBINS}}}; +std::map<size_t, std::vector<Axes::Units>> available_units = {{1u, specularUnits()}, + {2u, {Axes::Units::NBINS}}}; } // namespace -ImportDataInfo::ImportDataInfo() {} +ImportDataInfo::ImportDataInfo() = default; ImportDataInfo::ImportDataInfo(ImportDataInfo&& other) : m_data(std::move(other.m_data)), m_units(other.m_units) { } -ImportDataInfo::ImportDataInfo(std::unique_ptr<OutputData<double>> data, AxesUnits units) - : m_data(units == AxesUnits::NBINS && data ? ImportDataUtils::CreateSimplifiedOutputData(*data) - : std::move(data)), +ImportDataInfo::ImportDataInfo(std::unique_ptr<OutputData<double>> data, Axes::Units units) + : m_data(units == Axes::Units::NBINS && data + ? ImportDataUtils::CreateSimplifiedOutputData(*data) + : std::move(data)), m_units(units) { checkValidity(); diff --git a/GUI/coregui/utils/ImportDataInfo.h b/GUI/coregui/utils/ImportDataInfo.h index 9718f34f24cbe1e4600607740edd6ab2607013db..2925df549972765c8c11696bb4358b084799dca2 100644 --- a/GUI/coregui/utils/ImportDataInfo.h +++ b/GUI/coregui/utils/ImportDataInfo.h @@ -28,7 +28,7 @@ class ImportDataInfo public: ImportDataInfo(); ImportDataInfo(ImportDataInfo&& other); - ImportDataInfo(std::unique_ptr<OutputData<double>> data, AxesUnits units); + ImportDataInfo(std::unique_ptr<OutputData<double>> data, Axes::Units units); ImportDataInfo(std::unique_ptr<OutputData<double>> data, const QString& units); ~ImportDataInfo(); @@ -43,7 +43,7 @@ public: private: void checkValidity(); std::unique_ptr<OutputData<double>> m_data; - AxesUnits m_units; + Axes::Units m_units; }; #endif // BORNAGAIN_GUI_COREGUI_UTILS_IMPORTDATAINFO_H diff --git a/GUI/main/MessageHandler.cpp b/GUI/main/MessageHandler.cpp index b2086165c99486bd7a5f63a12865e5c6c7e27913..99a18d5309639a02002527a2ec41d7114dbdf0ab 100644 --- a/GUI/main/MessageHandler.cpp +++ b/GUI/main/MessageHandler.cpp @@ -21,7 +21,7 @@ void MessageHandler(QtMsgType type, const QMessageLogContext&, const QString& ms { switch (type) { case QtDebugMsg: - if (!msg.size()) // KDE will pass a zero-length msg qstring + if (msg.size() == 0) // KDE will pass a zero-length msg qstring break; std::cerr << "DEBUG: " << msg.toStdString() << std::endl; break; diff --git a/GUI/main/appoptions.cpp b/GUI/main/appoptions.cpp index 7cb7c7b18dd03a4d0eecd3d2eaad607ad8186a92..b4310b20b8934b728d35be636ab3618f3c5e6f2b 100644 --- a/GUI/main/appoptions.cpp +++ b/GUI/main/appoptions.cpp @@ -70,7 +70,7 @@ const bpo::variable_value& ApplicationOptions::operator[](const std::string& s) bool ApplicationOptions::find(std::string name) const { - return (m_variables_map.count(name.c_str()) ? true : false); + return (m_variables_map.count(name.c_str())); } bool ApplicationOptions::isConsistent() const diff --git a/GUI/main/main.cpp b/GUI/main/main.cpp index a1fa6610b1c49188fc6f4cce3bbcb9f3daf98fb1..8272b1aa8c814126f3afc0cb628c2fe814c52c0b 100644 --- a/GUI/main/main.cpp +++ b/GUI/main/main.cpp @@ -54,5 +54,5 @@ int main(int argc, char* argv[]) if (splash) splash->finish(&win); - return app.exec(); + return QApplication::exec(); } diff --git a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp index f2154dad3b309c63c44c40515075aca962a48b8f..2a992a0b460ee80b12ace996bd7b9123367624e0 100644 --- a/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp +++ b/Tests/Functional/Core/CoreSpecial/BatchSimulation.cpp @@ -50,7 +50,7 @@ TEST_F(BatchSimulation, BatchSimulation) batch->runSimulation(); auto batch_result = batch->result(); std::unique_ptr<OutputData<double>> batchResult(batch_result.data()); - *result += *batchResult.get(); + *result += *batchResult; } double diff = IntensityDataFunctions::getRelativeDifference(*result, *reference); diff --git a/Tests/Functional/GUI/Other/SaveLoadProject.cpp b/Tests/Functional/GUI/Other/SaveLoadProject.cpp index f785d40b6a738924899ac9068a2436d230dc538b..d03b7a86e91c1182fee025b6604a06d7592c5589 100644 --- a/Tests/Functional/GUI/Other/SaveLoadProject.cpp +++ b/Tests/Functional/GUI/Other/SaveLoadProject.cpp @@ -75,7 +75,7 @@ bool GUISaveLoadProject::runTest() // analyze difference nerr += check_difference(projectName1, projectName2); - return nerr == 0 ? true : false; + return nerr == 0; } int GUISaveLoadProject::run_job() diff --git a/Tests/Functional/GUI/Translate/GUITranslationTest.cpp b/Tests/Functional/GUI/Translate/GUITranslationTest.cpp index 6af5b06f4427c8ce4e2d45c83e9dc7e69bec8b95..dd1da306d8bbdb76e4575723d9ddab33297d1fc6 100644 --- a/Tests/Functional/GUI/Translate/GUITranslationTest.cpp +++ b/Tests/Functional/GUI/Translate/GUITranslationTest.cpp @@ -120,7 +120,7 @@ GUITranslationTest::GUITranslationTest(const std::string& simName, const std::st m_simulation->setSample(*sampleFactory.createSampleByName(m_sampleName)); } -GUITranslationTest::~GUITranslationTest() {} +GUITranslationTest::~GUITranslationTest() = default; bool GUITranslationTest::runTest() { @@ -258,7 +258,7 @@ bool GUITranslationTest::checkExistingTranslations() } std::cout << ostr.str(); - bool isSuccess = (wrong_translations.empty() ? true : false); + bool isSuccess = (wrong_translations.empty()); return isSuccess; } @@ -288,7 +288,7 @@ bool GUITranslationTest::checkMissedTranslations() } } - if (missedNames.size()) { + if (!missedNames.empty()) { std::cout << header() << std::endl; std::cout << "Translation doesn't exist:" << std::endl; std::cout << header() << std::endl; @@ -296,6 +296,6 @@ bool GUITranslationTest::checkMissedTranslations() std::cout << "domain : " << name << std::endl; } - bool isSuccess = (missedNames.empty() ? true : false); + bool isSuccess = (missedNames.empty()); return isSuccess; } diff --git a/Tests/Performance/Core/CoreIO.cpp b/Tests/Performance/Core/CoreIO.cpp index 1971c84bc833563d612f875faac36556635c0a8f..52eabeb56d0a4c9464505faed87275c4732f025a 100644 --- a/Tests/Performance/Core/CoreIO.cpp +++ b/Tests/Performance/Core/CoreIO.cpp @@ -118,7 +118,7 @@ bool test_io(int nx, int ny, bool random_data, const std::string& ext) results.push_back(result); - bool success = result.m_biggest_diff < 1e-10 ? true : false; + bool success = result.m_biggest_diff < 1e-10; return success; } diff --git a/Tests/Performance/Core/Mesocrystal.cpp b/Tests/Performance/Core/Mesocrystal.cpp index babad9965f3776a7c82cf153cb2c954e9c9daf97..1d40be16472d0585aec431e33379ed9cb64b5d59 100644 --- a/Tests/Performance/Core/Mesocrystal.cpp +++ b/Tests/Performance/Core/Mesocrystal.cpp @@ -75,7 +75,7 @@ public: ~MesoCrystalPerformanceBuilder(); protected: - MultiLayer* buildSample() const; + MultiLayer* buildSample() const override; private: std::unique_ptr<MesoCrystal> createMeso(Material material, @@ -146,7 +146,7 @@ MultiLayer* MesoCrystalPerformanceBuilder::buildSample() const RotationX rotX(tilt); mesocrystal->setRotation(rotZ); mesocrystal->rotate(rotX); - particle_decoration.addParticle(*mesocrystal.get(), 1.0, + particle_decoration.addParticle(*mesocrystal, 1.0, kvector_t(0, 0, -m_meso_height)); } } @@ -198,7 +198,7 @@ int main() auto detector = create_detector(); - simulation.setDetector(*detector.get()); + simulation.setDetector(*detector); simulation.setBeamParameters(1.77 * Units::angstrom, 0.4 * Units::deg, 0.0); simulation.setBeamIntensity(6.1e+12); diff --git a/Tests/Performance/GUI/CsvImportAssistantPerformanceTest.cpp b/Tests/Performance/GUI/CsvImportAssistantPerformanceTest.cpp index 8123d3b8847143fb8f7b58e7cf5590d7cf75d523..20cfac7d95f624d2d4c0848ab474dba53926b1d3 100644 --- a/Tests/Performance/GUI/CsvImportAssistantPerformanceTest.cpp +++ b/Tests/Performance/GUI/CsvImportAssistantPerformanceTest.cpp @@ -67,7 +67,7 @@ bool CsvImportAssistantPerformanceTest::runTest() // Reading and setting data to import: CsvImportAssistant assistant(testFilename()); assistant.setIntensityColumn(1); - assistant.setCoordinateColumn(9, AxesUnits::DEGREES); + assistant.setCoordinateColumn(9, Axes::Units::DEGREES); assistant.setFirstRow(1); assistant.setLastRow(int(nRows)); diff --git a/Tests/Performance/GUI/GUIPerformanceTest.cpp b/Tests/Performance/GUI/GUIPerformanceTest.cpp index fe132bf0a1b24deb4abafecd4d484a16237e8b43..458cc568cb075a9fa5b19026107ac1d3c00bac69 100644 --- a/Tests/Performance/GUI/GUIPerformanceTest.cpp +++ b/Tests/Performance/GUI/GUIPerformanceTest.cpp @@ -61,9 +61,12 @@ bool GUIPerformanceTest::runTest() std::cout << "GUIPerformanceTest -> Running ..." << mult << std::endl; Benchmark bench; - bench.test_method("domain2gui", [this]() { test_domain_to_gui(); }, 300 * mult); - bench.test_method("gui2domain", [this]() { test_gui_to_domain(); }, 100 * mult); - bench.test_method("realTime", [this]() { test_real_time(); }, 2 * mult); + bench.test_method( + "domain2gui", [this]() { test_domain_to_gui(); }, 300 * mult); + bench.test_method( + "gui2domain", [this]() { test_gui_to_domain(); }, 100 * mult); + bench.test_method( + "realTime", [this]() { test_real_time(); }, 2 * mult); std::cout << bench.report() << std::endl; return true; diff --git a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp index a16eafeea67d898cc9ec2c5b2369b35987856930..0b44d96c59bd4c04cba32bce106a1a910853d530 100644 --- a/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp +++ b/Tests/UnitTests/Core/Axes/DepthProbeConverterTest.cpp @@ -11,8 +11,8 @@ protected: DepthProbeConverterTest(); void checkMainFunctionality(const DepthProbeConverter& test_object); - void checkAlphaAxis(AxesUnits units, const DepthProbeConverter& test_object); - void checkZAxis(AxesUnits units, const DepthProbeConverter& test_object); + void checkAlphaAxis(Axes::Units units, const DepthProbeConverter& test_object); + void checkZAxis(Axes::Units units, const DepthProbeConverter& test_object); const double m_alpha_start = 0.5; // first axis value in rads const double m_alpha_end = 1.0; // last axis value in rads const double m_z_start = -30.0; @@ -36,38 +36,39 @@ void DepthProbeConverterTest::checkMainFunctionality(const DepthProbeConverter& { EXPECT_EQ(test_object.dimension(), 2u); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::DEFAULT), 2.8647889757e+1, + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::DEFAULT), 2.8647889757e+1, 2.8647889757e+1 * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::DEGREES), 2.8647889757e+1, + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::DEGREES), 2.8647889757e+1, 2.8647889757e+1 * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::QSPACE), 6.0246390001, 6.0246390001 * 1e-10); - EXPECT_EQ(test_object.calculateMin(0, AxesUnits::RADIANS), m_alpha_start); - EXPECT_EQ(test_object.calculateMin(0, AxesUnits::NBINS), 0.0); + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::QSPACE), 6.0246390001, + 6.0246390001 * 1e-10); + EXPECT_EQ(test_object.calculateMin(0, Axes::Units::RADIANS), m_alpha_start); + EXPECT_EQ(test_object.calculateMin(0, Axes::Units::NBINS), 0.0); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::DEFAULT), 5.7295779513e+1, + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::DEFAULT), 5.7295779513e+1, 5.7295779513e+1 * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::DEGREES), 5.7295779513e+1, + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::DEGREES), 5.7295779513e+1, 5.7295779513e+1 * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::QSPACE), 1.0574236256e+1, + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::QSPACE), 1.0574236256e+1, 1.0574236256e+1 * 1e-10); - EXPECT_EQ(test_object.calculateMax(0, AxesUnits::RADIANS), m_alpha_end); + EXPECT_EQ(test_object.calculateMax(0, Axes::Units::RADIANS), m_alpha_end); const double n_bins = static_cast<double>(m_nbins); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::NBINS), n_bins, n_bins * 1e-10); - - checkAlphaAxis(AxesUnits::DEFAULT, test_object); - checkAlphaAxis(AxesUnits::DEGREES, test_object); - checkAlphaAxis(AxesUnits::RADIANS, test_object); - checkAlphaAxis(AxesUnits::QSPACE, test_object); - checkAlphaAxis(AxesUnits::NBINS, test_object); - - checkZAxis(AxesUnits::DEFAULT, test_object); - checkZAxis(AxesUnits::DEGREES, test_object); - checkZAxis(AxesUnits::RADIANS, test_object); - checkZAxis(AxesUnits::QSPACE, test_object); - checkZAxis(AxesUnits::NBINS, test_object); + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::NBINS), n_bins, n_bins * 1e-10); + + checkAlphaAxis(Axes::Units::DEFAULT, test_object); + checkAlphaAxis(Axes::Units::DEGREES, test_object); + checkAlphaAxis(Axes::Units::RADIANS, test_object); + checkAlphaAxis(Axes::Units::QSPACE, test_object); + checkAlphaAxis(Axes::Units::NBINS, test_object); + + checkZAxis(Axes::Units::DEFAULT, test_object); + checkZAxis(Axes::Units::DEGREES, test_object); + checkZAxis(Axes::Units::RADIANS, test_object); + checkZAxis(Axes::Units::QSPACE, test_object); + checkZAxis(Axes::Units::NBINS, test_object); } -void DepthProbeConverterTest::checkAlphaAxis(AxesUnits units, +void DepthProbeConverterTest::checkAlphaAxis(Axes::Units units, const DepthProbeConverter& test_object) { auto axis = test_object.createConvertedAxis(0, units); @@ -78,7 +79,7 @@ void DepthProbeConverterTest::checkAlphaAxis(AxesUnits units, EXPECT_EQ(axis->getMax(), test_object.calculateMax(0, units)); } -void DepthProbeConverterTest::checkZAxis(AxesUnits units, const DepthProbeConverter& test_object) +void DepthProbeConverterTest::checkZAxis(Axes::Units units, const DepthProbeConverter& test_object) { auto axis = test_object.createConvertedAxis(1, units); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis.get())); @@ -86,11 +87,11 @@ void DepthProbeConverterTest::checkZAxis(AxesUnits units, const DepthProbeConver EXPECT_EQ(axis->size(), m_nbins); EXPECT_EQ(axis->getMin(), test_object.calculateMin(1, units)); - const double test_min = units == AxesUnits::NBINS ? 0 : m_z_start; + const double test_min = units == Axes::Units::NBINS ? 0 : m_z_start; EXPECT_NEAR(axis->getMin(), test_min, std::abs(test_min) * 1e-10); EXPECT_EQ(axis->getMax(), test_object.calculateMax(1, units)); - const double test_max = units == AxesUnits::NBINS ? m_nbins : m_z_end; + const double test_max = units == Axes::Units::NBINS ? m_nbins : m_z_end; EXPECT_NEAR(axis->getMax(), test_max, std::abs(test_max) * 1e-10); } @@ -104,21 +105,21 @@ TEST_F(DepthProbeConverterTest, DepthProbeConverterExceptions) { DepthProbeConverter converter(m_beam, m_inclination_axis, m_z_axis); - EXPECT_THROW(converter.axisName(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.axisName(1, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.axisName(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.axisName(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.axisName(1, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.axisName(2, Axes::Units::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.calculateMin(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMin(1, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.calculateMin(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMin(1, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.calculateMax(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMax(1, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMax(2, AxesUnits::RADIANS), std::runtime_error); + EXPECT_THROW(converter.calculateMax(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMax(1, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMax(2, Axes::Units::RADIANS), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(1, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(1, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(2, Axes::Units::DEFAULT), std::runtime_error); } TEST_F(DepthProbeConverterTest, DepthProbeConverterClone) diff --git a/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp b/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp index fc5084e9f132e76087b13caa0524915530f60848..7bb3af973ff1fa50b5e26df90e9e0438a2484aaf 100644 --- a/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp +++ b/Tests/UnitTests/Core/Axes/UnitConverter1DTest.cpp @@ -37,59 +37,59 @@ UnitConverter1DTest::UnitConverter1DTest() void UnitConverter1DTest::checkConventionalConverter(const UnitConverter1D& test_object) { double expected_min = m_axis.getBinCenter(0); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::DEFAULT), Units::rad2deg(expected_min), + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::DEFAULT), Units::rad2deg(expected_min), Units::rad2deg(expected_min) * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::NBINS), 0.0, 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::RADIANS), expected_min, + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::NBINS), 0.0, 1e-10); + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::RADIANS), expected_min, expected_min * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::DEGREES), Units::rad2deg(expected_min), + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::DEGREES), Units::rad2deg(expected_min), Units::rad2deg(expected_min) * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::QSPACE), getQ(expected_min), + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::QSPACE), getQ(expected_min), getQ(expected_min) * 1e-10); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::RQ4), getQ(expected_min), + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::RQ4), getQ(expected_min), getQ(expected_min) * 1e-10); double expected_max = m_axis.getBinCenters().back(); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::DEFAULT), Units::rad2deg(expected_max), + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::DEFAULT), Units::rad2deg(expected_max), Units::rad2deg(expected_max) * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::NBINS), static_cast<double>(m_axis.size()), + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::NBINS), static_cast<double>(m_axis.size()), 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::RADIANS), expected_max, + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::RADIANS), expected_max, expected_max * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::DEGREES), Units::rad2deg(expected_max), + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::DEGREES), Units::rad2deg(expected_max), Units::rad2deg(expected_max) * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::QSPACE), getQ(expected_max), + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::QSPACE), getQ(expected_max), getQ(expected_max) * 1e-10); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::RQ4), getQ(expected_max), + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::RQ4), getQ(expected_max), getQ(expected_max) * 1e-10); // DEFAULT - auto axis_default = test_object.createConvertedAxis(0, AxesUnits::DEFAULT); + auto axis_default = test_object.createConvertedAxis(0, Axes::Units::DEFAULT); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_default.get())); EXPECT_EQ(axis_default->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_default->getMin(), test_object.calculateMin(0, AxesUnits::DEFAULT)); - EXPECT_EQ(axis_default->getMax(), test_object.calculateMax(0, AxesUnits::DEFAULT)); + EXPECT_EQ(axis_default->getMin(), test_object.calculateMin(0, Axes::Units::DEFAULT)); + EXPECT_EQ(axis_default->getMax(), test_object.calculateMax(0, Axes::Units::DEFAULT)); // QSPACE - auto axis_qspace = test_object.createConvertedAxis(0, AxesUnits::QSPACE); + auto axis_qspace = test_object.createConvertedAxis(0, Axes::Units::QSPACE); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_qspace.get())); EXPECT_EQ(axis_qspace->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_qspace->getMin(), test_object.calculateMin(0, AxesUnits::QSPACE)); - EXPECT_EQ(axis_qspace->getMax(), test_object.calculateMax(0, AxesUnits::QSPACE)); + EXPECT_EQ(axis_qspace->getMin(), test_object.calculateMin(0, Axes::Units::QSPACE)); + EXPECT_EQ(axis_qspace->getMax(), test_object.calculateMax(0, Axes::Units::QSPACE)); // NBINS - auto axis_nbins = test_object.createConvertedAxis(0, AxesUnits::NBINS); + auto axis_nbins = test_object.createConvertedAxis(0, Axes::Units::NBINS); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis_nbins.get())); EXPECT_EQ(axis_nbins->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_nbins->getMin(), test_object.calculateMin(0, AxesUnits::NBINS)); - EXPECT_EQ(axis_nbins->getMax(), test_object.calculateMax(0, AxesUnits::NBINS)); + EXPECT_EQ(axis_nbins->getMin(), test_object.calculateMin(0, Axes::Units::NBINS)); + EXPECT_EQ(axis_nbins->getMax(), test_object.calculateMax(0, Axes::Units::NBINS)); // RQ4 - auto axis_rq4 = test_object.createConvertedAxis(0, AxesUnits::RQ4); + auto axis_rq4 = test_object.createConvertedAxis(0, Axes::Units::RQ4); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_rq4.get())); EXPECT_EQ(axis_rq4->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_rq4->getMin(), test_object.calculateMin(0, AxesUnits::RQ4)); - EXPECT_EQ(axis_rq4->getMax(), test_object.calculateMax(0, AxesUnits::RQ4)); + EXPECT_EQ(axis_rq4->getMin(), test_object.calculateMin(0, Axes::Units::RQ4)); + EXPECT_EQ(axis_rq4->getMax(), test_object.calculateMax(0, Axes::Units::RQ4)); EXPECT_TRUE(*axis_rq4 == *axis_qspace); OutputData<double> fake_data; @@ -98,13 +98,13 @@ void UnitConverter1DTest::checkConventionalConverter(const UnitConverter1D& test fake_data.setRawDataVector(raw_fake); // NBINS - auto data_nbins = test_object.createConvertedData(fake_data, AxesUnits::NBINS); + auto data_nbins = test_object.createConvertedData(fake_data, Axes::Units::NBINS); EXPECT_EQ(data_nbins->getAxis(0), *axis_nbins); EXPECT_EQ(data_nbins->getAllocatedSize(), axis_nbins->size()); EXPECT_EQ(raw_fake, data_nbins->getRawDataVector()); // RQ4 - auto data_rq4 = test_object.createConvertedData(fake_data, AxesUnits::RQ4); + auto data_rq4 = test_object.createConvertedData(fake_data, Axes::Units::RQ4); EXPECT_EQ(data_rq4->getAxis(0), *axis_rq4); auto raw_data_rq4 = data_rq4->getRawDataVector(); EXPECT_EQ(raw_data_rq4.size(), raw_fake.size()); @@ -118,46 +118,46 @@ void UnitConverter1DTest::checkConventionalConverter(const UnitConverter1D& test void UnitConverter1DTest::checkQSpecConverter(const UnitConverter1D& test_object) { double expected_min = m_q_axis.getBinCenter(0); - EXPECT_EQ(test_object.calculateMin(0, AxesUnits::DEFAULT), expected_min); - EXPECT_NEAR(test_object.calculateMin(0, AxesUnits::NBINS), 0.0, 1e-10); - EXPECT_EQ(test_object.calculateMin(0, AxesUnits::QSPACE), expected_min); - EXPECT_EQ(test_object.calculateMin(0, AxesUnits::RQ4), expected_min); + EXPECT_EQ(test_object.calculateMin(0, Axes::Units::DEFAULT), expected_min); + EXPECT_NEAR(test_object.calculateMin(0, Axes::Units::NBINS), 0.0, 1e-10); + EXPECT_EQ(test_object.calculateMin(0, Axes::Units::QSPACE), expected_min); + EXPECT_EQ(test_object.calculateMin(0, Axes::Units::RQ4), expected_min); double expected_max = m_q_axis.getBinCenters().back(); - EXPECT_EQ(test_object.calculateMax(0, AxesUnits::DEFAULT), expected_max); - EXPECT_NEAR(test_object.calculateMax(0, AxesUnits::NBINS), static_cast<double>(m_q_axis.size()), - 1e-10); - EXPECT_EQ(test_object.calculateMax(0, AxesUnits::QSPACE), expected_max); - EXPECT_EQ(test_object.calculateMax(0, AxesUnits::RQ4), expected_max); + EXPECT_EQ(test_object.calculateMax(0, Axes::Units::DEFAULT), expected_max); + EXPECT_NEAR(test_object.calculateMax(0, Axes::Units::NBINS), + static_cast<double>(m_q_axis.size()), 1e-10); + EXPECT_EQ(test_object.calculateMax(0, Axes::Units::QSPACE), expected_max); + EXPECT_EQ(test_object.calculateMax(0, Axes::Units::RQ4), expected_max); // DEFAULT - auto axis_default = test_object.createConvertedAxis(0, AxesUnits::DEFAULT); + auto axis_default = test_object.createConvertedAxis(0, Axes::Units::DEFAULT); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_default.get())); EXPECT_EQ(axis_default->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_default->getMin(), test_object.calculateMin(0, AxesUnits::DEFAULT)); - EXPECT_EQ(axis_default->getMax(), test_object.calculateMax(0, AxesUnits::DEFAULT)); + EXPECT_EQ(axis_default->getMin(), test_object.calculateMin(0, Axes::Units::DEFAULT)); + EXPECT_EQ(axis_default->getMax(), test_object.calculateMax(0, Axes::Units::DEFAULT)); // QSPACE - auto axis_qspace = test_object.createConvertedAxis(0, AxesUnits::QSPACE); + auto axis_qspace = test_object.createConvertedAxis(0, Axes::Units::QSPACE); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_qspace.get())); EXPECT_EQ(axis_qspace->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_qspace->getMin(), test_object.calculateMin(0, AxesUnits::QSPACE)); - EXPECT_EQ(axis_qspace->getMax(), test_object.calculateMax(0, AxesUnits::QSPACE)); + EXPECT_EQ(axis_qspace->getMin(), test_object.calculateMin(0, Axes::Units::QSPACE)); + EXPECT_EQ(axis_qspace->getMax(), test_object.calculateMax(0, Axes::Units::QSPACE)); EXPECT_EQ(*axis_default, *axis_qspace); // NBINS - auto axis_nbins = test_object.createConvertedAxis(0, AxesUnits::NBINS); + auto axis_nbins = test_object.createConvertedAxis(0, Axes::Units::NBINS); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis_nbins.get())); EXPECT_EQ(axis_nbins->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_nbins->getMin(), test_object.calculateMin(0, AxesUnits::NBINS)); - EXPECT_EQ(axis_nbins->getMax(), test_object.calculateMax(0, AxesUnits::NBINS)); + EXPECT_EQ(axis_nbins->getMin(), test_object.calculateMin(0, Axes::Units::NBINS)); + EXPECT_EQ(axis_nbins->getMax(), test_object.calculateMax(0, Axes::Units::NBINS)); // RQ4 - auto axis_rq4 = test_object.createConvertedAxis(0, AxesUnits::RQ4); + auto axis_rq4 = test_object.createConvertedAxis(0, Axes::Units::RQ4); EXPECT_TRUE(dynamic_cast<PointwiseAxis*>(axis_rq4.get())); EXPECT_EQ(axis_rq4->size(), test_object.axisSize(0)); - EXPECT_EQ(axis_rq4->getMin(), test_object.calculateMin(0, AxesUnits::RQ4)); - EXPECT_EQ(axis_rq4->getMax(), test_object.calculateMax(0, AxesUnits::RQ4)); + EXPECT_EQ(axis_rq4->getMin(), test_object.calculateMin(0, Axes::Units::RQ4)); + EXPECT_EQ(axis_rq4->getMax(), test_object.calculateMax(0, Axes::Units::RQ4)); EXPECT_TRUE(*axis_rq4 == *axis_qspace); OutputData<double> fake_data; @@ -166,13 +166,13 @@ void UnitConverter1DTest::checkQSpecConverter(const UnitConverter1D& test_object fake_data.setRawDataVector(raw_fake); // NBINS - auto data_nbins = test_object.createConvertedData(fake_data, AxesUnits::NBINS); + auto data_nbins = test_object.createConvertedData(fake_data, Axes::Units::NBINS); EXPECT_EQ(data_nbins->getAxis(0), *axis_nbins); EXPECT_EQ(data_nbins->getAllocatedSize(), axis_nbins->size()); EXPECT_EQ(raw_fake, data_nbins->getRawDataVector()); // RQ4 - auto data_rq4 = test_object.createConvertedData(fake_data, AxesUnits::RQ4); + auto data_rq4 = test_object.createConvertedData(fake_data, Axes::Units::RQ4); EXPECT_EQ(data_rq4->getAxis(0), *axis_rq4); auto raw_data_rq4 = data_rq4->getRawDataVector(); EXPECT_EQ(raw_data_rq4.size(), raw_fake.size()); @@ -193,32 +193,32 @@ TEST_F(UnitConverter1DTest, Exceptions) { UnitConverterConvSpec converter(m_beam, m_axis); - EXPECT_THROW(converter.calculateMin(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMin(1, AxesUnits::RADIANS), std::runtime_error); + EXPECT_THROW(converter.calculateMin(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMin(1, Axes::Units::RADIANS), std::runtime_error); - EXPECT_THROW(converter.calculateMax(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.calculateMax(1, AxesUnits::RADIANS), std::runtime_error); + EXPECT_THROW(converter.calculateMax(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.calculateMax(1, Axes::Units::RADIANS), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(1, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(1, Axes::Units::DEFAULT), std::runtime_error); FixedBinAxis axis("Angles", 100, 0.0, 2.0 * M_PI); EXPECT_THROW(UnitConverterConvSpec converter2(m_beam, axis), std::runtime_error); UnitConverterQSpec converter2(m_qscan); // wrong units - EXPECT_THROW(converter2.calculateMin(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter2.calculateMin(0, AxesUnits::RADIANS), std::runtime_error); - EXPECT_THROW(converter2.calculateMin(0, AxesUnits::DEGREES), std::runtime_error); - EXPECT_THROW(converter2.calculateMax(0, AxesUnits::MM), std::runtime_error); - EXPECT_THROW(converter2.calculateMax(0, AxesUnits::RADIANS), std::runtime_error); - EXPECT_THROW(converter2.calculateMax(0, AxesUnits::DEGREES), std::runtime_error); - EXPECT_THROW(converter2.createConvertedAxis(0, AxesUnits::MM), std::runtime_error); + EXPECT_THROW(converter2.calculateMin(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter2.calculateMin(0, Axes::Units::RADIANS), std::runtime_error); + EXPECT_THROW(converter2.calculateMin(0, Axes::Units::DEGREES), std::runtime_error); + EXPECT_THROW(converter2.calculateMax(0, Axes::Units::MM), std::runtime_error); + EXPECT_THROW(converter2.calculateMax(0, Axes::Units::RADIANS), std::runtime_error); + EXPECT_THROW(converter2.calculateMax(0, Axes::Units::DEGREES), std::runtime_error); + EXPECT_THROW(converter2.createConvertedAxis(0, Axes::Units::MM), std::runtime_error); // wrong axis index - EXPECT_THROW(converter2.calculateMin(1, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(converter2.calculateMax(1, AxesUnits::RQ4), std::runtime_error); - EXPECT_THROW(converter2.createConvertedAxis(1, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter2.calculateMin(1, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(converter2.calculateMax(1, Axes::Units::RQ4), std::runtime_error); + EXPECT_THROW(converter2.createConvertedAxis(1, Axes::Units::DEFAULT), std::runtime_error); } TEST_F(UnitConverter1DTest, Clone) @@ -236,10 +236,10 @@ TEST_F(UnitConverter1DTest, NonDefaultUnitsInInput) { PointwiseAxis axis("x", std::vector<double>{0.0, 0.5, 1.0}); - EXPECT_THROW(UnitConverterConvSpec(m_beam, axis, AxesUnits::NBINS), std::runtime_error); + EXPECT_THROW(UnitConverterConvSpec(m_beam, axis, Axes::Units::NBINS), std::runtime_error); - UnitConverterConvSpec converter(m_beam, axis, AxesUnits::DEGREES); - auto axis_deg_output = converter.createConvertedAxis(0, AxesUnits::DEGREES); + UnitConverterConvSpec converter(m_beam, axis, Axes::Units::DEGREES); + auto axis_deg_output = converter.createConvertedAxis(0, Axes::Units::DEGREES); EXPECT_TRUE(axis.size() == axis_deg_output->size()); EXPECT_DOUBLE_EQ(axis[0], (*axis_deg_output)[0]); EXPECT_DOUBLE_EQ(axis[1], (*axis_deg_output)[1]); @@ -248,12 +248,12 @@ TEST_F(UnitConverter1DTest, NonDefaultUnitsInInput) auto values = axis.getBinCenters(); std::for_each(values.begin(), values.end(), [this](double& value) { value = getQ(value); }); PointwiseAxis q_axis("q", values); - UnitConverterConvSpec converter2(m_beam, q_axis, AxesUnits::QSPACE); - auto axis_rad_output = converter2.createConvertedAxis(0, AxesUnits::RADIANS); + UnitConverterConvSpec converter2(m_beam, q_axis, Axes::Units::QSPACE); + auto axis_rad_output = converter2.createConvertedAxis(0, Axes::Units::RADIANS); EXPECT_TRUE(axis.size() == axis_rad_output->size()); EXPECT_DOUBLE_EQ(axis[0], (*axis_rad_output)[0]); EXPECT_DOUBLE_EQ(axis[1], (*axis_rad_output)[1]); EXPECT_DOUBLE_EQ(axis[2], (*axis_rad_output)[2]); - EXPECT_THROW(UnitConverterConvSpec(m_beam, q_axis, AxesUnits::RQ4), std::runtime_error); + EXPECT_THROW(UnitConverterConvSpec(m_beam, q_axis, Axes::Units::RQ4), std::runtime_error); } diff --git a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp index cbcd0e175f2e2fd9334578aa20c5ec0fdc439c51..95e98755e56499310e9c6d27dbdc7fa6dae0c97b 100644 --- a/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp +++ b/Tests/UnitTests/Core/Detector/OffSpecularConverterTest.cpp @@ -28,51 +28,51 @@ TEST_F(OffSpecularConverterTest, OffSpecularConverter) EXPECT_EQ(converter.dimension(), 2u); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::DEFAULT), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::RADIANS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::DEGREES), 0.0); - EXPECT_THROW(converter.calculateMin(0, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(converter.calculateMin(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::DEFAULT), 7.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::NBINS), 51.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::RADIANS), Units::deg2rad(7.0)); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::DEGREES), 7.0); - EXPECT_THROW(converter.calculateMax(0, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(converter.calculateMax(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::DEFAULT), -2.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::RADIANS), Units::deg2rad(-2.0)); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::DEGREES), -2.0); - EXPECT_THROW(converter.calculateMin(1, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(converter.calculateMin(1, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::DEFAULT), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::NBINS), 70.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::RADIANS), 1.5); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(1.5)); - EXPECT_THROW(converter.calculateMax(1, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(converter.calculateMax(1, AxesUnits::MM), std::runtime_error); - - EXPECT_THROW(converter.calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); - - auto axis = converter.createConvertedAxis(0, AxesUnits::DEFAULT); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::DEFAULT), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::RADIANS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::DEGREES), 0.0); + EXPECT_THROW(converter.calculateMin(0, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(converter.calculateMin(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::DEFAULT), 7.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::NBINS), 51.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::RADIANS), Units::deg2rad(7.0)); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::DEGREES), 7.0); + EXPECT_THROW(converter.calculateMax(0, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(converter.calculateMax(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::DEFAULT), -2.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::RADIANS), Units::deg2rad(-2.0)); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::DEGREES), -2.0); + EXPECT_THROW(converter.calculateMin(1, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(converter.calculateMin(1, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::DEFAULT), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::NBINS), 70.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::RADIANS), 1.5); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(1.5)); + EXPECT_THROW(converter.calculateMax(1, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(converter.calculateMax(1, Axes::Units::MM), std::runtime_error); + + EXPECT_THROW(converter.calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); + + auto axis = converter.createConvertedAxis(0, Axes::Units::DEFAULT); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis.get())); EXPECT_EQ(axis->size(), converter.axisSize(0)); - EXPECT_EQ(axis->getMin(), converter.calculateMin(0, AxesUnits::DEFAULT)); - EXPECT_EQ(axis->getMax(), converter.calculateMax(0, AxesUnits::DEFAULT)); + EXPECT_EQ(axis->getMin(), converter.calculateMin(0, Axes::Units::DEFAULT)); + EXPECT_EQ(axis->getMax(), converter.calculateMax(0, Axes::Units::DEFAULT)); - auto axis2 = converter.createConvertedAxis(1, AxesUnits::RADIANS); + auto axis2 = converter.createConvertedAxis(1, Axes::Units::RADIANS); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis2.get())); EXPECT_EQ(axis2->size(), converter.axisSize(1)); - EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, AxesUnits::RADIANS)); - EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, AxesUnits::RADIANS)); + EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, Axes::Units::RADIANS)); + EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, Axes::Units::RADIANS)); - EXPECT_THROW(converter.createConvertedAxis(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.createConvertedAxis(1, AxesUnits::QSPACE), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(1, Axes::Units::QSPACE), std::runtime_error); } TEST_F(OffSpecularConverterTest, OffSpecularConverterClone) @@ -82,34 +82,34 @@ TEST_F(OffSpecularConverterTest, OffSpecularConverterClone) EXPECT_EQ(P_clone->dimension(), 2u); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::DEFAULT), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::RADIANS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::DEGREES), 0.0); - EXPECT_THROW(P_clone->calculateMin(0, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(P_clone->calculateMin(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::DEFAULT), 7.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::NBINS), 51.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::RADIANS), Units::deg2rad(7.0)); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::DEGREES), 7.0); - EXPECT_THROW(P_clone->calculateMax(0, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(P_clone->calculateMax(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::DEFAULT), -2.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::RADIANS), Units::deg2rad(-2.0)); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::DEGREES), -2.0); - EXPECT_THROW(P_clone->calculateMin(1, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(P_clone->calculateMin(1, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::DEFAULT), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::NBINS), 70.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::RADIANS), 1.5); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(1.5)); - EXPECT_THROW(P_clone->calculateMax(1, AxesUnits::QSPACE), std::runtime_error); - EXPECT_THROW(P_clone->calculateMax(1, AxesUnits::MM), std::runtime_error); - - EXPECT_THROW(P_clone->calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(P_clone->calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::DEFAULT), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::RADIANS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::DEGREES), 0.0); + EXPECT_THROW(P_clone->calculateMin(0, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(P_clone->calculateMin(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::DEFAULT), 7.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::NBINS), 51.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::RADIANS), Units::deg2rad(7.0)); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::DEGREES), 7.0); + EXPECT_THROW(P_clone->calculateMax(0, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(P_clone->calculateMax(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::DEFAULT), -2.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::RADIANS), Units::deg2rad(-2.0)); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::DEGREES), -2.0); + EXPECT_THROW(P_clone->calculateMin(1, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(P_clone->calculateMin(1, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::DEFAULT), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::NBINS), 70.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::RADIANS), 1.5); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(1.5)); + EXPECT_THROW(P_clone->calculateMax(1, Axes::Units::QSPACE), std::runtime_error); + EXPECT_THROW(P_clone->calculateMax(1, Axes::Units::MM), std::runtime_error); + + EXPECT_THROW(P_clone->calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(P_clone->calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); } diff --git a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp index 57059659223e261e293955c7c331df15f43bb784..fc6f57d34c87d824821581a3e1d0ff984f83c0cd 100644 --- a/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp +++ b/Tests/UnitTests/Core/Detector/RectangularConverterTest.cpp @@ -47,56 +47,56 @@ TEST_F(RectangularConverterTest, RectangularConverter) EXPECT_EQ(converter.dimension(), 2u); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::DEFAULT), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::NBINS), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::MM), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::RADIANS), -m_phi, m_phi * 1e-10); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::DEGREES), Units::rad2deg(-m_phi), + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::DEFAULT), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::NBINS), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::MM), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::RADIANS), -m_phi, m_phi * 1e-10); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::DEGREES), Units::rad2deg(-m_phi), Units::rad2deg(m_phi) * 1e-10); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::QSPACE), -m_kfy, m_kfy * 1e-10); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::QSPACE), -m_kfy, m_kfy * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::DEFAULT), det_width, det_width * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::NBINS), static_cast<double>(det_nx), + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::DEFAULT), det_width, det_width * 1e-10); + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::NBINS), static_cast<double>(det_nx), det_nx * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::MM), det_width, det_width * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::RADIANS), m_phi, m_phi * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::DEGREES), Units::rad2deg(m_phi), + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::MM), det_width, det_width * 1e-10); + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::RADIANS), m_phi, m_phi * 1e-10); + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::DEGREES), Units::rad2deg(m_phi), Units::rad2deg(m_phi) * 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::QSPACE), m_kfy, m_kfy * 1e-10); + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::QSPACE), m_kfy, m_kfy * 1e-10); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::DEFAULT), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::NBINS), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::MM), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::RADIANS), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::DEGREES), 0.0, 1e-12); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::QSPACE), -m_kiz, std::abs(m_kiz) * 1e-10); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::DEFAULT), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::NBINS), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::MM), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::RADIANS), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::DEGREES), 0.0, 1e-12); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::QSPACE), -m_kiz, std::abs(m_kiz) * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::DEFAULT), det_height, det_height * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::NBINS), static_cast<double>(det_ny), + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::DEFAULT), det_height, det_height * 1e-10); + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::NBINS), static_cast<double>(det_ny), det_ny * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::MM), det_height, det_height * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::RADIANS), m_alpha, m_alpha * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(m_alpha), + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::MM), det_height, det_height * 1e-10); + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::RADIANS), m_alpha, m_alpha * 1e-10); + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(m_alpha), Units::rad2deg(m_alpha) * 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::QSPACE), m_kfz - m_kiz, + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::QSPACE), m_kfz - m_kiz, std::abs(m_kfz - m_kiz) * 1e-10); - EXPECT_THROW(converter.calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); - auto axis = converter.createConvertedAxis(0, AxesUnits::DEFAULT); + auto axis = converter.createConvertedAxis(0, Axes::Units::DEFAULT); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis.get())); EXPECT_EQ(axis->size(), converter.axisSize(0)); - EXPECT_EQ(axis->getMin(), converter.calculateMin(0, AxesUnits::DEFAULT)); - EXPECT_EQ(axis->getMax(), converter.calculateMax(0, AxesUnits::DEFAULT)); + EXPECT_EQ(axis->getMin(), converter.calculateMin(0, Axes::Units::DEFAULT)); + EXPECT_EQ(axis->getMax(), converter.calculateMax(0, Axes::Units::DEFAULT)); - auto axis2 = converter.createConvertedAxis(1, AxesUnits::QSPACE); + auto axis2 = converter.createConvertedAxis(1, Axes::Units::QSPACE); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis2.get())); EXPECT_EQ(axis2->size(), converter.axisSize(1)); - EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, AxesUnits::QSPACE)); - EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, AxesUnits::QSPACE)); + EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, Axes::Units::QSPACE)); + EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, Axes::Units::QSPACE)); - EXPECT_THROW(converter.createConvertedAxis(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(2, Axes::Units::DEFAULT), std::runtime_error); } TEST_F(RectangularConverterTest, RectangularConverterClone) @@ -106,42 +106,42 @@ TEST_F(RectangularConverterTest, RectangularConverterClone) EXPECT_EQ(P_clone->dimension(), 2u); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::DEFAULT), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::NBINS), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::MM), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::RADIANS), -m_phi, m_phi * 1e-10); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::DEGREES), Units::rad2deg(-m_phi), + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::DEFAULT), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::NBINS), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::MM), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::RADIANS), -m_phi, m_phi * 1e-10); + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::DEGREES), Units::rad2deg(-m_phi), Units::rad2deg(m_phi) * 1e-10); - EXPECT_NEAR(P_clone->calculateMin(0, AxesUnits::QSPACE), -m_kfy, m_kfy * 1e-10); + EXPECT_NEAR(P_clone->calculateMin(0, Axes::Units::QSPACE), -m_kfy, m_kfy * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::DEFAULT), det_width, det_width * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::NBINS), static_cast<double>(det_nx), + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::DEFAULT), det_width, det_width * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::NBINS), static_cast<double>(det_nx), det_nx * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::MM), det_width, det_width * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::RADIANS), m_phi, m_phi * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::DEGREES), Units::rad2deg(m_phi), + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::MM), det_width, det_width * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::RADIANS), m_phi, m_phi * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::DEGREES), Units::rad2deg(m_phi), Units::rad2deg(m_phi) * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(0, AxesUnits::QSPACE), m_kfy, m_kfy * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(0, Axes::Units::QSPACE), m_kfy, m_kfy * 1e-10); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::DEFAULT), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::NBINS), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::MM), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::RADIANS), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::DEGREES), 0.0, 1e-12); - EXPECT_NEAR(P_clone->calculateMin(1, AxesUnits::QSPACE), -m_kiz, std::abs(m_kiz) * 1e-10); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::DEFAULT), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::NBINS), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::MM), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::RADIANS), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::DEGREES), 0.0, 1e-12); + EXPECT_NEAR(P_clone->calculateMin(1, Axes::Units::QSPACE), -m_kiz, std::abs(m_kiz) * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::DEFAULT), det_height, det_height * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::NBINS), static_cast<double>(det_ny), + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::DEFAULT), det_height, det_height * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::NBINS), static_cast<double>(det_ny), det_ny * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::MM), det_height, det_height * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::RADIANS), m_alpha, m_alpha * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(m_alpha), + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::MM), det_height, det_height * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::RADIANS), m_alpha, m_alpha * 1e-10); + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(m_alpha), Units::rad2deg(m_alpha) * 1e-10); - EXPECT_NEAR(P_clone->calculateMax(1, AxesUnits::QSPACE), m_kfz - m_kiz, + EXPECT_NEAR(P_clone->calculateMax(1, Axes::Units::QSPACE), m_kfz - m_kiz, std::abs(m_kfz - m_kiz) * 1e-10); - EXPECT_THROW(P_clone->calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(P_clone->calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(P_clone->calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(P_clone->calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); } TEST_F(RectangularConverterTest, RectangularConverterWithROI) @@ -154,13 +154,13 @@ TEST_F(RectangularConverterTest, RectangularConverterWithROI) m_detector.setRegionOfInterest(roi_xmin, roi_ymin, roi_xmax, roi_ymax); RectangularConverter converter(m_detector, m_beam); - EXPECT_EQ(converter.calculateMin(0, AxesUnits::DEFAULT), 100); - EXPECT_EQ(converter.calculateMax(0, AxesUnits::DEFAULT), 152); - EXPECT_EQ(converter.calculateMin(1, AxesUnits::DEFAULT), 50); - EXPECT_EQ(converter.calculateMax(1, AxesUnits::DEFAULT), 102); + EXPECT_EQ(converter.calculateMin(0, Axes::Units::DEFAULT), 100); + EXPECT_EQ(converter.calculateMax(0, Axes::Units::DEFAULT), 152); + EXPECT_EQ(converter.calculateMin(1, Axes::Units::DEFAULT), 50); + EXPECT_EQ(converter.calculateMax(1, Axes::Units::DEFAULT), 102); - EXPECT_NEAR(converter.calculateMin(0, AxesUnits::DEGREES), 0.0, 1e-10); - EXPECT_NEAR(converter.calculateMax(0, AxesUnits::DEGREES), 2.97669946811, 1e-10); - EXPECT_NEAR(converter.calculateMin(1, AxesUnits::DEGREES), 2.86240522611, 1e-10); - EXPECT_NEAR(converter.calculateMax(1, AxesUnits::DEGREES), 5.82402751615, 1e-10); + EXPECT_NEAR(converter.calculateMin(0, Axes::Units::DEGREES), 0.0, 1e-10); + EXPECT_NEAR(converter.calculateMax(0, Axes::Units::DEGREES), 2.97669946811, 1e-10); + EXPECT_NEAR(converter.calculateMin(1, Axes::Units::DEGREES), 2.86240522611, 1e-10); + EXPECT_NEAR(converter.calculateMax(1, Axes::Units::DEGREES), 5.82402751615, 1e-10); } diff --git a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp index 454809a9a0718f5e8de8a278f376f47cd8290c78..4af0427b7d2f4c95d7fdeb1feef354a550dc9571 100644 --- a/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp +++ b/Tests/UnitTests/Core/Detector/SpecularDetector1DTest.cpp @@ -30,11 +30,6 @@ TEST_F(SpecularDetectorTest, basicBehaviour) // throwing exceptions OutputData<double>* p_intensity_map(nullptr); ASSERT_THROW(detector.applyDetectorResolution(p_intensity_map), std::runtime_error); - - // clearing detector - detector.clear(); - EXPECT_EQ(0u, detector.dimension()); - ASSERT_THROW(detector.getAxis(0), std::runtime_error); } // Creation of the detector map with axes in given units diff --git a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp index c81c30c1eeef4d9ee789d9d284c937e9b22562ba..e7bae2f415a641e8b72e5952e93801eb0d18e90c 100644 --- a/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp +++ b/Tests/UnitTests/Core/Detector/SphericalConverterTest.cpp @@ -34,50 +34,50 @@ TEST_F(SphericalConverterTest, SphericalConverter) EXPECT_EQ(converter.dimension(), 2u); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::DEFAULT), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::RADIANS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::DEGREES), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(0, AxesUnits::QSPACE), 0.0); - EXPECT_THROW(converter.calculateMin(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::DEFAULT), 5.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::NBINS), 100.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::RADIANS), Units::deg2rad(5.0)); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::DEGREES), 5.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(0, AxesUnits::QSPACE), m_kfy); - EXPECT_THROW(converter.calculateMax(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::DEFAULT), -2.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::RADIANS), Units::deg2rad(-2.0)); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::DEGREES), -2.0); - EXPECT_DOUBLE_EQ(converter.calculateMin(1, AxesUnits::QSPACE), m_kfz1 - m_kiz); - EXPECT_THROW(converter.calculateMin(1, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::DEFAULT), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::NBINS), 70.0); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::RADIANS), 1.5); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(converter.calculateMax(1, AxesUnits::QSPACE), m_kfz2 - m_kiz); - EXPECT_THROW(converter.calculateMax(1, AxesUnits::MM), std::runtime_error); - - EXPECT_THROW(converter.calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(converter.calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); - - auto axis = converter.createConvertedAxis(0, AxesUnits::DEFAULT); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::DEFAULT), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::RADIANS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::DEGREES), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(0, Axes::Units::QSPACE), 0.0); + EXPECT_THROW(converter.calculateMin(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::DEFAULT), 5.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::NBINS), 100.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::RADIANS), Units::deg2rad(5.0)); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::DEGREES), 5.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(0, Axes::Units::QSPACE), m_kfy); + EXPECT_THROW(converter.calculateMax(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::DEFAULT), -2.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::RADIANS), Units::deg2rad(-2.0)); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::DEGREES), -2.0); + EXPECT_DOUBLE_EQ(converter.calculateMin(1, Axes::Units::QSPACE), m_kfz1 - m_kiz); + EXPECT_THROW(converter.calculateMin(1, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::DEFAULT), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::NBINS), 70.0); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::RADIANS), 1.5); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(converter.calculateMax(1, Axes::Units::QSPACE), m_kfz2 - m_kiz); + EXPECT_THROW(converter.calculateMax(1, Axes::Units::MM), std::runtime_error); + + EXPECT_THROW(converter.calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); + + auto axis = converter.createConvertedAxis(0, Axes::Units::DEFAULT); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis.get())); EXPECT_EQ(axis->size(), converter.axisSize(0)); - EXPECT_EQ(axis->getMin(), converter.calculateMin(0, AxesUnits::DEFAULT)); - EXPECT_EQ(axis->getMax(), converter.calculateMax(0, AxesUnits::DEFAULT)); + EXPECT_EQ(axis->getMin(), converter.calculateMin(0, Axes::Units::DEFAULT)); + EXPECT_EQ(axis->getMax(), converter.calculateMax(0, Axes::Units::DEFAULT)); - auto axis2 = converter.createConvertedAxis(1, AxesUnits::QSPACE); + auto axis2 = converter.createConvertedAxis(1, Axes::Units::QSPACE); EXPECT_TRUE(dynamic_cast<FixedBinAxis*>(axis2.get())); EXPECT_EQ(axis2->size(), converter.axisSize(1)); - EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, AxesUnits::QSPACE)); - EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, AxesUnits::QSPACE)); + EXPECT_EQ(axis2->getMin(), converter.calculateMin(1, Axes::Units::QSPACE)); + EXPECT_EQ(axis2->getMax(), converter.calculateMax(1, Axes::Units::QSPACE)); - EXPECT_THROW(converter.createConvertedAxis(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_THROW(converter.createConvertedAxis(2, Axes::Units::DEFAULT), std::runtime_error); } TEST_F(SphericalConverterTest, SphericalConverterClone) @@ -87,34 +87,34 @@ TEST_F(SphericalConverterTest, SphericalConverterClone) EXPECT_EQ(P_clone->dimension(), 2u); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::DEFAULT), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::RADIANS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::DEGREES), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, AxesUnits::QSPACE), 0.0); - EXPECT_THROW(P_clone->calculateMin(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::DEFAULT), 5.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::NBINS), 100.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::RADIANS), Units::deg2rad(5.0)); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::DEGREES), 5.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, AxesUnits::QSPACE), m_kfy); - EXPECT_THROW(P_clone->calculateMax(0, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::DEFAULT), -2.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::NBINS), 0.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::RADIANS), Units::deg2rad(-2.0)); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::DEGREES), -2.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, AxesUnits::QSPACE), m_kfz1 - m_kiz); - EXPECT_THROW(P_clone->calculateMin(1, AxesUnits::MM), std::runtime_error); - - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::DEFAULT), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::NBINS), 70.0); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::RADIANS), 1.5); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::DEGREES), Units::rad2deg(1.5)); - EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, AxesUnits::QSPACE), m_kfz2 - m_kiz); - EXPECT_THROW(P_clone->calculateMax(1, AxesUnits::MM), std::runtime_error); - - EXPECT_THROW(P_clone->calculateMin(2, AxesUnits::DEFAULT), std::runtime_error); - EXPECT_THROW(P_clone->calculateMax(2, AxesUnits::DEFAULT), std::runtime_error); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::DEFAULT), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::RADIANS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::DEGREES), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(0, Axes::Units::QSPACE), 0.0); + EXPECT_THROW(P_clone->calculateMin(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::DEFAULT), 5.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::NBINS), 100.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::RADIANS), Units::deg2rad(5.0)); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::DEGREES), 5.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(0, Axes::Units::QSPACE), m_kfy); + EXPECT_THROW(P_clone->calculateMax(0, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::DEFAULT), -2.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::NBINS), 0.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::RADIANS), Units::deg2rad(-2.0)); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::DEGREES), -2.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMin(1, Axes::Units::QSPACE), m_kfz1 - m_kiz); + EXPECT_THROW(P_clone->calculateMin(1, Axes::Units::MM), std::runtime_error); + + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::DEFAULT), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::NBINS), 70.0); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::RADIANS), 1.5); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::DEGREES), Units::rad2deg(1.5)); + EXPECT_DOUBLE_EQ(P_clone->calculateMax(1, Axes::Units::QSPACE), m_kfz2 - m_kiz); + EXPECT_THROW(P_clone->calculateMax(1, Axes::Units::MM), std::runtime_error); + + EXPECT_THROW(P_clone->calculateMin(2, Axes::Units::DEFAULT), std::runtime_error); + EXPECT_THROW(P_clone->calculateMax(2, Axes::Units::DEFAULT), std::runtime_error); } diff --git a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp index 9245c1f1b194b93ddb1afd66133318f1bfef6488..ee18ccd39d99ccdc893831b29f6753996195710f 100644 --- a/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp +++ b/Tests/UnitTests/Core/Detector/SphericalDetectorTest.cpp @@ -25,7 +25,7 @@ TEST_F(SphericalDetectorTest, initialState) // checking size EXPECT_EQ(0u, detector.dimension()); - EXPECT_EQ(AxesUnits::RADIANS, detector.defaultAxesUnits()); + EXPECT_EQ(Axes::Units::RADIANS, detector.defaultAxesUnits()); // masks EXPECT_FALSE(detector.detectorMask()->hasMasks()); @@ -58,10 +58,6 @@ TEST_F(SphericalDetectorTest, constructionWithAxes) EXPECT_EQ(axis0.getMax(), detector.getAxis(0).getMax()); EXPECT_EQ(axis1.getMin(), detector.getAxis(1).getMin()); EXPECT_EQ(axis1.getMax(), detector.getAxis(1).getMax()); - - // clearing detector - detector.clear(); - EXPECT_EQ(0u, detector.dimension()); } // Construction of the detector via classical constructor. diff --git a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp index 353700915d797f99767a671a57a61dd2ff688b6e..f69d0f6d839aab92d2a13720ea4fe2b7de084d0f 100644 --- a/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp +++ b/Tests/UnitTests/Core/Fresnel/DepthProbeSimulationTest.cpp @@ -147,7 +147,7 @@ TEST_F(DepthProbeSimulationTest, ResultAquisition) sim->runSimulation(); SimulationResult sim_result = sim->result(); - EXPECT_THROW(sim_result.histogram2d(AxesUnits::MM), std::runtime_error); + EXPECT_THROW(sim_result.histogram2d(Axes::Units::MM), std::runtime_error); const std::unique_ptr<Histogram2D> depth_map(sim_result.histogram2d()); EXPECT_EQ(10u * 12u, depth_map->getTotalNumberOfBins()); @@ -157,7 +157,7 @@ TEST_F(DepthProbeSimulationTest, ResultAquisition) EXPECT_EQ(-30.0, depth_map->getYaxis().getMin()); EXPECT_EQ(10.0, depth_map->getYaxis().getMax()); - EXPECT_THROW(sim_result.data(AxesUnits::MM), std::runtime_error); + EXPECT_THROW(sim_result.data(Axes::Units::MM), std::runtime_error); const auto output = sim_result.data(); EXPECT_EQ(depth_map->getTotalNumberOfBins(), output->getAllocatedSize()); diff --git a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp index f0b3c5ab939fe2750d6e1fd74653edc8c7e5687f..8fd4851401278fbef57e84f7c7514278c349b7b8 100644 --- a/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp +++ b/Tests/UnitTests/Core/Fresnel/SpecularSimulationTest.cpp @@ -183,9 +183,9 @@ TEST_F(SpecularSimulationTest, ConstructSimulation) EXPECT_EQ(data->getAllocatedSize(), 10u); EXPECT_EQ(data->getRank(), 1u); - EXPECT_NEAR(0.1 * Units::degree, sim_result.axis(AxesUnits::RADIANS).front(), + EXPECT_NEAR(0.1 * Units::degree, sim_result.axis(Axes::Units::RADIANS).front(), Units::degree * 1e-11); - EXPECT_NEAR(1.9 * Units::degree, sim_result.axis(AxesUnits::RADIANS).back(), + EXPECT_NEAR(1.9 * Units::degree, sim_result.axis(Axes::Units::RADIANS).back(), Units::degree * 1e-10); checkBeamState(*sim); diff --git a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp index e32f0460bcd11b79aadbca11f523666c01cb6523..505c55bd6ceeb7391c269058aff4f6ae375dbafd 100644 --- a/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp +++ b/Tests/UnitTests/Core/Other/GISASSimulationTest.cpp @@ -4,7 +4,9 @@ #include "Core/SampleBuilderEngine/ISampleBuilder.h" #include "Tests/GTestWrapper/google_test.h" -class GISASSimulationTest : public ::testing::Test {}; +class GISASSimulationTest : public ::testing::Test +{ +}; TEST_F(GISASSimulationTest, SimulationInitialState) { diff --git a/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp b/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp index e017ee6fd955ec20ede1647d321938d223e0ec7f..eeec3ff54ebd911565d0b2e2abd5ec2bec7407fc 100644 --- a/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp +++ b/Tests/UnitTests/Core/Parameters/RealParameterTest.cpp @@ -37,8 +37,9 @@ TEST_F(RealParameterTest, extendedConstructor) { double value(42.0); bool is_changed(false); - RealParameter par("name", &value, "parent_name", [&]() { is_changed = true; }, - RealLimits::limited(1.0, 43.0), Attributes::free()); + RealParameter par( + "name", &value, "parent_name", [&]() { is_changed = true; }, RealLimits::limited(1.0, 43.0), + Attributes::free()); EXPECT_EQ(par.value(), value); EXPECT_EQ(par.limits(), RealLimits::limited(1.0, 43.0)); @@ -54,9 +55,9 @@ TEST_F(RealParameterTest, clone) { double value(42.0); bool is_changed(false); - std::unique_ptr<RealParameter> par( - new RealParameter("name", &value, "parent_name", [&]() { is_changed = true; }, - RealLimits::limited(1.0, 43.0), Attributes::free())); + std::unique_ptr<RealParameter> par(new RealParameter( + "name", &value, "parent_name", [&]() { is_changed = true; }, RealLimits::limited(1.0, 43.0), + Attributes::free())); // cloning and deleting original std::unique_ptr<RealParameter> clone(par->clone()); diff --git a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp index ae176e8ef0b9a655083f8e469f7b9d402c078e64..bc00a2695cc564d0e1134962ca05733528c9c414 100644 --- a/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp +++ b/Tests/UnitTests/Core/Sample/FormFactorBasicTest.cpp @@ -1,8 +1,8 @@ #include "Core/Basics/MathConstants.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Scattering/IFormFactorBorn.h" #include "Core/Scattering/Rotations.h" -#include "Core/includeIncludes/HardParticles.h" #include "Tests/GTestWrapper/google_test.h" class FormFactorBasicTest : public ::testing::Test diff --git a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp index 359a2b2168f93b04e7c7f097fc067a0a5e716e8c..66be06c48e6f3d04dcfa2a0475f308017fe18e38 100644 --- a/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp +++ b/Tests/UnitTests/Core/Sample/ParticleCoreShellTest.cpp @@ -1,10 +1,10 @@ #include "Core/Particle/ParticleCoreShell.h" #include "Core/Basics/MathConstants.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Material/MaterialFactoryFuncs.h" #include "Core/Particle/Particle.h" #include "Core/Scattering/Rotations.h" -#include "Core/includeIncludes/HardParticles.h" #include "Tests/GTestWrapper/google_test.h" class ParticleCoreShellTest : public ::testing::Test diff --git a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp index 9b92e0fa43e8127a3d679eadede0aabd80cbb99b..76182eed5c61c07eacf56bbaa1d092a0ca98db72 100644 --- a/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp +++ b/Tests/UnitTests/Core/Sample/ParticleDistributionTest.cpp @@ -1,9 +1,10 @@ #include "Core/Particle/ParticleDistribution.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/FormFactorCone.h" +#include "Core/HardParticle/FormFactorFullSphere.h" #include "Core/Material/MaterialFactoryFuncs.h" #include "Core/Parametrization/Distributions.h" #include "Core/Particle/Particle.h" -#include "Core/includeIncludes/FormFactors.h" #include "Tests/GTestWrapper/google_test.h" class ParticleDistributionTest : public ::testing::Test diff --git a/Tests/UnitTests/Core/Sample/ParticleTest.cpp b/Tests/UnitTests/Core/Sample/ParticleTest.cpp index 7121acf447272051595f94bd69e63dd9c29adb57..94d8c06a6e72892ed5e2b0f141e62d8c496f8300 100644 --- a/Tests/UnitTests/Core/Sample/ParticleTest.cpp +++ b/Tests/UnitTests/Core/Sample/ParticleTest.cpp @@ -7,12 +7,8 @@ class ParticleTest : public ::testing::Test { -protected: - ~ParticleTest(); }; -ParticleTest::~ParticleTest() = default; - TEST_F(ParticleTest, InitialState) { Particle particle; @@ -84,7 +80,7 @@ TEST_F(ParticleTest, getChildren) EXPECT_EQ(children.size(), 1u); // Checking children of particle (with rotation) - particle.reset(new Particle(mat, sphere, RotationY(45.))); + particle = std::make_unique<Particle>(mat, sphere, RotationY(45.)); children = particle->getChildren(); EXPECT_EQ(children.size(), 2u); } diff --git a/Tests/UnitTests/Core/Sample/RTTest.cpp b/Tests/UnitTests/Core/Sample/RTTest.cpp index f0a51e328700e11ad735dab853992b74356c084f..1f8eee908c04648f67e370b80f235c6232ea1923 100644 --- a/Tests/UnitTests/Core/Sample/RTTest.cpp +++ b/Tests/UnitTests/Core/Sample/RTTest.cpp @@ -13,7 +13,6 @@ class RTTest : public ::testing::Test { protected: - ~RTTest(); void printCoeffs(const std::vector<ScalarRTCoefficients>& coeffs) { // for debug phases for (size_t i = 0; i < coeffs.size(); ++i) { @@ -49,8 +48,6 @@ protected: std::vector<ScalarRTCoefficients> coeffs1, coeffs2; }; -RTTest::~RTTest() = default; - TEST_F(RTTest, SplitLayer) { const int n = 40; diff --git a/Tests/UnitTests/GUI/TestComponentProxyModel.cpp b/Tests/UnitTests/GUI/TestComponentProxyModel.cpp index 1b46b9c724257e518778f18af619d735d58b70df..9d720346b3fbfebc416e00c799bf0c77981180da 100644 --- a/Tests/UnitTests/GUI/TestComponentProxyModel.cpp +++ b/Tests/UnitTests/GUI/TestComponentProxyModel.cpp @@ -222,8 +222,8 @@ TEST_F(TestComponentProxyModel, test_insertRows) ComponentProxyModel proxy; proxy.setSessionModel(&model); - EXPECT_TRUE(model.hasChildren(QModelIndex()) == false); - EXPECT_TRUE(proxy.hasChildren(QModelIndex()) == false); + EXPECT_FALSE(model.hasChildren(QModelIndex())); + EXPECT_FALSE(proxy.hasChildren(QModelIndex())); QSignalSpy spyProxy(&proxy, &ComponentProxyModel::layoutChanged); @@ -270,10 +270,10 @@ TEST_F(TestComponentProxyModel, test_componentStrategy) // CylinderItem shouldn't exist anymore in proxy QModelIndex ffProxyIndex = proxy.mapFromSource(ffIndex); - EXPECT_TRUE(ffProxyIndex.isValid() == false); + EXPECT_FALSE(ffProxyIndex.isValid()); QModelIndex radiusProxyIndex = proxy.mapFromSource(radiusIndex); - EXPECT_TRUE(radiusProxyIndex.isValid() == true); + EXPECT_TRUE(radiusProxyIndex.isValid()); EXPECT_TRUE(radiusProxyIndex.parent() == groupProxyIndex); } @@ -370,7 +370,7 @@ TEST_F(TestComponentProxyModel, test_setRootIndexLayer) EXPECT_EQ(proxy.columnCount(QModelIndex()), 2); QModelIndex multilayerProxyIndex = proxy.mapFromSource(model.indexOfItem(multilayer)); - EXPECT_TRUE(multilayerProxyIndex.isValid() == false); + EXPECT_FALSE(multilayerProxyIndex.isValid()); QModelIndex layerProxyIndex = proxy.mapFromSource(model.indexOfItem(layer1)); EXPECT_EQ(proxy.rowCount(layerProxyIndex), 4); // thickness, material, slices, roughness @@ -380,5 +380,5 @@ TEST_F(TestComponentProxyModel, test_setRootIndexLayer) // ParticleLayout should be excluded from proxy tree QModelIndex layoutProxyIndex = proxy.mapFromSource(model.indexOfItem(layout)); - EXPECT_TRUE(layoutProxyIndex.isValid() == false); + EXPECT_FALSE(layoutProxyIndex.isValid()); } diff --git a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp index 817bf8d917722b0c458db036478388798413adbe..2a570a430c9cc75e368edf643290853e9f644970 100644 --- a/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp +++ b/Tests/UnitTests/GUI/TestCsvImportAssistant.cpp @@ -79,7 +79,7 @@ TEST_F(TestCsvImportAssistant, test_readFile) CsvImportAssistant assistant(testFilename()); assistant.setIntensityColumn(1); - assistant.setCoordinateColumn(3, AxesUnits::DEGREES); + assistant.setCoordinateColumn(3, Axes::Units::DEGREES); assistant.setFirstRow(5); assistant.setLastRow(7); @@ -95,7 +95,7 @@ TEST_F(TestCsvImportAssistant, test_readFile) EXPECT_EQ(DataRank, 1u); EXPECT_EQ(AllocSize, 3u); EXPECT_EQ(RawDataVec, expected); - EXPECT_EQ(UnitsLabel, JobItemUtils::nameFromAxesUnits(AxesUnits::DEGREES)); - EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::InitSpecAxis()[AxesUnits::DEGREES])); + EXPECT_EQ(UnitsLabel, JobItemUtils::nameFromAxesUnits(Axes::Units::DEGREES)); + EXPECT_EQ(AxisLabel0, QString::fromStdString(AxisNames::InitSpecAxis()[Axes::Units::DEGREES])); EXPECT_EQ(AxisLabel1, SpecularDataAxesNames::y_axis_default_name); } diff --git a/Tests/UnitTests/GUI/TestExternalProperty.cpp b/Tests/UnitTests/GUI/TestExternalProperty.cpp index 698c236011853db41aee60f73232a71c9e03e9d0..f9b3133261342d5c68613d85783ecf6d7e87147a 100644 --- a/Tests/UnitTests/GUI/TestExternalProperty.cpp +++ b/Tests/UnitTests/GUI/TestExternalProperty.cpp @@ -15,22 +15,22 @@ public: TEST_F(TestExternalProperty, test_initialState) { ExternalProperty property; - EXPECT_TRUE(property.isValid() == false); - EXPECT_TRUE(property.color().isValid() == false); - EXPECT_TRUE(property.identifier().isEmpty() == true); - EXPECT_TRUE(property.text().isEmpty() == true); + EXPECT_FALSE(property.isValid()); + EXPECT_FALSE(property.color().isValid()); + EXPECT_TRUE(property.identifier().isEmpty()); + EXPECT_TRUE(property.text().isEmpty()); // changing any property should change state to valid property.setColor(QColor(Qt::red)); EXPECT_TRUE(property.color() == QColor(Qt::red)); - EXPECT_TRUE(property.isValid() == true); + EXPECT_TRUE(property.isValid()); property.setColor(QColor()); - EXPECT_TRUE(property.isValid() == false); + EXPECT_FALSE(property.isValid()); property.setText("aaa"); EXPECT_TRUE(property.text() == "aaa"); - EXPECT_TRUE(property.isValid() == true); + EXPECT_TRUE(property.isValid()); property.setText(QString()); - EXPECT_TRUE(property.isValid() == false); + EXPECT_FALSE(property.isValid()); } //! Testing equality operators. diff --git a/Tests/UnitTests/GUI/TestFormFactorItems.cpp b/Tests/UnitTests/GUI/TestFormFactorItems.cpp index 37f6b56933857b95cb3476fbc316aee13372d527..20398a18e4e0e74d9dd261c0cdb3ef3272de81ed 100644 --- a/Tests/UnitTests/GUI/TestFormFactorItems.cpp +++ b/Tests/UnitTests/GUI/TestFormFactorItems.cpp @@ -1,5 +1,5 @@ #include "Core/Basics/Units.h" -#include "Core/includeIncludes/FormFactors.h" +#include "Core/HardParticle/FormFactorAnisoPyramid.h" #include "Fit/TestEngine/Numeric.h" #include "GUI/coregui/Models/FormFactorItems.h" #include "Tests/GTestWrapper/google_test.h" diff --git a/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp b/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp index e1a97876d949eebc8c074663ba76e6dac228b3c0..9b054c6c96a43c9ef36ea083789f0f78922dd971 100644 --- a/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp +++ b/Tests/UnitTests/GUI/TestGUICoreObjectCorrespondence.cpp @@ -1,7 +1,7 @@ +#include "Core/Aggregate/InterferenceFunctions.h" #include "Core/Basics/Units.h" +#include "Core/HardParticle/HardParticles.h" #include "Core/Parametrization/ParameterPool.h" -#include "Core/includeIncludes/FormFactors.h" -#include "Core/includeIncludes/InterferenceFunctions.h" #include "GUI/coregui/Models/FormFactorItems.h" #include "GUI/coregui/Models/InterferenceFunctionItems.h" #include "Tests/GTestWrapper/google_test.h" diff --git a/Tests/UnitTests/GUI/TestGroupItem.cpp b/Tests/UnitTests/GUI/TestGroupItem.cpp index 99f76f900dd6305254a0dbe112351b682b89ce49..86b837fa42ba23ce4245adcea77def25d67eb0a4 100644 --- a/Tests/UnitTests/GUI/TestGroupItem.cpp +++ b/Tests/UnitTests/GUI/TestGroupItem.cpp @@ -76,7 +76,7 @@ TEST_F(TestGroupItem, test_CreateGroup) // checking current variant QVariant value = groupItem->value(); - EXPECT_TRUE(value.canConvert<ComboProperty>() == true); + EXPECT_TRUE(value.canConvert<ComboProperty>()); ComboProperty combo = value.value<ComboProperty>(); EXPECT_EQ(combo.getValues(), groupInfo.itemLabels()); int index = groupInfo.itemTypes().indexOf(groupInfo.defaultType()); diff --git a/Tests/UnitTests/GUI/TestMapperCases.cpp b/Tests/UnitTests/GUI/TestMapperCases.cpp index 2c841c6f4481638cf42f43e6a452010da2b7576b..c0436e1343bc80f993623aab7b7cafbba2396148 100644 --- a/Tests/UnitTests/GUI/TestMapperCases.cpp +++ b/Tests/UnitTests/GUI/TestMapperCases.cpp @@ -28,7 +28,7 @@ TEST_F(TestMapperCases, test_ParticeleCompositionUpdate) // composition added to distribution should have abundance disabled SessionItem* distribution = model.insertNewItem("ParticleDistribution", layout->index()); SessionItem* composition = model.insertNewItem("ParticleComposition", distribution->index()); - EXPECT_TRUE(composition->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == false); + EXPECT_FALSE(composition->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); composition = distribution->takeRow(ParentRow(*composition)); EXPECT_TRUE(composition->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); @@ -45,9 +45,9 @@ TEST_F(TestMapperCases, test_SimulationOptionsComputationToggle) ComboProperty combo = item->getItemValue(SimulationOptionsItem::P_COMPUTATION_METHOD).value<ComboProperty>(); EXPECT_EQ(combo.getValue(), "Analytical"); - EXPECT_TRUE(item->getItem(SimulationOptionsItem::P_MC_POINTS)->isEnabled() == false); + EXPECT_FALSE(item->getItem(SimulationOptionsItem::P_MC_POINTS)->isEnabled()); combo.setValue("Monte-Carlo Integration"); item->setItemValue(SimulationOptionsItem::P_COMPUTATION_METHOD, combo.variant()); - EXPECT_TRUE(item->getItem(SimulationOptionsItem::P_MC_POINTS)->isEnabled() == true); + EXPECT_TRUE(item->getItem(SimulationOptionsItem::P_MC_POINTS)->isEnabled()); } diff --git a/Tests/UnitTests/GUI/TestMapperForItem.cpp b/Tests/UnitTests/GUI/TestMapperForItem.cpp index 7b9d844c8b7a083bfa2299f52444a55f6e3a42bb..f4549c7e2688ada7a7b2de8272789e32214cd70a 100644 --- a/Tests/UnitTests/GUI/TestMapperForItem.cpp +++ b/Tests/UnitTests/GUI/TestMapperForItem.cpp @@ -96,7 +96,6 @@ class TestMapperForItem : public ::testing::Test { public: TestMapperForItem() : m_mapped_item(0) {} - ~TestMapperForItem(); void setItem(SessionItem* item, Widget* widget = 0, bool with_subscription = false) { @@ -111,8 +110,6 @@ public: std::unique_ptr<ModelMapper> m_mapper; }; -TestMapperForItem::~TestMapperForItem() = default; - TEST_F(TestMapperForItem, test_initialCondition) { Widget w; diff --git a/Tests/UnitTests/GUI/TestMaterialModel.cpp b/Tests/UnitTests/GUI/TestMaterialModel.cpp index 8befb501a23d53a15e4d596e2547c5862547f0f1..82215a56f8320c9343b7b87eb3df95085d2c9175 100644 --- a/Tests/UnitTests/GUI/TestMaterialModel.cpp +++ b/Tests/UnitTests/GUI/TestMaterialModel.cpp @@ -123,7 +123,7 @@ TEST_F(TestMaterialModel, defaultMaterialProperty) // testing default material property from MaterialItemUtils // in the absence of any materials, property should be in invalid state ExternalProperty property = MaterialItemUtils::defaultMaterialProperty(); - EXPECT_TRUE(property.isValid() == false); + EXPECT_FALSE(property.isValid()); // adding materials to the model, default property should refer to first material in a model auto mat1 = model.addRefractiveMaterial("Something1", 1.0, 2.0); diff --git a/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp b/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp index 7e5616e5b355c05bb27440da7f4c1a7472c457fe..ec7acd982dc5a9551c6647c862a00f3297ad8dee 100644 --- a/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp +++ b/Tests/UnitTests/GUI/TestMaterialPropertyController.cpp @@ -56,7 +56,7 @@ class TestMaterialPropertyController : public ::testing::Test // materialModel.removeRows(0, 1, QModelIndex()); // EXPECT_EQ(property_changed, 3); // property = layer->getItemValue(LayerItem::P_MATERIAL).value<ExternalProperty>(); -// EXPECT_TRUE(property.isValid() == false); +// EXPECT_FALSE(property.isValid() ); //} //! Test MaterialProperty update in sample items when working on model clone. @@ -122,7 +122,7 @@ TEST_F(TestMaterialPropertyController, test_ControllerInEditorContext) // layer2 should have undefined material property ExternalProperty property = layer2->getItemValue(LayerItem::P_MATERIAL).value<ExternalProperty>(); - EXPECT_TRUE(property.isValid() == false); + EXPECT_FALSE(property.isValid()); // layer3 should have different MaterialProperty name property = layer3->getItemValue(LayerItem::P_MATERIAL).value<ExternalProperty>(); diff --git a/Tests/UnitTests/GUI/TestMessageService.cpp b/Tests/UnitTests/GUI/TestMessageService.cpp index b3089712decfe11de2dcc9fb3a8d679ebdf347e3..3ed72f0fb48b708d569484f1f350f17d827ebf96 100644 --- a/Tests/UnitTests/GUI/TestMessageService.cpp +++ b/Tests/UnitTests/GUI/TestMessageService.cpp @@ -26,7 +26,7 @@ public: class Sender : public QObject { public: - Sender(const QString& name) { setObjectName(name); } + explicit Sender(const QString& name) { setObjectName(name); } }; }; diff --git a/Tests/UnitTests/GUI/TestModelUtils.cpp b/Tests/UnitTests/GUI/TestModelUtils.cpp index cfaadcfa4e19c5dd3039f23b4343872ebaff3c12..4735e92a07707920638d289acb6357cc45175269 100644 --- a/Tests/UnitTests/GUI/TestModelUtils.cpp +++ b/Tests/UnitTests/GUI/TestModelUtils.cpp @@ -34,7 +34,7 @@ TEST_F(TestModelUtils, test_topItemNames) // inserting three top items auto item = model.insertNewItem("MultiLayer"); item->setItemName("name1"); - item = model.insertNewItem("Layer"); + model.insertNewItem("Layer"); item = model.insertNewItem("MultiLayer"); item->setItemName("name2"); diff --git a/Tests/UnitTests/GUI/TestOutputDataIOService.cpp b/Tests/UnitTests/GUI/TestOutputDataIOService.cpp index 93fef24291a10ed3c4372fbe3ba2c24ddd3045f4..43eefcbb7e413f039792f35a5e49f035fa1771eb 100644 --- a/Tests/UnitTests/GUI/TestOutputDataIOService.cpp +++ b/Tests/UnitTests/GUI/TestOutputDataIOService.cpp @@ -99,11 +99,11 @@ TEST_F(TestOutputDataIOService, test_OutputDataSaveInfo) QTest::qSleep(nap_time); OutputDataSaveInfo info = OutputDataSaveInfo::createSaved(item); - EXPECT_TRUE(info.wasModifiedSinceLastSave() == false); + EXPECT_FALSE(info.wasModifiedSinceLastSave()); QTest::qSleep(nap_time); item->setLastModified(QDateTime::currentDateTime()); - EXPECT_TRUE(info.wasModifiedSinceLastSave() == true); + EXPECT_TRUE(info.wasModifiedSinceLastSave()); } //! Tests OutputDataDirHistory class intended for storing save history of several @@ -121,18 +121,18 @@ TEST_F(TestOutputDataIOService, test_OutputDataDirHistory) // empty history OutputDataDirHistory history; - EXPECT_TRUE(history.contains(item1) == false); + EXPECT_FALSE(history.contains(item1)); // non-existing item is treated as modified - EXPECT_TRUE(history.wasModifiedSinceLastSave(item1) == true); + EXPECT_TRUE(history.wasModifiedSinceLastSave(item1)); // Saving item in a history history.markAsSaved(item1); history.markAsSaved(item2); - EXPECT_TRUE(history.contains(item1) == true); + EXPECT_TRUE(history.contains(item1)); // Empty DataItems are not added to history: - EXPECT_TRUE(history.contains(item2) == false); - EXPECT_TRUE(history.wasModifiedSinceLastSave(item1) == false); + EXPECT_FALSE(history.contains(item2)); + EXPECT_FALSE(history.wasModifiedSinceLastSave(item1)); // Attempt to save same item second time EXPECT_THROW(history.markAsSaved(item1), GUIHelpers::Error); @@ -141,7 +141,7 @@ TEST_F(TestOutputDataIOService, test_OutputDataDirHistory) QTest::qSleep(10); item1->setLastModified(QDateTime::currentDateTime()); - EXPECT_TRUE(history.wasModifiedSinceLastSave(item1) == true); + EXPECT_TRUE(history.wasModifiedSinceLastSave(item1)); } //! Tests OutputDataIOHistory class (save info for several independent directories). @@ -174,10 +174,10 @@ TEST_F(TestOutputDataIOService, test_OutputDataIOHistory) history.setHistory("dir1", dirHistory1); history.setHistory("dir2", dirHistory2); - EXPECT_TRUE(history.wasModifiedSinceLastSave("dir1", item1) == true); - EXPECT_TRUE(history.wasModifiedSinceLastSave("dir2", item1) == true); + EXPECT_TRUE(history.wasModifiedSinceLastSave("dir1", item1)); + EXPECT_TRUE(history.wasModifiedSinceLastSave("dir2", item1)); - EXPECT_TRUE(history.wasModifiedSinceLastSave("dir1", item2) == false); + EXPECT_FALSE(history.wasModifiedSinceLastSave("dir1", item2)); EXPECT_TRUE(history.wasModifiedSinceLastSave("dir2", item2) == true); // since item2 doesn't exist @@ -241,7 +241,7 @@ TEST_F(TestOutputDataIOService, test_OutputDataIOService) EXPECT_TRUE(GuiUnittestUtils::isTheSame(fname2new, *realData2->dataItem()->getOutputData())); // Check that file with old name was removed. - EXPECT_TRUE(ProjectUtils::exists(fname2) == false); + EXPECT_FALSE(ProjectUtils::exists(fname2)); } TEST_F(TestOutputDataIOService, test_RealDataItemWithNativeData) diff --git a/Tests/UnitTests/GUI/TestParticleCoreShell.cpp b/Tests/UnitTests/GUI/TestParticleCoreShell.cpp index 24f01488f01cf6ce2a6da57f16a01345da5b02bd..1496ca23b72641f4ac510520bddb0d2b759aa883 100644 --- a/Tests/UnitTests/GUI/TestParticleCoreShell.cpp +++ b/Tests/UnitTests/GUI/TestParticleCoreShell.cpp @@ -106,7 +106,7 @@ TEST_F(TestParticleCoreShell, test_distributionContext) // coreshell particle SessionItem* coreshell = model.insertNewItem("ParticleCoreShell"); coreshell->setItemValue(ParticleItem::P_ABUNDANCE, 0.2); - EXPECT_TRUE(coreshell->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == true); + EXPECT_TRUE(coreshell->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); EXPECT_EQ(coreshell->getItemValue(ParticleItem::P_ABUNDANCE).toDouble(), 0.2); // create distribution, adding coreshell to it diff --git a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp index 52bf817015bccec54e87e544083f4ed4df8fc7d2..e28003664601315bf2c114799fa1d233633f7669 100644 --- a/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp +++ b/Tests/UnitTests/GUI/TestParticleDistributionItem.cpp @@ -1,8 +1,8 @@ +#include "Core/HardParticle/HardParticles.h" #include "Core/Material/MaterialFactoryFuncs.h" #include "Core/Parametrization/Distributions.h" #include "Core/Particle/Particle.h" #include "Core/Particle/ParticleDistribution.h" -#include "Core/includeIncludes/FormFactors.h" #include "GUI/coregui/Models/ComboProperty.h" #include "GUI/coregui/Models/DistributionItems.h" #include "GUI/coregui/Models/MaterialModel.h" diff --git a/Tests/UnitTests/GUI/TestParticleItem.cpp b/Tests/UnitTests/GUI/TestParticleItem.cpp index 59210203b7ed46d99a99ab56bc4e4058a26270d5..9160d060b02bb4baf6652123702d11a2d18fd61b 100644 --- a/Tests/UnitTests/GUI/TestParticleItem.cpp +++ b/Tests/UnitTests/GUI/TestParticleItem.cpp @@ -54,17 +54,17 @@ TEST_F(TestParticleItem, test_distributionContext) SampleModel model; SessionItem* particle = model.insertNewItem("Particle"); particle->setItemValue(ParticleItem::P_ABUNDANCE, 0.2); - EXPECT_TRUE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == true); + EXPECT_TRUE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); EXPECT_EQ(particle->getItemValue(ParticleItem::P_ABUNDANCE).toDouble(), 0.2); // adding particle to distribution, checking that abundance is default SessionItem* distribution = model.insertNewItem("ParticleDistribution"); model.moveItem(particle, distribution, -1, ParticleDistributionItem::T_PARTICLES); - EXPECT_TRUE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == false); + EXPECT_FALSE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); EXPECT_EQ(particle->getItemValue(ParticleItem::P_ABUNDANCE).toDouble(), 1.0); // removing particle, checking that abundance is enabled again distribution->takeRow(ParentRow(*particle)); - EXPECT_TRUE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled() == true); + EXPECT_TRUE(particle->getItem(ParticleItem::P_ABUNDANCE)->isEnabled()); delete particle; } diff --git a/Tests/UnitTests/GUI/TestProjectDocument.cpp b/Tests/UnitTests/GUI/TestProjectDocument.cpp index fd740fcfb17d98ea70a8db96cfdfa77610d62423..c7a482f9102d6e695428d408cc1771465802188b 100644 --- a/Tests/UnitTests/GUI/TestProjectDocument.cpp +++ b/Tests/UnitTests/GUI/TestProjectDocument.cpp @@ -65,8 +65,8 @@ TEST_F(TestProjectDocument, test_projectDocument) document.setApplicationModels(&models); // Checking initial document status - EXPECT_TRUE(document.isModified() == false); - EXPECT_TRUE(document.hasValidNameAndPath() == false); + EXPECT_FALSE(document.isModified()); + EXPECT_FALSE(document.hasValidNameAndPath()); EXPECT_EQ(document.projectDir(), QString()); EXPECT_EQ(document.projectName(), QString()); EXPECT_EQ(document.projectFileName(), QString()); diff --git a/Tests/UnitTests/GUI/TestProjectUtils.cpp b/Tests/UnitTests/GUI/TestProjectUtils.cpp index 1bc38497f6fd9d32ece1afaa6dbe70578cff8b68..8dd95ad3f44643e22557a0f621effcffee27bbe1 100644 --- a/Tests/UnitTests/GUI/TestProjectUtils.cpp +++ b/Tests/UnitTests/GUI/TestProjectUtils.cpp @@ -31,8 +31,8 @@ TEST_F(TestProjectUtils, test_nonXMLDataInDir) QDir dir(projectDir); if (dir.exists()) { - EXPECT_TRUE(ProjectUtils::removeRecursively(projectDir) == true); - EXPECT_TRUE(dir.exists() == false); + EXPECT_TRUE(ProjectUtils::removeRecursively(projectDir)); + EXPECT_FALSE(dir.exists()); } GUIHelpers::createSubdir(".", projectDir); @@ -61,7 +61,7 @@ TEST_F(TestProjectUtils, test_nonXMLDataInDir) EXPECT_EQ(test_nonxml_files, nonxml); std::cout << "remove nonxml files ..." << std::endl; - EXPECT_TRUE(ProjectUtils::removeFiles(projectDir, nonxml) == true); + EXPECT_TRUE(ProjectUtils::removeFiles(projectDir, nonxml)); std::cout << "check that no files left ..." << std::endl; nonxml = ProjectUtils::nonXMLDataInDir(projectDir); diff --git a/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp b/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp index 800ae4f79a89053be95c6264434188c0ddf73af0..15e7746b136a7563818c1e9c6bfa83b55b2a393d 100644 --- a/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp +++ b/Tests/UnitTests/GUI/TestProxyModelStrategy.cpp @@ -123,7 +123,7 @@ TEST_F(TestProxyModelStrategy, test_componentStrategyParticle) QModelIndex radiusProxyIndex = strategy.sourceToProxy().value(radiusIndex); EXPECT_TRUE(particleProxyIndex.isValid()); EXPECT_TRUE(groupProxyIndex.isValid()); - EXPECT_TRUE(ffProxyIndex.isValid() == false); // ff is excluded from hierarchy + EXPECT_FALSE(ffProxyIndex.isValid()); // ff is excluded from hierarchy EXPECT_TRUE(radiusProxyIndex.isValid()); // Checking "real" parents of indices @@ -159,12 +159,12 @@ TEST_F(TestProxyModelStrategy, test_setRootIndex) QModelIndex groupProxyIndex = strategy.sourceToProxy().value(groupIndex); QModelIndex ffProxyIndex = strategy.sourceToProxy().value(ffIndex); QModelIndex radiusProxyIndex = strategy.sourceToProxy().value(radiusIndex); - EXPECT_TRUE(particleProxyIndex.isValid() == false); // particle is not in a tree + EXPECT_FALSE(particleProxyIndex.isValid()); // particle is not in a tree EXPECT_TRUE(groupProxyIndex.isValid()); EXPECT_EQ(groupProxyIndex.row(), 0); EXPECT_EQ(groupProxyIndex.column(), 0); EXPECT_TRUE(groupProxyIndex.parent() == QModelIndex()); - EXPECT_TRUE(ffProxyIndex.isValid() == false); // ff is excluded from hierarchy + EXPECT_FALSE(ffProxyIndex.isValid()); // ff is excluded from hierarchy EXPECT_TRUE(radiusProxyIndex.isValid()); // checking that new parent of groupItem is root diff --git a/Tests/UnitTests/GUI/TestSavingSpecularData.cpp b/Tests/UnitTests/GUI/TestSavingSpecularData.cpp index b5e6666bab93340737d4c61872d04189a979d9b7..c6c650ad1c6cb1da385090c63b1bc4c39173bc1b 100644 --- a/Tests/UnitTests/GUI/TestSavingSpecularData.cpp +++ b/Tests/UnitTests/GUI/TestSavingSpecularData.cpp @@ -150,7 +150,7 @@ TEST_F(TestSavingSpecularData, test_setLastModified) EXPECT_FALSE(info.wasModifiedSinceLastSave()); QTest::qSleep(nap_time); - item->init(*m_axis.get(), "Degrees"); + item->init(*m_axis, "Degrees"); EXPECT_TRUE(info.wasModifiedSinceLastSave()); info = OutputDataSaveInfo::createSaved(item); diff --git a/Tests/UnitTests/GUI/TestSessionItem.cpp b/Tests/UnitTests/GUI/TestSessionItem.cpp index 1ebb4c9cfa22e4f44823d70cc299e68df92fed70..cb2d30975fab10a1718580a1431daf0285d1246f 100644 --- a/Tests/UnitTests/GUI/TestSessionItem.cpp +++ b/Tests/UnitTests/GUI/TestSessionItem.cpp @@ -231,7 +231,7 @@ TEST_F(TestSessionItem, dataRoles) EXPECT_TRUE(item->roleProperty(Qt::DisplayRole) == 5432); EXPECT_TRUE(item->roleProperty(Qt::EditRole) == 5432); for (int i = 0; i < 10; i++) { - EXPECT_TRUE(item->roleProperty(SessionFlags::EndSessionRoles + i).isValid() == false); + EXPECT_FALSE(item->roleProperty(SessionFlags::EndSessionRoles + i).isValid()); item->setRoleProperty(SessionFlags::EndSessionRoles + i, i); EXPECT_TRUE(item->roleProperty(SessionFlags::EndSessionRoles + i) == i); } diff --git a/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp b/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp index 98a821d9cfa00be7aa205fedd72361f536d230da..7dc43e9b7e48ec0053eef660a5cc00881ae63b52 100644 --- a/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp +++ b/Tests/UnitTests/Numeric/FormFactorSpecializationTest.cpp @@ -1,4 +1,4 @@ -#include "Core/includeIncludes/HardParticles.h" +#include "Core/HardParticle/HardParticles.h" #include "Tests/GTestWrapper/google_test.h" #include "Tests/UnitTests/Numeric/FormFactorTest.h" diff --git a/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp b/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp index f217197c906563b987a6254974931ca3521fa5e4..b799434eda8115cb3bd639ab6f78a467a36ec4ea 100644 --- a/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp +++ b/Tests/UnitTests/Numeric/FormFactorSymmetryTest.cpp @@ -1,5 +1,5 @@ #include "Core/Basics/MathConstants.h" -#include "Core/includeIncludes/HardParticles.h" +#include "Core/HardParticle/HardParticles.h" #include "Tests/GTestWrapper/google_test.h" #include "Tests/UnitTests/Numeric/FormFactorTest.h" @@ -32,24 +32,27 @@ protected: TEST_F(FFSymmetryTest, Prism3) { FormFactorPrism3 p(.83, .45); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_TWOPI / 3); }, 1e-12, - 1e-99, 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_TWOPI / 3); }, 1e-12, 1e-99, + 2e2); } TEST_F(FFSymmetryTest, Prism6) { FormFactorPrism6 p(1.33, .42); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_PI / 3); }, 1e-12, 1e-99, - 50); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_TWOPI / 3); }, 3.8e-12, - 1e-99, 50); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_PI / 3); }, 1e-12, 1e-99, 50); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_TWOPI / 3); }, 3.8e-12, + 1e-99, 50); } TEST_F(FFSymmetryTest, Tetrahedron) { FormFactorTetrahedron p(8.43, .25, .53); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_TWOPI / 3); }, 6e-12, - 1e-99, 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_TWOPI / 3); }, 6e-12, 1e-99, + 2e2); // Linux: 3e-12, relaxed for Mac } @@ -57,15 +60,17 @@ TEST_F(FFSymmetryTest, Cone6_flat) { // TODO for larger q, imag(ff) is nan FormFactorCone6 p(4.3, .09, .1); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_PI / 3); }, 1e-11, - 1e-99, 50); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_PI / 3); }, 1e-11, 1e-99, + 50); } TEST_F(FFSymmetryTest, Cone6_steep) { FormFactorCone6 p(.23, 3.5, .999 * M_PI / 2); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_PI / 3); }, 1e-11, - 1e-99, 50); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(-M_PI / 3); }, 1e-11, 1e-99, + 50); } //*********** spheroids *************** @@ -73,24 +78,27 @@ TEST_F(FFSymmetryTest, Cone6_steep) TEST_F(FFSymmetryTest, HemiEllipsoid) { FormFactorHemiEllipsoid p(.53, .78, 1.3); - run_test(&p, [](const cvector_t& q) -> cvector_t { return cvector_t(-q.x(), q.y(), q.z()); }, - 1e-12, 1e-99, 2e2); - run_test(&p, [](const cvector_t& q) -> cvector_t { return cvector_t(q.x(), -q.y(), q.z()); }, - 1e-12, 1e-99, 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return cvector_t(-q.x(), q.y(), q.z()); }, 1e-12, + 1e-99, 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return cvector_t(q.x(), -q.y(), q.z()); }, 1e-12, + 1e-99, 2e2); } TEST_F(FFSymmetryTest, TruncatedSphere) { FormFactorTruncatedSphere p(.79, .34, 0); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_PI / 3.13698); }, 1e-10, - 1e-99, 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(M_PI / 3.13698); }, 1e-10, + 1e-99, 2e2); } TEST_F(FFSymmetryTest, FullSpheroid) { FormFactorFullSpheroid p(.73, .36); - run_test(&p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(.123); }, 1e-12, 1e-99, - 2e2); + run_test( + &p, [](const cvector_t& q) -> cvector_t { return q.rotatedZ(.123); }, 1e-12, 1e-99, 2e2); } // ****** TODO: tests that do not pass for the full q range ********* diff --git a/Wrap/python/plot_utils.py b/Wrap/python/plot_utils.py index 9ba1ff18f6d16806ffc7bfbb3ed444f408009423..82dd6ed698374cfcfa384759f43412d6229748a8 100644 --- a/Wrap/python/plot_utils.py +++ b/Wrap/python/plot_utils.py @@ -137,7 +137,7 @@ def plot_histogram(hist, zmin=None, zmax=None, xlabel=None, ylabel=None, zlabel= zlabel=zlabel, title=title, axes_limits=axes_limits, **kwargs) -def plot_colormap(result, zmin=None, zmax=None, units=ba.AxesUnits.DEFAULT, +def plot_colormap(result, zmin=None, zmax=None, units=ba.Axes.DEFAULT, xlabel=None, ylabel=None, zlabel=None, title=None, **kwargs): """ @@ -156,7 +156,7 @@ def plot_colormap(result, zmin=None, zmax=None, units=ba.AxesUnits.DEFAULT, zlabel=zlabel, title=title, axes_limits=axes_limits, **kwargs) -def plot_specular_simulation_result(result, ymin=None, ymax=None, units=ba.AxesUnits.DEFAULT, +def plot_specular_simulation_result(result, ymin=None, ymax=None, units=ba.Axes.DEFAULT, xlabel=None, ylabel=None, title=None, **kwargs): """ Plots intensity data for specular simulation result @@ -188,7 +188,7 @@ def plot_specular_simulation_result(result, ymin=None, ymax=None, units=ba.AxesU plt.title(title) -def plot_simulation_result(result, intensity_min=None, intensity_max=None, units=ba.AxesUnits.DEFAULT, +def plot_simulation_result(result, intensity_min=None, intensity_max=None, units=ba.Axes.DEFAULT, xlabel=None, ylabel=None, postpone_show=False, title=None, **kwargs): """ Draws simulation result and (optionally) shows the plot. @@ -210,7 +210,7 @@ def plot_simulation_result(result, intensity_min=None, intensity_max=None, units class Plotter: def __init__(self, zmin=None, zmax=None, xlabel=None, ylabel=None, - units=ba.AxesUnits.DEFAULT, aspect=None): + units=ba.Axes.DEFAULT, aspect=None): self._fig = plt.figure(figsize=(10.25, 7.69)) self._fig.canvas.draw() @@ -231,7 +231,7 @@ class Plotter: class PlotterGISAS(Plotter): def __init__(self, zmin=None, zmax=None, xlabel=None, ylabel=None, - units=ba.AxesUnits.DEFAULT, aspect=None): + units=ba.Axes.DEFAULT, aspect=None): Plotter.__init__(self, zmin, zmax, xlabel, ylabel, units, aspect) @staticmethod @@ -291,7 +291,7 @@ class PlotterSpecular(Plotter): specular data fit. """ - def __init__(self, units=ba.AxesUnits.DEFAULT): + def __init__(self, units=ba.Axes.DEFAULT): Plotter.__init__(self) self.gs = gridspec.GridSpec(1, 2, width_ratios=[2.5, 1], wspace=0) self.units = units diff --git a/Wrap/swig/libBornAgainCore.i b/Wrap/swig/libBornAgainCore.i index 7b516e93b835c289a6d83c8b89e9204d28681c28..fbd0f658fcc40d0f1e6c91e161f6edad13770e88 100644 --- a/Wrap/swig/libBornAgainCore.i +++ b/Wrap/swig/libBornAgainCore.i @@ -28,7 +28,7 @@ %include "std_shared_ptr.i" // TODO CLARIFY WHY THIS IS INCLUDED -%include "../../auto/Wrap/doxygen_core.i" +%include "../../auto/Wrap/doxygenCore.i" // include the list of smart pointers (common between Core and Fit) %include "shared_pointers.i" @@ -232,7 +232,7 @@ %newobject ScanResolution::scanRelativeResolution; %newobject ScanResolution::scanAbsoluteResolution; -%newobject SimulationResult::histogram2d(AxesUnits units_type = AxesUnits::DEFAULT) const; +%newobject SimulationResult::histogram2d(Axes::Units units_type = Axes::Units::DEFAULT) const; %newobject IntensityDataIOFactory::readOutputData(const std::string& file_name); %newobject IntensityDataIOFactory::readIntensityData(const std::string& file_name); @@ -267,7 +267,6 @@ %import(module="libBornAgainFit") "Fit/Kernel/Parameters.h" %import(module="libBornAgainFit") "Fit/Kernel/Parameter.h" -%rename(AxesUnits) AxesUnitsWrap; %template(swig_dummy_type_axisinfo_vector) std::vector<AxisInfo>; %template(swig_dummy_type_inode_vector) std::vector<INode*>; @@ -304,7 +303,6 @@ %include "Core/Binning/IPixel.h" %include "Core/Binning/IAxis.h" %include "Core/Binning/VariableBinAxis.h" - %include "Core/Binning/ConstKBinAxis.h" %include "Core/Binning/CustomBinAxis.h" %include "Core/Binning/FixedBinAxis.h" diff --git a/Wrap/swig/libBornAgainFit.i b/Wrap/swig/libBornAgainFit.i index 84c611010a78f8da1ee8046814857befe2b5de1b..c69b6fdffb98413f3d36078f562f1de263deaf58 100644 --- a/Wrap/swig/libBornAgainFit.i +++ b/Wrap/swig/libBornAgainFit.i @@ -32,7 +32,7 @@ %include "renameFit.i" %include "directors.i" -%include "auto/Wrap/doxygen_fit.i" +%include "auto/Wrap/doxygenFit.i" %template(vdouble1d_t) std::vector<double>; %template(vdouble2d_t) std::vector< std::vector<double> >; diff --git a/auto/Wrap/doxygen_core.i b/auto/Wrap/doxygenCore.i similarity index 98% rename from auto/Wrap/doxygen_core.i rename to auto/Wrap/doxygenCore.i index f35591954aac5501f373df67d03b4a5e1dfc7752..dc219de1a5ff776a831399fb93d623979970d954 100644 --- a/auto/Wrap/doxygen_core.i +++ b/auto/Wrap/doxygenCore.i @@ -137,8 +137,8 @@ C++ includes: SlicedCylindersBuilder.h "; -// File: structAxesUnitsWrap.xml -%feature("docstring") AxesUnitsWrap " +// File: classAxes.xml +%feature("docstring") Axes " Wrapper for detector axes units, required for a better representation of detector axes units in python @@ -826,6 +826,31 @@ clone method "; +// File: classCloneableVector.xml +%feature("docstring") CloneableVector " + +The objects pointed to must posses a clone() function. + +A vector of unique pointers to objects that are cloneable. + +Equips vector<unique_ptr<T>> with copy constructor. For use with polymorphic objects, or in pimpl idiom. + +C++ includes: CloneableVector.h +"; + +%feature("docstring") CloneableVector::CloneableVector "CloneableVector< T >::CloneableVector() +"; + +%feature("docstring") CloneableVector::CloneableVector "CloneableVector< T >::CloneableVector(const CloneableVector &other) +"; + +%feature("docstring") CloneableVector::push_back "void CloneableVector< T >::push_back(T *t) +"; + +%feature("docstring") CloneableVector::emplace_back "void CloneableVector< T >::emplace_back(std::unique_ptr< T > &&t) +"; + + // File: classComplexIntegrator.xml %feature("docstring") ComplexIntegrator " @@ -1364,12 +1389,12 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") DepthProbeConverter::clone "DepthProbeConverter * DepthProbeConverter::clone() const final "; -%feature("docstring") DepthProbeConverter::availableUnits "std::vector< AxesUnits > DepthProbeConverter::availableUnits() const final +%feature("docstring") DepthProbeConverter::availableUnits "std::vector< Axes::Units > DepthProbeConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") DepthProbeConverter::defaultUnits "AxesUnits DepthProbeConverter::defaultUnits() const final +%feature("docstring") DepthProbeConverter::defaultUnits "Axes::Units DepthProbeConverter::defaultUnits() const final "; @@ -1427,12 +1452,6 @@ Set calculation flag (if it's false, zero intensity is assigned to the element) %feature("docstring") DepthProbeSimulation::DepthProbeSimulation "DepthProbeSimulation::DepthProbeSimulation() "; -%feature("docstring") DepthProbeSimulation::DepthProbeSimulation "DepthProbeSimulation::DepthProbeSimulation(const MultiLayer &sample) -"; - -%feature("docstring") DepthProbeSimulation::DepthProbeSimulation "DepthProbeSimulation::DepthProbeSimulation(const std::shared_ptr< ISampleBuilder > sample_builder) -"; - %feature("docstring") DepthProbeSimulation::~DepthProbeSimulation "DepthProbeSimulation::~DepthProbeSimulation() override "; @@ -2667,6 +2686,24 @@ Creates a new clipped axis. "; +// File: classFixedBuilder.xml +%feature("docstring") FixedBuilder " + +A trivial sample builder class that builds a fixed sample. + +C++ includes: FixedBuilder.h +"; + +%feature("docstring") FixedBuilder::FixedBuilder "FixedBuilder::FixedBuilder()=delete +"; + +%feature("docstring") FixedBuilder::FixedBuilder "FixedBuilder::FixedBuilder(const MultiLayer &) +"; + +%feature("docstring") FixedBuilder::buildSample "MultiLayer * FixedBuilder::buildSample() const +"; + + // File: classFootprintGauss.xml %feature("docstring") FootprintGauss " @@ -5562,12 +5599,6 @@ C++ includes: GISASSimulation.h %feature("docstring") GISASSimulation::GISASSimulation "GISASSimulation::GISASSimulation() "; -%feature("docstring") GISASSimulation::GISASSimulation "GISASSimulation::GISASSimulation(const MultiLayer &p_sample) -"; - -%feature("docstring") GISASSimulation::GISASSimulation "GISASSimulation::GISASSimulation(const std::shared_ptr< ISampleBuilder > p_sample_builder) -"; - %feature("docstring") GISASSimulation::~GISASSimulation "GISASSimulation::~GISASSimulation() "; @@ -6327,9 +6358,6 @@ C++ includes: IDetector.h Inits detector with the beam settings. "; -%feature("docstring") IDetector::clear "void IDetector::clear() -"; - %feature("docstring") IDetector::addAxis "void IDetector::addAxis(const IAxis &axis) "; @@ -6409,7 +6437,7 @@ Returns detection properties. Returns new intensity map with detector resolution applied. Map will be cropped to ROI if ROI is present. "; -%feature("docstring") IDetector::defaultAxesUnits "virtual AxesUnits IDetector::defaultAxesUnits() const +%feature("docstring") IDetector::defaultAxesUnits "virtual Axes::Units IDetector::defaultAxesUnits() const Return default axes units. "; @@ -6450,11 +6478,6 @@ C++ includes: IDetector2D.h Sets detector parameters using angle ranges. "; -%feature("docstring") IDetector2D::setDetectorAxes "void IDetector2D::setDetectorAxes(const IAxis &axis0, const IAxis &axis1) - -Sets detector parameters using axes. -"; - %feature("docstring") IDetector2D::removeMasks "void IDetector2D::removeMasks() Removes all masks from the detector. @@ -9525,7 +9548,7 @@ C++ includes: ISampleBuilder.h %feature("docstring") ISampleBuilder::buildSample "virtual MultiLayer* ISampleBuilder::buildSample() const =0 "; -%feature("docstring") ISampleBuilder::createSampleByIndex "virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t index) +%feature("docstring") ISampleBuilder::createSampleByIndex "virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t) "; %feature("docstring") ISampleBuilder::size "virtual size_t ISampleBuilder::size() @@ -9917,31 +9940,31 @@ C++ includes: IUnitConverter.h %feature("docstring") IUnitConverter::dimension "virtual size_t IUnitConverter::dimension() const =0 "; -%feature("docstring") IUnitConverter::calculateMin "virtual double IUnitConverter::calculateMin(size_t i_axis, AxesUnits units_type) const =0 +%feature("docstring") IUnitConverter::calculateMin "virtual double IUnitConverter::calculateMin(size_t i_axis, Axes::Units units_type) const =0 "; -%feature("docstring") IUnitConverter::calculateMax "virtual double IUnitConverter::calculateMax(size_t i_axis, AxesUnits units_type) const =0 +%feature("docstring") IUnitConverter::calculateMax "virtual double IUnitConverter::calculateMax(size_t i_axis, Axes::Units units_type) const =0 "; %feature("docstring") IUnitConverter::axisSize "virtual size_t IUnitConverter::axisSize(size_t i_axis) const =0 "; -%feature("docstring") IUnitConverter::axisName "std::string IUnitConverter::axisName(size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) const +%feature("docstring") IUnitConverter::axisName "std::string IUnitConverter::axisName(size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) const "; -%feature("docstring") IUnitConverter::availableUnits "virtual std::vector<AxesUnits> IUnitConverter::availableUnits() const =0 +%feature("docstring") IUnitConverter::availableUnits "virtual std::vector<Axes::Units> IUnitConverter::availableUnits() const =0 "; -%feature("docstring") IUnitConverter::defaultUnits "virtual AxesUnits IUnitConverter::defaultUnits() const =0 +%feature("docstring") IUnitConverter::defaultUnits "virtual Axes::Units IUnitConverter::defaultUnits() const =0 "; -%feature("docstring") IUnitConverter::substituteDefaultUnits "AxesUnits IUnitConverter::substituteDefaultUnits(AxesUnits units) const +%feature("docstring") IUnitConverter::substituteDefaultUnits "Axes::Units IUnitConverter::substituteDefaultUnits(Axes::Units units) const "; -%feature("docstring") IUnitConverter::createConvertedAxis "virtual std::unique_ptr<IAxis> IUnitConverter::createConvertedAxis(size_t i_axis, AxesUnits units) const =0 +%feature("docstring") IUnitConverter::createConvertedAxis "virtual std::unique_ptr<IAxis> IUnitConverter::createConvertedAxis(size_t i_axis, Axes::Units units) const =0 "; -%feature("docstring") IUnitConverter::createConvertedData "std::unique_ptr< OutputData< double > > IUnitConverter::createConvertedData(const OutputData< double > &data, AxesUnits units) const +%feature("docstring") IUnitConverter::createConvertedData "std::unique_ptr< OutputData< double > > IUnitConverter::createConvertedData(const OutputData< double > &data, Axes::Units units) const Creates OutputData array in converter units. "; @@ -11498,12 +11521,6 @@ C++ includes: OffSpecSimulation.h %feature("docstring") OffSpecSimulation::OffSpecSimulation "OffSpecSimulation::OffSpecSimulation() "; -%feature("docstring") OffSpecSimulation::OffSpecSimulation "OffSpecSimulation::OffSpecSimulation(const MultiLayer &p_sample) -"; - -%feature("docstring") OffSpecSimulation::OffSpecSimulation "OffSpecSimulation::OffSpecSimulation(const std::shared_ptr< class ISampleBuilder > p_sample_builder) -"; - %feature("docstring") OffSpecSimulation::~OffSpecSimulation "OffSpecSimulation::~OffSpecSimulation() final "; @@ -11561,7 +11578,7 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") OffSpecularConverter::clone "OffSpecularConverter * OffSpecularConverter::clone() const final "; -%feature("docstring") OffSpecularConverter::defaultUnits "AxesUnits OffSpecularConverter::defaultUnits() const final +%feature("docstring") OffSpecularConverter::defaultUnits "Axes::Units OffSpecularConverter::defaultUnits() const final "; @@ -11603,7 +11620,10 @@ C++ includes: OrderedMap.h %feature("docstring") OrderedMap::end "iterator OrderedMap< Key, Object >::end() "; -%feature("docstring") OrderedMap::size "size_t OrderedMap< Key, Object >::size() +%feature("docstring") OrderedMap::size "size_t OrderedMap< Key, Object >::size() const +"; + +%feature("docstring") OrderedMap::empty "bool OrderedMap< Key, Object >::empty() const "; %feature("docstring") OrderedMap::insert "void OrderedMap< Key, Object >::insert(const Key &key, const Object &object) @@ -11618,7 +11638,7 @@ C++ includes: OrderedMap.h %feature("docstring") OrderedMap::erase "size_t OrderedMap< Key, Object >::erase(const Key &key) "; -%feature("docstring") OrderedMap::value "const Object& OrderedMap< Key, Object >::value(const Key &key) +%feature("docstring") OrderedMap::value "const Object& OrderedMap< Key, Object >::value(const Key &key) const "; @@ -12234,6 +12254,9 @@ Clears the parameter map. Returns number of parameters in the pool. "; +%feature("docstring") ParameterPool::empty "bool ParameterPool::empty() const +"; + %feature("docstring") ParameterPool::addParameter "RealParameter & ParameterPool::addParameter(RealParameter *newPar) Adds parameter to the pool, and returns reference to the input pointer. @@ -13151,6 +13174,8 @@ C++ includes: IterationStrategy.h "; %feature("docstring") Prism::Prism "Prism::Prism(bool symmetry_Ci, double height, const std::vector< kvector_t > &vertices) + +The mathematics implemented here is described in full detail in a paper by Joachim Wuttke, entitled \"Form factor (Fourier shape transform) of polygon and polyhedron.\" "; %feature("docstring") Prism::area "double Prism::area() const @@ -13789,12 +13814,12 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") RectangularConverter::clone "RectangularConverter * RectangularConverter::clone() const final "; -%feature("docstring") RectangularConverter::availableUnits "std::vector< AxesUnits > RectangularConverter::availableUnits() const final +%feature("docstring") RectangularConverter::availableUnits "std::vector< Axes::Units > RectangularConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") RectangularConverter::defaultUnits "AxesUnits RectangularConverter::defaultUnits() const final +%feature("docstring") RectangularConverter::defaultUnits "Axes::Units RectangularConverter::defaultUnits() const final "; @@ -13896,7 +13921,7 @@ Inits detector with the beam settings. %feature("docstring") RectangularDetector::getDetectorArrangment "RectangularDetector::EDetectorArrangement RectangularDetector::getDetectorArrangment() const "; -%feature("docstring") RectangularDetector::defaultAxesUnits "AxesUnits RectangularDetector::defaultAxesUnits() const override +%feature("docstring") RectangularDetector::defaultAxesUnits "Axes::Units RectangularDetector::defaultAxesUnits() const override return default axes units "; @@ -14545,7 +14570,7 @@ Retrieves a SampleBuilder from the registry, does the build, and returns the res // File: classSampleBuilderNode.xml %feature("docstring") SampleBuilderNode " -Enfolds MultiLayerBuilder to have it in INode tree. +Wraps an ISampleBuilder, and puts it in an INode tree. Used by SampleProvider. C++ includes: SampleBuilderNode.h "; @@ -14556,7 +14581,7 @@ C++ includes: SampleBuilderNode.h %feature("docstring") SampleBuilderNode::SampleBuilderNode "SampleBuilderNode::SampleBuilderNode(const SampleBuilderNode &other) "; -%feature("docstring") SampleBuilderNode::setSampleBuilder "void SampleBuilderNode::setSampleBuilder(builder_t sample_builder) +%feature("docstring") SampleBuilderNode::setSBN "void SampleBuilderNode::setSBN(const std::shared_ptr< ISampleBuilder > &sample_builder) Sets sample builder and borrows its parameters. "; @@ -14576,7 +14601,7 @@ Calls the INodeVisitor's visit method. Creates a multilayer using sample builder. "; -%feature("docstring") SampleBuilderNode::builder "SampleBuilderNode::builder_t SampleBuilderNode::builder() const +%feature("docstring") SampleBuilderNode::builder "std::shared_ptr< ISampleBuilder > SampleBuilderNode::builder() const Returns current sample builder. "; @@ -14720,7 +14745,7 @@ C++ includes: SampleLabelHandler.h // File: classSampleProvider.xml %feature("docstring") SampleProvider " -Gives access to the sample to simulate. Sample can come either directly from the user or from SampleBuilder. +Holds either a Sample, or a SampleBuilderNode (which holds an ISampleBuilder). Used in Simulation, which holds a SampleProvider member. C++ includes: SampleProvider.h "; @@ -14737,7 +14762,7 @@ C++ includes: SampleProvider.h %feature("docstring") SampleProvider::setSample "void SampleProvider::setSample(const MultiLayer &multilayer) "; -%feature("docstring") SampleProvider::setSampleBuilder "void SampleProvider::setSampleBuilder(const std::shared_ptr< ISampleBuilder > sample_builder) +%feature("docstring") SampleProvider::setBuilder "void SampleProvider::setBuilder(const std::shared_ptr< ISampleBuilder > &sample_builder) "; %feature("docstring") SampleProvider::sample "const MultiLayer * SampleProvider::sample() const @@ -15086,12 +15111,6 @@ C++ includes: Simulation.h %feature("docstring") Simulation::Simulation "Simulation::Simulation() "; -%feature("docstring") Simulation::Simulation "Simulation::Simulation(const MultiLayer &p_sample) -"; - -%feature("docstring") Simulation::Simulation "Simulation::Simulation(const std::shared_ptr< ISampleBuilder > p_sample_builder) -"; - %feature("docstring") Simulation::~Simulation "Simulation::~Simulation() "; @@ -15154,7 +15173,7 @@ The MultiLayer object will not be owned by the Simulation object. %feature("docstring") Simulation::sample "const MultiLayer * Simulation::sample() const "; -%feature("docstring") Simulation::setSampleBuilder "void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > sample_builder) +%feature("docstring") Simulation::setSampleBuilder "void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > &sample_builder) "; %feature("docstring") Simulation::setBackground "void Simulation::setBackground(const IBackground &bg) @@ -15232,12 +15251,6 @@ C++ includes: Simulation2D.h %feature("docstring") Simulation2D::Simulation2D "Simulation2D::Simulation2D() "; -%feature("docstring") Simulation2D::Simulation2D "Simulation2D::Simulation2D(const MultiLayer &p_sample) -"; - -%feature("docstring") Simulation2D::Simulation2D "Simulation2D::Simulation2D(const std::shared_ptr< ISampleBuilder > p_sample_builder) -"; - %feature("docstring") Simulation2D::~Simulation2D "Simulation2D::~Simulation2D() override "; @@ -15579,13 +15592,13 @@ C++ includes: SimulationResult.h %feature("docstring") SimulationResult::SimulationResult "SimulationResult::SimulationResult(SimulationResult &&other) "; -%feature("docstring") SimulationResult::data "std::unique_ptr< OutputData< double > > SimulationResult::data(AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::data "std::unique_ptr< OutputData< double > > SimulationResult::data(Axes::Units units=Axes::Units::DEFAULT) const "; -%feature("docstring") SimulationResult::histogram2d "Histogram2D * SimulationResult::histogram2d(AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::histogram2d "Histogram2D * SimulationResult::histogram2d(Axes::Units units=Axes::Units::DEFAULT) const "; -%feature("docstring") SimulationResult::axisInfo "std::vector< AxisInfo > SimulationResult::axisInfo(AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::axisInfo "std::vector< AxisInfo > SimulationResult::axisInfo(Axes::Units units=Axes::Units::DEFAULT) const Provide AxisInfo for each axis and the given units. "; @@ -15598,15 +15611,18 @@ Returns underlying unit converter. %feature("docstring") SimulationResult::size "size_t SimulationResult::size() const "; -%feature("docstring") SimulationResult::array "PyObject * SimulationResult::array(AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::empty "bool SimulationResult::empty() const +"; + +%feature("docstring") SimulationResult::array "PyObject * SimulationResult::array(Axes::Units units=Axes::Units::DEFAULT) const returns intensity data as Python numpy array "; -%feature("docstring") SimulationResult::axis "std::vector< double > SimulationResult::axis(AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::axis "std::vector< double > SimulationResult::axis(Axes::Units units=Axes::Units::DEFAULT) const "; -%feature("docstring") SimulationResult::axis "std::vector< double > SimulationResult::axis(size_t i_axis, AxesUnits units=AxesUnits::DEFAULT) const +%feature("docstring") SimulationResult::axis "std::vector< double > SimulationResult::axis(size_t i_axis, Axes::Units units=Axes::Units::DEFAULT) const Returns axis coordinates as a numpy array. With no parameters given returns coordinates of x-axis in default units. "; @@ -15894,7 +15910,7 @@ Returns region of interest if exists. Resets region of interest making whole detector plane available for the simulation. "; -%feature("docstring") SpecularDetector1D::defaultAxesUnits "AxesUnits SpecularDetector1D::defaultAxesUnits() const override +%feature("docstring") SpecularDetector1D::defaultAxesUnits "Axes::Units SpecularDetector1D::defaultAxesUnits() const override Return default axes units. "; @@ -16059,12 +16075,6 @@ C++ includes: SpecularSimulation.h %feature("docstring") SpecularSimulation::SpecularSimulation "SpecularSimulation::SpecularSimulation() "; -%feature("docstring") SpecularSimulation::SpecularSimulation "SpecularSimulation::SpecularSimulation(const MultiLayer &sample) -"; - -%feature("docstring") SpecularSimulation::SpecularSimulation "SpecularSimulation::SpecularSimulation(const std::shared_ptr< ISampleBuilder > sample_builder) -"; - %feature("docstring") SpecularSimulation::~SpecularSimulation "SpecularSimulation::~SpecularSimulation() override "; @@ -16201,12 +16211,12 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") SphericalConverter::clone "SphericalConverter * SphericalConverter::clone() const final "; -%feature("docstring") SphericalConverter::availableUnits "std::vector< AxesUnits > SphericalConverter::availableUnits() const final +%feature("docstring") SphericalConverter::availableUnits "std::vector< Axes::Units > SphericalConverter::availableUnits() const final Returns the list of all available units. "; -%feature("docstring") SphericalConverter::defaultUnits "AxesUnits SphericalConverter::defaultUnits() const final +%feature("docstring") SphericalConverter::defaultUnits "Axes::Units SphericalConverter::defaultUnits() const final "; @@ -16261,7 +16271,7 @@ Calls the INodeVisitor's visit method. %feature("docstring") SphericalDetector::~SphericalDetector "SphericalDetector::~SphericalDetector() override "; -%feature("docstring") SphericalDetector::defaultAxesUnits "AxesUnits SphericalDetector::defaultAxesUnits() const override +%feature("docstring") SphericalDetector::defaultAxesUnits "Axes::Units SphericalDetector::defaultAxesUnits() const override return default axes units "; @@ -16638,22 +16648,22 @@ C++ includes: UnitConverter1D.h Returns dimensionality of converted canvas. "; -%feature("docstring") UnitConverter1D::calculateMin "double UnitConverter1D::calculateMin(size_t i_axis, AxesUnits units_type) const override +%feature("docstring") UnitConverter1D::calculateMin "double UnitConverter1D::calculateMin(size_t i_axis, Axes::Units units_type) const override Calculates minimum on-axis value in given units. "; -%feature("docstring") UnitConverter1D::calculateMax "double UnitConverter1D::calculateMax(size_t i_axis, AxesUnits units_type) const override +%feature("docstring") UnitConverter1D::calculateMax "double UnitConverter1D::calculateMax(size_t i_axis, Axes::Units units_type) const override Calculates maximum on-axis value in given units. "; -%feature("docstring") UnitConverter1D::createConvertedAxis "std::unique_ptr< IAxis > UnitConverter1D::createConvertedAxis(size_t i_axis, AxesUnits units) const override +%feature("docstring") UnitConverter1D::createConvertedAxis "std::unique_ptr< IAxis > UnitConverter1D::createConvertedAxis(size_t i_axis, Axes::Units units) const override Creates axis in converted units. "; -%feature("docstring") UnitConverter1D::createConvertedData "std::unique_ptr< OutputData< double > > UnitConverter1D::createConvertedData(const OutputData< double > &data, AxesUnits units) const override +%feature("docstring") UnitConverter1D::createConvertedData "std::unique_ptr< OutputData< double > > UnitConverter1D::createConvertedData(const OutputData< double > &data, Axes::Units units) const override Creates OutputData array in converter units. "; @@ -16667,7 +16677,7 @@ Conversion of axis units for the case of conventional (angle-based) reflectometr C++ includes: UnitConverter1D.h "; -%feature("docstring") UnitConverterConvSpec::UnitConverterConvSpec "UnitConverterConvSpec::UnitConverterConvSpec(const Beam &beam, const IAxis &axis, AxesUnits axis_units=AxesUnits::RADIANS) +%feature("docstring") UnitConverterConvSpec::UnitConverterConvSpec "UnitConverterConvSpec::UnitConverterConvSpec(const Beam &beam, const IAxis &axis, Axes::Units axis_units=Axes::Units::RADIANS) Constructs the object for unit conversion. "; @@ -16686,12 +16696,12 @@ Constructs the object for unit conversion. Returns the size of underlying axis. "; -%feature("docstring") UnitConverterConvSpec::availableUnits "std::vector< AxesUnits > UnitConverterConvSpec::availableUnits() const override +%feature("docstring") UnitConverterConvSpec::availableUnits "std::vector< Axes::Units > UnitConverterConvSpec::availableUnits() const override Returns the list of all available units. "; -%feature("docstring") UnitConverterConvSpec::defaultUnits "AxesUnits UnitConverterConvSpec::defaultUnits() const override +%feature("docstring") UnitConverterConvSpec::defaultUnits "Axes::Units UnitConverterConvSpec::defaultUnits() const override Returns default units to convert to. "; @@ -16719,12 +16729,12 @@ C++ includes: UnitConverter1D.h Returns the size of underlying axis. "; -%feature("docstring") UnitConverterQSpec::availableUnits "std::vector< AxesUnits > UnitConverterQSpec::availableUnits() const override +%feature("docstring") UnitConverterQSpec::availableUnits "std::vector< Axes::Units > UnitConverterQSpec::availableUnits() const override Returns the list of all available units. "; -%feature("docstring") UnitConverterQSpec::defaultUnits "AxesUnits UnitConverterQSpec::defaultUnits() const override +%feature("docstring") UnitConverterQSpec::defaultUnits "Axes::Units UnitConverterQSpec::defaultUnits() const override Returns default units to convert to. "; @@ -16747,21 +16757,21 @@ C++ includes: SimpleUnitConverters.h %feature("docstring") UnitConverterSimple::dimension "size_t UnitConverterSimple::dimension() const final "; -%feature("docstring") UnitConverterSimple::calculateMin "double UnitConverterSimple::calculateMin(size_t i_axis, AxesUnits units_type) const final +%feature("docstring") UnitConverterSimple::calculateMin "double UnitConverterSimple::calculateMin(size_t i_axis, Axes::Units units_type) const final "; -%feature("docstring") UnitConverterSimple::calculateMax "double UnitConverterSimple::calculateMax(size_t i_axis, AxesUnits units_type) const final +%feature("docstring") UnitConverterSimple::calculateMax "double UnitConverterSimple::calculateMax(size_t i_axis, Axes::Units units_type) const final "; %feature("docstring") UnitConverterSimple::axisSize "size_t UnitConverterSimple::axisSize(size_t i_axis) const final "; -%feature("docstring") UnitConverterSimple::availableUnits "std::vector< AxesUnits > UnitConverterSimple::availableUnits() const override +%feature("docstring") UnitConverterSimple::availableUnits "std::vector< Axes::Units > UnitConverterSimple::availableUnits() const override Returns the list of all available units. "; -%feature("docstring") UnitConverterSimple::createConvertedAxis "std::unique_ptr< IAxis > UnitConverterSimple::createConvertedAxis(size_t i_axis, AxesUnits units) const final +%feature("docstring") UnitConverterSimple::createConvertedAxis "std::unique_ptr< IAxis > UnitConverterSimple::createConvertedAxis(size_t i_axis, Axes::Units units) const final "; @@ -16975,73 +16985,70 @@ C++ includes: ZLimits.h "; -// File: namespace_0d105.xml +// File: namespace_0d106.xml -// File: namespace_0d111.xml +// File: namespace_0d112.xml -// File: namespace_0d115.xml +// File: namespace_0d116.xml -// File: namespace_0d146.xml +// File: namespace_0d147.xml -// File: namespace_0d158.xml +// File: namespace_0d159.xml // File: namespace_0d16.xml -// File: namespace_0d166.xml +// File: namespace_0d167.xml -// File: namespace_0d171.xml +// File: namespace_0d172.xml -// File: namespace_0d180.xml +// File: namespace_0d181.xml -// File: namespace_0d182.xml +// File: namespace_0d183.xml -// File: namespace_0d186.xml +// File: namespace_0d187.xml // File: namespace_0d2.xml -// File: namespace_0d24.xml - +// File: namespace_0d25.xml -// File: namespace_0d248.xml - -// File: namespace_0d251.xml +// File: namespace_0d250.xml // File: namespace_0d253.xml -// File: namespace_0d262.xml +// File: namespace_0d260.xml -// File: namespace_0d266.xml +// File: namespace_0d264.xml -// File: namespace_0d270.xml +// File: namespace_0d268.xml -// File: namespace_0d276.xml +// File: namespace_0d274.xml -// File: namespace_0d280.xml +// File: namespace_0d278.xml -// File: namespace_0d294.xml +// File: namespace_0d292.xml -// File: namespace_0d318.xml +// File: namespace_0d323.xml // File: namespace_0d325.xml @@ -17050,34 +17057,34 @@ C++ includes: ZLimits.h // File: namespace_0d327.xml -// File: namespace_0d329.xml +// File: namespace_0d347.xml -// File: namespace_0d349.xml +// File: namespace_0d351.xml -// File: namespace_0d353.xml +// File: namespace_0d355.xml -// File: namespace_0d357.xml +// File: namespace_0d369.xml -// File: namespace_0d371.xml +// File: namespace_0d378.xml -// File: namespace_0d380.xml +// File: namespace_0d382.xml -// File: namespace_0d384.xml +// File: namespace_0d392.xml // File: namespace_0d394.xml -// File: namespace_0d396.xml +// File: namespace_0d4.xml -// File: namespace_0d4.xml +// File: namespace_0d400.xml // File: namespace_0d402.xml @@ -17095,39 +17102,36 @@ C++ includes: ZLimits.h // File: namespace_0d410.xml -// File: namespace_0d412.xml +// File: namespace_0d414.xml // File: namespace_0d416.xml -// File: namespace_0d418.xml +// File: namespace_0d426.xml -// File: namespace_0d428.xml +// File: namespace_0d439.xml -// File: namespace_0d441.xml +// File: namespace_0d448.xml // File: namespace_0d450.xml -// File: namespace_0d452.xml +// File: namespace_0d466.xml -// File: namespace_0d468.xml +// File: namespace_0d487.xml -// File: namespace_0d489.xml +// File: namespace_0d494.xml // File: namespace_0d496.xml -// File: namespace_0d498.xml - - // File: namespace_0d504.xml @@ -17146,34 +17150,34 @@ C++ includes: ZLimits.h // File: namespace_0d555.xml -// File: namespace_0d571.xml +// File: namespace_0d572.xml -// File: namespace_0d583.xml +// File: namespace_0d584.xml -// File: namespace_0d589.xml +// File: namespace_0d590.xml -// File: namespace_0d593.xml +// File: namespace_0d594.xml -// File: namespace_0d611.xml +// File: namespace_0d612.xml -// File: namespace_0d630.xml +// File: namespace_0d631.xml -// File: namespace_0d85.xml +// File: namespace_0d86.xml -// File: namespace_0d87.xml +// File: namespace_0d88.xml -// File: namespace_0d89.xml +// File: namespace_0d90.xml -// File: namespace_0d93.xml +// File: namespace_0d94.xml // File: namespacealgo.xml @@ -17241,31 +17245,31 @@ vector<vector<double>> // File: namespaceAxisNames.xml -%feature("docstring") AxisNames::InitSphericalAxis0 "std::map< AxesUnits, std::string > AxisNames::InitSphericalAxis0() +%feature("docstring") AxisNames::InitSphericalAxis0 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis0() "; -%feature("docstring") AxisNames::InitSphericalAxis1 "std::map< AxesUnits, std::string > AxisNames::InitSphericalAxis1() +%feature("docstring") AxisNames::InitSphericalAxis1 "std::map< Axes::Units, std::string > AxisNames::InitSphericalAxis1() "; -%feature("docstring") AxisNames::InitRectangularAxis0 "std::map< AxesUnits, std::string > AxisNames::InitRectangularAxis0() +%feature("docstring") AxisNames::InitRectangularAxis0 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis0() "; -%feature("docstring") AxisNames::InitRectangularAxis1 "std::map< AxesUnits, std::string > AxisNames::InitRectangularAxis1() +%feature("docstring") AxisNames::InitRectangularAxis1 "std::map< Axes::Units, std::string > AxisNames::InitRectangularAxis1() "; -%feature("docstring") AxisNames::InitOffSpecAxis0 "std::map< AxesUnits, std::string > AxisNames::InitOffSpecAxis0() +%feature("docstring") AxisNames::InitOffSpecAxis0 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecAxis0() "; -%feature("docstring") AxisNames::InitOffSpecAxis1 "std::map< AxesUnits, std::string > AxisNames::InitOffSpecAxis1() +%feature("docstring") AxisNames::InitOffSpecAxis1 "std::map< Axes::Units, std::string > AxisNames::InitOffSpecAxis1() "; -%feature("docstring") AxisNames::InitSpecAxis "std::map< AxesUnits, std::string > AxisNames::InitSpecAxis() +%feature("docstring") AxisNames::InitSpecAxis "std::map< Axes::Units, std::string > AxisNames::InitSpecAxis() "; -%feature("docstring") AxisNames::InitSpecAxisQ "std::map< AxesUnits, std::string > AxisNames::InitSpecAxisQ() +%feature("docstring") AxisNames::InitSpecAxisQ "std::map< Axes::Units, std::string > AxisNames::InitSpecAxisQ() "; -%feature("docstring") AxisNames::InitSampleDepthAxis "std::map< AxesUnits, std::string > AxisNames::InitSampleDepthAxis() +%feature("docstring") AxisNames::InitSampleDepthAxis "std::map< Axes::Units, std::string > AxisNames::InitSampleDepthAxis() "; @@ -17491,7 +17495,7 @@ Creates a Fourier Transform of a 2D Array (vector of vectors). %feature("docstring") IntensityDataFunctions::createRearrangedDataSet "std::unique_ptr< OutputData< double > > IntensityDataFunctions::createRearrangedDataSet(const OutputData< double > &data, int n) -Returns new object with input data rotated by n*90 deg counterclockwise (n > 0) or clockwise (n < 0) Axes are swapped if the data is effectively rotated by 90 or 270 degrees Applicable to 2D arrays only +Returns new object with input data rotated by n*90 deg counterclockwise (n > 0) or clockwise (n < 0) Axes are swapped if the data is effectively rotated by 90 or 270 degrees Applicable to 2D arrays only "; %feature("docstring") IntensityDataFunctions::createClippedDataSet "std::unique_ptr< OutputData< double > > IntensityDataFunctions::createClippedDataSet(const OutputData< double > &origin, double x1, double y1, double x2, double y2) @@ -17511,7 +17515,7 @@ Creates Fourier Transform ( OutputData format) of intensity map ( OutputData for // File: namespaceInterferenceFunctionUtils.xml -%feature("docstring") InterferenceFunctionUtils::PrecomputeScalarFormFactors "std::vector< complex_t > InterferenceFunctionUtils::PrecomputeScalarFormFactors(const SimulationElement &sim_element, const std::vector< FormFactorCoherentSum > &ff_wrappers) +%feature("docstring") InterferenceFunctionUtils::PrecomputeScalarFormFactors "std::vector<complex_t> InterferenceFunctionUtils::PrecomputeScalarFormFactors(const SimulationElement &sim_element, const std::vector< FormFactorCoherentSum > &ff_wrappers) "; %feature("docstring") InterferenceFunctionUtils::PrecomputePolarizedFormFactors "matrixFFVector_t InterferenceFunctionUtils::PrecomputePolarizedFormFactors(const SimulationElement &sim_element, const std::vector< FormFactorCoherentSum > &ff_wrappers) @@ -18235,7 +18239,7 @@ Returns true if operation system is Windows. // File: namespaceUnitConverterUtils.xml -%feature("docstring") UnitConverterUtils::createOutputData "std::unique_ptr< OutputData< double > > UnitConverterUtils::createOutputData(const IUnitConverter &converter, AxesUnits units) +%feature("docstring") UnitConverterUtils::createOutputData "std::unique_ptr< OutputData< double > > UnitConverterUtils::createOutputData(const IUnitConverter &converter, Axes::Units units) Returns zero-valued output data array in specified units. "; @@ -18323,6 +18327,9 @@ Helper factory function to use in GISASSimulation. Depending on the type of det // File: InterferenceFunctionRadialParaCrystal_8h.xml +// File: InterferenceFunctions_8h.xml + + // File: InterferenceFunctionTwin_8cpp.xml @@ -19032,6 +19039,9 @@ Generate z values (equidistant) for use in MaterialProfile. // File: FormFactorTruncatedSpheroid_8h.xml +// File: HardParticles_8h.xml + + // File: IFormFactorPolyhedron_8cpp.xml @@ -19077,18 +19087,6 @@ Generate z values (equidistant) for use in MaterialProfile. // File: Ripples_8h.xml -// File: FormFactors_8h.xml - - -// File: HardParticles_8h.xml - - -// File: InterferenceFunctions_8h.xml - - -// File: SoftParticles_8h.xml - - // File: boost__streams_8h.xml @@ -19905,6 +19903,12 @@ Creates averaged material. Square refractive index of returned material is arith // File: ScalarRTCoefficients_8h.xml +// File: FixedBuilder_8cpp.xml + + +// File: FixedBuilder_8h.xml + + // File: IRegistry_8h.xml @@ -20165,6 +20169,9 @@ Generate vertices of centered ellipse with given semi-axes at height z. // File: FormFactorSphereLogNormalRadius_8h.xml +// File: SoftParticles_8h.xml + + // File: BoxCompositionBuilder_8cpp.xml @@ -20374,6 +20381,9 @@ Generate vertices of centered ellipse with given semi-axes at height z. // File: TwoLayerRoughnessBuilder_8h.xml +// File: CloneableVector_8h.xml + + // File: FileSystemUtils_8cpp.xml @@ -20497,9 +20507,6 @@ Creates a vector<double> as a wavevector with given wavelength and angles. Speci // File: dir_05b265732c0b4c8e8dad02f2f774744b.xml -// File: dir_72a38c5b455c03a72881c3c65e21783d.xml - - // File: dir_d7044b5fc4daccc5700de9f07da81a11.xml diff --git a/auto/Wrap/doxygen_fit.i b/auto/Wrap/doxygenFit.i similarity index 99% rename from auto/Wrap/doxygen_fit.i rename to auto/Wrap/doxygenFit.i index 5c21bb88aa3dbec62e22a87db8d1490042884fd1..f85f4f26af8b9612b457f07f143671170c2b2025 100644 --- a/auto/Wrap/doxygen_fit.i +++ b/auto/Wrap/doxygenFit.i @@ -796,6 +796,9 @@ Sets the value of option. Option should hold same value type already. %feature("docstring") OptionContainer::size "size_t OptionContainer::size() const "; +%feature("docstring") OptionContainer::empty "bool OptionContainer::empty() const +"; + // File: classFit_1_1Parameter.xml %feature("docstring") Fit::Parameter " diff --git a/auto/Wrap/libBornAgainCore.py b/auto/Wrap/libBornAgainCore.py index 33eedbf361fa73a845850066197b8715813b9a16..6aef83834fb5a0d042257ca79965bbd2d3ce9c81 100644 --- a/auto/Wrap/libBornAgainCore.py +++ b/auto/Wrap/libBornAgainCore.py @@ -7494,6 +7494,14 @@ class ParameterPool(ICloneable): """ return _libBornAgainCore.ParameterPool_size(self) + def empty(self): + r""" + empty(ParameterPool self) -> bool + bool ParameterPool::empty() const + + """ + return _libBornAgainCore.ParameterPool_empty(self) + def addParameter(self, newPar): r""" addParameter(ParameterPool self, RealParameter newPar) -> RealParameter @@ -14011,7 +14019,7 @@ class ISampleBuilder(IParameterized): def createSampleByIndex(self, arg0): r""" createSampleByIndex(ISampleBuilder self, size_t arg0) -> MultiLayer - virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t index) + virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t) """ return _libBornAgainCore.ISampleBuilder_createSampleByIndex(self, arg0) @@ -17333,7 +17341,7 @@ class Simulation(ICloneable, INode): def setSampleBuilderCpp(self, sample_builder): r""" setSampleBuilderCpp(Simulation self, std::shared_ptr< ISampleBuilder > const & sample_builder) - void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > sample_builder) + void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > &sample_builder) """ return _libBornAgainCore.Simulation_setSampleBuilderCpp(self, sample_builder) @@ -17609,7 +17617,7 @@ class GISASSimulation(Simulation2D): def __init__(self): r""" __init__(GISASSimulation self) -> GISASSimulation - GISASSimulation::GISASSimulation(const std::shared_ptr< ISampleBuilder > p_sample_builder) + GISASSimulation::GISASSimulation() """ _libBornAgainCore.GISASSimulation_swiginit(self, _libBornAgainCore.new_GISASSimulation()) @@ -17685,7 +17693,7 @@ class DepthProbeSimulation(Simulation): def __init__(self): r""" __init__(DepthProbeSimulation self) -> DepthProbeSimulation - DepthProbeSimulation::DepthProbeSimulation(const std::shared_ptr< ISampleBuilder > sample_builder) + DepthProbeSimulation::DepthProbeSimulation() """ _libBornAgainCore.DepthProbeSimulation_swiginit(self, _libBornAgainCore.new_DepthProbeSimulation()) @@ -17788,7 +17796,7 @@ class SpecularSimulation(Simulation): def __init__(self): r""" __init__(SpecularSimulation self) -> SpecularSimulation - SpecularSimulation::SpecularSimulation(const std::shared_ptr< ISampleBuilder > sample_builder) + SpecularSimulation::SpecularSimulation() """ _libBornAgainCore.SpecularSimulation_swiginit(self, _libBornAgainCore.new_SpecularSimulation()) @@ -17896,7 +17904,7 @@ class OffSpecSimulation(Simulation2D): def __init__(self): r""" __init__(OffSpecSimulation self) -> OffSpecSimulation - OffSpecSimulation::OffSpecSimulation(const std::shared_ptr< class ISampleBuilder > p_sample_builder) + OffSpecSimulation::OffSpecSimulation() """ _libBornAgainCore.OffSpecSimulation_swiginit(self, _libBornAgainCore.new_OffSpecSimulation()) @@ -18272,14 +18280,6 @@ class IDetector(ICloneable, INode): """ return _libBornAgainCore.IDetector_init(self, arg2) - def clear(self): - r""" - clear(IDetector self) - void IDetector::clear() - - """ - return _libBornAgainCore.IDetector_clear(self) - def addAxis(self, axis): r""" addAxis(IDetector self, IAxis axis) @@ -18436,8 +18436,8 @@ class IDetector(ICloneable, INode): def defaultAxesUnits(self): r""" - defaultAxesUnits(IDetector self) -> AxesUnits - virtual AxesUnits IDetector::defaultAxesUnits() const + defaultAxesUnits(IDetector self) -> Axes::Units + virtual Axes::Units IDetector::defaultAxesUnits() const Return default axes units. @@ -18510,16 +18510,6 @@ class IDetector2D(IDetector): """ return _libBornAgainCore.IDetector2D_setDetectorParameters(self, n_x, x_min, x_max, n_y, y_min, y_max) - def setDetectorAxes(self, axis0, axis1): - r""" - setDetectorAxes(IDetector2D self, IAxis axis0, IAxis axis1) - void IDetector2D::setDetectorAxes(const IAxis &axis0, const IAxis &axis1) - - Sets detector parameters using axes. - - """ - return _libBornAgainCore.IDetector2D_setDetectorAxes(self, axis0, axis1) - def removeMasks(self): r""" removeMasks(IDetector2D self) @@ -18676,8 +18666,8 @@ class SphericalDetector(IDetector2D): def defaultAxesUnits(self): r""" - defaultAxesUnits(SphericalDetector self) -> AxesUnits - AxesUnits SphericalDetector::defaultAxesUnits() const override + defaultAxesUnits(SphericalDetector self) -> Axes::Units + Axes::Units SphericalDetector::defaultAxesUnits() const override return default axes units @@ -19053,8 +19043,8 @@ class RectangularDetector(IDetector2D): def defaultAxesUnits(self): r""" - defaultAxesUnits(RectangularDetector self) -> AxesUnits - AxesUnits RectangularDetector::defaultAxesUnits() const override + defaultAxesUnits(RectangularDetector self) -> Axes::Units + Axes::Units RectangularDetector::defaultAxesUnits() const override return default axes units @@ -19893,7 +19883,7 @@ class IntensityFunctionSqrt(IIntensityFunction): # Register IntensityFunctionSqrt in _libBornAgainCore: _libBornAgainCore.IntensityFunctionSqrt_swigregister(IntensityFunctionSqrt) -class AxesUnits(object): +class Axes(object): r""" @@ -19904,30 +19894,39 @@ class AxesUnits(object): """ thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag") - - def __init__(self, *args, **kwargs): - raise AttributeError("No constructor defined") __repr__ = _swig_repr - DEFAULT = _libBornAgainCore.AxesUnits_DEFAULT + DEFAULT = _libBornAgainCore.Axes_DEFAULT - NBINS = _libBornAgainCore.AxesUnits_NBINS + NBINS = _libBornAgainCore.Axes_NBINS - RADIANS = _libBornAgainCore.AxesUnits_RADIANS + RADIANS = _libBornAgainCore.Axes_RADIANS - DEGREES = _libBornAgainCore.AxesUnits_DEGREES + DEGREES = _libBornAgainCore.Axes_DEGREES - MM = _libBornAgainCore.AxesUnits_MM + MM = _libBornAgainCore.Axes_MM - QSPACE = _libBornAgainCore.AxesUnits_QSPACE + QSPACE = _libBornAgainCore.Axes_QSPACE - QXQY = _libBornAgainCore.AxesUnits_QXQY + QXQY = _libBornAgainCore.Axes_QXQY - RQ4 = _libBornAgainCore.AxesUnits_RQ4 + RQ4 = _libBornAgainCore.Axes_RQ4 - __swig_destroy__ = _libBornAgainCore.delete_AxesUnits -# Register AxesUnits in _libBornAgainCore: -_libBornAgainCore.AxesUnits_swigregister(AxesUnits) + def __init__(self): + r""" + __init__(Axes self) -> Axes + + + Wrapper for detector axes units, required for a better representation of detector axes units in python + + C++ includes: IUnitConverter.h + + """ + _libBornAgainCore.Axes_swiginit(self, _libBornAgainCore.new_Axes()) + __swig_destroy__ = _libBornAgainCore.delete_Axes + +# Register Axes in _libBornAgainCore: +_libBornAgainCore.Axes_swigregister(Axes) class IUnitConverter(ICloneable): r""" @@ -19964,16 +19963,16 @@ class IUnitConverter(ICloneable): def calculateMin(self, i_axis, units_type): r""" - calculateMin(IUnitConverter self, size_t i_axis, AxesUnits units_type) -> double - virtual double IUnitConverter::calculateMin(size_t i_axis, AxesUnits units_type) const =0 + calculateMin(IUnitConverter self, size_t i_axis, Axes::Units units_type) -> double + virtual double IUnitConverter::calculateMin(size_t i_axis, Axes::Units units_type) const =0 """ return _libBornAgainCore.IUnitConverter_calculateMin(self, i_axis, units_type) def calculateMax(self, i_axis, units_type): r""" - calculateMax(IUnitConverter self, size_t i_axis, AxesUnits units_type) -> double - virtual double IUnitConverter::calculateMax(size_t i_axis, AxesUnits units_type) const =0 + calculateMax(IUnitConverter self, size_t i_axis, Axes::Units units_type) -> double + virtual double IUnitConverter::calculateMax(size_t i_axis, Axes::Units units_type) const =0 """ return _libBornAgainCore.IUnitConverter_calculateMax(self, i_axis, units_type) @@ -19988,38 +19987,40 @@ class IUnitConverter(ICloneable): def axisName(self, *args): r""" - axisName(IUnitConverter self, size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) -> std::string - std::string IUnitConverter::axisName(size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) const + axisName(IUnitConverter self, size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) -> std::string + std::string IUnitConverter::axisName(size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) const """ return _libBornAgainCore.IUnitConverter_axisName(self, *args) def availableUnits(self): r""" - availableUnits(IUnitConverter self) -> std::vector< AxesUnits,std::allocator< AxesUnits > > - virtual std::vector<AxesUnits> IUnitConverter::availableUnits() const =0 + availableUnits(IUnitConverter self) -> std::vector< Axes::Units,std::allocator< Axes::Units > > + virtual std::vector<Axes::Units> IUnitConverter::availableUnits() const =0 """ return _libBornAgainCore.IUnitConverter_availableUnits(self) def defaultUnits(self): r""" - defaultUnits(IUnitConverter self) -> AxesUnits - virtual AxesUnits IUnitConverter::defaultUnits() const =0 + defaultUnits(IUnitConverter self) -> Axes::Units + virtual Axes::Units IUnitConverter::defaultUnits() const =0 """ return _libBornAgainCore.IUnitConverter_defaultUnits(self) def substituteDefaultUnits(self, units): r""" - substituteDefaultUnits(IUnitConverter self, AxesUnits units) -> AxesUnits - AxesUnits IUnitConverter::substituteDefaultUnits(AxesUnits units) const + substituteDefaultUnits(IUnitConverter self, Axes::Units units) -> Axes::Units + Axes::Units IUnitConverter::substituteDefaultUnits(Axes::Units units) const """ return _libBornAgainCore.IUnitConverter_substituteDefaultUnits(self, units) # Register IUnitConverter in _libBornAgainCore: _libBornAgainCore.IUnitConverter_swigregister(IUnitConverter) +axisUnitName = cvar.axisUnitName +axisUnitLabel = cvar.axisUnitLabel class Histogram1D(IHistogram): r""" @@ -20941,16 +20942,16 @@ class SimulationResult(object): def histogram2d(self, *args): r""" - histogram2d(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> Histogram2D - Histogram2D * SimulationResult::histogram2d(AxesUnits units=AxesUnits::DEFAULT) const + histogram2d(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> Histogram2D + Histogram2D * SimulationResult::histogram2d(Axes::Units units=Axes::Units::DEFAULT) const """ return _libBornAgainCore.SimulationResult_histogram2d(self, *args) def axisInfo(self, *args): r""" - axisInfo(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> swig_dummy_type_axisinfo_vector - std::vector< AxisInfo > SimulationResult::axisInfo(AxesUnits units=AxesUnits::DEFAULT) const + axisInfo(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> swig_dummy_type_axisinfo_vector + std::vector< AxisInfo > SimulationResult::axisInfo(Axes::Units units=Axes::Units::DEFAULT) const Provide AxisInfo for each axis and the given units. @@ -20975,10 +20976,18 @@ class SimulationResult(object): """ return _libBornAgainCore.SimulationResult_size(self) + def empty(self): + r""" + empty(SimulationResult self) -> bool + bool SimulationResult::empty() const + + """ + return _libBornAgainCore.SimulationResult_empty(self) + def array(self, *args): r""" - array(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> PyObject - PyObject * SimulationResult::array(AxesUnits units=AxesUnits::DEFAULT) const + array(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> PyObject + PyObject * SimulationResult::array(Axes::Units units=Axes::Units::DEFAULT) const returns intensity data as Python numpy array @@ -20987,9 +20996,9 @@ class SimulationResult(object): def axis(self, *args): r""" - axis(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> vdouble1d_t - axis(SimulationResult self, size_t i_axis, AxesUnits units=AxesUnits::DEFAULT) -> vdouble1d_t - std::vector< double > SimulationResult::axis(size_t i_axis, AxesUnits units=AxesUnits::DEFAULT) const + axis(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> vdouble1d_t + axis(SimulationResult self, size_t i_axis, Axes::Units units=Axes::Units::DEFAULT) -> vdouble1d_t + std::vector< double > SimulationResult::axis(size_t i_axis, Axes::Units units=Axes::Units::DEFAULT) const Returns axis coordinates as a numpy array. With no parameters given returns coordinates of x-axis in default units. diff --git a/auto/Wrap/libBornAgainCore_wrap.cpp b/auto/Wrap/libBornAgainCore_wrap.cpp index a91c21eda728189598a306803a3eb14b70bd50ac..43bf5e88c6146c2a2650713cb1a1648f7ca4003e 100644 --- a/auto/Wrap/libBornAgainCore_wrap.cpp +++ b/auto/Wrap/libBornAgainCore_wrap.cpp @@ -3099,308 +3099,308 @@ namespace Swig { #define SWIGTYPE_p_AngularSpecScan swig_types[0] #define SWIGTYPE_p_Attributes swig_types[1] -#define SWIGTYPE_p_AxesUnitsWrap swig_types[2] -#define SWIGTYPE_p_AxesUnitsWrap__AxesUnits swig_types[3] -#define SWIGTYPE_p_AxisInfo swig_types[4] -#define SWIGTYPE_p_BasicLattice swig_types[5] -#define SWIGTYPE_p_BasicVector3DT_double_t swig_types[6] -#define SWIGTYPE_p_BasicVector3DT_int_t swig_types[7] -#define SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t swig_types[8] -#define SWIGTYPE_p_Beam swig_types[9] -#define SWIGTYPE_p_Bin1D swig_types[10] -#define SWIGTYPE_p_Bin1DCVector swig_types[11] -#define SWIGTYPE_p_Bin1DKVector swig_types[12] -#define SWIGTYPE_p_CallbackMap_t swig_types[13] -#define SWIGTYPE_p_ChiSquaredModule swig_types[14] -#define SWIGTYPE_p_ConstKBinAxis swig_types[15] -#define SWIGTYPE_p_ConstantBackground swig_types[16] -#define SWIGTYPE_p_ConvolutionDetectorResolution swig_types[17] -#define SWIGTYPE_p_CreateItemCallback swig_types[18] -#define SWIGTYPE_p_Crystal swig_types[19] -#define SWIGTYPE_p_CustomBinAxis swig_types[20] -#define SWIGTYPE_p_DepthProbeSimulation swig_types[21] -#define SWIGTYPE_p_DetectionProperties swig_types[22] -#define SWIGTYPE_p_DetectorMask swig_types[23] -#define SWIGTYPE_p_DistributionCosine swig_types[24] -#define SWIGTYPE_p_DistributionGate swig_types[25] -#define SWIGTYPE_p_DistributionGaussian swig_types[26] -#define SWIGTYPE_p_DistributionHandler swig_types[27] -#define SWIGTYPE_p_DistributionLogNormal swig_types[28] -#define SWIGTYPE_p_DistributionLorentz swig_types[29] -#define SWIGTYPE_p_DistributionTrapezoid swig_types[30] -#define SWIGTYPE_p_Ellipse swig_types[31] -#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[32] -#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[33] -#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[34] -#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[35] -#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[36] -#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[37] -#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[38] -#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[39] -#define SWIGTYPE_p_FTDistribution1DCosine swig_types[40] -#define SWIGTYPE_p_FTDistribution1DGate swig_types[41] -#define SWIGTYPE_p_FTDistribution1DGauss swig_types[42] -#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[43] -#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[44] -#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[45] -#define SWIGTYPE_p_FTDistribution2DCone swig_types[46] -#define SWIGTYPE_p_FTDistribution2DGate swig_types[47] -#define SWIGTYPE_p_FTDistribution2DGauss swig_types[48] -#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[49] -#define SWIGTYPE_p_FitObjective swig_types[50] -#define SWIGTYPE_p_FitOptions swig_types[51] -#define SWIGTYPE_p_Fit__MinimizerResult swig_types[52] -#define SWIGTYPE_p_Fit__Parameters swig_types[53] -#define SWIGTYPE_p_FixedBinAxis swig_types[54] -#define SWIGTYPE_p_FootprintGauss swig_types[55] -#define SWIGTYPE_p_FootprintSquare swig_types[56] -#define SWIGTYPE_p_FormFactorAnisoPyramid swig_types[57] -#define SWIGTYPE_p_FormFactorBarGauss swig_types[58] -#define SWIGTYPE_p_FormFactorBarLorentz swig_types[59] -#define SWIGTYPE_p_FormFactorBox swig_types[60] -#define SWIGTYPE_p_FormFactorCantellatedCube swig_types[61] -#define SWIGTYPE_p_FormFactorCone swig_types[62] -#define SWIGTYPE_p_FormFactorCone6 swig_types[63] -#define SWIGTYPE_p_FormFactorCoreShell swig_types[64] -#define SWIGTYPE_p_FormFactorCosineRippleBox swig_types[65] -#define SWIGTYPE_p_FormFactorCosineRippleGauss swig_types[66] -#define SWIGTYPE_p_FormFactorCosineRippleLorentz swig_types[67] -#define SWIGTYPE_p_FormFactorCrystal swig_types[68] -#define SWIGTYPE_p_FormFactorCuboctahedron swig_types[69] -#define SWIGTYPE_p_FormFactorCylinder swig_types[70] -#define SWIGTYPE_p_FormFactorDWBA swig_types[71] -#define SWIGTYPE_p_FormFactorDWBAPol swig_types[72] -#define SWIGTYPE_p_FormFactorDecoratorMaterial swig_types[73] -#define SWIGTYPE_p_FormFactorDecoratorPositionFactor swig_types[74] -#define SWIGTYPE_p_FormFactorDecoratorRotation swig_types[75] -#define SWIGTYPE_p_FormFactorDodecahedron swig_types[76] -#define SWIGTYPE_p_FormFactorDot swig_types[77] -#define SWIGTYPE_p_FormFactorEllipsoidalCylinder swig_types[78] -#define SWIGTYPE_p_FormFactorFullSphere swig_types[79] -#define SWIGTYPE_p_FormFactorFullSpheroid swig_types[80] -#define SWIGTYPE_p_FormFactorGaussSphere swig_types[81] -#define SWIGTYPE_p_FormFactorHemiEllipsoid swig_types[82] -#define SWIGTYPE_p_FormFactorHollowSphere swig_types[83] -#define SWIGTYPE_p_FormFactorIcosahedron swig_types[84] -#define SWIGTYPE_p_FormFactorLongBoxGauss swig_types[85] -#define SWIGTYPE_p_FormFactorLongBoxLorentz swig_types[86] -#define SWIGTYPE_p_FormFactorPrism3 swig_types[87] -#define SWIGTYPE_p_FormFactorPrism6 swig_types[88] -#define SWIGTYPE_p_FormFactorPyramid swig_types[89] -#define SWIGTYPE_p_FormFactorSawtoothRippleBox swig_types[90] -#define SWIGTYPE_p_FormFactorSawtoothRippleGauss swig_types[91] -#define SWIGTYPE_p_FormFactorSawtoothRippleLorentz swig_types[92] -#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[93] -#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[94] -#define SWIGTYPE_p_FormFactorTetrahedron swig_types[95] -#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[96] -#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[97] -#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[98] -#define SWIGTYPE_p_FormFactorWeighted swig_types[99] -#define SWIGTYPE_p_GISASSimulation swig_types[100] -#define SWIGTYPE_p_GaussFisherPeakShape swig_types[101] -#define SWIGTYPE_p_HexagonalLattice swig_types[102] -#define SWIGTYPE_p_Histogram1D swig_types[103] -#define SWIGTYPE_p_Histogram2D swig_types[104] -#define SWIGTYPE_p_HorizontalLine swig_types[105] -#define SWIGTYPE_p_IAbstractParticle swig_types[106] -#define SWIGTYPE_p_IAxis swig_types[107] -#define SWIGTYPE_p_IBackground swig_types[108] -#define SWIGTYPE_p_IChiSquaredModule swig_types[109] -#define SWIGTYPE_p_ICloneable swig_types[110] -#define SWIGTYPE_p_IClusteredParticles swig_types[111] -#define SWIGTYPE_p_ICosineRipple swig_types[112] -#define SWIGTYPE_p_IDetector swig_types[113] -#define SWIGTYPE_p_IDetector2D swig_types[114] -#define SWIGTYPE_p_IDetectorResolution swig_types[115] -#define SWIGTYPE_p_IDistribution1D swig_types[116] -#define SWIGTYPE_p_IFTDecayFunction1D swig_types[117] -#define SWIGTYPE_p_IFTDecayFunction2D swig_types[118] -#define SWIGTYPE_p_IFTDistribution1D swig_types[119] -#define SWIGTYPE_p_IFTDistribution2D swig_types[120] -#define SWIGTYPE_p_IFactoryT_std__string_ISampleBuilder_t swig_types[121] -#define SWIGTYPE_p_IFactoryT_std__string_Simulation_t swig_types[122] -#define SWIGTYPE_p_IFootprintFactor swig_types[123] -#define SWIGTYPE_p_IFormFactor swig_types[124] -#define SWIGTYPE_p_IFormFactorBorn swig_types[125] -#define SWIGTYPE_p_IFormFactorDecorator swig_types[126] -#define SWIGTYPE_p_IFormFactorPolyhedron swig_types[127] -#define SWIGTYPE_p_IFormFactorPrism swig_types[128] -#define SWIGTYPE_p_IHistogram swig_types[129] -#define SWIGTYPE_p_IIntensityFunction swig_types[130] -#define SWIGTYPE_p_IInterferenceFunction swig_types[131] -#define SWIGTYPE_p_ILatticeOrientation swig_types[132] -#define SWIGTYPE_p_ILayout swig_types[133] -#define SWIGTYPE_p_INode swig_types[134] -#define SWIGTYPE_p_INodeVisitor swig_types[135] -#define SWIGTYPE_p_IObservable swig_types[136] -#define SWIGTYPE_p_IObserver swig_types[137] -#define SWIGTYPE_p_IParameterT_double_t swig_types[138] -#define SWIGTYPE_p_IParameterized swig_types[139] -#define SWIGTYPE_p_IParticle swig_types[140] -#define SWIGTYPE_p_IPeakShape swig_types[141] -#define SWIGTYPE_p_IPixel swig_types[142] -#define SWIGTYPE_p_IProfileRectangularRipple swig_types[143] -#define SWIGTYPE_p_IProfileRipple swig_types[144] -#define SWIGTYPE_p_IResolutionFunction2D swig_types[145] -#define SWIGTYPE_p_IRotation swig_types[146] -#define SWIGTYPE_p_ISample swig_types[147] -#define SWIGTYPE_p_ISampleBuilder swig_types[148] -#define SWIGTYPE_p_ISawtoothRipple swig_types[149] -#define SWIGTYPE_p_ISelectionRule swig_types[150] -#define SWIGTYPE_p_IShape2D swig_types[151] -#define SWIGTYPE_p_ISpecularScan swig_types[152] -#define SWIGTYPE_p_IUnitConverter swig_types[153] -#define SWIGTYPE_p_IVarianceFunction swig_types[154] -#define SWIGTYPE_p_IdentityRotation swig_types[155] -#define SWIGTYPE_p_Instrument swig_types[156] -#define SWIGTYPE_p_IntensityDataIOFactory swig_types[157] -#define SWIGTYPE_p_IntensityFunctionLog swig_types[158] -#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[159] -#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[160] -#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[161] -#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[162] -#define SWIGTYPE_p_InterferenceFunction2DSuperLattice swig_types[163] -#define SWIGTYPE_p_InterferenceFunction3DLattice swig_types[164] -#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[165] -#define SWIGTYPE_p_InterferenceFunctionFinite3DLattice swig_types[166] -#define SWIGTYPE_p_InterferenceFunctionHardDisk swig_types[167] -#define SWIGTYPE_p_InterferenceFunctionNone swig_types[168] -#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[169] -#define SWIGTYPE_p_InterferenceFunctionTwin swig_types[170] -#define SWIGTYPE_p_IsGISAXSDetector swig_types[171] -#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[172] -#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[173] -#define SWIGTYPE_p_IterationInfo swig_types[174] -#define SWIGTYPE_p_Lattice swig_types[175] -#define SWIGTYPE_p_Lattice2D swig_types[176] -#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[177] -#define SWIGTYPE_p_Layer swig_types[178] -#define SWIGTYPE_p_LayerInterface swig_types[179] -#define SWIGTYPE_p_LayerRoughness swig_types[180] -#define SWIGTYPE_p_Line swig_types[181] -#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[182] -#define SWIGTYPE_p_Material swig_types[183] -#define SWIGTYPE_p_MesoCrystal swig_types[184] -#define SWIGTYPE_p_MillerIndex swig_types[185] -#define SWIGTYPE_p_MillerIndexOrientation swig_types[186] -#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[187] -#define SWIGTYPE_p_MisesGaussPeakShape swig_types[188] -#define SWIGTYPE_p_MultiLayer swig_types[189] -#define SWIGTYPE_p_NodeMeta swig_types[190] -#define SWIGTYPE_p_OffSpecSimulation swig_types[191] -#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[192] -#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[193] -#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[194] -#define SWIGTYPE_p_OutputDataT_bool_t swig_types[195] -#define SWIGTYPE_p_OutputDataT_double_t swig_types[196] -#define SWIGTYPE_p_ParaMeta swig_types[197] -#define SWIGTYPE_p_ParameterDistribution swig_types[198] -#define SWIGTYPE_p_ParameterPool swig_types[199] -#define SWIGTYPE_p_ParameterSample swig_types[200] -#define SWIGTYPE_p_Particle swig_types[201] -#define SWIGTYPE_p_ParticleComposition swig_types[202] -#define SWIGTYPE_p_ParticleCoreShell swig_types[203] -#define SWIGTYPE_p_ParticleDistribution swig_types[204] -#define SWIGTYPE_p_ParticleLayout swig_types[205] -#define SWIGTYPE_p_ParticleLimits swig_types[206] -#define SWIGTYPE_p_PoissonNoiseBackground swig_types[207] -#define SWIGTYPE_p_Polygon swig_types[208] -#define SWIGTYPE_p_PolygonPrivate swig_types[209] -#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[210] -#define SWIGTYPE_p_PyBuilderCallback swig_types[211] -#define SWIGTYPE_p_PyObserverCallback swig_types[212] -#define SWIGTYPE_p_QSpecScan swig_types[213] -#define SWIGTYPE_p_RangedDistribution swig_types[214] -#define SWIGTYPE_p_RangedDistributionCosine swig_types[215] -#define SWIGTYPE_p_RangedDistributionGate swig_types[216] -#define SWIGTYPE_p_RangedDistributionGaussian swig_types[217] -#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[218] -#define SWIGTYPE_p_RangedDistributionLorentz swig_types[219] -#define SWIGTYPE_p_RealLimits swig_types[220] -#define SWIGTYPE_p_RealParameter swig_types[221] -#define SWIGTYPE_p_Rectangle swig_types[222] -#define SWIGTYPE_p_RectangularDetector swig_types[223] -#define SWIGTYPE_p_RectangularPixel swig_types[224] -#define SWIGTYPE_p_RegionOfInterest swig_types[225] -#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[226] -#define SWIGTYPE_p_RotationEuler swig_types[227] -#define SWIGTYPE_p_RotationX swig_types[228] -#define SWIGTYPE_p_RotationY swig_types[229] -#define SWIGTYPE_p_RotationZ swig_types[230] -#define SWIGTYPE_p_RoughnessModelWrap swig_types[231] -#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[232] -#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[233] -#define SWIGTYPE_p_SampleBuilderFactory swig_types[234] -#define SWIGTYPE_p_ScanResolution swig_types[235] -#define SWIGTYPE_p_SimpleSelectionRule swig_types[236] -#define SWIGTYPE_p_Simulation swig_types[237] -#define SWIGTYPE_p_Simulation2D swig_types[238] -#define SWIGTYPE_p_SimulationFactory swig_types[239] -#define SWIGTYPE_p_SimulationOptions swig_types[240] -#define SWIGTYPE_p_SimulationResult swig_types[241] -#define SWIGTYPE_p_SlicedParticle swig_types[242] -#define SWIGTYPE_p_SlicingEffects swig_types[243] -#define SWIGTYPE_p_SpecularDetector1D swig_types[244] -#define SWIGTYPE_p_SpecularSimulation swig_types[245] -#define SWIGTYPE_p_SphericalDetector swig_types[246] -#define SWIGTYPE_p_SquareLattice swig_types[247] -#define SWIGTYPE_p_ThreadInfo swig_types[248] -#define SWIGTYPE_p_Transform3D swig_types[249] -#define SWIGTYPE_p_VariableBinAxis swig_types[250] -#define SWIGTYPE_p_VarianceConstantFunction swig_types[251] -#define SWIGTYPE_p_VarianceSimFunction swig_types[252] -#define SWIGTYPE_p_VerticalLine swig_types[253] -#define SWIGTYPE_p_WavevectorInfo swig_types[254] -#define SWIGTYPE_p_ZLimits swig_types[255] -#define SWIGTYPE_p_allocator_type swig_types[256] -#define SWIGTYPE_p_bool swig_types[257] -#define SWIGTYPE_p_char swig_types[258] -#define SWIGTYPE_p_const_iterator swig_types[259] -#define SWIGTYPE_p_corr_matrix_t swig_types[260] -#define SWIGTYPE_p_difference_type swig_types[261] -#define SWIGTYPE_p_double swig_types[262] -#define SWIGTYPE_p_first_type swig_types[263] -#define SWIGTYPE_p_int swig_types[264] -#define SWIGTYPE_p_iterator swig_types[265] -#define SWIGTYPE_p_key_type swig_types[266] -#define SWIGTYPE_p_long_long swig_types[267] -#define SWIGTYPE_p_mapped_type swig_types[268] -#define SWIGTYPE_p_observer_t swig_types[269] -#define SWIGTYPE_p_p_PyObject swig_types[270] -#define SWIGTYPE_p_parameters_t swig_types[271] -#define SWIGTYPE_p_second_type swig_types[272] -#define SWIGTYPE_p_short swig_types[273] -#define SWIGTYPE_p_signed_char swig_types[274] -#define SWIGTYPE_p_size_type swig_types[275] -#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[276] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[277] -#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[278] -#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[279] -#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[280] -#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[281] -#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[282] -#define SWIGTYPE_p_std__allocatorT_double_t swig_types[283] -#define SWIGTYPE_p_std__allocatorT_int_t swig_types[284] -#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[285] -#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[286] -#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[287] -#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[288] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[289] -#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[290] -#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[291] -#define SWIGTYPE_p_std__complexT_double_t swig_types[292] -#define SWIGTYPE_p_std__functionT_ISampleBuilder_pfF_t swig_types[293] -#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[294] -#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[295] -#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[296] -#define SWIGTYPE_p_std__invalid_argument swig_types[297] -#define SWIGTYPE_p_std__lessT_std__string_t swig_types[298] +#define SWIGTYPE_p_Axes swig_types[2] +#define SWIGTYPE_p_AxisInfo swig_types[3] +#define SWIGTYPE_p_BasicLattice swig_types[4] +#define SWIGTYPE_p_BasicVector3DT_double_t swig_types[5] +#define SWIGTYPE_p_BasicVector3DT_int_t swig_types[6] +#define SWIGTYPE_p_BasicVector3DT_std__complexT_double_t_t swig_types[7] +#define SWIGTYPE_p_Beam swig_types[8] +#define SWIGTYPE_p_Bin1D swig_types[9] +#define SWIGTYPE_p_Bin1DCVector swig_types[10] +#define SWIGTYPE_p_Bin1DKVector swig_types[11] +#define SWIGTYPE_p_CallbackMap_t swig_types[12] +#define SWIGTYPE_p_ChiSquaredModule swig_types[13] +#define SWIGTYPE_p_ConstKBinAxis swig_types[14] +#define SWIGTYPE_p_ConstantBackground swig_types[15] +#define SWIGTYPE_p_ConvolutionDetectorResolution swig_types[16] +#define SWIGTYPE_p_CreateItemCallback swig_types[17] +#define SWIGTYPE_p_Crystal swig_types[18] +#define SWIGTYPE_p_CustomBinAxis swig_types[19] +#define SWIGTYPE_p_DepthProbeSimulation swig_types[20] +#define SWIGTYPE_p_DetectionProperties swig_types[21] +#define SWIGTYPE_p_DetectorMask swig_types[22] +#define SWIGTYPE_p_DistributionCosine swig_types[23] +#define SWIGTYPE_p_DistributionGate swig_types[24] +#define SWIGTYPE_p_DistributionGaussian swig_types[25] +#define SWIGTYPE_p_DistributionHandler swig_types[26] +#define SWIGTYPE_p_DistributionLogNormal swig_types[27] +#define SWIGTYPE_p_DistributionLorentz swig_types[28] +#define SWIGTYPE_p_DistributionTrapezoid swig_types[29] +#define SWIGTYPE_p_Ellipse swig_types[30] +#define SWIGTYPE_p_FTDecayFunction1DCauchy swig_types[31] +#define SWIGTYPE_p_FTDecayFunction1DGauss swig_types[32] +#define SWIGTYPE_p_FTDecayFunction1DTriangle swig_types[33] +#define SWIGTYPE_p_FTDecayFunction1DVoigt swig_types[34] +#define SWIGTYPE_p_FTDecayFunction2DCauchy swig_types[35] +#define SWIGTYPE_p_FTDecayFunction2DGauss swig_types[36] +#define SWIGTYPE_p_FTDecayFunction2DVoigt swig_types[37] +#define SWIGTYPE_p_FTDistribution1DCauchy swig_types[38] +#define SWIGTYPE_p_FTDistribution1DCosine swig_types[39] +#define SWIGTYPE_p_FTDistribution1DGate swig_types[40] +#define SWIGTYPE_p_FTDistribution1DGauss swig_types[41] +#define SWIGTYPE_p_FTDistribution1DTriangle swig_types[42] +#define SWIGTYPE_p_FTDistribution1DVoigt swig_types[43] +#define SWIGTYPE_p_FTDistribution2DCauchy swig_types[44] +#define SWIGTYPE_p_FTDistribution2DCone swig_types[45] +#define SWIGTYPE_p_FTDistribution2DGate swig_types[46] +#define SWIGTYPE_p_FTDistribution2DGauss swig_types[47] +#define SWIGTYPE_p_FTDistribution2DVoigt swig_types[48] +#define SWIGTYPE_p_FitObjective swig_types[49] +#define SWIGTYPE_p_FitOptions swig_types[50] +#define SWIGTYPE_p_Fit__MinimizerResult swig_types[51] +#define SWIGTYPE_p_Fit__Parameters swig_types[52] +#define SWIGTYPE_p_FixedBinAxis swig_types[53] +#define SWIGTYPE_p_FootprintGauss swig_types[54] +#define SWIGTYPE_p_FootprintSquare swig_types[55] +#define SWIGTYPE_p_FormFactorAnisoPyramid swig_types[56] +#define SWIGTYPE_p_FormFactorBarGauss swig_types[57] +#define SWIGTYPE_p_FormFactorBarLorentz swig_types[58] +#define SWIGTYPE_p_FormFactorBox swig_types[59] +#define SWIGTYPE_p_FormFactorCantellatedCube swig_types[60] +#define SWIGTYPE_p_FormFactorCone swig_types[61] +#define SWIGTYPE_p_FormFactorCone6 swig_types[62] +#define SWIGTYPE_p_FormFactorCoreShell swig_types[63] +#define SWIGTYPE_p_FormFactorCosineRippleBox swig_types[64] +#define SWIGTYPE_p_FormFactorCosineRippleGauss swig_types[65] +#define SWIGTYPE_p_FormFactorCosineRippleLorentz swig_types[66] +#define SWIGTYPE_p_FormFactorCrystal swig_types[67] +#define SWIGTYPE_p_FormFactorCuboctahedron swig_types[68] +#define SWIGTYPE_p_FormFactorCylinder swig_types[69] +#define SWIGTYPE_p_FormFactorDWBA swig_types[70] +#define SWIGTYPE_p_FormFactorDWBAPol swig_types[71] +#define SWIGTYPE_p_FormFactorDecoratorMaterial swig_types[72] +#define SWIGTYPE_p_FormFactorDecoratorPositionFactor swig_types[73] +#define SWIGTYPE_p_FormFactorDecoratorRotation swig_types[74] +#define SWIGTYPE_p_FormFactorDodecahedron swig_types[75] +#define SWIGTYPE_p_FormFactorDot swig_types[76] +#define SWIGTYPE_p_FormFactorEllipsoidalCylinder swig_types[77] +#define SWIGTYPE_p_FormFactorFullSphere swig_types[78] +#define SWIGTYPE_p_FormFactorFullSpheroid swig_types[79] +#define SWIGTYPE_p_FormFactorGaussSphere swig_types[80] +#define SWIGTYPE_p_FormFactorHemiEllipsoid swig_types[81] +#define SWIGTYPE_p_FormFactorHollowSphere swig_types[82] +#define SWIGTYPE_p_FormFactorIcosahedron swig_types[83] +#define SWIGTYPE_p_FormFactorLongBoxGauss swig_types[84] +#define SWIGTYPE_p_FormFactorLongBoxLorentz swig_types[85] +#define SWIGTYPE_p_FormFactorPrism3 swig_types[86] +#define SWIGTYPE_p_FormFactorPrism6 swig_types[87] +#define SWIGTYPE_p_FormFactorPyramid swig_types[88] +#define SWIGTYPE_p_FormFactorSawtoothRippleBox swig_types[89] +#define SWIGTYPE_p_FormFactorSawtoothRippleGauss swig_types[90] +#define SWIGTYPE_p_FormFactorSawtoothRippleLorentz swig_types[91] +#define SWIGTYPE_p_FormFactorSphereGaussianRadius swig_types[92] +#define SWIGTYPE_p_FormFactorSphereLogNormalRadius swig_types[93] +#define SWIGTYPE_p_FormFactorTetrahedron swig_types[94] +#define SWIGTYPE_p_FormFactorTruncatedCube swig_types[95] +#define SWIGTYPE_p_FormFactorTruncatedSphere swig_types[96] +#define SWIGTYPE_p_FormFactorTruncatedSpheroid swig_types[97] +#define SWIGTYPE_p_FormFactorWeighted swig_types[98] +#define SWIGTYPE_p_GISASSimulation swig_types[99] +#define SWIGTYPE_p_GaussFisherPeakShape swig_types[100] +#define SWIGTYPE_p_HexagonalLattice swig_types[101] +#define SWIGTYPE_p_Histogram1D swig_types[102] +#define SWIGTYPE_p_Histogram2D swig_types[103] +#define SWIGTYPE_p_HorizontalLine swig_types[104] +#define SWIGTYPE_p_IAbstractParticle swig_types[105] +#define SWIGTYPE_p_IAxis swig_types[106] +#define SWIGTYPE_p_IBackground swig_types[107] +#define SWIGTYPE_p_IChiSquaredModule swig_types[108] +#define SWIGTYPE_p_ICloneable swig_types[109] +#define SWIGTYPE_p_IClusteredParticles swig_types[110] +#define SWIGTYPE_p_ICosineRipple swig_types[111] +#define SWIGTYPE_p_IDetector swig_types[112] +#define SWIGTYPE_p_IDetector2D swig_types[113] +#define SWIGTYPE_p_IDetectorResolution swig_types[114] +#define SWIGTYPE_p_IDistribution1D swig_types[115] +#define SWIGTYPE_p_IFTDecayFunction1D swig_types[116] +#define SWIGTYPE_p_IFTDecayFunction2D swig_types[117] +#define SWIGTYPE_p_IFTDistribution1D swig_types[118] +#define SWIGTYPE_p_IFTDistribution2D swig_types[119] +#define SWIGTYPE_p_IFactoryT_std__string_ISampleBuilder_t swig_types[120] +#define SWIGTYPE_p_IFactoryT_std__string_Simulation_t swig_types[121] +#define SWIGTYPE_p_IFootprintFactor swig_types[122] +#define SWIGTYPE_p_IFormFactor swig_types[123] +#define SWIGTYPE_p_IFormFactorBorn swig_types[124] +#define SWIGTYPE_p_IFormFactorDecorator swig_types[125] +#define SWIGTYPE_p_IFormFactorPolyhedron swig_types[126] +#define SWIGTYPE_p_IFormFactorPrism swig_types[127] +#define SWIGTYPE_p_IHistogram swig_types[128] +#define SWIGTYPE_p_IIntensityFunction swig_types[129] +#define SWIGTYPE_p_IInterferenceFunction swig_types[130] +#define SWIGTYPE_p_ILatticeOrientation swig_types[131] +#define SWIGTYPE_p_ILayout swig_types[132] +#define SWIGTYPE_p_INode swig_types[133] +#define SWIGTYPE_p_INodeVisitor swig_types[134] +#define SWIGTYPE_p_IObservable swig_types[135] +#define SWIGTYPE_p_IObserver swig_types[136] +#define SWIGTYPE_p_IParameterT_double_t swig_types[137] +#define SWIGTYPE_p_IParameterized swig_types[138] +#define SWIGTYPE_p_IParticle swig_types[139] +#define SWIGTYPE_p_IPeakShape swig_types[140] +#define SWIGTYPE_p_IPixel swig_types[141] +#define SWIGTYPE_p_IProfileRectangularRipple swig_types[142] +#define SWIGTYPE_p_IProfileRipple swig_types[143] +#define SWIGTYPE_p_IResolutionFunction2D swig_types[144] +#define SWIGTYPE_p_IRotation swig_types[145] +#define SWIGTYPE_p_ISample swig_types[146] +#define SWIGTYPE_p_ISampleBuilder swig_types[147] +#define SWIGTYPE_p_ISawtoothRipple swig_types[148] +#define SWIGTYPE_p_ISelectionRule swig_types[149] +#define SWIGTYPE_p_IShape2D swig_types[150] +#define SWIGTYPE_p_ISpecularScan swig_types[151] +#define SWIGTYPE_p_IUnitConverter swig_types[152] +#define SWIGTYPE_p_IVarianceFunction swig_types[153] +#define SWIGTYPE_p_IdentityRotation swig_types[154] +#define SWIGTYPE_p_Instrument swig_types[155] +#define SWIGTYPE_p_IntensityDataIOFactory swig_types[156] +#define SWIGTYPE_p_IntensityFunctionLog swig_types[157] +#define SWIGTYPE_p_IntensityFunctionSqrt swig_types[158] +#define SWIGTYPE_p_InterferenceFunction1DLattice swig_types[159] +#define SWIGTYPE_p_InterferenceFunction2DLattice swig_types[160] +#define SWIGTYPE_p_InterferenceFunction2DParaCrystal swig_types[161] +#define SWIGTYPE_p_InterferenceFunction2DSuperLattice swig_types[162] +#define SWIGTYPE_p_InterferenceFunction3DLattice swig_types[163] +#define SWIGTYPE_p_InterferenceFunctionFinite2DLattice swig_types[164] +#define SWIGTYPE_p_InterferenceFunctionFinite3DLattice swig_types[165] +#define SWIGTYPE_p_InterferenceFunctionHardDisk swig_types[166] +#define SWIGTYPE_p_InterferenceFunctionNone swig_types[167] +#define SWIGTYPE_p_InterferenceFunctionRadialParaCrystal swig_types[168] +#define SWIGTYPE_p_InterferenceFunctionTwin swig_types[169] +#define SWIGTYPE_p_IsGISAXSDetector swig_types[170] +#define SWIGTYPE_p_IsotropicGaussPeakShape swig_types[171] +#define SWIGTYPE_p_IsotropicLorentzPeakShape swig_types[172] +#define SWIGTYPE_p_IterationInfo swig_types[173] +#define SWIGTYPE_p_Lattice swig_types[174] +#define SWIGTYPE_p_Lattice2D swig_types[175] +#define SWIGTYPE_p_Lattice2D__ReciprocalBases swig_types[176] +#define SWIGTYPE_p_Layer swig_types[177] +#define SWIGTYPE_p_LayerInterface swig_types[178] +#define SWIGTYPE_p_LayerRoughness swig_types[179] +#define SWIGTYPE_p_Line swig_types[180] +#define SWIGTYPE_p_LorentzFisherPeakShape swig_types[181] +#define SWIGTYPE_p_Material swig_types[182] +#define SWIGTYPE_p_MesoCrystal swig_types[183] +#define SWIGTYPE_p_MillerIndex swig_types[184] +#define SWIGTYPE_p_MillerIndexOrientation swig_types[185] +#define SWIGTYPE_p_MisesFisherGaussPeakShape swig_types[186] +#define SWIGTYPE_p_MisesGaussPeakShape swig_types[187] +#define SWIGTYPE_p_MultiLayer swig_types[188] +#define SWIGTYPE_p_NodeMeta swig_types[189] +#define SWIGTYPE_p_OffSpecSimulation swig_types[190] +#define SWIGTYPE_p_OutputDataIteratorT_double_OutputDataT_double_t_t swig_types[191] +#define SWIGTYPE_p_OutputDataIteratorT_double_const_OutputDataT_double_t_const_t swig_types[192] +#define SWIGTYPE_p_OutputDataT_CumulativeValue_t swig_types[193] +#define SWIGTYPE_p_OutputDataT_bool_t swig_types[194] +#define SWIGTYPE_p_OutputDataT_double_t swig_types[195] +#define SWIGTYPE_p_ParaMeta swig_types[196] +#define SWIGTYPE_p_ParameterDistribution swig_types[197] +#define SWIGTYPE_p_ParameterPool swig_types[198] +#define SWIGTYPE_p_ParameterSample swig_types[199] +#define SWIGTYPE_p_Particle swig_types[200] +#define SWIGTYPE_p_ParticleComposition swig_types[201] +#define SWIGTYPE_p_ParticleCoreShell swig_types[202] +#define SWIGTYPE_p_ParticleDistribution swig_types[203] +#define SWIGTYPE_p_ParticleLayout swig_types[204] +#define SWIGTYPE_p_ParticleLimits swig_types[205] +#define SWIGTYPE_p_PoissonNoiseBackground swig_types[206] +#define SWIGTYPE_p_Polygon swig_types[207] +#define SWIGTYPE_p_PolygonPrivate swig_types[208] +#define SWIGTYPE_p_ProgressHandler__Callback_t swig_types[209] +#define SWIGTYPE_p_PyBuilderCallback swig_types[210] +#define SWIGTYPE_p_PyObserverCallback swig_types[211] +#define SWIGTYPE_p_QSpecScan swig_types[212] +#define SWIGTYPE_p_RangedDistribution swig_types[213] +#define SWIGTYPE_p_RangedDistributionCosine swig_types[214] +#define SWIGTYPE_p_RangedDistributionGate swig_types[215] +#define SWIGTYPE_p_RangedDistributionGaussian swig_types[216] +#define SWIGTYPE_p_RangedDistributionLogNormal swig_types[217] +#define SWIGTYPE_p_RangedDistributionLorentz swig_types[218] +#define SWIGTYPE_p_RealLimits swig_types[219] +#define SWIGTYPE_p_RealParameter swig_types[220] +#define SWIGTYPE_p_Rectangle swig_types[221] +#define SWIGTYPE_p_RectangularDetector swig_types[222] +#define SWIGTYPE_p_RectangularPixel swig_types[223] +#define SWIGTYPE_p_RegionOfInterest swig_types[224] +#define SWIGTYPE_p_ResolutionFunction2DGaussian swig_types[225] +#define SWIGTYPE_p_RotationEuler swig_types[226] +#define SWIGTYPE_p_RotationX swig_types[227] +#define SWIGTYPE_p_RotationY swig_types[228] +#define SWIGTYPE_p_RotationZ swig_types[229] +#define SWIGTYPE_p_RoughnessModelWrap swig_types[230] +#define SWIGTYPE_p_RoughnessModelWrap__RoughnessModel swig_types[231] +#define SWIGTYPE_p_SafePointerVectorT_IParticle_t swig_types[232] +#define SWIGTYPE_p_SampleBuilderFactory swig_types[233] +#define SWIGTYPE_p_ScanResolution swig_types[234] +#define SWIGTYPE_p_SimpleSelectionRule swig_types[235] +#define SWIGTYPE_p_Simulation swig_types[236] +#define SWIGTYPE_p_Simulation2D swig_types[237] +#define SWIGTYPE_p_SimulationFactory swig_types[238] +#define SWIGTYPE_p_SimulationOptions swig_types[239] +#define SWIGTYPE_p_SimulationResult swig_types[240] +#define SWIGTYPE_p_SlicedParticle swig_types[241] +#define SWIGTYPE_p_SlicingEffects swig_types[242] +#define SWIGTYPE_p_SpecularDetector1D swig_types[243] +#define SWIGTYPE_p_SpecularSimulation swig_types[244] +#define SWIGTYPE_p_SphericalDetector swig_types[245] +#define SWIGTYPE_p_SquareLattice swig_types[246] +#define SWIGTYPE_p_ThreadInfo swig_types[247] +#define SWIGTYPE_p_Transform3D swig_types[248] +#define SWIGTYPE_p_VariableBinAxis swig_types[249] +#define SWIGTYPE_p_VarianceConstantFunction swig_types[250] +#define SWIGTYPE_p_VarianceSimFunction swig_types[251] +#define SWIGTYPE_p_VerticalLine swig_types[252] +#define SWIGTYPE_p_WavevectorInfo swig_types[253] +#define SWIGTYPE_p_ZLimits swig_types[254] +#define SWIGTYPE_p_allocator_type swig_types[255] +#define SWIGTYPE_p_bool swig_types[256] +#define SWIGTYPE_p_char swig_types[257] +#define SWIGTYPE_p_const_iterator swig_types[258] +#define SWIGTYPE_p_corr_matrix_t swig_types[259] +#define SWIGTYPE_p_difference_type swig_types[260] +#define SWIGTYPE_p_double swig_types[261] +#define SWIGTYPE_p_first_type swig_types[262] +#define SWIGTYPE_p_int swig_types[263] +#define SWIGTYPE_p_iterator swig_types[264] +#define SWIGTYPE_p_key_type swig_types[265] +#define SWIGTYPE_p_long_long swig_types[266] +#define SWIGTYPE_p_mapped_type swig_types[267] +#define SWIGTYPE_p_observer_t swig_types[268] +#define SWIGTYPE_p_p_PyObject swig_types[269] +#define SWIGTYPE_p_parameters_t swig_types[270] +#define SWIGTYPE_p_second_type swig_types[271] +#define SWIGTYPE_p_short swig_types[272] +#define SWIGTYPE_p_signed_char swig_types[273] +#define SWIGTYPE_p_size_type swig_types[274] +#define SWIGTYPE_p_std__allocatorT_AxisInfo_t swig_types[275] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_double_t_t swig_types[276] +#define SWIGTYPE_p_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t swig_types[277] +#define SWIGTYPE_p_std__allocatorT_IFormFactor_p_t swig_types[278] +#define SWIGTYPE_p_std__allocatorT_INode_const_p_t swig_types[279] +#define SWIGTYPE_p_std__allocatorT_INode_p_t swig_types[280] +#define SWIGTYPE_p_std__allocatorT_ParameterSample_t swig_types[281] +#define SWIGTYPE_p_std__allocatorT_double_t swig_types[282] +#define SWIGTYPE_p_std__allocatorT_int_t swig_types[283] +#define SWIGTYPE_p_std__allocatorT_std__complexT_double_t_t swig_types[284] +#define SWIGTYPE_p_std__allocatorT_std__pairT_double_double_t_t swig_types[285] +#define SWIGTYPE_p_std__allocatorT_std__pairT_std__string_const_double_t_t swig_types[286] +#define SWIGTYPE_p_std__allocatorT_std__string_t swig_types[287] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_t swig_types[288] +#define SWIGTYPE_p_std__allocatorT_std__vectorT_int_std__allocatorT_int_t_t_t swig_types[289] +#define SWIGTYPE_p_std__allocatorT_unsigned_long_t swig_types[290] +#define SWIGTYPE_p_std__complexT_double_t swig_types[291] +#define SWIGTYPE_p_std__functionT_ISampleBuilder_pfF_t swig_types[292] +#define SWIGTYPE_p_std__functionT_Simulation_pfF_t swig_types[293] +#define SWIGTYPE_p_std__functionT_void_fF_t swig_types[294] +#define SWIGTYPE_p_std__functionT_void_fSimulationAreaIterator_const_RF_t swig_types[295] +#define SWIGTYPE_p_std__invalid_argument swig_types[296] +#define SWIGTYPE_p_std__lessT_std__string_t swig_types[297] +#define SWIGTYPE_p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t swig_types[298] #define SWIGTYPE_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t swig_types[299] #define SWIGTYPE_p_std__pairT_double_double_t swig_types[300] #define SWIGTYPE_p_std__shared_ptrT_IObserver_t swig_types[301] #define SWIGTYPE_p_std__shared_ptrT_ISampleBuilder_t swig_types[302] -#define SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t swig_types[303] +#define SWIGTYPE_p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t swig_types[303] #define SWIGTYPE_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t swig_types[304] #define SWIGTYPE_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t swig_types[305] #define SWIGTYPE_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t swig_types[306] @@ -65488,6 +65488,29 @@ fail: } +SWIGINTERN PyObject *_wrap_ParameterPool_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + ParameterPool *arg1 = (ParameterPool *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + bool result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_ParameterPool, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "ParameterPool_empty" "', argument " "1"" of type '" "ParameterPool const *""'"); + } + arg1 = reinterpret_cast< ParameterPool * >(argp1); + result = (bool)((ParameterPool const *)arg1)->empty(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_ParameterPool_addParameter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; ParameterPool *arg1 = (ParameterPool *) 0 ; @@ -103894,28 +103917,6 @@ fail: } -SWIGINTERN PyObject *_wrap_IDetector_clear(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IDetector *arg1 = (IDetector *) 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - PyObject *swig_obj[1] ; - - if (!args) SWIG_fail; - swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IDetector, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDetector_clear" "', argument " "1"" of type '" "IDetector *""'"); - } - arg1 = reinterpret_cast< IDetector * >(argp1); - (arg1)->clear(); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_IDetector_addAxis(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IDetector *arg1 = (IDetector *) 0 ; @@ -104383,7 +104384,7 @@ SWIGINTERN PyObject *_wrap_IDetector_defaultAxesUnits(PyObject *SWIGUNUSEDPARM(s void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - AxesUnits result; + Axes::Units result; if (!args) SWIG_fail; swig_obj[0] = args; @@ -104392,7 +104393,7 @@ SWIGINTERN PyObject *_wrap_IDetector_defaultAxesUnits(PyObject *SWIGUNUSEDPARM(s SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDetector_defaultAxesUnits" "', argument " "1"" of type '" "IDetector const *""'"); } arg1 = reinterpret_cast< IDetector * >(argp1); - result = (AxesUnits)((IDetector const *)arg1)->defaultAxesUnits(); + result = (Axes::Units)((IDetector const *)arg1)->defaultAxesUnits(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -104697,49 +104698,6 @@ fail: } -SWIGINTERN PyObject *_wrap_IDetector2D_setDetectorAxes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { - PyObject *resultobj = 0; - IDetector2D *arg1 = (IDetector2D *) 0 ; - IAxis *arg2 = 0 ; - IAxis *arg3 = 0 ; - void *argp1 = 0 ; - int res1 = 0 ; - void *argp2 = 0 ; - int res2 = 0 ; - void *argp3 = 0 ; - int res3 = 0 ; - PyObject *swig_obj[3] ; - - if (!SWIG_Python_UnpackTuple(args, "IDetector2D_setDetectorAxes", 3, 3, swig_obj)) SWIG_fail; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IDetector2D, 0 | 0 ); - if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IDetector2D_setDetectorAxes" "', argument " "1"" of type '" "IDetector2D *""'"); - } - arg1 = reinterpret_cast< IDetector2D * >(argp1); - res2 = SWIG_ConvertPtr(swig_obj[1], &argp2, SWIGTYPE_p_IAxis, 0 | 0); - if (!SWIG_IsOK(res2)) { - SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "IDetector2D_setDetectorAxes" "', argument " "2"" of type '" "IAxis const &""'"); - } - if (!argp2) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDetector2D_setDetectorAxes" "', argument " "2"" of type '" "IAxis const &""'"); - } - arg2 = reinterpret_cast< IAxis * >(argp2); - res3 = SWIG_ConvertPtr(swig_obj[2], &argp3, SWIGTYPE_p_IAxis, 0 | 0); - if (!SWIG_IsOK(res3)) { - SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "IDetector2D_setDetectorAxes" "', argument " "3"" of type '" "IAxis const &""'"); - } - if (!argp3) { - SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "IDetector2D_setDetectorAxes" "', argument " "3"" of type '" "IAxis const &""'"); - } - arg3 = reinterpret_cast< IAxis * >(argp3); - (arg1)->setDetectorAxes((IAxis const &)*arg2,(IAxis const &)*arg3); - resultobj = SWIG_Py_Void(); - return resultobj; -fail: - return NULL; -} - - SWIGINTERN PyObject *_wrap_IDetector2D_removeMasks(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IDetector2D *arg1 = (IDetector2D *) 0 ; @@ -105366,7 +105324,7 @@ SWIGINTERN PyObject *_wrap_SphericalDetector_defaultAxesUnits(PyObject *SWIGUNUS void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - AxesUnits result; + Axes::Units result; if (!args) SWIG_fail; swig_obj[0] = args; @@ -105375,7 +105333,7 @@ SWIGINTERN PyObject *_wrap_SphericalDetector_defaultAxesUnits(PyObject *SWIGUNUS SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SphericalDetector_defaultAxesUnits" "', argument " "1"" of type '" "SphericalDetector const *""'"); } arg1 = reinterpret_cast< SphericalDetector * >(argp1); - result = (AxesUnits)((SphericalDetector const *)arg1)->defaultAxesUnits(); + result = (Axes::Units)((SphericalDetector const *)arg1)->defaultAxesUnits(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -107120,7 +107078,7 @@ SWIGINTERN PyObject *_wrap_RectangularDetector_defaultAxesUnits(PyObject *SWIGUN void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - AxesUnits result; + Axes::Units result; if (!args) SWIG_fail; swig_obj[0] = args; @@ -107129,7 +107087,7 @@ SWIGINTERN PyObject *_wrap_RectangularDetector_defaultAxesUnits(PyObject *SWIGUN SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "RectangularDetector_defaultAxesUnits" "', argument " "1"" of type '" "RectangularDetector const *""'"); } arg1 = reinterpret_cast< RectangularDetector * >(argp1); - result = (AxesUnits)((RectangularDetector const *)arg1)->defaultAxesUnits(); + result = (Axes::Units)((RectangularDetector const *)arg1)->defaultAxesUnits(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -110034,20 +109992,33 @@ SWIGINTERN PyObject *IntensityFunctionSqrt_swiginit(PyObject *SWIGUNUSEDPARM(sel return SWIG_Python_InitShadowInstance(args); } -SWIGINTERN PyObject *_wrap_delete_AxesUnits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *_wrap_new_Axes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + Axes *result = 0 ; + + if (!SWIG_Python_UnpackTuple(args, "new_Axes", 0, 0, 0)) SWIG_fail; + result = (Axes *)new Axes(); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Axes, SWIG_POINTER_NEW | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_delete_Axes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; - AxesUnitsWrap *arg1 = (AxesUnitsWrap *) 0 ; + Axes *arg1 = (Axes *) 0 ; void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; if (!args) SWIG_fail; swig_obj[0] = args; - res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_AxesUnitsWrap, SWIG_POINTER_DISOWN | 0 ); + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_Axes, SWIG_POINTER_DISOWN | 0 ); if (!SWIG_IsOK(res1)) { - SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_AxesUnits" "', argument " "1"" of type '" "AxesUnitsWrap *""'"); + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_Axes" "', argument " "1"" of type '" "Axes *""'"); } - arg1 = reinterpret_cast< AxesUnitsWrap * >(argp1); + arg1 = reinterpret_cast< Axes * >(argp1); delete arg1; resultobj = SWIG_Py_Void(); return resultobj; @@ -110056,13 +110027,45 @@ fail: } -SWIGINTERN PyObject *AxesUnits_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { +SWIGINTERN PyObject *Axes_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *obj; if (!SWIG_Python_UnpackTuple(args, "swigregister", 1, 1, &obj)) return NULL; - SWIG_TypeNewClientData(SWIGTYPE_p_AxesUnitsWrap, SWIG_NewClientData(obj)); + SWIG_TypeNewClientData(SWIGTYPE_p_Axes, SWIG_NewClientData(obj)); return SWIG_Py_Void(); } +SWIGINTERN PyObject *Axes_swiginit(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + return SWIG_Python_InitShadowInstance(args); +} + +SWIGINTERN int Swig_var_axisUnitName_set(PyObject *) { + SWIG_Error(SWIG_AttributeError,"Variable axisUnitName is read-only."); + return 1; +} + + +SWIGINTERN PyObject *Swig_var_axisUnitName_get(void) { + PyObject *pyobj = 0; + + pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&axisUnitName), SWIGTYPE_p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t, 0 ); + return pyobj; +} + + +SWIGINTERN int Swig_var_axisUnitLabel_set(PyObject *) { + SWIG_Error(SWIG_AttributeError,"Variable axisUnitLabel is read-only."); + return 1; +} + + +SWIGINTERN PyObject *Swig_var_axisUnitLabel_get(void) { + PyObject *pyobj = 0; + + pyobj = SWIG_NewPointerObj(SWIG_as_voidptr(&axisUnitLabel), SWIGTYPE_p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t, 0 ); + return pyobj; +} + + SWIGINTERN PyObject *_wrap_delete_IUnitConverter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IUnitConverter *arg1 = (IUnitConverter *) 0 ; @@ -110135,7 +110138,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_calculateMin(PyObject *SWIGUNUSEDPARM( PyObject *resultobj = 0; IUnitConverter *arg1 = (IUnitConverter *) 0 ; size_t arg2 ; - AxesUnits arg3 ; + Axes::Units arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; @@ -110158,9 +110161,9 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_calculateMin(PyObject *SWIGUNUSEDPARM( arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_calculateMin" "', argument " "3"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_calculateMin" "', argument " "3"" of type '" "Axes::Units""'"); } - arg3 = static_cast< AxesUnits >(val3); + arg3 = static_cast< Axes::Units >(val3); result = (double)((IUnitConverter const *)arg1)->calculateMin(arg2,arg3); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; @@ -110173,7 +110176,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_calculateMax(PyObject *SWIGUNUSEDPARM( PyObject *resultobj = 0; IUnitConverter *arg1 = (IUnitConverter *) 0 ; size_t arg2 ; - AxesUnits arg3 ; + Axes::Units arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; @@ -110196,9 +110199,9 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_calculateMax(PyObject *SWIGUNUSEDPARM( arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_calculateMax" "', argument " "3"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_calculateMax" "', argument " "3"" of type '" "Axes::Units""'"); } - arg3 = static_cast< AxesUnits >(val3); + arg3 = static_cast< Axes::Units >(val3); result = (double)((IUnitConverter const *)arg1)->calculateMax(arg2,arg3); resultobj = SWIG_From_double(static_cast< double >(result)); return resultobj; @@ -110241,7 +110244,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_axisName__SWIG_0(PyObject *SWIGUNUSEDP PyObject *resultobj = 0; IUnitConverter *arg1 = (IUnitConverter *) 0 ; size_t arg2 ; - AxesUnits arg3 ; + Axes::Units arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; @@ -110263,9 +110266,9 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_axisName__SWIG_0(PyObject *SWIGUNUSEDP arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_axisName" "', argument " "3"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "IUnitConverter_axisName" "', argument " "3"" of type '" "Axes::Units""'"); } - arg3 = static_cast< AxesUnits >(val3); + arg3 = static_cast< Axes::Units >(val3); result = ((IUnitConverter const *)arg1)->axisName(arg2,arg3); resultobj = SWIG_From_std_string(static_cast< std::string >(result)); return resultobj; @@ -110351,7 +110354,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_axisName(PyObject *self, PyObject *arg fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'IUnitConverter_axisName'.\n" " Possible C/C++ prototypes are:\n" - " IUnitConverter::axisName(size_t,AxesUnits) const\n" + " IUnitConverter::axisName(size_t,Axes::Units) const\n" " IUnitConverter::axisName(size_t) const\n"); return 0; } @@ -110363,7 +110366,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_availableUnits(PyObject *SWIGUNUSEDPAR void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - SwigValueWrapper< std::vector< enum AxesUnitsWrap::AxesUnits,std::allocator< enum AxesUnitsWrap::AxesUnits > > > result; + SwigValueWrapper< std::vector< enum Axes::Units,std::allocator< enum Axes::Units > > > result; if (!args) SWIG_fail; swig_obj[0] = args; @@ -110373,7 +110376,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_availableUnits(PyObject *SWIGUNUSEDPAR } arg1 = reinterpret_cast< IUnitConverter * >(argp1); result = ((IUnitConverter const *)arg1)->availableUnits(); - resultobj = SWIG_NewPointerObj((new std::vector< AxesUnits,std::allocator< AxesUnits > >(static_cast< const std::vector< AxesUnits,std::allocator< AxesUnits > >& >(result))), SWIGTYPE_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t, SWIG_POINTER_OWN | 0 ); + resultobj = SWIG_NewPointerObj((new std::vector< Axes::Units,std::allocator< Axes::Units > >(static_cast< const std::vector< Axes::Units,std::allocator< Axes::Units > >& >(result))), SWIGTYPE_p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t, SWIG_POINTER_OWN | 0 ); return resultobj; fail: return NULL; @@ -110386,7 +110389,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_defaultUnits(PyObject *SWIGUNUSEDPARM( void *argp1 = 0 ; int res1 = 0 ; PyObject *swig_obj[1] ; - AxesUnits result; + Axes::Units result; if (!args) SWIG_fail; swig_obj[0] = args; @@ -110395,7 +110398,7 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_defaultUnits(PyObject *SWIGUNUSEDPARM( SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "IUnitConverter_defaultUnits" "', argument " "1"" of type '" "IUnitConverter const *""'"); } arg1 = reinterpret_cast< IUnitConverter * >(argp1); - result = (AxesUnits)((IUnitConverter const *)arg1)->defaultUnits(); + result = (Axes::Units)((IUnitConverter const *)arg1)->defaultUnits(); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -110406,13 +110409,13 @@ fail: SWIGINTERN PyObject *_wrap_IUnitConverter_substituteDefaultUnits(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; IUnitConverter *arg1 = (IUnitConverter *) 0 ; - AxesUnits arg2 ; + Axes::Units arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; int ecode2 = 0 ; PyObject *swig_obj[2] ; - AxesUnits result; + Axes::Units result; if (!SWIG_Python_UnpackTuple(args, "IUnitConverter_substituteDefaultUnits", 2, 2, swig_obj)) SWIG_fail; res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_IUnitConverter, 0 | 0 ); @@ -110422,10 +110425,10 @@ SWIGINTERN PyObject *_wrap_IUnitConverter_substituteDefaultUnits(PyObject *SWIGU arg1 = reinterpret_cast< IUnitConverter * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IUnitConverter_substituteDefaultUnits" "', argument " "2"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "IUnitConverter_substituteDefaultUnits" "', argument " "2"" of type '" "Axes::Units""'"); } - arg2 = static_cast< AxesUnits >(val2); - result = (AxesUnits)((IUnitConverter const *)arg1)->substituteDefaultUnits(arg2); + arg2 = static_cast< Axes::Units >(val2); + result = (Axes::Units)((IUnitConverter const *)arg1)->substituteDefaultUnits(arg2); resultobj = SWIG_From_int(static_cast< int >(result)); return resultobj; fail: @@ -115574,7 +115577,7 @@ fail: SWIGINTERN PyObject *_wrap_SimulationResult_histogram2d__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SimulationResult *arg1 = (SimulationResult *) 0 ; - AxesUnits arg2 ; + Axes::Units arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; @@ -115589,9 +115592,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_histogram2d__SWIG_0(PyObject *SWIGUN arg1 = reinterpret_cast< SimulationResult * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_histogram2d" "', argument " "2"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_histogram2d" "', argument " "2"" of type '" "Axes::Units""'"); } - arg2 = static_cast< AxesUnits >(val2); + arg2 = static_cast< Axes::Units >(val2); result = (Histogram2D *)((SimulationResult const *)arg1)->histogram2d(arg2); resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Histogram2D, SWIG_POINTER_OWN | 0 ); return resultobj; @@ -115657,7 +115660,7 @@ SWIGINTERN PyObject *_wrap_SimulationResult_histogram2d(PyObject *self, PyObject fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SimulationResult_histogram2d'.\n" " Possible C/C++ prototypes are:\n" - " SimulationResult::histogram2d(AxesUnits) const\n" + " SimulationResult::histogram2d(Axes::Units) const\n" " SimulationResult::histogram2d() const\n"); return 0; } @@ -115666,7 +115669,7 @@ fail: SWIGINTERN PyObject *_wrap_SimulationResult_axisInfo__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SimulationResult *arg1 = (SimulationResult *) 0 ; - AxesUnits arg2 ; + Axes::Units arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; @@ -115681,9 +115684,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axisInfo__SWIG_0(PyObject *SWIGUNUSE arg1 = reinterpret_cast< SimulationResult * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_axisInfo" "', argument " "2"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_axisInfo" "', argument " "2"" of type '" "Axes::Units""'"); } - arg2 = static_cast< AxesUnits >(val2); + arg2 = static_cast< Axes::Units >(val2); result = ((SimulationResult const *)arg1)->axisInfo(arg2); resultobj = swig::from(static_cast< std::vector< AxisInfo,std::allocator< AxisInfo > > >(result)); return resultobj; @@ -115749,7 +115752,7 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axisInfo(PyObject *self, PyObject *a fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SimulationResult_axisInfo'.\n" " Possible C/C++ prototypes are:\n" - " SimulationResult::axisInfo(AxesUnits) const\n" + " SimulationResult::axisInfo(Axes::Units) const\n" " SimulationResult::axisInfo() const\n"); return 0; } @@ -115801,10 +115804,33 @@ fail: } +SWIGINTERN PyObject *_wrap_SimulationResult_empty(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + SimulationResult *arg1 = (SimulationResult *) 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + PyObject *swig_obj[1] ; + bool result; + + if (!args) SWIG_fail; + swig_obj[0] = args; + res1 = SWIG_ConvertPtr(swig_obj[0], &argp1,SWIGTYPE_p_SimulationResult, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "SimulationResult_empty" "', argument " "1"" of type '" "SimulationResult const *""'"); + } + arg1 = reinterpret_cast< SimulationResult * >(argp1); + result = (bool)((SimulationResult const *)arg1)->empty(); + resultobj = SWIG_From_bool(static_cast< bool >(result)); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_SimulationResult_array__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SimulationResult *arg1 = (SimulationResult *) 0 ; - AxesUnits arg2 ; + Axes::Units arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; @@ -115819,9 +115845,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_array__SWIG_0(PyObject *SWIGUNUSEDPA arg1 = reinterpret_cast< SimulationResult * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_array" "', argument " "2"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_array" "', argument " "2"" of type '" "Axes::Units""'"); } - arg2 = static_cast< AxesUnits >(val2); + arg2 = static_cast< Axes::Units >(val2); result = (PyObject *)((SimulationResult const *)arg1)->array(arg2); resultobj = result; return resultobj; @@ -115887,7 +115913,7 @@ SWIGINTERN PyObject *_wrap_SimulationResult_array(PyObject *self, PyObject *args fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SimulationResult_array'.\n" " Possible C/C++ prototypes are:\n" - " SimulationResult::array(AxesUnits) const\n" + " SimulationResult::array(Axes::Units) const\n" " SimulationResult::array() const\n"); return 0; } @@ -115896,7 +115922,7 @@ fail: SWIGINTERN PyObject *_wrap_SimulationResult_axis__SWIG_0(PyObject *SWIGUNUSEDPARM(self), Py_ssize_t nobjs, PyObject **swig_obj) { PyObject *resultobj = 0; SimulationResult *arg1 = (SimulationResult *) 0 ; - AxesUnits arg2 ; + Axes::Units arg2 ; void *argp1 = 0 ; int res1 = 0 ; int val2 ; @@ -115911,9 +115937,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axis__SWIG_0(PyObject *SWIGUNUSEDPAR arg1 = reinterpret_cast< SimulationResult * >(argp1); ecode2 = SWIG_AsVal_int(swig_obj[1], &val2); if (!SWIG_IsOK(ecode2)) { - SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_axis" "', argument " "2"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "SimulationResult_axis" "', argument " "2"" of type '" "Axes::Units""'"); } - arg2 = static_cast< AxesUnits >(val2); + arg2 = static_cast< Axes::Units >(val2); result = ((SimulationResult const *)arg1)->axis(arg2); resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result)); return resultobj; @@ -115947,7 +115973,7 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axis__SWIG_2(PyObject *SWIGUNUSEDPAR PyObject *resultobj = 0; SimulationResult *arg1 = (SimulationResult *) 0 ; size_t arg2 ; - AxesUnits arg3 ; + Axes::Units arg3 ; void *argp1 = 0 ; int res1 = 0 ; size_t val2 ; @@ -115969,9 +115995,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axis__SWIG_2(PyObject *SWIGUNUSEDPAR arg2 = static_cast< size_t >(val2); ecode3 = SWIG_AsVal_int(swig_obj[2], &val3); if (!SWIG_IsOK(ecode3)) { - SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SimulationResult_axis" "', argument " "3"" of type '" "AxesUnits""'"); + SWIG_exception_fail(SWIG_ArgError(ecode3), "in method '" "SimulationResult_axis" "', argument " "3"" of type '" "Axes::Units""'"); } - arg3 = static_cast< AxesUnits >(val3); + arg3 = static_cast< Axes::Units >(val3); result = ((SimulationResult const *)arg1)->axis(arg2,arg3); resultobj = swig::from(static_cast< std::vector< double,std::allocator< double > > >(result)); return resultobj; @@ -116081,9 +116107,9 @@ SWIGINTERN PyObject *_wrap_SimulationResult_axis(PyObject *self, PyObject *args) fail: SWIG_Python_RaiseOrModifyTypeError("Wrong number or type of arguments for overloaded function 'SimulationResult_axis'.\n" " Possible C/C++ prototypes are:\n" - " SimulationResult::axis(AxesUnits) const\n" + " SimulationResult::axis(Axes::Units) const\n" " SimulationResult::axis() const\n" - " SimulationResult::axis(size_t,AxesUnits) const\n" + " SimulationResult::axis(size_t,Axes::Units) const\n" " SimulationResult::axis(size_t) const\n"); return 0; } @@ -124306,6 +124332,11 @@ static PyMethodDef SwigMethods[] = { "Returns number of parameters in the pool. \n" "\n" ""}, + { "ParameterPool_empty", _wrap_ParameterPool_empty, METH_O, "\n" + "ParameterPool_empty(ParameterPool self) -> bool\n" + "bool ParameterPool::empty() const\n" + "\n" + ""}, { "ParameterPool_addParameter", _wrap_ParameterPool_addParameter, METH_VARARGS, "\n" "ParameterPool_addParameter(ParameterPool self, RealParameter newPar) -> RealParameter\n" "RealParameter & ParameterPool::addParameter(RealParameter *newPar)\n" @@ -128092,7 +128123,7 @@ static PyMethodDef SwigMethods[] = { ""}, { "ISampleBuilder_createSampleByIndex", _wrap_ISampleBuilder_createSampleByIndex, METH_VARARGS, "\n" "ISampleBuilder_createSampleByIndex(ISampleBuilder self, size_t arg0) -> MultiLayer\n" - "virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t index)\n" + "virtual MultiLayer* ISampleBuilder::createSampleByIndex(size_t)\n" "\n" ""}, { "ISampleBuilder_size", _wrap_ISampleBuilder_size, METH_O, "\n" @@ -129966,7 +129997,7 @@ static PyMethodDef SwigMethods[] = { ""}, { "Simulation_setSampleBuilderCpp", _wrap_Simulation_setSampleBuilderCpp, METH_VARARGS, "\n" "Simulation_setSampleBuilderCpp(Simulation self, std::shared_ptr< ISampleBuilder > const & sample_builder)\n" - "void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > sample_builder)\n" + "void Simulation::setSampleBuilder(const std::shared_ptr< ISampleBuilder > &sample_builder)\n" "\n" ""}, { "Simulation_setBackground", _wrap_Simulation_setBackground, METH_VARARGS, "\n" @@ -130145,7 +130176,7 @@ static PyMethodDef SwigMethods[] = { { "Simulation2D_swigregister", Simulation2D_swigregister, METH_O, NULL}, { "new_GISASSimulation", _wrap_new_GISASSimulation, METH_NOARGS, "\n" "new_GISASSimulation() -> GISASSimulation\n" - "GISASSimulation::GISASSimulation(const std::shared_ptr< ISampleBuilder > p_sample_builder)\n" + "GISASSimulation::GISASSimulation()\n" "\n" ""}, { "delete_GISASSimulation", _wrap_delete_GISASSimulation, METH_O, "\n" @@ -130197,7 +130228,7 @@ static PyMethodDef SwigMethods[] = { { "GISASSimulation_swiginit", GISASSimulation_swiginit, METH_VARARGS, NULL}, { "new_DepthProbeSimulation", _wrap_new_DepthProbeSimulation, METH_NOARGS, "\n" "new_DepthProbeSimulation() -> DepthProbeSimulation\n" - "DepthProbeSimulation::DepthProbeSimulation(const std::shared_ptr< ISampleBuilder > sample_builder)\n" + "DepthProbeSimulation::DepthProbeSimulation()\n" "\n" ""}, { "delete_DepthProbeSimulation", _wrap_delete_DepthProbeSimulation, METH_O, "\n" @@ -130263,7 +130294,7 @@ static PyMethodDef SwigMethods[] = { { "DepthProbeSimulation_swiginit", DepthProbeSimulation_swiginit, METH_VARARGS, NULL}, { "new_SpecularSimulation", _wrap_new_SpecularSimulation, METH_NOARGS, "\n" "new_SpecularSimulation() -> SpecularSimulation\n" - "SpecularSimulation::SpecularSimulation(const std::shared_ptr< ISampleBuilder > sample_builder)\n" + "SpecularSimulation::SpecularSimulation()\n" "\n" ""}, { "delete_SpecularSimulation", _wrap_delete_SpecularSimulation, METH_O, "\n" @@ -130329,7 +130360,7 @@ static PyMethodDef SwigMethods[] = { { "SpecularSimulation_swiginit", SpecularSimulation_swiginit, METH_VARARGS, NULL}, { "new_OffSpecSimulation", _wrap_new_OffSpecSimulation, METH_NOARGS, "\n" "new_OffSpecSimulation() -> OffSpecSimulation\n" - "OffSpecSimulation::OffSpecSimulation(const std::shared_ptr< class ISampleBuilder > p_sample_builder)\n" + "OffSpecSimulation::OffSpecSimulation()\n" "\n" ""}, { "delete_OffSpecSimulation", _wrap_delete_OffSpecSimulation, METH_O, "\n" @@ -130516,11 +130547,6 @@ static PyMethodDef SwigMethods[] = { "Inits detector with the beam settings. \n" "\n" ""}, - { "IDetector_clear", _wrap_IDetector_clear, METH_O, "\n" - "IDetector_clear(IDetector self)\n" - "void IDetector::clear()\n" - "\n" - ""}, { "IDetector_addAxis", _wrap_IDetector_addAxis, METH_VARARGS, "\n" "IDetector_addAxis(IDetector self, IAxis axis)\n" "void IDetector::addAxis(const IAxis &axis)\n" @@ -130628,8 +130654,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "IDetector_defaultAxesUnits", _wrap_IDetector_defaultAxesUnits, METH_O, "\n" - "IDetector_defaultAxesUnits(IDetector self) -> AxesUnits\n" - "virtual AxesUnits IDetector::defaultAxesUnits() const\n" + "IDetector_defaultAxesUnits(IDetector self) -> Axes::Units\n" + "virtual Axes::Units IDetector::defaultAxesUnits() const\n" "\n" "Return default axes units. \n" "\n" @@ -130671,13 +130697,6 @@ static PyMethodDef SwigMethods[] = { "Sets detector parameters using angle ranges. \n" "\n" ""}, - { "IDetector2D_setDetectorAxes", _wrap_IDetector2D_setDetectorAxes, METH_VARARGS, "\n" - "IDetector2D_setDetectorAxes(IDetector2D self, IAxis axis0, IAxis axis1)\n" - "void IDetector2D::setDetectorAxes(const IAxis &axis0, const IAxis &axis1)\n" - "\n" - "Sets detector parameters using axes. \n" - "\n" - ""}, { "IDetector2D_removeMasks", _wrap_IDetector2D_removeMasks, METH_O, "\n" "IDetector2D_removeMasks(IDetector2D self)\n" "void IDetector2D::removeMasks()\n" @@ -130783,8 +130802,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "SphericalDetector_defaultAxesUnits", _wrap_SphericalDetector_defaultAxesUnits, METH_O, "\n" - "SphericalDetector_defaultAxesUnits(SphericalDetector self) -> AxesUnits\n" - "AxesUnits SphericalDetector::defaultAxesUnits() const override\n" + "SphericalDetector_defaultAxesUnits(SphericalDetector self) -> Axes::Units\n" + "Axes::Units SphericalDetector::defaultAxesUnits() const override\n" "\n" "return default axes units \n" "\n" @@ -131004,8 +131023,8 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "RectangularDetector_defaultAxesUnits", _wrap_RectangularDetector_defaultAxesUnits, METH_O, "\n" - "RectangularDetector_defaultAxesUnits(RectangularDetector self) -> AxesUnits\n" - "AxesUnits RectangularDetector::defaultAxesUnits() const override\n" + "RectangularDetector_defaultAxesUnits(RectangularDetector self) -> Axes::Units\n" + "Axes::Units RectangularDetector::defaultAxesUnits() const override\n" "\n" "return default axes units \n" "\n" @@ -131498,8 +131517,18 @@ static PyMethodDef SwigMethods[] = { { "delete_IntensityFunctionSqrt", _wrap_delete_IntensityFunctionSqrt, METH_O, "delete_IntensityFunctionSqrt(IntensityFunctionSqrt self)"}, { "IntensityFunctionSqrt_swigregister", IntensityFunctionSqrt_swigregister, METH_O, NULL}, { "IntensityFunctionSqrt_swiginit", IntensityFunctionSqrt_swiginit, METH_VARARGS, NULL}, - { "delete_AxesUnits", _wrap_delete_AxesUnits, METH_O, "delete_AxesUnits(AxesUnits self)"}, - { "AxesUnits_swigregister", AxesUnits_swigregister, METH_O, NULL}, + { "new_Axes", _wrap_new_Axes, METH_NOARGS, "\n" + "new_Axes() -> Axes\n" + "\n" + "\n" + "Wrapper for detector axes units, required for a better representation of detector axes units in python\n" + "\n" + "C++ includes: IUnitConverter.h\n" + "\n" + ""}, + { "delete_Axes", _wrap_delete_Axes, METH_O, "delete_Axes(Axes self)"}, + { "Axes_swigregister", Axes_swigregister, METH_O, NULL}, + { "Axes_swiginit", Axes_swiginit, METH_VARARGS, NULL}, { "delete_IUnitConverter", _wrap_delete_IUnitConverter, METH_O, "\n" "delete_IUnitConverter(IUnitConverter self)\n" "IUnitConverter::~IUnitConverter()\n" @@ -131516,13 +131545,13 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "IUnitConverter_calculateMin", _wrap_IUnitConverter_calculateMin, METH_VARARGS, "\n" - "IUnitConverter_calculateMin(IUnitConverter self, size_t i_axis, AxesUnits units_type) -> double\n" - "virtual double IUnitConverter::calculateMin(size_t i_axis, AxesUnits units_type) const =0\n" + "IUnitConverter_calculateMin(IUnitConverter self, size_t i_axis, Axes::Units units_type) -> double\n" + "virtual double IUnitConverter::calculateMin(size_t i_axis, Axes::Units units_type) const =0\n" "\n" ""}, { "IUnitConverter_calculateMax", _wrap_IUnitConverter_calculateMax, METH_VARARGS, "\n" - "IUnitConverter_calculateMax(IUnitConverter self, size_t i_axis, AxesUnits units_type) -> double\n" - "virtual double IUnitConverter::calculateMax(size_t i_axis, AxesUnits units_type) const =0\n" + "IUnitConverter_calculateMax(IUnitConverter self, size_t i_axis, Axes::Units units_type) -> double\n" + "virtual double IUnitConverter::calculateMax(size_t i_axis, Axes::Units units_type) const =0\n" "\n" ""}, { "IUnitConverter_axisSize", _wrap_IUnitConverter_axisSize, METH_VARARGS, "\n" @@ -131531,23 +131560,23 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "IUnitConverter_axisName", _wrap_IUnitConverter_axisName, METH_VARARGS, "\n" - "IUnitConverter_axisName(IUnitConverter self, size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) -> std::string\n" - "std::string IUnitConverter::axisName(size_t i_axis, AxesUnits units_type=AxesUnits::DEFAULT) const\n" + "IUnitConverter_axisName(IUnitConverter self, size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) -> std::string\n" + "std::string IUnitConverter::axisName(size_t i_axis, Axes::Units units_type=Axes::Units::DEFAULT) const\n" "\n" ""}, { "IUnitConverter_availableUnits", _wrap_IUnitConverter_availableUnits, METH_O, "\n" - "IUnitConverter_availableUnits(IUnitConverter self) -> std::vector< AxesUnits,std::allocator< AxesUnits > >\n" - "virtual std::vector<AxesUnits> IUnitConverter::availableUnits() const =0\n" + "IUnitConverter_availableUnits(IUnitConverter self) -> std::vector< Axes::Units,std::allocator< Axes::Units > >\n" + "virtual std::vector<Axes::Units> IUnitConverter::availableUnits() const =0\n" "\n" ""}, { "IUnitConverter_defaultUnits", _wrap_IUnitConverter_defaultUnits, METH_O, "\n" - "IUnitConverter_defaultUnits(IUnitConverter self) -> AxesUnits\n" - "virtual AxesUnits IUnitConverter::defaultUnits() const =0\n" + "IUnitConverter_defaultUnits(IUnitConverter self) -> Axes::Units\n" + "virtual Axes::Units IUnitConverter::defaultUnits() const =0\n" "\n" ""}, { "IUnitConverter_substituteDefaultUnits", _wrap_IUnitConverter_substituteDefaultUnits, METH_VARARGS, "\n" - "IUnitConverter_substituteDefaultUnits(IUnitConverter self, AxesUnits units) -> AxesUnits\n" - "AxesUnits IUnitConverter::substituteDefaultUnits(AxesUnits units) const\n" + "IUnitConverter_substituteDefaultUnits(IUnitConverter self, Axes::Units units) -> Axes::Units\n" + "Axes::Units IUnitConverter::substituteDefaultUnits(Axes::Units units) const\n" "\n" ""}, { "IUnitConverter_swigregister", IUnitConverter_swigregister, METH_O, NULL}, @@ -132139,13 +132168,13 @@ static PyMethodDef SwigMethods[] = { "\n" ""}, { "SimulationResult_histogram2d", _wrap_SimulationResult_histogram2d, METH_VARARGS, "\n" - "SimulationResult_histogram2d(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> Histogram2D\n" - "Histogram2D * SimulationResult::histogram2d(AxesUnits units=AxesUnits::DEFAULT) const\n" + "SimulationResult_histogram2d(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> Histogram2D\n" + "Histogram2D * SimulationResult::histogram2d(Axes::Units units=Axes::Units::DEFAULT) const\n" "\n" ""}, { "SimulationResult_axisInfo", _wrap_SimulationResult_axisInfo, METH_VARARGS, "\n" - "SimulationResult_axisInfo(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> swig_dummy_type_axisinfo_vector\n" - "std::vector< AxisInfo > SimulationResult::axisInfo(AxesUnits units=AxesUnits::DEFAULT) const\n" + "SimulationResult_axisInfo(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> swig_dummy_type_axisinfo_vector\n" + "std::vector< AxisInfo > SimulationResult::axisInfo(Axes::Units units=Axes::Units::DEFAULT) const\n" "\n" "Provide AxisInfo for each axis and the given units. \n" "\n" @@ -132162,17 +132191,22 @@ static PyMethodDef SwigMethods[] = { "size_t SimulationResult::size() const\n" "\n" ""}, + { "SimulationResult_empty", _wrap_SimulationResult_empty, METH_O, "\n" + "SimulationResult_empty(SimulationResult self) -> bool\n" + "bool SimulationResult::empty() const\n" + "\n" + ""}, { "SimulationResult_array", _wrap_SimulationResult_array, METH_VARARGS, "\n" - "SimulationResult_array(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> PyObject\n" - "PyObject * SimulationResult::array(AxesUnits units=AxesUnits::DEFAULT) const\n" + "SimulationResult_array(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> PyObject\n" + "PyObject * SimulationResult::array(Axes::Units units=Axes::Units::DEFAULT) const\n" "\n" "returns intensity data as Python numpy array \n" "\n" ""}, { "SimulationResult_axis", _wrap_SimulationResult_axis, METH_VARARGS, "\n" - "SimulationResult_axis(SimulationResult self, AxesUnits units=AxesUnits::DEFAULT) -> vdouble1d_t\n" - "SimulationResult_axis(SimulationResult self, size_t i_axis, AxesUnits units=AxesUnits::DEFAULT) -> vdouble1d_t\n" - "std::vector< double > SimulationResult::axis(size_t i_axis, AxesUnits units=AxesUnits::DEFAULT) const\n" + "SimulationResult_axis(SimulationResult self, Axes::Units units=Axes::Units::DEFAULT) -> vdouble1d_t\n" + "SimulationResult_axis(SimulationResult self, size_t i_axis, Axes::Units units=Axes::Units::DEFAULT) -> vdouble1d_t\n" + "std::vector< double > SimulationResult::axis(size_t i_axis, Axes::Units units=Axes::Units::DEFAULT) const\n" "\n" "Returns axis coordinates as a numpy array. With no parameters given returns coordinates of x-axis in default units. \n" "\n" @@ -135022,8 +135056,7 @@ static void *_p_OffSpecSimulationTo_p_Simulation2D(void *x, int *SWIGUNUSEDPARM( } static swig_type_info _swigt__p_AngularSpecScan = {"_p_AngularSpecScan", "AngularSpecScan *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_Attributes = {"_p_Attributes", "Attributes *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_AxesUnitsWrap = {"_p_AxesUnitsWrap", "AxesUnitsWrap *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_AxesUnitsWrap__AxesUnits = {"_p_AxesUnitsWrap__AxesUnits", "enum AxesUnitsWrap::AxesUnits *|AxesUnits *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_Axes = {"_p_Axes", "Axes *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_AxisInfo = {"_p_AxisInfo", "std::vector< AxisInfo >::value_type *|AxisInfo *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BasicLattice = {"_p_BasicLattice", "BasicLattice *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_BasicVector3DT_double_t = {"_p_BasicVector3DT_double_t", "std::vector< BasicVector3D< double > >::value_type *|kvector_t *|BasicVector3D< double > *", 0, 0, (void*)0, 0}; @@ -135319,11 +135352,12 @@ static swig_type_info _swigt__p_std__functionT_void_fF_t = {"_p_std__functionT_v static swig_type_info _swigt__p_std__functionT_void_fSimulationAreaIterator_const_RF_t = {"_p_std__functionT_void_fSimulationAreaIterator_const_RF_t", "std::function< void (IDetector::const_iterator) > *|std::function< void (SimulationAreaIterator const &) > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__invalid_argument = {"_p_std__invalid_argument", "std::invalid_argument *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__lessT_std__string_t = {"_p_std__lessT_std__string_t", "std::less< std::string > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t = {"_p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t", "std::map< Axes::Units,char const *,std::less< Axes::Units >,std::allocator< std::pair< Axes::Units const,char const * > > > *|std::map< enum Axes::Units,char const *,std::less< enum Axes::Units >,std::allocator< std::pair< enum Axes::Units const,char const * > > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t = {"_p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t", "std::map< std::string,double,std::less< std::string >,std::allocator< std::pair< std::string const,double > > > *|std::map< std::string,double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__pairT_double_double_t = {"_p_std__pairT_double_double_t", "std::pair< double,double > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__shared_ptrT_IObserver_t = {"_p_std__shared_ptrT_IObserver_t", "std::shared_ptr< IObserver > *|IObservable::observer_t *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__shared_ptrT_ISampleBuilder_t = {"_p_std__shared_ptrT_ISampleBuilder_t", "std::shared_ptr< ISampleBuilder > *", 0, 0, (void*)0, 0}; -static swig_type_info _swigt__p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t = {"_p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t", "std::vector< enum AxesUnitsWrap::AxesUnits,std::allocator< enum AxesUnitsWrap::AxesUnits > > *|std::vector< AxesUnits,std::allocator< AxesUnits > > *", 0, 0, (void*)0, 0}; +static swig_type_info _swigt__p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t = {"_p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t", "std::vector< Axes::Units,std::allocator< Axes::Units > > *|std::vector< enum Axes::Units,std::allocator< enum Axes::Units > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t = {"_p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t", "std::vector< AxisInfo,std::allocator< AxisInfo > > *|std::vector< AxisInfo > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t = {"_p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t", "std::vector< BasicVector3D< double > > *|std::vector< BasicVector3D< double >,std::allocator< BasicVector3D< double > > > *", 0, 0, (void*)0, 0}; static swig_type_info _swigt__p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t = {"_p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t", "std::vector< BasicVector3D< std::complex< double > > > *|std::vector< BasicVector3D< std::complex< double > >,std::allocator< BasicVector3D< std::complex< double > > > > *", 0, 0, (void*)0, 0}; @@ -135357,8 +135391,7 @@ static swig_type_info _swigt__p_value_type = {"_p_value_type", "value_type *", 0 static swig_type_info *swig_type_initial[] = { &_swigt__p_AngularSpecScan, &_swigt__p_Attributes, - &_swigt__p_AxesUnitsWrap, - &_swigt__p_AxesUnitsWrap__AxesUnits, + &_swigt__p_Axes, &_swigt__p_AxisInfo, &_swigt__p_BasicLattice, &_swigt__p_BasicVector3DT_double_t, @@ -135654,11 +135687,12 @@ static swig_type_info *swig_type_initial[] = { &_swigt__p_std__functionT_void_fSimulationAreaIterator_const_RF_t, &_swigt__p_std__invalid_argument, &_swigt__p_std__lessT_std__string_t, + &_swigt__p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t, &_swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t, &_swigt__p_std__pairT_double_double_t, &_swigt__p_std__shared_ptrT_IObserver_t, &_swigt__p_std__shared_ptrT_ISampleBuilder_t, - &_swigt__p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t, + &_swigt__p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t, &_swigt__p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t, &_swigt__p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, &_swigt__p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, @@ -135692,8 +135726,7 @@ static swig_type_info *swig_type_initial[] = { static swig_cast_info _swigc__p_AngularSpecScan[] = { {&_swigt__p_AngularSpecScan, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_Attributes[] = { {&_swigt__p_Attributes, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_AxesUnitsWrap[] = { {&_swigt__p_AxesUnitsWrap, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_AxesUnitsWrap__AxesUnits[] = { {&_swigt__p_AxesUnitsWrap__AxesUnits, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_Axes[] = { {&_swigt__p_Axes, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_AxisInfo[] = { {&_swigt__p_AxisInfo, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_BasicLattice[] = { {&_swigt__p_BasicLattice, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_BasicVector3DT_double_t[] = { {&_swigt__p_BasicVector3DT_double_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -135989,11 +136022,12 @@ static swig_cast_info _swigc__p_std__functionT_void_fF_t[] = { {&_swigt__p_std_ static swig_cast_info _swigc__p_std__functionT_void_fSimulationAreaIterator_const_RF_t[] = { {&_swigt__p_std__functionT_void_fSimulationAreaIterator_const_RF_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__invalid_argument[] = { {&_swigt__p_std__invalid_argument, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__lessT_std__string_t[] = { {&_swigt__p_std__lessT_std__string_t, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t[] = { {&_swigt__p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t[] = { {&_swigt__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__pairT_double_double_t[] = { {&_swigt__p_std__pairT_double_double_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__shared_ptrT_IObserver_t[] = { {&_swigt__p_std__shared_ptrT_IObserver_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__shared_ptrT_ISampleBuilder_t[] = { {&_swigt__p_std__shared_ptrT_ISampleBuilder_t, 0, 0, 0},{0, 0, 0, 0}}; -static swig_cast_info _swigc__p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t[] = { {&_swigt__p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t, 0, 0, 0},{0, 0, 0, 0}}; +static swig_cast_info _swigc__p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t[] = { {&_swigt__p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t[] = { {&_swigt__p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t[] = { {&_swigt__p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, 0, 0, 0},{0, 0, 0, 0}}; static swig_cast_info _swigc__p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t[] = { {&_swigt__p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, 0, 0, 0},{0, 0, 0, 0}}; @@ -136027,8 +136061,7 @@ static swig_cast_info _swigc__p_value_type[] = { {&_swigt__p_value_type, 0, 0, static swig_cast_info *swig_cast_initial[] = { _swigc__p_AngularSpecScan, _swigc__p_Attributes, - _swigc__p_AxesUnitsWrap, - _swigc__p_AxesUnitsWrap__AxesUnits, + _swigc__p_Axes, _swigc__p_AxisInfo, _swigc__p_BasicLattice, _swigc__p_BasicVector3DT_double_t, @@ -136324,11 +136357,12 @@ static swig_cast_info *swig_cast_initial[] = { _swigc__p_std__functionT_void_fSimulationAreaIterator_const_RF_t, _swigc__p_std__invalid_argument, _swigc__p_std__lessT_std__string_t, + _swigc__p_std__mapT_Axes__Units_char_const_p_std__lessT_Axes__Units_t_std__allocatorT_std__pairT_Axes__Units_const_char_const_p_t_t_t, _swigc__p_std__mapT_std__string_double_std__lessT_std__string_t_std__allocatorT_std__pairT_std__string_const_double_t_t_t, _swigc__p_std__pairT_double_double_t, _swigc__p_std__shared_ptrT_IObserver_t, _swigc__p_std__shared_ptrT_ISampleBuilder_t, - _swigc__p_std__vectorT_AxesUnitsWrap__AxesUnits_std__allocatorT_AxesUnitsWrap__AxesUnits_t_t, + _swigc__p_std__vectorT_Axes__Units_std__allocatorT_Axes__Units_t_t, _swigc__p_std__vectorT_AxisInfo_std__allocatorT_AxisInfo_t_t, _swigc__p_std__vectorT_BasicVector3DT_double_t_std__allocatorT_BasicVector3DT_double_t_t_t, _swigc__p_std__vectorT_BasicVector3DT_std__complexT_double_t_t_std__allocatorT_BasicVector3DT_std__complexT_double_t_t_t_t, @@ -137149,14 +137183,16 @@ SWIG_init(void) { SWIG_Python_SetConstant(d, "IHistogram_AVERAGE",SWIG_From_int(static_cast< int >(IHistogram::AVERAGE))); SWIG_Python_SetConstant(d, "IHistogram_STANDARD_ERROR",SWIG_From_int(static_cast< int >(IHistogram::STANDARD_ERROR))); SWIG_Python_SetConstant(d, "IHistogram_NENTRIES",SWIG_From_int(static_cast< int >(IHistogram::NENTRIES))); - SWIG_Python_SetConstant(d, "AxesUnits_DEFAULT",SWIG_From_int(static_cast< int >(AxesUnitsWrap::DEFAULT))); - SWIG_Python_SetConstant(d, "AxesUnits_NBINS",SWIG_From_int(static_cast< int >(AxesUnitsWrap::NBINS))); - SWIG_Python_SetConstant(d, "AxesUnits_RADIANS",SWIG_From_int(static_cast< int >(AxesUnitsWrap::RADIANS))); - SWIG_Python_SetConstant(d, "AxesUnits_DEGREES",SWIG_From_int(static_cast< int >(AxesUnitsWrap::DEGREES))); - SWIG_Python_SetConstant(d, "AxesUnits_MM",SWIG_From_int(static_cast< int >(AxesUnitsWrap::MM))); - SWIG_Python_SetConstant(d, "AxesUnits_QSPACE",SWIG_From_int(static_cast< int >(AxesUnitsWrap::QSPACE))); - SWIG_Python_SetConstant(d, "AxesUnits_QXQY",SWIG_From_int(static_cast< int >(AxesUnitsWrap::QXQY))); - SWIG_Python_SetConstant(d, "AxesUnits_RQ4",SWIG_From_int(static_cast< int >(AxesUnitsWrap::RQ4))); + SWIG_Python_SetConstant(d, "Axes_DEFAULT",SWIG_From_int(static_cast< int >(Axes::DEFAULT))); + SWIG_Python_SetConstant(d, "Axes_NBINS",SWIG_From_int(static_cast< int >(Axes::NBINS))); + SWIG_Python_SetConstant(d, "Axes_RADIANS",SWIG_From_int(static_cast< int >(Axes::RADIANS))); + SWIG_Python_SetConstant(d, "Axes_DEGREES",SWIG_From_int(static_cast< int >(Axes::DEGREES))); + SWIG_Python_SetConstant(d, "Axes_MM",SWIG_From_int(static_cast< int >(Axes::MM))); + SWIG_Python_SetConstant(d, "Axes_QSPACE",SWIG_From_int(static_cast< int >(Axes::QSPACE))); + SWIG_Python_SetConstant(d, "Axes_QXQY",SWIG_From_int(static_cast< int >(Axes::QXQY))); + SWIG_Python_SetConstant(d, "Axes_RQ4",SWIG_From_int(static_cast< int >(Axes::RQ4))); + SWIG_addvarlink(globals, "axisUnitName", Swig_var_axisUnitName_get, Swig_var_axisUnitName_set); + SWIG_addvarlink(globals, "axisUnitLabel", Swig_var_axisUnitLabel_get, Swig_var_axisUnitLabel_set); SWIG_Python_SetConstant(d, "MillerIndexOrientation_QX",SWIG_From_int(static_cast< int >(MillerIndexOrientation::QX))); SWIG_Python_SetConstant(d, "MillerIndexOrientation_QY",SWIG_From_int(static_cast< int >(MillerIndexOrientation::QY))); SWIG_Python_SetConstant(d, "MillerIndexOrientation_QZ",SWIG_From_int(static_cast< int >(MillerIndexOrientation::QZ))); diff --git a/cmake/modules/CheckCompiler.cmake b/cmake/modules/CheckCompiler.cmake index 8b4f3c995b4600ff3acae48bdf1cad5e5d1622e1..8a0c88c44b025cf136e5d726914d9ea62a19cf3e 100644 --- a/cmake/modules/CheckCompiler.cmake +++ b/cmake/modules/CheckCompiler.cmake @@ -2,17 +2,20 @@ # CheckCompiler.cmake #--------------------------------------------------------------------------------------------------- -#---Set a default build type for single-configuration CMake generators if no build type is set------ +#--- Set a default build type for single-configuration CMake generators if no build type is set --- + if(NOT CMAKE_BUILD_TYPE) # set(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING "" FORCE) set(CMAKE_BUILD_TYPE Release CACHE STRING "" FORCE) endif() message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") -#---Need to locate thead libraries and options to set properly some compilation flags--------------- +#--- Need to locate thead libraries and options to set properly some compilation flags --- + find_package(Threads) -#---Setup details depending on the major platform type---------------------------------------------- +#--- Setup details depending on the major platform type --- + if(CMAKE_SYSTEM_NAME MATCHES Linux) include(SetUpLinux) elseif(APPLE) @@ -21,7 +24,8 @@ elseif(WIN32) include(SetUpWindows) endif() -#---Print the final compiler flags------------------------------------------------------------------ +#--- Print the final compiler flags --- + message(STATUS "BornAgain Platform: ${BORNAGAIN_PLATFORM}") message(STATUS "BornAgain Architecture: ${BORNAGAIN_ARCHITECTURE}") message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")