#ifndef _GeoFun_GeoFun_h #define _GeoFun_GeoFun_h #include #include #include #include #include using namespace Upp; #define IMAGECLASS GFImg #define IMAGEFILE #include #define LAYOUTFILE #include #define TOPICFILE #include bool cfgAvailable ; class DrawCanvas : public ParentCtrl { typedef DrawCanvas CLASSNAME ; public: virtual void Paint ( Draw& drw ); DrawCanvas(); template void DoPaint0 ( T& sw, int idraw = 0 ); void DoPaint ( Painter& sw ); struct ColorPolygon : Moveable { Vector point; Vector CenR; Color lcolor; Color fcolorM1, fcolorM2; int penwidth; bool filled ; }; Vector data; Color fcolorB1, fcolorB2; bool ShowGradient, ColorFill, Zoomed, ShowAnimation; double Radius1, BaseR, RollR; int ShowTo, AnimSpeed ; }; class GeoFun : public WithGeoFunLayout { public: typedef GeoFun CLASSNAME; GeoFun(); double ArmLen; DrawCanvas dc1; WithInputLayout InputPane ; Splitter sp1; QtfRichObject qtfim; int ValP, ValQ, PenW, CurvT, GradientY; Color PenC, M1C, M2C, B1C, B2C; bool First ; bool EpiCyclo , HypoCyclo, EpiTroch, HypoTroch, AnimMn; // Functions void About(); void Exit(); void FirstDraw(); Image GetImage(); void Help(); virtual void Layout(); void OptionColorFill(); void OptionGradient(); void OptionZoom(); void PrepareData(); void PrepareData0(); void Print(); void SaveToImageFile ( String fileName ); void SaveToAutoCadScript ( String fileName ); void SaveToSVG ( String fileName ); void SetAnimation(); void SetAnimationSpeed(); void SetCurveType ( int CrvType ); void SetCurveTypeMenu1 ( ); void SetCurveTypeMenu ( int CrvType ); void Serialize ( Stream& s ); void ShowAnimated(); // Menu Functions void MainMenu ( Bar& menu ); void CurvesMenu ( Bar& bar ); void FileMenu ( Bar& bar ); void HelpMenu ( Bar& bar ); void SettingsMenu ( Bar& bar ); }; #endif