12 PassMin, PassDelta: Longword; |
12 PassMin, PassDelta: Longword; |
13 WaveAmplMin, WaveAmplDelta: real; |
13 WaveAmplMin, WaveAmplDelta: real; |
14 WaveFreqMin, WaveFreqDelta: real; |
14 WaveFreqMin, WaveFreqDelta: real; |
15 FillPoints: PPointArray; |
15 FillPoints: PPointArray; |
16 FillPointsCount: Longword; |
16 FillPointsCount: Longword; |
|
17 canMirror, canFlip: boolean; |
17 end; |
18 end; |
18 |
19 |
19 const Template0Points: array[0..4] of TPoint = |
20 const Template0Points: array[0..4] of TPoint = |
20 ( |
21 ( |
21 (x: 500; y: 1500), |
22 (x: 500; y: 1500), |
70 ( |
74 ( |
71 (x: 600; y: 1023), |
75 (x: 600; y: 1023), |
72 (x: 1500; y: 1023) |
76 (x: 1500; y: 1023) |
73 ); |
77 ); |
74 |
78 |
75 const EdgeTemplates: array[0..2] of TEdgeTemplate = |
79 const Template3Points: array[0..23] of TPoint = |
|
80 ( |
|
81 (x: 200; y: 1500), |
|
82 (x: 200; y: 1000), |
|
83 (x: 390; y: 650), |
|
84 (x: 210; y: 260), |
|
85 (x: 1000; y: 420), |
|
86 (x: 1100; y: 200), |
|
87 (x: 1250; y: 420), |
|
88 (x: 1250; y: 620), |
|
89 (x: 900; y: 610), |
|
90 (x: 650; y: 450), |
|
91 (x: 550; y: 500), |
|
92 (x: 650; y: 700), |
|
93 (x: 1200; y: 800), |
|
94 (x: 1200; y: 1000), |
|
95 (x: 1200; y: 1200), |
|
96 (x: 1400; y: 1200), |
|
97 (x: 1400; y: 1000), |
|
98 (x: 1280; y: 750), |
|
99 (x: 1500; y: 600), |
|
100 (x: 1400; y: 200), |
|
101 (x: 1800; y: 200), |
|
102 (x: 1700; y: 600), |
|
103 (x: 1900; y: 1010), |
|
104 (x: 1800; y: 1200) |
|
105 ); |
|
106 Template3FPoints: array[0..1] of TPoint = |
|
107 ( |
|
108 (x: 500; y: 1023), |
|
109 (x: 1500; y: 1023) |
|
110 ); |
|
111 |
|
112 const Template4Points: array[0..38] of TPoint = |
|
113 ( |
|
114 (x: 200; y: 1500), |
|
115 (x: 200; y: 1000), |
|
116 (x: 210; y: 800), |
|
117 (x: 480; y: 830), |
|
118 (x: 460; y: 700), |
|
119 (x: 150; y: 610), |
|
120 (x: 150; y: 310), |
|
121 (x: 220; y: 200), |
|
122 (x: 340; y: 195), |
|
123 (x: 410; y: 415), |
|
124 (x: 420; y: 495), |
|
125 (x: 535; y: 615), |
|
126 (x: 705; y: 600), |
|
127 (x: 760; y: 425), |
|
128 (x: 815; y: 230), |
|
129 (x: 970; y: 200), |
|
130 (x: 1050; y: 360), |
|
131 (x: 850; y: 590), |
|
132 (x: 1070; y: 790), |
|
133 (x: 1000; y: 1000), |
|
134 (x: 1000; y: 1500), |
|
135 (x: 1250; y: 1500), |
|
136 (x: 1250; y: 1000), |
|
137 (x: 1260; y: 830), |
|
138 (x: 1290; y: 700), |
|
139 (x: 1270; y: 450), |
|
140 (x: 1180; y: 280), |
|
141 (x: 1210; y: 160), |
|
142 (x: 1370; y: 160), |
|
143 (x: 1505; y: 205), |
|
144 (x: 1630; y: 315), |
|
145 (x: 1660; y: 450), |
|
146 (x: 1580; y: 620), |
|
147 (x: 1670; y: 725), |
|
148 (x: 1800; y: 730), |
|
149 (x: 1860; y: 680), |
|
150 (x: 1925; y: 810), |
|
151 (x: 1800; y: 1000), |
|
152 (x: 1800; y: 1500) |
|
153 ); |
|
154 Template4FPoints: array[0..1] of TPoint = |
|
155 ( |
|
156 (x: 500; y: 1023), |
|
157 (x: 1500; y: 1023) |
|
158 ); |
|
159 |
|
160 const EdgeTemplates: array[0..4] of TEdgeTemplate = |
76 ( |
161 ( |
77 (BasePoints: @Template0Points; |
162 (BasePoints: @Template0Points; |
78 BasePointsCount: Succ(High(Template0Points)); |
163 BasePointsCount: Succ(High(Template0Points)); |
79 BezPassCnt: 4; |
164 BezPassCnt: 4; |
80 PassMin: 4; PassDelta: 1; |
165 PassMin: 10; PassDelta: 5; |
81 WaveAmplMin: 27; WaveAmplDelta: 22; |
166 WaveAmplMin: 17; WaveAmplDelta: 20; |
82 WaveFreqMin: 0.010; WaveFreqDelta: 0.015; |
167 WaveFreqMin: 0.010; WaveFreqDelta: 0.002; |
83 FillPoints: @Template0FPoints; |
168 FillPoints: @Template0FPoints; |
84 FillPointsCount: Succ(High(Template0FPoints)); |
169 FillPointsCount: Succ(High(Template0FPoints)); |
|
170 canMirror: false; canFlip: false; |
85 ), |
171 ), |
86 (BasePoints: @Template1Points; |
172 (BasePoints: @Template1Points; |
87 BasePointsCount: Succ(High(Template1Points)); |
173 BasePointsCount: Succ(High(Template1Points)); |
88 BezPassCnt: 4; |
174 BezPassCnt: 4; |
89 PassMin: 5; PassDelta: 2; |
175 PassMin: 10; PassDelta: 2; |
90 WaveAmplMin: 20; WaveAmplDelta: 10; |
176 WaveAmplMin: 25; WaveAmplDelta: 15; |
91 WaveFreqMin: 0.015; WaveFreqDelta: 0.020; |
177 WaveFreqMin: 0.008; WaveFreqDelta: 0.002; |
92 FillPoints: @Template1FPoints; |
178 FillPoints: @Template1FPoints; |
93 FillPointsCount: Succ(High(Template1FPoints)); |
179 FillPointsCount: Succ(High(Template1FPoints)); |
|
180 canMirror: false; canFlip: false; |
94 ), |
181 ), |
95 (BasePoints: @Template2Points; |
182 (BasePoints: @Template2Points; |
96 BasePointsCount: Succ(High(Template2Points)); |
183 BasePointsCount: Succ(High(Template2Points)); |
97 BezPassCnt: 3; |
184 BezPassCnt: 3; |
98 PassMin: 3; PassDelta: 2; |
185 PassMin: 14; PassDelta: 3; |
99 WaveAmplMin: 30; WaveAmplDelta: 15; |
186 WaveAmplMin: 10; WaveAmplDelta: 10; |
100 WaveFreqMin: 0.010; WaveFreqDelta: 0.015; |
187 WaveFreqMin: 0.010; WaveFreqDelta: 0.002; |
101 FillPoints: @Template2FPoints; |
188 FillPoints: @Template2FPoints; |
102 FillPointsCount: Succ(High(Template2FPoints)); |
189 FillPointsCount: Succ(High(Template2FPoints)); |
|
190 canMirror: true; canFlip: false; |
|
191 ), |
|
192 (BasePoints: @Template3Points; |
|
193 BasePointsCount: Succ(High(Template3Points)); |
|
194 BezPassCnt: 4; |
|
195 PassMin: 15; PassDelta: 2; |
|
196 WaveAmplMin: 8; WaveAmplDelta: 12; |
|
197 WaveFreqMin: 0.015; WaveFreqDelta: 0.0015; |
|
198 FillPoints: @Template3FPoints; |
|
199 FillPointsCount: Succ(High(Template3FPoints)); |
|
200 canMirror: true; canFlip: false; |
|
201 ), |
|
202 (BasePoints: @Template4Points; |
|
203 BasePointsCount: Succ(High(Template4Points)); |
|
204 BezPassCnt: 3; |
|
205 PassMin: 19; PassDelta: 5; |
|
206 WaveAmplMin: 12; WaveAmplDelta: 14; |
|
207 WaveFreqMin: 0.008; WaveFreqDelta: 0.001; |
|
208 FillPoints: @Template4FPoints; |
|
209 FillPointsCount: Succ(High(Template4FPoints)); |
|
210 canMirror: true; canFlip: false; |
103 ) |
211 ) |
104 ); |
212 ); |
105 |
213 |
106 implementation |
214 implementation |
107 |
215 |