From b6185f574963903e01e8f68f895714dca8631bce Mon Sep 17 00:00:00 2001 From: parker Date: Tue, 22 Jul 2025 21:18:06 +0100 Subject: [PATCH] feat: register parameter list --- src/Engine/Operator/OperatorTable.cpp | 2 +- src/Engine/Operator/OperatorTable.h | 5 +++-- src/Engine/Parameter/FloatType.cpp | 1 + src/Engine/Parameter/FloatType.h | 12 ++++++++++++ src/Engine/Parameter/Template.cpp | 5 +++-- src/Engine/Parameter/Template.h | 6 +++++- src/Engine/Parameter/Type.cpp | 0 src/Engine/Parameter/Type.h | 16 ++++++++++++++-- src/OpDefs/CMakeLists.txt | 1 + src/OpDefs/GopHouse.cpp | 1 + src/OpDefs/GopHouse.h | 3 +++ src/OpDefs/GopTransform.cpp | 2 ++ src/OpDefs/GopTransform.hpp | 3 +++ src/OpDefs/RegisterPlugin.cpp | 6 ++++-- 14 files changed, 53 insertions(+), 10 deletions(-) create mode 100644 src/Engine/Parameter/FloatType.cpp create mode 100644 src/Engine/Parameter/FloatType.h delete mode 100644 src/Engine/Parameter/Type.cpp diff --git a/src/Engine/Operator/OperatorTable.cpp b/src/Engine/Operator/OperatorTable.cpp index 999b952..d4f8d8e 100644 --- a/src/Engine/Operator/OperatorTable.cpp +++ b/src/Engine/Operator/OperatorTable.cpp @@ -3,7 +3,7 @@ #include -void enzo::op::OperatorTable::addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc) +void enzo::op::OperatorTable::addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc, prm::Template templateList[]) { std::cout << "OPERATOR TABLE ADDED\n"; std::cout << "adding operator: " << displayName << "\n"; diff --git a/src/Engine/Operator/OperatorTable.h b/src/Engine/Operator/OperatorTable.h index 106196a..b8f0cf2 100644 --- a/src/Engine/Operator/OperatorTable.h +++ b/src/Engine/Operator/OperatorTable.h @@ -3,6 +3,7 @@ #include #include "Engine/Network/NetworkManager.h" #include "Engine/Operator/GeometryOpDef.h" +#include "Engine/Parameter/Template.h" namespace enzo::op @@ -17,7 +18,7 @@ struct OpInfo class BOOST_SYMBOL_EXPORT OperatorTable { public: - static void addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc); + static void addOperator(const char* internalName, const char* displayName, nt::opConstructor ctorFunc, prm::Template templateList[]); static nt::opConstructor getOpConstructor(std::string name); static std::vector getData(); // TODO: move to better spot (maybe engine class) @@ -25,6 +26,6 @@ public: private: static std::vector opInfoStore_; }; -using addOperatorPtr = void (*)(const char* internalName, const char* displayName, nt::opConstructor ctorFunc); +using addOperatorPtr = void (*)(const char* internalName, const char* displayName, nt::opConstructor ctorFunc, prm::Template templateList[]); } diff --git a/src/Engine/Parameter/FloatType.cpp b/src/Engine/Parameter/FloatType.cpp new file mode 100644 index 0000000..ba07bee --- /dev/null +++ b/src/Engine/Parameter/FloatType.cpp @@ -0,0 +1 @@ +#include "Engine/Parameter/FloatType.h" diff --git a/src/Engine/Parameter/FloatType.h b/src/Engine/Parameter/FloatType.h new file mode 100644 index 0000000..da6c7d8 --- /dev/null +++ b/src/Engine/Parameter/FloatType.h @@ -0,0 +1,12 @@ +#pragma once +#include "Engine/Parameter/Type.h" + +// namespace enzo::prm +// { +// class FloatType +// : public Type +// { +// public: + +// }; +// } diff --git a/src/Engine/Parameter/Template.cpp b/src/Engine/Parameter/Template.cpp index 7e54063..08256be 100644 --- a/src/Engine/Parameter/Template.cpp +++ b/src/Engine/Parameter/Template.cpp @@ -1,7 +1,8 @@ #include "Engine/Parameter/Template.h" +#include "Engine/Parameter/Type.h" -enzo::prm::Template::Template() +enzo::prm::Template::Template(enzo::prm::Type type) +: type_{type} { - } diff --git a/src/Engine/Parameter/Template.h b/src/Engine/Parameter/Template.h index 4d855cb..a260836 100644 --- a/src/Engine/Parameter/Template.h +++ b/src/Engine/Parameter/Template.h @@ -1,11 +1,15 @@ #pragma once +#include "Engine/Parameter/Type.h" namespace enzo::prm { class Template { - Template(); +public: + Template(enzo::prm::Type type); +private: + enzo::prm::Type type_; }; diff --git a/src/Engine/Parameter/Type.cpp b/src/Engine/Parameter/Type.cpp deleted file mode 100644 index e69de29..0000000 diff --git a/src/Engine/Parameter/Type.h b/src/Engine/Parameter/Type.h index 6c34617..3c858fb 100644 --- a/src/Engine/Parameter/Type.h +++ b/src/Engine/Parameter/Type.h @@ -2,10 +2,22 @@ namespace enzo::prm -{ -class Type { +enum class Type +{ + STRING, + FLOAT, + INT, }; + +// class Type +// { + +// }; + +// const extern prm::Type FlOAT_TYPE; +// const extern prm::Type STRING_TYPE; + } diff --git a/src/OpDefs/CMakeLists.txt b/src/OpDefs/CMakeLists.txt index 0939367..f58e6db 100644 --- a/src/OpDefs/CMakeLists.txt +++ b/src/OpDefs/CMakeLists.txt @@ -17,6 +17,7 @@ add_library(${libName} SHARED ../Engine/Operator/Geometry.cpp ../Engine/Operator/Attribute.cpp ../Engine/Network/NetworkManager.cpp + ../Engine/Parameter/Template.cpp GopTransform.cpp GopHouse.cpp ) diff --git a/src/OpDefs/GopHouse.cpp b/src/OpDefs/GopHouse.cpp index 8be2bda..89eace7 100644 --- a/src/OpDefs/GopHouse.cpp +++ b/src/OpDefs/GopHouse.cpp @@ -79,3 +79,4 @@ void GOP_house::cookOp(enzo::op::Context context) // } } +enzo::prm::Template GOP_house::parameterList[] = {}; diff --git a/src/OpDefs/GopHouse.h b/src/OpDefs/GopHouse.h index e749dbd..0bfd6bd 100644 --- a/src/OpDefs/GopHouse.h +++ b/src/OpDefs/GopHouse.h @@ -1,5 +1,6 @@ #pragma once #include "Engine/Operator/GeometryOpDef.h" +#include "Engine/Parameter/Template.h" class GOP_house : public enzo::nt::GeometryOpDef @@ -12,4 +13,6 @@ public: return new GOP_house(opId); } + static BOOST_SYMBOL_EXPORT enzo::prm::Template parameterList[]; + }; diff --git a/src/OpDefs/GopTransform.cpp b/src/OpDefs/GopTransform.cpp index 0674b44..c487803 100644 --- a/src/OpDefs/GopTransform.cpp +++ b/src/OpDefs/GopTransform.cpp @@ -38,3 +38,5 @@ void GopTransform::cookOp(enzo::op::Context context) } +enzo::prm::Template GopTransform::parameterList[] = {}; + diff --git a/src/OpDefs/GopTransform.hpp b/src/OpDefs/GopTransform.hpp index 168adfd..70056ff 100644 --- a/src/OpDefs/GopTransform.hpp +++ b/src/OpDefs/GopTransform.hpp @@ -1,5 +1,6 @@ #pragma once #include "Engine/Operator/GeometryOpDef.h" +#include "Engine/Parameter/Template.h" class GopTransform : public enzo::nt::GeometryOpDef @@ -12,4 +13,6 @@ public: return new GopTransform(opId); } + static BOOST_SYMBOL_EXPORT enzo::prm::Template parameterList[]; + }; diff --git a/src/OpDefs/RegisterPlugin.cpp b/src/OpDefs/RegisterPlugin.cpp index 1362c30..71324e9 100644 --- a/src/OpDefs/RegisterPlugin.cpp +++ b/src/OpDefs/RegisterPlugin.cpp @@ -11,12 +11,14 @@ extern "C" addOperator( "transform", "Transform", - &GopTransform::ctor + &GopTransform::ctor, + GopTransform::parameterList ); addOperator( "house", "House", - &GOP_house::ctor + &GOP_house::ctor, + GopTransform::parameterList ); }