/* * Copyright (c) 2015 Tricoire Sebastien 3dsman@free.fr * * This software is provided 'as-is', without any express or implied * warranty. In no event will the authors be held liable for any damages * arising from the use of this software. * * Permission is granted to anyone to use this software for any purpose, * including commercial applications, and to alter it and redistribute it * freely, subject to the following restrictions: * * 1. The origin of this software must not be misrepresented; you must not * claim that you wrote the original software. If you use this software * in a product, an acknowledgment in the product documentation would be * appreciated but is not required. * 2. Altered source versions must be plainly marked as such, and must not be * misrepresented as being the original software. * 3. This notice may not be removed or altered from any source distribution. * */ #include "actions/OE_actionsCurves.h" #include "OE_document.h" ///////// actionNewCurve /////////////// /// \brief OE_actionNewCurve::OE_actionNewCurve /// \param curve /// OE_actionNewCurve::OE_actionNewCurve(OE_curve* curve) { if (document) { actionCurve = curve; document->addCurve( curve); } } OE_actionNewCurve::~OE_actionNewCurve() { if (actionCurve && !active) { delete actionCurve; } } void OE_actionNewCurve::undo() { if (actionCurve && active) document->removeCurve(actionCurve); active = false; } void OE_actionNewCurve::redo() { if (actionCurve && !active) document->addCurve( actionCurve); active = true; } ///////// actionDelCurve /////////////// /// \brief OE_actionDelCurve::OE_actionDelCurve /// \param curve /// OE_actionDelCurve::OE_actionDelCurve(OE_curve* curve) { if (document) { actionCurve = curve; document->removeCurve( curve); } } OE_actionDelCurve::~OE_actionDelCurve() { } void OE_actionDelCurve::undo() { if (actionCurve && active) document->addCurve( actionCurve); active = false; } void OE_actionDelCurve::redo() { if (actionCurve && !active) document->removeCurve( actionCurve); active = true; } ///////// actionNewCurve /////////////// /// \brief OE_actionNewCurve::OE_actionNewCurve /// \param curve /// OE_actionNewSubCurve::OE_actionNewSubCurve(OE_curve* curve,float curveStart,float curveEnd, bool reverse) { if (document) { actionCurve = new OE_subcurve(curve, curveStart, curveEnd, reverse); document->addCurve( actionCurve); } } OE_actionNewSubCurve::~OE_actionNewSubCurve() { if (actionCurve && !active) delete actionCurve; } void OE_actionNewSubCurve::undo() { if (actionCurve && active) document->removeCurve(actionCurve); active = false; } void OE_actionNewSubCurve::redo() { if (actionCurve && !active) document->addCurve( actionCurve); active = true; } ///////// actionNewJoinCurve /////////////// /// \brief OE_actionNewJoinCurve::OE_actionNewJoinCurve /// \param curve1 /// \param curve2 /// OE_actionNewJoinCurve::OE_actionNewJoinCurve(OE_curve* curve1, OE_curve* curve2) { if (document) { actionCurve = new OE_joincurve(curve1, curve2); document->addCurve( actionCurve); } } OE_actionNewJoinCurve::~OE_actionNewJoinCurve() { if (actionCurve && !active) delete actionCurve; } void OE_actionNewJoinCurve::undo() { if (actionCurve && active) document->removeCurve(actionCurve); active = false; } void OE_actionNewJoinCurve::redo() { if (actionCurve && !active) document->addCurve( actionCurve); active = true; }