feat: add string parameter
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user