openFrameworks icon indicating copy to clipboard operation
openFrameworks copied to clipboard

ofParameterGroup::add(std::shared_ptr<ofAbstractParameter> param);

Open artificiel opened this issue 1 year ago • 1 comments

ofParameterGroup::add() takes a reference to add a parameter, but internally manages a container of shared_ptr.

As discussed here https://forum.openframeworks.cc/t/ofparametergroup-add-with-a-local-ofparameter/43666 sometimes one already has hold of a shared_ptr pointing to a param, and would want to pass it to a group. or someone want to create a parameter and have the group being the sole container for it.

This implements ofParameterGroup::add(std::shared_ptr<ofAbstractParameter> param) (which, incidentally, is everything but the first line of the original ofParameterGroup::add(ofAbstractParameter & param)

So it is now possible to do:

group.add(std::make_shared<ofParameter<float>>("f",2));

and the group holds onto the shared_ptr. of course this is a pretty specific application (where you will have to go through the group to get to the parameter).

artificiel avatar Sep 21 '24 17:09 artificiel

think this is fine to merge once the conflicts are resolved

ofTheo avatar Oct 16 '24 21:10 ofTheo