feat(parameters): signal on parameter change
This commit is contained in:
@@ -41,16 +41,24 @@ void nt::GeometryOperator::initParameters()
|
||||
{
|
||||
std::cout << "name: " << t->getName() << "\n";
|
||||
// create parameter
|
||||
parameters_.push_back(
|
||||
std::make_shared<prm::Parameter>(*t)
|
||||
);
|
||||
auto parameter = std::make_shared<prm::Parameter>(*t);
|
||||
parameter->valueChanged.connect(boost::bind(&GeometryOperator::dirtyNode, this));
|
||||
|
||||
parameters_.push_back(parameter);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void enzo::nt::GeometryOperator::dirtyNode()
|
||||
{
|
||||
dirty_=true;
|
||||
nodeDirtied(opId_);
|
||||
}
|
||||
|
||||
void enzo::nt::GeometryOperator::cookOp(op::Context context)
|
||||
{
|
||||
opDef_->cookOp(context);
|
||||
dirty_=false;
|
||||
}
|
||||
|
||||
geo::Geometry& enzo::nt::GeometryOperator::getOutputGeo(unsigned outputIndex)
|
||||
|
||||
@@ -29,10 +29,16 @@ public:
|
||||
std::vector<std::weak_ptr<prm::Parameter>> getParameters();
|
||||
std::weak_ptr<prm::Parameter> getParameter(std::string parameterName);
|
||||
|
||||
void dirtyNode();
|
||||
|
||||
|
||||
unsigned int getMaxInputs() const;
|
||||
unsigned int getMaxOutputs() const;
|
||||
|
||||
// signals
|
||||
boost::signals2::signal<void (nt::OpId)> nodeDirtied;
|
||||
|
||||
|
||||
|
||||
private:
|
||||
void initParameters();
|
||||
@@ -46,5 +52,6 @@ private:
|
||||
std::unique_ptr<enzo::nt::GeometryOpDef> opDef_;
|
||||
enzo::nt::OpId opId_;
|
||||
enzo::op::OpInfo opInfo_;
|
||||
bool dirty_ = true;
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user