#include "ext/Potential.h" #include #if defined(WIN32) && (_MSC_VER <= 1200) #pragma warning(push) #pragma warning(disable : 4290) #endif //----------------------------------------------------------------------------- ToonzExt::Potential::Potential() { isValid_ = false; } //----------------------------------------------------------------------------- void ToonzExt::Potential::setParameters(const TStroke *ref, double w, double actionLength) { isValid_ = true; assert(ref); if (!ref) throw std::invalid_argument("Not valid stroke!!!"); assert(actionLength != 0.0); if (actionLength == 0.0) actionLength = TConsts::epsilon; assert(0.0 <= w && w <= 1.0); if (0.0 > w || w > 1.0) { throw std::invalid_argument("Not valid parameter!!!"); // w = std::min(std::max(0.0,w),1.0); } this->setParameters_(ref, w, actionLength); } //----------------------------------------------------------------------------- double ToonzExt::Potential::value(double at) const { if (!isValid_) throw std::range_error("Not yet initialized potential!"); assert(0.0 <= at && at <= 1.0); if (0 > at || at > 1.0) at = std::min(std::max(at, 0.0), 1.0); return this->value_(at); } //----------------------------------------------------------------------------- // End Of File //----------------------------------------------------------------------------- #if defined(WIN32) && (_MSC_VER <= 1200) #pragma warning(pop) #endif