diff --git a/CMakeLists.txt b/CMakeLists.txt index 5a9fc66..91e8c17 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.10) # set the project name project(NotesTK) -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) set_property( GLOBAL PROPERTY USE_FOLDERS ON) set (CMAKE_MODULE_PATH infra/cmake) @@ -14,11 +14,12 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) if(FALSE) set(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage") -set(GCC_COVERAGE_LINK_FLAGS "-lgcov") +set(GCC_COVERAGE_LINK_FLAGS "-lgcov") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}") endif() add_subdirectory(src) +add_subdirectory(test) +add_subdirectory(plugins) add_subdirectory(apps) -add_subdirectory(test) \ No newline at end of file diff --git a/plugins/CMakeLists.txt b/plugins/CMakeLists.txt new file mode 100644 index 0000000..ea56ee5 --- /dev/null +++ b/plugins/CMakeLists.txt @@ -0,0 +1,4 @@ +add_subdirectory(circuits) +add_subdirectory(machine_learning) +add_subdirectory(physics_simulation) +add_subdirectory(quantum_computing) diff --git a/plugins/circuits/CMakeLists.txt b/plugins/circuits/CMakeLists.txt new file mode 100644 index 0000000..de5d021 --- /dev/null +++ b/plugins/circuits/CMakeLists.txt @@ -0,0 +1,15 @@ +set(PLUGIN_NAME circuits) + +list(APPEND client_HEADERS + ElectronicCircuit.h) + +list(APPEND client_LIB_INCLUDES + ElectronicCircuit.cpp) + +add_library(${PLUGIN_NAME} SHARED ${client_LIB_INCLUDES}) + +target_include_directories(${PLUGIN_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) +target_link_libraries(${PLUGIN_NAME} PUBLIC core) +set_property(TARGET ${PLUGIN_NAME} PROPERTY FOLDER plugins) diff --git a/plugins/circuits/ElectronicCircuit.cpp b/plugins/circuits/ElectronicCircuit.cpp new file mode 100644 index 0000000..e69de29 diff --git a/plugins/circuits/ElectronicCircuit.h b/plugins/circuits/ElectronicCircuit.h new file mode 100644 index 0000000..d49ab3d --- /dev/null +++ b/plugins/circuits/ElectronicCircuit.h @@ -0,0 +1,24 @@ +#pragma once + +#include +#include + +class Terminal +{ + +}; + +class Wire +{ + +}; + +class LogicGate +{ + +}; + +class ElectronicCircuit +{ + +}; diff --git a/plugins/machine_learning/CMakeLists.txt b/plugins/machine_learning/CMakeLists.txt new file mode 100644 index 0000000..721c3ba --- /dev/null +++ b/plugins/machine_learning/CMakeLists.txt @@ -0,0 +1,15 @@ +set(PLUGIN_NAME machine_learning) + +list(APPEND client_HEADERS + NeuralNetwork.h) + +list(APPEND client_LIB_INCLUDES + NeuralNetwork.cpp) + +add_library(${PLUGIN_NAME} SHARED ${client_LIB_INCLUDES}) + +target_include_directories(${PLUGIN_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) +target_link_libraries(${PLUGIN_NAME} PUBLIC core) +set_property(TARGET ${PLUGIN_NAME} PROPERTY FOLDER plugins) diff --git a/plugins/machine_learning/NeuralNetwork.cpp b/plugins/machine_learning/NeuralNetwork.cpp new file mode 100644 index 0000000..e69de29 diff --git a/plugins/machine_learning/NeuralNetwork.h b/plugins/machine_learning/NeuralNetwork.h new file mode 100644 index 0000000..e69de29 diff --git a/plugins/physics_simulation/CMakeLists.txt b/plugins/physics_simulation/CMakeLists.txt new file mode 100644 index 0000000..7486e92 --- /dev/null +++ b/plugins/physics_simulation/CMakeLists.txt @@ -0,0 +1,15 @@ +set(PLUGIN_NAME physics_simulation) + +list(APPEND client_HEADERS + FiniteElementSolver.h) + +list(APPEND client_LIB_INCLUDES + FiniteElementSolver.cpp) + +add_library(${PLUGIN_NAME} SHARED ${client_LIB_INCLUDES}) + +target_include_directories(${PLUGIN_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) +target_link_libraries(${PLUGIN_NAME} PUBLIC core) +set_property(TARGET ${PLUGIN_NAME} PROPERTY FOLDER plugins) diff --git a/plugins/physics_simulation/FiniteElementSolver.cpp b/plugins/physics_simulation/FiniteElementSolver.cpp new file mode 100644 index 0000000..e69de29 diff --git a/plugins/physics_simulation/FiniteElementSolver.h b/plugins/physics_simulation/FiniteElementSolver.h new file mode 100644 index 0000000..e69de29 diff --git a/plugins/quantum_computing/CMakeLists.txt b/plugins/quantum_computing/CMakeLists.txt new file mode 100644 index 0000000..aaa28c6 --- /dev/null +++ b/plugins/quantum_computing/CMakeLists.txt @@ -0,0 +1,15 @@ +set(PLUGIN_NAME quantum_computing) + +list(APPEND client_HEADERS + QuantumCircuit.h) + +list(APPEND client_LIB_INCLUDES + QuantumCircuit.cpp) + +add_library(${PLUGIN_NAME} SHARED ${client_LIB_INCLUDES}) + +target_include_directories(${PLUGIN_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} + ) +target_link_libraries(${PLUGIN_NAME} PUBLIC core) +set_property(TARGET ${PLUGIN_NAME} PROPERTY FOLDER plugins) \ No newline at end of file diff --git a/plugins/quantum_computing/QuantumCircuit.cpp b/plugins/quantum_computing/QuantumCircuit.cpp new file mode 100644 index 0000000..e69de29 diff --git a/plugins/quantum_computing/QuantumCircuit.h b/plugins/quantum_computing/QuantumCircuit.h new file mode 100644 index 0000000..e69de29 diff --git a/src/mesh/MeshPrimitives.cpp b/src/mesh/MeshPrimitives.cpp index ebe8fe9..468af62 100644 --- a/src/mesh/MeshPrimitives.cpp +++ b/src/mesh/MeshPrimitives.cpp @@ -45,6 +45,7 @@ std::unique_ptr MeshPrimitives::buildCircleAsTriMesh(unsigned numSegmen const double y = cos(theta); locations[idx] = {x, y}; theta += delta_theta; + std::cout << "Adding node at: " << x << " | " << y << std::endl; } EdgeIds edge_ids(2*numSegments); diff --git a/test/publishing/TestSvgConverter.cpp b/test/publishing/TestSvgConverter.cpp index a28a10b..f3a77f8 100644 --- a/test/publishing/TestSvgConverter.cpp +++ b/test/publishing/TestSvgConverter.cpp @@ -14,9 +14,9 @@ TEST_CASE(TestSvgConverter, "[publishing]") { Scene scene; - scene.setShowMeshOutline(true); + //scene.setShowMeshOutline(true); - CircleNode circle({10, 10}, 20); + CircleNode circle({40, 40}, 20); circle.setFillColor({255, 0, 0}); scene.addNode(&circle); @@ -26,7 +26,7 @@ TEST_CASE(TestSvgConverter, "[publishing]") SvgConverter converter; auto svg_document = converter.convert(&scene); - svg_document->setViewBox(0, 0, 100, 100); + svg_document->setViewBox(0, 0, 200, 200); SvgWriter writer; auto content = writer.toString(svg_document.get());