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
|
$#include "tfunction.h"
typedef enum {
FIRST = 1,
SECOND = 2
} Order;
class Point
{
enum Error {
SUCCESS = 0,
ERROR = 1
};
Point (float x=0, float y=0);
virtual ~Point ();
void set (float x, float y);
void set (float v[2]=0);
void setpointer (Point* p);
void setref (Point& p);
void setvalue (Point p);
void setconst (const Point* p);
void setname (const char* s);
void get (float* x=0, float* y=0) const;
void get (float v[2]=0) const;
Point* getpointer ();
Point& getref ();
Point getvalue ();
const Point* getconst () const;
const char* getname () const;
Point operator+ (const Point& p) const;
Point operator- (const Point& p) const;
Point operator* (const Point& p) const;
Point operator/ (float n) const;
bool operator< (const Point& p) const;
bool operator<= (const Point& p) const;
bool operator== (const Point& p) const;
float operator[] (int i) const;
float& operator[] (int i);
static Error echo (Error e);
};
module alg
{
Point add (const Point& p1, const Point& p2);
Point sub (const Point& p1, const Point& p2);
Point mult (const Point& p1, const Point& p2);
Point div (const Point& p1, float n);
}
void getpoint (const Point* p, float* x=0, float* y=0);
void setpoint (Point* p, float x=0, float y=0);
inline Point average (int n, Point v[n]);
inline Point averagepointer (int n, Point* v[n]);
inline void copyvector (int n, const Point v[n], Point u[n]=(u+i));
inline Order invert (Order o);
$cfile "tfunction.h"
/*
class ColorPoint : public Point
{
ColorPoint (float px, float py, float cr=0.0f, float cg=0.0f, float cb=0.0f);
virtual ~ColorPoint ();
virtual void getcolor (float* red, float *green, float *blue) const;
static const Point* MakeRed (float x, float y);
};
*/
|