#pragma once #include #include #include "Common.h" #include "GraphingEnums.h" namespace Graphing { struct IGraphingOptions : public NonCopyable, public NonMoveable { virtual ~IGraphingOptions() = default; virtual void ResetMarkKeyGraphFeaturesData() = 0; virtual bool GetMarkZeros() const = 0; virtual void SetMarkZeros(bool value) = 0; virtual bool GetMarkYIntercept() const = 0; virtual void SetMarkYIntercept(bool value) = 0; virtual bool GetMarkMinima() const = 0; virtual void SetMarkMinima(bool value) = 0; virtual bool GetMarkMaxima() const = 0; virtual void SetMarkMaxima(bool value) = 0; virtual bool GetMarkInflectionPoints() const = 0; virtual void SetMarkInflectionPoints(bool value) = 0; virtual bool GetMarkVerticalAsymptotes() const = 0; virtual void SetMarkVerticalAsymptotes(bool value) = 0; virtual bool GetMarkHorizontalAsymptotes() const = 0; virtual void SetMarkHorizontalAsymptotes(bool value) = 0; virtual bool GetMarkObliqueAsymptotes() const = 0; virtual void SetMarkObliqueAsymptotes(bool value) = 0; virtual unsigned long long GetMaxExecutionTime() const = 0; virtual void SetMaxExecutionTime(unsigned long long value) = 0; virtual void ResetMaxExecutionTime() = 0; virtual std::vector GetGraphColors() const = 0; virtual bool SetGraphColors(const std::vector& colors) = 0; virtual void ResetGraphColors() = 0; virtual Graphing::Color GetBackColor() const = 0; virtual void SetBackColor(const Graphing::Color& value) = 0; virtual void ResetBackColor() = 0; virtual Graphing::Color GetZerosColor() const = 0; virtual void SetZerosColor(const Graphing::Color& value) = 0; virtual void ResetZerosColor() = 0; virtual Graphing::Color GetExtremaColor() const = 0; virtual void SetExtremaColor(const Graphing::Color& value) = 0; virtual void ResetExtremaColor() = 0; virtual Graphing::Color GetInflectionPointsColor() const = 0; virtual void SetInflectionPointsColor(const Graphing::Color& value) = 0; virtual void ResetInflectionPointsColor() = 0; virtual Graphing::Color GetAsymptotesColor() const = 0; virtual void SetAsymptotesColor(const Graphing::Color& value) = 0; virtual void ResetAsymptotesColor() = 0; virtual Graphing::Color GetAxisColor() const = 0; virtual void SetAxisColor(const Graphing::Color& value) = 0; virtual void ResetAxisColor() = 0; virtual Graphing::Color GetBoxColor() const = 0; virtual void SetBoxColor(const Graphing::Color& value) = 0; virtual void ResetBoxColor() = 0; virtual Graphing::Color GetFontColor() const = 0; virtual void SetFontColor(const Graphing::Color& value) = 0; virtual void ResetFontColor() = 0; virtual bool GetShowAxis() const = 0; virtual void SetShowAxis(bool value) = 0; virtual void ResetShowAxis() = 0; virtual bool GetShowGrid() const = 0; virtual void SetShowGrid(bool value) = 0; virtual void ResetShowGrid() = 0; virtual bool GetShowBox() const = 0; virtual void SetShowBox(bool value) = 0; virtual void ResetShowBox() = 0; virtual bool GetForceProportional() const = 0; virtual void SetForceProportional(bool value) = 0; virtual void ResetForceProportional() = 0; virtual std::wstring GetAliasX() const = 0; virtual void SetAliasX(const std::wstring& value) = 0; virtual void ResetAliasX() = 0; virtual std::wstring GetAliasY() const = 0; virtual void SetAliasY(const std::wstring& value) = 0; virtual void ResetAliasY() = 0; virtual Graphing::Renderer::LineStyle GetLineStyle() const = 0; virtual void SetLineStyle(Graphing::Renderer::LineStyle value) = 0; virtual void ResetLineStyle() = 0; virtual std::pair GetDefaultXRange() const = 0; virtual bool SetDefaultXRange(const std::pair& minmax) = 0; virtual void ResetDefaultXRange() = 0; virtual std::pair GetDefaultYRange() const = 0; virtual bool SetDefaultYRange(const std::pair& minmax) = 0; virtual void ResetDefaultYRange() = 0; }; }