blob: 3c2edb22e6776b68a4d59e33b201d6a16d4752a7 (
plain)
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
|
unit tw34893;
{$ifdef fpc}
{$mode delphi}
{$endif}
{$scopedenums on}
interface
uses
Classes, SysUtils;
type TPasGLTFSizeInt=SizeInt;
TPasGLTFSizeUInt=SizeUInt;
TPasGLTFObjectList<T:class>=class
private
type TValueEnumerator=record
private
fObjectList:TPasGLTFObjectList<T>;
fIndex:TPasGLTFSizeInt;
function GetCurrent:T; inline;
public
constructor Create(const aObjectList:TPasGLTFObjectList<T>);
function MoveNext:boolean; inline;
property Current:T read GetCurrent;
end;
private
fItems:array of T;
fCount:TPasGLTFSizeInt;
fAllocated:TPasGLTFSizeInt;
fOwnsObjects:boolean;
function RoundUpToPowerOfTwoSizeUInt(x:TPasGLTFSizeUInt):TPasGLTFSizeUInt;
procedure SetCount(const pNewCount:TPasGLTFSizeInt);
function GetItem(const pIndex:TPasGLTFSizeInt):T;
procedure SetItem(const pIndex:TPasGLTFSizeInt;const pItem:T);
public
constructor Create;
destructor Destroy; override;
procedure Clear;
function IndexOf(const pItem:T):TPasGLTFSizeInt;
function Add(const pItem:T):TPasGLTFSizeInt;
procedure Insert(const pIndex:TPasGLTFSizeInt;const pItem:T);
procedure Delete(const pIndex:TPasGLTFSizeInt);
procedure Remove(const pItem:T);
procedure Exchange(const pIndex,pWithIndex:TPasGLTFSizeInt);
function GetEnumerator:TValueEnumerator;
property Count:TPasGLTFSizeInt read fCount write SetCount;
property Allocated:TPasGLTFSizeInt read fAllocated;
property Items[const pIndex:TPasGLTFSizeInt]:T read GetItem write SetItem; default;
property OwnsObjects:boolean read fOwnsObjects write fOwnsObjects;
end;
implementation
constructor TPasGLTFObjectList<T>.TValueEnumerator.Create(const aObjectList:TPasGLTFObjectList<T>);
begin
end;
function TPasGLTFObjectList<T>.TValueEnumerator.MoveNext:boolean;
begin
end;
function TPasGLTFObjectList<T>.TValueEnumerator.GetCurrent:T;
begin
end;
constructor TPasGLTFObjectList<T>.Create;
begin
end;
destructor TPasGLTFObjectList<T>.Destroy;
begin
end;
function TPasGLTFObjectList<T>.RoundUpToPowerOfTwoSizeUInt(x:TPasGLTFSizeUInt):TPasGLTFSizeUInt;
begin
end;
procedure TPasGLTFObjectList<T>.Clear;
var Index:TPasGLTFSizeInt;
begin
end;
procedure TPasGLTFObjectList<T>.SetCount(const pNewCount:TPasGLTFSizeInt);
var Index,NewAllocated:TPasGLTFSizeInt;
begin
end;
function TPasGLTFObjectList<T>.GetItem(const pIndex:TPasGLTFSizeInt):T;
begin
end;
procedure TPasGLTFObjectList<T>.SetItem(const pIndex:TPasGLTFSizeInt;const pItem:T);
begin
end;
function TPasGLTFObjectList<T>.IndexOf(const pItem:T):TPasGLTFSizeInt;
var Index:TPasGLTFSizeInt;
begin
end;
function TPasGLTFObjectList<T>.Add(const pItem:T):TPasGLTFSizeInt;
begin
end;
procedure TPasGLTFObjectList<T>.Insert(const pIndex:TPasGLTFSizeInt;const pItem:T);
var OldCount:TPasGLTFSizeInt;
begin
System.Move(fItems[pIndex],fItems[pIndex+1],(OldCount-pIndex)*SizeOf(T));
end;
procedure TPasGLTFObjectList<T>.Delete(const pIndex:TPasGLTFSizeInt);
var Old:T;
begin
end;
procedure TPasGLTFObjectList<T>.Remove(const pItem:T);
var Index:TPasGLTFSizeInt;
begin
end;
procedure TPasGLTFObjectList<T>.Exchange(const pIndex,pWithIndex:TPasGLTFSizeInt);
var Temporary:T;
begin
end;
function TPasGLTFObjectList<T>.GetEnumerator:TPasGLTFObjectList<T>.TValueEnumerator;
begin
end;
end.
|