-
Notifications
You must be signed in to change notification settings - Fork 3
/
SimbaExt.simba
139 lines (114 loc) · 3.36 KB
/
SimbaExt.simba
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
//Define types used in SimbaExt
{$IFDEF LAPE}
{$DEFINE SIMBAEXT}
{$X+} //Extended syntax
{$C+} //Assertion
const
MaxInt64 = $7FFFFFFFFFFFFFFF {2**63-1};
MaxInt32 = $7FFFFFFF {2**31-1};
DefVar64 = MaxInt64;
{$include_once SimbaExt_Core.pas}
{$include_once ObjMode/TRafikiBitmap.pas}
{$include_once ObjMode/SimbaExt_Math.pas}
{$include_once ObjMode/SimbaExt_Numeric.pas}
{$include_once ObjMode/SimbaExt_Sorting.pas}
{$include_once ObjMode/SimbaExt_Finder.pas}
{$include_once ObjMode/SimbaExt_PointTools.pas}
{$include_once ObjMode/SimbaExt_MatrixTools.pas}
{$include_once ObjMode/SimbaExt_Imaging.pas}
{$include_once ObjMode/SimbaExt_Randomize.pas}
{$include_once ObjMode/SimbaExt_StringTools.pas}
{$include_once ObjMode/SimbaExt_Time.pas}
{$include_once ObjMode/SimbaExt_OS.pas}
{$include_once ObjMode/SimbaExt_Misc.pas}
{$include_once ObjMode/SimbaExt_Std.pas}
{$include_once ObjMode/SimbaExt_HashMap.pas}
// - Documentation:
{!DOCREF} {
@method: type SimbaExt = type Pointer;
@desc: Needed for the global c'var SE.'
}
{!DOCREF} {
@method: type TObjMath = type Pointer;
@desc: Needed for the global c'var Math.'
}
{!DOCREF} {
@method:type TObjRandom = type Pointer;
@desc: Needed for the global c'var Rand.'
}
{!DOCREF} {
@method: type TObjTime = type Pointer;
@desc: Needed for the global c'var TimeUtils.'
}
{!DOCREF} {
@method:type TObjOS = record path: TObjOSPath; end;
@desc: Needed for the global c'var OS.', also holds another var: c'OS.Path.'
}
{!DOCREF} {
@method: type TObjOSPath = type Pointer;
@desc: Needed for the global c'var OS.Path.'
}
{!DOCREF} {
@method:Global variables
@desc:
[code=php]
SE => SimbaExt;
Math => TObjMath;
Rand => TObjRandom;
TimeUtils => TObjTime;
OS => TObjOS;
OS.Path => TObjOSPath;
[/code]
}
{!DOCREF} {
@method: type TColorSpace = (_LAB_, _LCH_, _XYZ_, _RGB_);
@desc: Choise of colorspace
}
{!DOCREF} {
@method: type TWarningType = (ERR_DEPRECATED, ERR_WARNING, ERR_NOTICE);
@desc: Used in RaiseWarning()
}
{!DOCREF} {
@method: type TSortKey = ...;
@desc:
Sorting keys, all sorting functions will support it.
[code=pascal]
sort_Default, //Default to what ever type
- TPA
sort_Magnitude, //Default: Sqr(A.x) + Sqr(A.y)
sort_ByPoint,
sort_ByColumn,
sort_ByRow,
sort_ByX,
sort_ByY,
- 2D
sort_Length, //Default: Array length used in 2D-sorting
sort_First,
sort_Index,
sort_Mean,
- TSA
sort_Lex, //Default: TStrArray Sorting
sort_Logical
[/code]
}
{!DOCREF} {
@method: type TComparator = (__LT__, __GT__, __EQ__, __NE__, __GE__, __LE__);
@desc: Choise of comperator.
}
{!DOCREF} {
@method: TMatrix
@desc:
TMatrix = a 2D array of any given type, unlike EG: T2DIntArray each column in a TMatrix should
be the same length. So it's always W*H in size. It's resized using c'SetLength(Matrix, H,W)';
Supported matrix types:
[code=pascal]
TByteMatrix = T2DByteArray;
TIntMatrix = T2DIntArray;
TExtMatrix = T2DExtArray;
TFloatMatrix = T2DFloatArray;
TDoubleMatrix = T2DDoubleArray;
[/code]
}
{$C-}
{$X-}
{$ENDIF}