void ColorCurveCommand::onExecute(Context* context) { // Default curve if (!the_curve) { // TODO load the curve? the_curve.reset(new ColorCurve(ColorCurve::Linear)); the_curve->addPoint(gfx::Point(0, 0)); the_curve->addPoint(gfx::Point(255, 255)); } ColorCurveFilter filter; filter.setCurve(the_curve.get()); FilterManagerImpl filterMgr(context, &filter); filterMgr.setTarget(TARGET_RED_CHANNEL | TARGET_GREEN_CHANNEL | TARGET_BLUE_CHANNEL | TARGET_GRAY_CHANNEL | TARGET_ALPHA_CHANNEL); ColorCurveWindow window(filter, filterMgr); if (window.doModal()) { // TODO save the curve? } }
tools::Symmetry* getSymmetry() override { return m_symmetry.get(); }