feat: add string parameter

This commit is contained in:
parker
2025-08-03 22:15:23 +01:00
parent abc9419998
commit 0af1c65996
14 changed files with 189 additions and 27 deletions

View File

@@ -49,3 +49,19 @@ enzo::bt::floatT enzo::op::Context::evalFloatParm(const char* parmName, const un
throw std::runtime_error("Parameter weak ptr invalid");
}
}
// TODO: cache value
enzo::bt::String enzo::op::Context::evalStringParm(const char* parmName, const unsigned int index) const
{
enzo::nt::GeometryOperator& selfOp = networkManager_.getGeoOperator(opId_);
std::weak_ptr<prm::Parameter> parameter = selfOp.getParameter(parmName);
if(auto sharedParm = parameter.lock())
{
return sharedParm->evalString(index);
}
else
{
throw std::runtime_error("Parameter weak ptr invalid");
}
}

View File

@@ -16,6 +16,7 @@ public:
Context(enzo::nt::OpId opId, enzo::nt::NetworkManager& networkManager);
enzo::geo::Geometry cloneInputGeo(unsigned int inputIndex);
bt::floatT evalFloatParm(const char* parmName, const unsigned int index=0) const;
bt::String evalStringParm(const char* parmName, const unsigned int index=0) const;
private:
enzo::nt::OpId opId_;
enzo::nt::NetworkManager& networkManager_;

View File

@@ -24,6 +24,13 @@ void enzo::nt::GeometryOpDef::setOutputGeometry(unsigned int outputIndex, enzo::
outputGeometry_[outputIndex] = geometry;
}
void enzo::nt::GeometryOpDef::throwError(std::string error)
{
std::cerr << "NODE EXCEPTION: " << error << "\n";
}
unsigned int enzo::nt::GeometryOpDef::getMinInputs() const
{
return opInfo_.minInputs;

View File

@@ -20,6 +20,8 @@ public:
virtual void cookOp(op::Context context) = 0;
geo::Geometry& getOutputGeo(unsigned outputIndex);
void throwError(std::string error);
unsigned int getMinInputs() const;
unsigned int getMaxInputs() const;
unsigned int getMaxOutputs() const;