#include "math/curve.h"
#include "stream/stringstream.h"
+#include "signal/signal.h"
#include "selectionlib.h"
#include "render.h"
#include "stringio.h"
class NURBSCurve
{
- typedef std::set<Callback> Callbacks;
- Callbacks m_curveChanged;
+ Signal0 m_curveChanged;
Callback m_boundsChanged;
public:
ControlPoints m_controlPoints;
{
}
- void attach(const Callback& curveChanged)
+ SignalHandlerId connect(const SignalHandler& curveChanged)
{
- m_curveChanged.insert(curveChanged);
curveChanged();
+ return m_curveChanged.connectLast(curveChanged);
}
- void detach(const Callback& curveChanged)
+ void disconnect(SignalHandlerId id)
{
- m_curveChanged.erase(curveChanged);
+ m_curveChanged.disconnect(id);
}
void notify()
{
- std::for_each(m_curveChanged.begin(), m_curveChanged.end(), CallbackInvoke());
+ m_curveChanged();
}
void tesselate()
class CatmullRomSpline
{
- typedef std::set<Callback> Callbacks;
- Callbacks m_curveChanged;
+ Signal0 m_curveChanged;
Callback m_boundsChanged;
public:
ControlPoints m_controlPoints;
{
}
- void attach(const Callback& curveChanged)
+ SignalHandlerId connect(const SignalHandler& curveChanged)
{
- m_curveChanged.insert(curveChanged);
curveChanged();
+ return m_curveChanged.connectLast(curveChanged);
}
- void detach(const Callback& curveChanged)
+ void disconnect(SignalHandlerId id)
{
- m_curveChanged.erase(curveChanged);
+ m_curveChanged.disconnect(id);
}
void notify()
{
- std::for_each(m_curveChanged.begin(), m_curveChanged.end(), CallbackInvoke());
+ m_curveChanged();
}
void tesselate()