diff --git a/CMakeLists.txt b/CMakeLists.txt index 639092f..667e4c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -56,52 +56,53 @@ qt_add_executable(${AppExec} src/Engine/Network/NetworkManager.cpp src/Engine/Operator/GOP_test.cpp + src/Engine/Operator/GOP_transform.cpp ) target_link_libraries(${AppExec} PRIVATE Qt6::Core Qt6::Widgets Qt6::SvgWidgets Qt6::OpenGLWidgets glm::glm Eigen3::Eigen TBB::tbb) target_include_directories(${AppExec} PUBLIC src) # tests -Include(FetchContent) +# Include(FetchContent) -FetchContent_Declare( - Catch2 - GIT_REPOSITORY https://github.com/catchorg/Catch2.git - GIT_TAG v3.8.1 # or a later release -) +# FetchContent_Declare( +# Catch2 +# GIT_REPOSITORY https://github.com/catchorg/Catch2.git +# GIT_TAG v3.8.1 # or a later release +# ) -FetchContent_MakeAvailable(Catch2) +# FetchContent_MakeAvailable(Catch2) -add_executable(${TestExec} - tests/main-tests.cpp - tests/OperatorTests.cpp - tests/NetworkTests.cpp +# add_executable(${TestExec} +# tests/main-tests.cpp +# tests/OperatorTests.cpp +# tests/NetworkTests.cpp - src/Engine/Operator/Attribute.cpp - src/Engine/Operator/Geometry.cpp - src/Engine/Operator/GeometryOperator.cpp - src/Engine/Network/NetworkManager.cpp - src/Engine/Operator/GeometryConnection.cpp - src/Engine/Operator/GeometryOpDef.cpp - src/Engine/Operator/GOP_test.cpp -) -target_link_libraries(${TestExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core TBB::tbb) -target_compile_definitions(${TestExec} PRIVATE UNIT_TEST) -target_include_directories(${TestExec} PUBLIC src) +# src/Engine/Operator/Attribute.cpp +# src/Engine/Operator/Geometry.cpp +# src/Engine/Operator/GeometryOperator.cpp +# src/Engine/Network/NetworkManager.cpp +# src/Engine/Operator/GeometryConnection.cpp +# src/Engine/Operator/GeometryOpDef.cpp +# src/Engine/Operator/GOP_test.cpp +# ) +# target_link_libraries(${TestExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core TBB::tbb) +# target_compile_definitions(${TestExec} PRIVATE UNIT_TEST) +# target_include_directories(${TestExec} PUBLIC src) -# benchmarks -add_executable(${BenchExec} - tests/Benchmarks.cpp +# # benchmarks +# add_executable(${BenchExec} +# tests/Benchmarks.cpp - src/Engine/Operator/Attribute.cpp - src/Engine/Operator/Geometry.cpp - src/Engine/Operator/GeometryOperator.cpp - src/Engine/Network/NetworkManager.cpp - src/Engine/Operator/GeometryConnection.cpp - src/Engine/Operator/GeometryOpDef.cpp - src/Engine/Operator/GOP_test.cpp -) -target_link_libraries(${BenchExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core TBB::tbb) -target_compile_definitions(${BenchExec} PRIVATE UNIT_TEST) -target_include_directories(${BenchExec} PUBLIC src) +# src/Engine/Operator/Attribute.cpp +# src/Engine/Operator/Geometry.cpp +# src/Engine/Operator/GeometryOperator.cpp +# src/Engine/Network/NetworkManager.cpp +# src/Engine/Operator/GeometryConnection.cpp +# src/Engine/Operator/GeometryOpDef.cpp +# src/Engine/Operator/GOP_test.cpp +# ) +# target_link_libraries(${BenchExec} PRIVATE Catch2::Catch2WithMain Eigen3::Eigen Qt6::Core TBB::tbb) +# target_compile_definitions(${BenchExec} PRIVATE UNIT_TEST) +# target_include_directories(${BenchExec} PUBLIC src) diff --git a/src/Engine/Network/NetworkManager.cpp b/src/Engine/Network/NetworkManager.cpp index ac36091..5a536f6 100644 --- a/src/Engine/Network/NetworkManager.cpp +++ b/src/Engine/Network/NetworkManager.cpp @@ -1,5 +1,4 @@ #include "Engine/Network/NetworkManager.h" -#include "Engine/Operator/GOP_test.h" #include "Engine/Operator/Geometry.h" #include "Engine/Operator/GeometryOperator.h" #include "Engine/Operator/Attribute.h" @@ -11,11 +10,11 @@ #include #include -enzo::nt::OpId enzo::nt::NetworkManager::addOperator() +enzo::nt::OpId enzo::nt::NetworkManager::addOperator(nt::opConstructor ctorFunc) { maxOpId_++; - gopStore_.emplace(maxOpId_, std::make_unique(maxOpId_, &GOP_test::ctor)); + gopStore_.emplace(maxOpId_, std::make_unique(maxOpId_, ctorFunc)); std::cout << "adding operator " << maxOpId_ << "\n"; return maxOpId_; diff --git a/src/Engine/Network/NetworkManager.h b/src/Engine/Network/NetworkManager.h index 4a034e0..37608ae 100644 --- a/src/Engine/Network/NetworkManager.h +++ b/src/Engine/Network/NetworkManager.h @@ -18,7 +18,7 @@ public: static NetworkManager* getInstance(); // functions - static OpId addOperator(); + static OpId addOperator(nt::opConstructor ctorFunc); static std::optional getDisplayOp(); static bool isValidOp(nt::OpId opId); static GeometryOperator& getGeoOperator(nt::OpId opId); diff --git a/src/Engine/Operator/GOP_transform.cpp b/src/Engine/Operator/GOP_transform.cpp new file mode 100644 index 0000000..1311345 --- /dev/null +++ b/src/Engine/Operator/GOP_transform.cpp @@ -0,0 +1,42 @@ +#include "Engine/Operator/GOP_transform.h" +#include "Engine/Operator/AttributeHandle.h" +#include + +GOP_transform::GOP_transform(enzo::nt::OpId opId) +: enzo::nt::GeometryOpDef(opId) +{ + +} + +void GOP_transform::cookOp() +{ + using namespace enzo; + // std::cout << "COOKING\n"; + + if(outputRequested(0)) + { + // copy input geometry + geo::Geometry geo = cloneInputGeo(0); + + // ---- + // create geometry start + // ---- + auto PAttr = geo.getAttribByName(ga::AttrOwner::POINT, "P"); + ga::AttributeHandleVector3 PAttrHandle(PAttr); + + for(int i=0; i #include #include +#include "Engine/Operator/GOP_test.h" +#include "Engine/Operator/GOP_transform.h" using namespace enzo; @@ -286,7 +288,16 @@ void Network::keyPressEvent(QKeyEvent *event) } case(Qt::Key_Tab): { - if(auto newNode = createNode()) + if(auto newNode = createNode(&GOP_test::ctor)) + { + newNode->setPos(viewPos); + } + + break; + } + case(Qt::Key_F): + { + if(auto newNode = createNode(&GOP_transform::ctor)) { newNode->setPos(viewPos); } @@ -296,9 +307,9 @@ void Network::keyPressEvent(QKeyEvent *event) } } -NodeGraphic* Network::createNode() +NodeGraphic* Network::createNode(nt::opConstructor ctorFunc) { - if(nt::OpId id = nt::NetworkManager::addOperator()) + if(nt::OpId id = nt::NetworkManager::addOperator(ctorFunc)) { NodeGraphic* newNode = new NodeGraphic(id); scene_->addItem(newNode); diff --git a/src/Gui/Network/Network.h b/src/Gui/Network/Network.h index 0aaf67d..82e853d 100644 --- a/src/Gui/Network/Network.h +++ b/src/Gui/Network/Network.h @@ -55,7 +55,7 @@ private: void destroyFloatingEdge(); void deleteEdge(QGraphicsItem* edge); - NodeGraphic* createNode(); + NodeGraphic* createNode(enzo::nt::opConstructor ctorFunc); void highlightEdge(QGraphicsItem* edge, bool state); void leftMousePressed(QMouseEvent* event);