1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
////////////////////////////////////////////////////////////////////////////////
/*! @file TableDataFunction.h Function given by data set in X-Y-table form.
- Part of RANet - Research Assistant Net Library (based on ANSI C++).
- Copyright(C) 2010, Viktor E. Bursian, St.Petersburg, Russia.
Viktor.Bursian@mail.ioffe.ru
*///////////////////////////////////////////////////////////////////////////////
#ifndef TableDataFunction_H
#define TableDataFunction_H
#include "Functions.h"
namespace RA {
//------------------------------------------------------------------------------
ANNOUNCE_CLASS(sTableDataFunction)
//------------------------------------------------------- sTableDataFunction ---
/*! An implementation of sDataFunction with the data set in X-Y-table form.
В нём число точек фиксировано и точки индексируются (то есть можно доступаться
по номеру), как в sArrayDataFunction, но абциссы произвольны, как в
sListDataFunction.
Упорядоченность абцисс - на совести программиста.
*/
class RANet_EXPORT sTableDataFunction : public sDataFunction
{
STORABLE(sTableDataFunction)
public: //classes
ANNOUNCE_CLASS(sTracer)
class RANet_EXPORT sTracer : public sCurve::sTracer
{
public:
sTracer (pcsTableDataFunction host_curve
,rcsScales scales );
virtual ~sTracer ()
{}
public:
virtual bool NextPoint ();
virtual bool NextLineSegment ();
protected:
pcsTableDataFunction TheFunction;
private:
sPoint Scaling;
int LastPointNo;
int PointNo;
int LineSegmentNo;
};
public:
virtual ~sTableDataFunction ();
sTableDataFunction (sPhysPair multiplier
,int number_of_points);
sTableDataFunction (int number_of_points);
// sTableDataFunction (rcsTableDataFunction);
// virtual psMathValue Replica () const
// { return new sTableDataFunction(*this); }
virtual sString Hint ()
{ return sString(); }
virtual sCurve::psTracer GetCurveTracer (rcsScales scales) const;
virtual sPhysValue Value (rcsPhysValue x) const;
virtual int NumberOfPoints () const
{ return TheNumberOfPoints; }
virtual sPoint Point (const int N) const;
virtual real PointX (const int N) const;
virtual real PointY (const int N) const;
virtual void SetValue (int N ,rcsPoint);
virtual void SetXValue (int N ,real X);
virtual void SetYValue (int N ,real Y);
protected: //fields
int TheNumberOfPoints;
real * XValues;
real * YValues;
};
//------------------------------------------------------------------------------
} //namespace RA
#endif
|