//////////////////////////////////////////////////////////////////////////////// /*! @file Curves.h - Part of RANet - Research Assistant Net Library. - Copyright(C) 2000-2015, Viktor E. Bursian, St.Petersburg, Russia. Viktor_dot_Bursian_at_mail_dot_ioffe_dot_ru */////////////////////////////////////////////////////////////////////////////// #ifndef Curves_H #define Curves_H #include "Graphicals.h" namespace RA { //------------------------------------------------------------------------------ ANNOUNCE_CLASS(sCurveAppearance) ANNOUNCE_ABSTRACT_CLASS(sCurve) //--------------------------------------------------------- sCurveAppearance --- class RANet_EXPORT sCurveAppearance : public sLineAppearance , public sPointAppearance { STORABLE(sCurveAppearance) public: sCurveAppearance (); explicit sCurveAppearance (rcsColor color); sCurveAppearance (rcsColor color ,byte line_thickness ,eLineStyle line_style = DefaultLineStyle); sCurveAppearance (byte point_size ,rcsColor point_color ,eShape point_shape = DefaultShape ); // virtual psAppearance AssignFrom (pcsAppearance); public: //fields bool ShowLine; bool ShowPoints; }; //------------------------------------------------------------------- sCurve --- class RANet_EXPORT sCurve : public sGraphObject { ABSTRACT_STORABLE(sCurve) public: //classes ANNOUNCE_CLASS(sTracer) class RANet_EXPORT sTracer { public: virtual ~sTracer () {} public: //fields sPoint Point; sLineSegment LineSegment; public: virtual bool NextPoint () =0; virtual bool NextLineSegment () =0; }; public: virtual ~sCurve () {} protected: explicit sCurve () :sGraphObject() {} public: virtual int Distance (rcsIntPoint position ,rcsScales scales ); virtual sCurve::psTracer GetCurveTracer (rcsScales scales) const =0; }; //------------------------------------------------------------------------------ } //namespace RA #endif