/* * 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. * */ #ifndef OE_SUBCURVE_H #define OE_SUBCURVE_H #include "OE_curve.h" #include #include namespace Pakal { class Arcihve; } class OE_subcurve : public OE_curve { public: /** Default constructor */ OE_subcurve(); OE_subcurve(OE_curve* curve,float curveStart,float curveEnd, bool reverse); /** Default destructor */ virtual ~OE_subcurve(); void persist(Pakal::Archive* archive); bool setStart(float curveStart); bool setEnd(float curveEnd); bool setReverse(bool curveReverse); float getStart(); float getEnd(); bool getReverse(); OE_curve* getCurve(); /** \brief check if the curve is valid. */ bool check(); /** \brief refresh the pts array. */ virtual void refresh(float dpi); void delDependency(OE_base * object); protected: OE_curve* curve = nullptr; float start = -1; float end = -1; bool reverse = false; private: }; #endif // OE_JOINCURVE_H