FLImaging 6.5.8.1
TQuad.h
1#pragma once
2
11#include "FLLibTags.h"
12#include "TPoint.h"
13
15namespace FLImaging
16{
18 namespace Base
19 {
31 #pragma pack(push, 1)
32 template <typename T>
33 class FL_EXPORT TQuad
34 {
35 public:
36 TPoint<T> tpPoints[4];
37
38
39 TQuad()
40 {
41 }
42
43 TQuad(T tLTX, T tLTY, T tRTX, T tRTY, T tRBX, T tRBY, T tLBX, T tLBY)
44 {
45 tpPoints[0].x = tLTX;
46 tpPoints[0].y = tLTY;
47 tpPoints[1].x = tRTX;
48 tpPoints[1].y = tRTY;
49 tpPoints[2].x = tRBX;
50 tpPoints[2].y = tRBY;
51 tpPoints[3].x = tLBX;
52 tpPoints[3].y = tLBY;
53 }
54
55 TQuad(const TQuad<int8_t>& tq)
56 {
57 tpPoints[0].Set(tq.tpPoints[0]);
58 tpPoints[1].Set(tq.tpPoints[1]);
59 tpPoints[2].Set(tq.tpPoints[2]);
60 tpPoints[3].Set(tq.tpPoints[3]);
61 }
62
63 TQuad(const TQuad<int8_t>* pTq)
64 {
65 if(pTq)
66 {
67 tpPoints[0].Set(pTq->tpPoints[0]);
68 tpPoints[1].Set(pTq->tpPoints[1]);
69 tpPoints[2].Set(pTq->tpPoints[2]);
70 tpPoints[3].Set(pTq->tpPoints[3]);
71 }
72 }
73
74 TQuad(const TQuad<uint8_t>& tq)
75 {
76 tpPoints[0].Set(tq.tpPoints[0]);
77 tpPoints[1].Set(tq.tpPoints[1]);
78 tpPoints[2].Set(tq.tpPoints[2]);
79 tpPoints[3].Set(tq.tpPoints[3]);
80 }
81
82 TQuad(const TQuad<uint8_t>* pTq)
83 {
84 if(pTq)
85 {
86 tpPoints[0].Set(pTq->tpPoints[0]);
87 tpPoints[1].Set(pTq->tpPoints[1]);
88 tpPoints[2].Set(pTq->tpPoints[2]);
89 tpPoints[3].Set(pTq->tpPoints[3]);
90 }
91 }
92
93 TQuad(const TQuad<int16_t>& tq)
94 {
95 tpPoints[0].Set(tq.tpPoints[0]);
96 tpPoints[1].Set(tq.tpPoints[1]);
97 tpPoints[2].Set(tq.tpPoints[2]);
98 tpPoints[3].Set(tq.tpPoints[3]);
99 }
100
101 TQuad(const TQuad<int16_t>* pTq)
102 {
103 if(pTq)
104 {
105 tpPoints[0].Set(pTq->tpPoints[0]);
106 tpPoints[1].Set(pTq->tpPoints[1]);
107 tpPoints[2].Set(pTq->tpPoints[2]);
108 tpPoints[3].Set(pTq->tpPoints[3]);
109 }
110 }
111
112 TQuad(const TQuad<uint16_t>& tq)
113 {
114 tpPoints[0].Set(tq.tpPoints[0]);
115 tpPoints[1].Set(tq.tpPoints[1]);
116 tpPoints[2].Set(tq.tpPoints[2]);
117 tpPoints[3].Set(tq.tpPoints[3]);
118 }
119
120 TQuad(const TQuad<uint16_t>* pTq)
121 {
122 if(pTq)
123 {
124 tpPoints[0].Set(pTq->tpPoints[0]);
125 tpPoints[1].Set(pTq->tpPoints[1]);
126 tpPoints[2].Set(pTq->tpPoints[2]);
127 tpPoints[3].Set(pTq->tpPoints[3]);
128 }
129 }
130
131 TQuad(const TQuad<int32_t>& tq)
132 {
133 tpPoints[0].Set(tq.tpPoints[0]);
134 tpPoints[1].Set(tq.tpPoints[1]);
135 tpPoints[2].Set(tq.tpPoints[2]);
136 tpPoints[3].Set(tq.tpPoints[3]);
137 }
138
139 TQuad(const TQuad<int32_t>* pTq)
140 {
141 if(pTq)
142 {
143 tpPoints[0].Set(pTq->tpPoints[0]);
144 tpPoints[1].Set(pTq->tpPoints[1]);
145 tpPoints[2].Set(pTq->tpPoints[2]);
146 tpPoints[3].Set(pTq->tpPoints[3]);
147 }
148 }
149
150 TQuad(const TQuad<uint32_t>& tq)
151 {
152 tpPoints[0].Set(tq.tpPoints[0]);
153 tpPoints[1].Set(tq.tpPoints[1]);
154 tpPoints[2].Set(tq.tpPoints[2]);
155 tpPoints[3].Set(tq.tpPoints[3]);
156 }
157
158 TQuad(const TQuad<uint32_t>* pTq)
159 {
160 if(pTq)
161 {
162 tpPoints[0].Set(pTq->tpPoints[0]);
163 tpPoints[1].Set(pTq->tpPoints[1]);
164 tpPoints[2].Set(pTq->tpPoints[2]);
165 tpPoints[3].Set(pTq->tpPoints[3]);
166 }
167 }
168
169 TQuad(const TQuad<int64_t>& tq)
170 {
171 tpPoints[0].Set(tq.tpPoints[0]);
172 tpPoints[1].Set(tq.tpPoints[1]);
173 tpPoints[2].Set(tq.tpPoints[2]);
174 tpPoints[3].Set(tq.tpPoints[3]);
175 }
176
177 TQuad(const TQuad<int64_t>* pTq)
178 {
179 if(pTq)
180 {
181 tpPoints[0].Set(pTq->tpPoints[0]);
182 tpPoints[1].Set(pTq->tpPoints[1]);
183 tpPoints[2].Set(pTq->tpPoints[2]);
184 tpPoints[3].Set(pTq->tpPoints[3]);
185 }
186 }
187
188 TQuad(const TQuad<uint64_t>& tq)
189 {
190 tpPoints[0].Set(tq.tpPoints[0]);
191 tpPoints[1].Set(tq.tpPoints[1]);
192 tpPoints[2].Set(tq.tpPoints[2]);
193 tpPoints[3].Set(tq.tpPoints[3]);
194 }
195
196 TQuad(const TQuad<uint64_t>* pTq)
197 {
198 if(pTq)
199 {
200 tpPoints[0].Set(pTq->tpPoints[0]);
201 tpPoints[1].Set(pTq->tpPoints[1]);
202 tpPoints[2].Set(pTq->tpPoints[2]);
203 tpPoints[3].Set(pTq->tpPoints[3]);
204 }
205 }
206
207 TQuad(const TQuad<float>& tq)
208 {
209 tpPoints[0].Set(tq.tpPoints[0]);
210 tpPoints[1].Set(tq.tpPoints[1]);
211 tpPoints[2].Set(tq.tpPoints[2]);
212 tpPoints[3].Set(tq.tpPoints[3]);
213 }
214
215 TQuad(const TQuad<float>* pTq)
216 {
217 if(pTq)
218 {
219 tpPoints[0].Set(pTq->tpPoints[0]);
220 tpPoints[1].Set(pTq->tpPoints[1]);
221 tpPoints[2].Set(pTq->tpPoints[2]);
222 tpPoints[3].Set(pTq->tpPoints[3]);
223 }
224 }
225
226 TQuad(const TQuad<double>& tq)
227 {
228 tpPoints[0].Set(tq.tpPoints[0]);
229 tpPoints[1].Set(tq.tpPoints[1]);
230 tpPoints[2].Set(tq.tpPoints[2]);
231 tpPoints[3].Set(tq.tpPoints[3]);
232 }
233
234 TQuad(const TQuad<double>* pTq)
235 {
236 if(pTq)
237 {
238 tpPoints[0].Set(pTq->tpPoints[0]);
239 tpPoints[1].Set(pTq->tpPoints[1]);
240 tpPoints[2].Set(pTq->tpPoints[2]);
241 tpPoints[3].Set(pTq->tpPoints[3]);
242 }
243 }
244
245 TQuad(const TPoint<int8_t>& tpLT, const TPoint<int8_t>& tpRT, const TPoint<int8_t>& tpRB, const TPoint<int8_t>& tpLB)
246 {
247 tpPoints[0].Set(tpLT);
248 tpPoints[1].Set(tpRT);
249 tpPoints[2].Set(tpRB);
250 tpPoints[3].Set(tpLB);
251 }
252
253 TQuad(const TPoint<int8_t>* pTpLT, const TPoint<int8_t>* pTpRT, const TPoint<int8_t>* pTpRB, const TPoint<int8_t>* pTpLB)
254 {
255 if(pTpLT && pTpRT && pTpRB && pTpLB)
256 {
257 tpPoints[0].Set(pTpLT);
258 tpPoints[1].Set(pTpRT);
259 tpPoints[2].Set(pTpRB);
260 tpPoints[3].Set(pTpLB);
261 }
262 }
263
264 TQuad(const TPoint<uint8_t>& tpLT, const TPoint<uint8_t>& tpRT, const TPoint<uint8_t>& tpRB, const TPoint<uint8_t>& tpLB)
265 {
266 tpPoints[0].Set(tpLT);
267 tpPoints[1].Set(tpRT);
268 tpPoints[2].Set(tpRB);
269 tpPoints[3].Set(tpLB);
270 }
271
272 TQuad(const TPoint<uint8_t>* pTpLT, const TPoint<uint8_t>* pTpRT, const TPoint<uint8_t>* pTpRB, const TPoint<uint8_t>* pTpLB)
273 {
274 if(pTpLT && pTpRT && pTpRB && pTpLB)
275 {
276 tpPoints[0].Set(pTpLT);
277 tpPoints[1].Set(pTpRT);
278 tpPoints[2].Set(pTpRB);
279 tpPoints[3].Set(pTpLB);
280 }
281 }
282
283 TQuad(const TPoint<int16_t>& tpLT, const TPoint<int16_t>& tpRT, const TPoint<int16_t>& tpRB, const TPoint<int16_t>& tpLB)
284 {
285 tpPoints[0].Set(tpLT);
286 tpPoints[1].Set(tpRT);
287 tpPoints[2].Set(tpRB);
288 tpPoints[3].Set(tpLB);
289 }
290
291 TQuad(const TPoint<int16_t>* pTpLT, const TPoint<int16_t>* pTpRT, const TPoint<int16_t>* pTpRB, const TPoint<int16_t>* pTpLB)
292 {
293 if(pTpLT && pTpRT && pTpRB && pTpLB)
294 {
295 tpPoints[0].Set(pTpLT);
296 tpPoints[1].Set(pTpRT);
297 tpPoints[2].Set(pTpRB);
298 tpPoints[3].Set(pTpLB);
299 }
300 }
301
302 TQuad(const TPoint<uint16_t>& tpLT, const TPoint<uint16_t>& tpRT, const TPoint<uint16_t>& tpRB, const TPoint<uint16_t>& tpLB)
303 {
304 tpPoints[0].Set(tpLT);
305 tpPoints[1].Set(tpRT);
306 tpPoints[2].Set(tpRB);
307 tpPoints[3].Set(tpLB);
308 }
309
310 TQuad(const TPoint<uint16_t>* pTpLT, const TPoint<uint16_t>* pTpRT, const TPoint<uint16_t>* pTpRB, const TPoint<uint16_t>* pTpLB)
311 {
312 if(pTpLT && pTpRT && pTpRB && pTpLB)
313 {
314 tpPoints[0].Set(pTpLT);
315 tpPoints[1].Set(pTpRT);
316 tpPoints[2].Set(pTpRB);
317 tpPoints[3].Set(pTpLB);
318 }
319 }
320
321 TQuad(const TPoint<int32_t>& tpLT, const TPoint<int32_t>& tpRT, const TPoint<int32_t>& tpRB, const TPoint<int32_t>& tpLB)
322 {
323 tpPoints[0].Set(tpLT);
324 tpPoints[1].Set(tpRT);
325 tpPoints[2].Set(tpRB);
326 tpPoints[3].Set(tpLB);
327 }
328
329 TQuad(const TPoint<int32_t>* pTpLT, const TPoint<int32_t>* pTpRT, const TPoint<int32_t>* pTpRB, const TPoint<int32_t>* pTpLB)
330 {
331 if(pTpLT && pTpRT && pTpRB && pTpLB)
332 {
333 tpPoints[0].Set(pTpLT);
334 tpPoints[1].Set(pTpRT);
335 tpPoints[2].Set(pTpRB);
336 tpPoints[3].Set(pTpLB);
337 }
338 }
339
340 TQuad(const TPoint<uint32_t>& tpLT, const TPoint<uint32_t>& tpRT, const TPoint<uint32_t>& tpRB, const TPoint<uint32_t>& tpLB)
341 {
342 tpPoints[0].Set(tpLT);
343 tpPoints[1].Set(tpRT);
344 tpPoints[2].Set(tpRB);
345 tpPoints[3].Set(tpLB);
346 }
347
348 TQuad(const TPoint<uint32_t>* pTpLT, const TPoint<uint32_t>* pTpRT, const TPoint<uint32_t>* pTpRB, const TPoint<uint32_t>* pTpLB)
349 {
350 if(pTpLT && pTpRT && pTpRB && pTpLB)
351 {
352 tpPoints[0].Set(pTpLT);
353 tpPoints[1].Set(pTpRT);
354 tpPoints[2].Set(pTpRB);
355 tpPoints[3].Set(pTpLB);
356 }
357 }
358
359 TQuad(const TPoint<int64_t>& tpLT, const TPoint<int64_t>& tpRT, const TPoint<int64_t>& tpRB, const TPoint<int64_t>& tpLB)
360 {
361 tpPoints[0].Set(tpLT);
362 tpPoints[1].Set(tpRT);
363 tpPoints[2].Set(tpRB);
364 tpPoints[3].Set(tpLB);
365 }
366
367 TQuad(const TPoint<int64_t>* pTpLT, const TPoint<int64_t>* pTpRT, const TPoint<int64_t>* pTpRB, const TPoint<int64_t>* pTpLB)
368 {
369 if(pTpLT && pTpRT && pTpRB && pTpLB)
370 {
371 tpPoints[0].Set(pTpLT);
372 tpPoints[1].Set(pTpRT);
373 tpPoints[2].Set(pTpRB);
374 tpPoints[3].Set(pTpLB);
375 }
376 }
377
378 TQuad(const TPoint<uint64_t>& tpLT, const TPoint<uint64_t>& tpRT, const TPoint<uint64_t>& tpRB, const TPoint<uint64_t>& tpLB)
379 {
380 tpPoints[0].Set(tpLT);
381 tpPoints[1].Set(tpRT);
382 tpPoints[2].Set(tpRB);
383 tpPoints[3].Set(tpLB);
384 }
385
386 TQuad(const TPoint<uint64_t>* pTpLT, const TPoint<uint64_t>* pTpRT, const TPoint<uint64_t>* pTpRB, const TPoint<uint64_t>* pTpLB)
387 {
388 if(pTpLT && pTpRT && pTpRB && pTpLB)
389 {
390 tpPoints[0].Set(pTpLT);
391 tpPoints[1].Set(pTpRT);
392 tpPoints[2].Set(pTpRB);
393 tpPoints[3].Set(pTpLB);
394 }
395 }
396
397 TQuad(const TPoint<float>& tpLT, const TPoint<float>& tpRT, const TPoint<float>& tpRB, const TPoint<float>& tpLB)
398 {
399 tpPoints[0].Set(tpLT);
400 tpPoints[1].Set(tpRT);
401 tpPoints[2].Set(tpRB);
402 tpPoints[3].Set(tpLB);
403 }
404
405 TQuad(const TPoint<float>* pTpLT, const TPoint<float>* pTpRT, const TPoint<float>* pTpRB, const TPoint<float>* pTpLB)
406 {
407 if(pTpLT && pTpRT && pTpRB && pTpLB)
408 {
409 tpPoints[0].Set(pTpLT);
410 tpPoints[1].Set(pTpRT);
411 tpPoints[2].Set(pTpRB);
412 tpPoints[3].Set(pTpLB);
413 }
414 }
415
416 TQuad(const TPoint<double>& tpLT, const TPoint<double>& tpRT, const TPoint<double>& tpRB, const TPoint<double>& tpLB)
417 {
418 tpPoints[0].Set(tpLT);
419 tpPoints[1].Set(tpRT);
420 tpPoints[2].Set(tpRB);
421 tpPoints[3].Set(tpLB);
422 }
423
424 TQuad(const TPoint<double>* pTpLT, const TPoint<double>* pTpRT, const TPoint<double>* pTpRB, const TPoint<double>* pTpLB)
425 {
426 if(pTpLT && pTpRT && pTpRB && pTpLB)
427 {
428 tpPoints[0].Set(pTpLT);
429 tpPoints[1].Set(pTpRT);
430 tpPoints[2].Set(pTpRB);
431 tpPoints[3].Set(pTpLB);
432 }
433 }
434
435
436 void Set(T tLTX, T tLTY, T tRTX, T tRTY, T tRBX, T tRBY, T tLBX, T tLBY)
437 {
438 tpPoints[0].x = tLTX;
439 tpPoints[0].y = tLTY;
440 tpPoints[1].x = tRTX;
441 tpPoints[1].y = tRTY;
442 tpPoints[2].x = tRBX;
443 tpPoints[2].y = tRBY;
444 tpPoints[3].x = tLBX;
445 tpPoints[3].y = tLBY;
446 }
447
448 void Set(const TQuad<int8_t>& tq)
449 {
450 tpPoints[0].Set(tq.tpPoints[0]);
451 tpPoints[1].Set(tq.tpPoints[1]);
452 tpPoints[2].Set(tq.tpPoints[2]);
453 tpPoints[3].Set(tq.tpPoints[3]);
454 }
455
456 void Set(const TQuad<int8_t>* pTq)
457 {
458 if(pTq)
459 {
460 tpPoints[0].Set(pTq->tpPoints[0]);
461 tpPoints[1].Set(pTq->tpPoints[1]);
462 tpPoints[2].Set(pTq->tpPoints[2]);
463 tpPoints[3].Set(pTq->tpPoints[3]);
464 }
465 }
466
467 void Set(const TQuad<uint8_t>& tq)
468 {
469 tpPoints[0].Set(tq.tpPoints[0]);
470 tpPoints[1].Set(tq.tpPoints[1]);
471 tpPoints[2].Set(tq.tpPoints[2]);
472 tpPoints[3].Set(tq.tpPoints[3]);
473 }
474
475 void Set(const TQuad<uint8_t>* pTq)
476 {
477 if(pTq)
478 {
479 tpPoints[0].Set(pTq->tpPoints[0]);
480 tpPoints[1].Set(pTq->tpPoints[1]);
481 tpPoints[2].Set(pTq->tpPoints[2]);
482 tpPoints[3].Set(pTq->tpPoints[3]);
483 }
484 }
485
486 void Set(const TQuad<int16_t>& tq)
487 {
488 tpPoints[0].Set(tq.tpPoints[0]);
489 tpPoints[1].Set(tq.tpPoints[1]);
490 tpPoints[2].Set(tq.tpPoints[2]);
491 tpPoints[3].Set(tq.tpPoints[3]);
492 }
493
494 void Set(const TQuad<int16_t>* pTq)
495 {
496 if(pTq)
497 {
498 tpPoints[0].Set(pTq->tpPoints[0]);
499 tpPoints[1].Set(pTq->tpPoints[1]);
500 tpPoints[2].Set(pTq->tpPoints[2]);
501 tpPoints[3].Set(pTq->tpPoints[3]);
502 }
503 }
504
505 void Set(const TQuad<uint16_t>& tq)
506 {
507 tpPoints[0].Set(tq.tpPoints[0]);
508 tpPoints[1].Set(tq.tpPoints[1]);
509 tpPoints[2].Set(tq.tpPoints[2]);
510 tpPoints[3].Set(tq.tpPoints[3]);
511 }
512
513 void Set(const TQuad<uint16_t>* pTq)
514 {
515 if(pTq)
516 {
517 tpPoints[0].Set(pTq->tpPoints[0]);
518 tpPoints[1].Set(pTq->tpPoints[1]);
519 tpPoints[2].Set(pTq->tpPoints[2]);
520 tpPoints[3].Set(pTq->tpPoints[3]);
521 }
522 }
523
524 void Set(const TQuad<int32_t>& tq)
525 {
526 tpPoints[0].Set(tq.tpPoints[0]);
527 tpPoints[1].Set(tq.tpPoints[1]);
528 tpPoints[2].Set(tq.tpPoints[2]);
529 tpPoints[3].Set(tq.tpPoints[3]);
530 }
531
532 void Set(const TQuad<int32_t>* pTq)
533 {
534 if(pTq)
535 {
536 tpPoints[0].Set(pTq->tpPoints[0]);
537 tpPoints[1].Set(pTq->tpPoints[1]);
538 tpPoints[2].Set(pTq->tpPoints[2]);
539 tpPoints[3].Set(pTq->tpPoints[3]);
540 }
541 }
542
543 void Set(const TQuad<uint32_t>& tq)
544 {
545 tpPoints[0].Set(tq.tpPoints[0]);
546 tpPoints[1].Set(tq.tpPoints[1]);
547 tpPoints[2].Set(tq.tpPoints[2]);
548 tpPoints[3].Set(tq.tpPoints[3]);
549 }
550
551 void Set(const TQuad<uint32_t>* pTq)
552 {
553 if(pTq)
554 {
555 tpPoints[0].Set(pTq->tpPoints[0]);
556 tpPoints[1].Set(pTq->tpPoints[1]);
557 tpPoints[2].Set(pTq->tpPoints[2]);
558 tpPoints[3].Set(pTq->tpPoints[3]);
559 }
560 }
561
562 void Set(const TQuad<int64_t>& tq)
563 {
564 tpPoints[0].Set(tq.tpPoints[0]);
565 tpPoints[1].Set(tq.tpPoints[1]);
566 tpPoints[2].Set(tq.tpPoints[2]);
567 tpPoints[3].Set(tq.tpPoints[3]);
568 }
569
570 void Set(const TQuad<int64_t>* pTq)
571 {
572 if(pTq)
573 {
574 tpPoints[0].Set(pTq->tpPoints[0]);
575 tpPoints[1].Set(pTq->tpPoints[1]);
576 tpPoints[2].Set(pTq->tpPoints[2]);
577 tpPoints[3].Set(pTq->tpPoints[3]);
578 }
579 }
580
581 void Set(const TQuad<uint64_t>& tq)
582 {
583 tpPoints[0].Set(tq.tpPoints[0]);
584 tpPoints[1].Set(tq.tpPoints[1]);
585 tpPoints[2].Set(tq.tpPoints[2]);
586 tpPoints[3].Set(tq.tpPoints[3]);
587 }
588
589 void Set(const TQuad<uint64_t>* pTq)
590 {
591 if(pTq)
592 {
593 tpPoints[0].Set(pTq->tpPoints[0]);
594 tpPoints[1].Set(pTq->tpPoints[1]);
595 tpPoints[2].Set(pTq->tpPoints[2]);
596 tpPoints[3].Set(pTq->tpPoints[3]);
597 }
598 }
599
600 void Set(const TQuad<float>& tq)
601 {
602 tpPoints[0].Set(tq.tpPoints[0]);
603 tpPoints[1].Set(tq.tpPoints[1]);
604 tpPoints[2].Set(tq.tpPoints[2]);
605 tpPoints[3].Set(tq.tpPoints[3]);
606 }
607
608 void Set(const TQuad<float>* pTq)
609 {
610 if(pTq)
611 {
612 tpPoints[0].Set(pTq->tpPoints[0]);
613 tpPoints[1].Set(pTq->tpPoints[1]);
614 tpPoints[2].Set(pTq->tpPoints[2]);
615 tpPoints[3].Set(pTq->tpPoints[3]);
616 }
617 }
618
619 void Set(const TQuad<double>& tq)
620 {
621 tpPoints[0].Set(tq.tpPoints[0]);
622 tpPoints[1].Set(tq.tpPoints[1]);
623 tpPoints[2].Set(tq.tpPoints[2]);
624 tpPoints[3].Set(tq.tpPoints[3]);
625 }
626
627 void Set(const TQuad<double>* pTq)
628 {
629 if(pTq)
630 {
631 tpPoints[0].Set(pTq->tpPoints[0]);
632 tpPoints[1].Set(pTq->tpPoints[1]);
633 tpPoints[2].Set(pTq->tpPoints[2]);
634 tpPoints[3].Set(pTq->tpPoints[3]);
635 }
636 }
637
638
639 void Set(const TPoint<int8_t>& tpLT, const TPoint<int8_t>& tpRT, const TPoint<int8_t>& tpRB, const TPoint<int8_t>& tpLB)
640 {
641 tpPoints[0].Set(tpLT);
642 tpPoints[1].Set(tpRT);
643 tpPoints[2].Set(tpRB);
644 tpPoints[3].Set(tpLB);
645 }
646
647 void Set(const TPoint<int8_t>* pTpLT, const TPoint<int8_t>* pTpRT, const TPoint<int8_t>* pTpRB, const TPoint<int8_t>* pTpLB)
648 {
649 if(pTpLT && pTpRT && pTpRB && pTpLB)
650 {
651 tpPoints[0].Set(pTpLT);
652 tpPoints[1].Set(pTpRT);
653 tpPoints[2].Set(pTpRB);
654 tpPoints[3].Set(pTpLB);
655 }
656 }
657
658 void Set(const TPoint<uint8_t>& tpLT, const TPoint<uint8_t>& tpRT, const TPoint<uint8_t>& tpRB, const TPoint<uint8_t>& tpLB)
659 {
660 tpPoints[0].Set(tpLT);
661 tpPoints[1].Set(tpRT);
662 tpPoints[2].Set(tpRB);
663 tpPoints[3].Set(tpLB);
664 }
665
666 void Set(const TPoint<uint8_t>* pTpLT, const TPoint<uint8_t>* pTpRT, const TPoint<uint8_t>* pTpRB, const TPoint<uint8_t>* pTpLB)
667 {
668 if(pTpLT && pTpRT && pTpRB && pTpLB)
669 {
670 tpPoints[0].Set(pTpLT);
671 tpPoints[1].Set(pTpRT);
672 tpPoints[2].Set(pTpRB);
673 tpPoints[3].Set(pTpLB);
674 }
675 }
676
677
678 void Set(const TPoint<int16_t>& tpLT, const TPoint<int16_t>& tpRT, const TPoint<int16_t>& tpRB, const TPoint<int16_t>& tpLB)
679 {
680 tpPoints[0].Set(tpLT);
681 tpPoints[1].Set(tpRT);
682 tpPoints[2].Set(tpRB);
683 tpPoints[3].Set(tpLB);
684 }
685
686 void Set(const TPoint<int16_t>* pTpLT, const TPoint<int16_t>* pTpRT, const TPoint<int16_t>* pTpRB, const TPoint<int16_t>* pTpLB)
687 {
688 if(pTpLT && pTpRT && pTpRB && pTpLB)
689 {
690 tpPoints[0].Set(pTpLT);
691 tpPoints[1].Set(pTpRT);
692 tpPoints[2].Set(pTpRB);
693 tpPoints[3].Set(pTpLB);
694 }
695 }
696
697 void Set(const TPoint<uint16_t>& tpLT, const TPoint<uint16_t>& tpRT, const TPoint<uint16_t>& tpRB, const TPoint<uint16_t>& tpLB)
698 {
699 tpPoints[0].Set(tpLT);
700 tpPoints[1].Set(tpRT);
701 tpPoints[2].Set(tpRB);
702 tpPoints[3].Set(tpLB);
703 }
704
705 void Set(const TPoint<uint16_t>* pTpLT, const TPoint<uint16_t>* pTpRT, const TPoint<uint16_t>* pTpRB, const TPoint<uint16_t>* pTpLB)
706 {
707 if(pTpLT && pTpRT && pTpRB && pTpLB)
708 {
709 tpPoints[0].Set(pTpLT);
710 tpPoints[1].Set(pTpRT);
711 tpPoints[2].Set(pTpRB);
712 tpPoints[3].Set(pTpLB);
713 }
714 }
715
716
717 void Set(const TPoint<int32_t>& tpLT, const TPoint<int32_t>& tpRT, const TPoint<int32_t>& tpRB, const TPoint<int32_t>& tpLB)
718 {
719 tpPoints[0].Set(tpLT);
720 tpPoints[1].Set(tpRT);
721 tpPoints[2].Set(tpRB);
722 tpPoints[3].Set(tpLB);
723 }
724
725 void Set(const TPoint<int32_t>* pTpLT, const TPoint<int32_t>* pTpRT, const TPoint<int32_t>* pTpRB, const TPoint<int32_t>* pTpLB)
726 {
727 if(pTpLT && pTpRT && pTpRB && pTpLB)
728 {
729 tpPoints[0].Set(pTpLT);
730 tpPoints[1].Set(pTpRT);
731 tpPoints[2].Set(pTpRB);
732 tpPoints[3].Set(pTpLB);
733 }
734 }
735
736 void Set(const TPoint<uint32_t>& tpLT, const TPoint<uint32_t>& tpRT, const TPoint<uint32_t>& tpRB, const TPoint<uint32_t>& tpLB)
737 {
738 tpPoints[0].Set(tpLT);
739 tpPoints[1].Set(tpRT);
740 tpPoints[2].Set(tpRB);
741 tpPoints[3].Set(tpLB);
742 }
743
744 void Set(const TPoint<uint32_t>* pTpLT, const TPoint<uint32_t>* pTpRT, const TPoint<uint32_t>* pTpRB, const TPoint<uint32_t>* pTpLB)
745 {
746 if(pTpLT && pTpRT && pTpRB && pTpLB)
747 {
748 tpPoints[0].Set(pTpLT);
749 tpPoints[1].Set(pTpRT);
750 tpPoints[2].Set(pTpRB);
751 tpPoints[3].Set(pTpLB);
752 }
753 }
754
755 void Set(const TPoint<int64_t>& tpLT, const TPoint<int64_t>& tpRT, const TPoint<int64_t>& tpRB, const TPoint<int64_t>& tpLB)
756 {
757 tpPoints[0].Set(tpLT);
758 tpPoints[1].Set(tpRT);
759 tpPoints[2].Set(tpRB);
760 tpPoints[3].Set(tpLB);
761 }
762
763 void Set(const TPoint<int64_t>* pTpLT, const TPoint<int64_t>* pTpRT, const TPoint<int64_t>* pTpRB, const TPoint<int64_t>* pTpLB)
764 {
765 if(pTpLT && pTpRT && pTpRB && pTpLB)
766 {
767 tpPoints[0].Set(pTpLT);
768 tpPoints[1].Set(pTpRT);
769 tpPoints[2].Set(pTpRB);
770 tpPoints[3].Set(pTpLB);
771 }
772 }
773
774 void Set(const TPoint<uint64_t>& tpLT, const TPoint<uint64_t>& tpRT, const TPoint<uint64_t>& tpRB, const TPoint<uint64_t>& tpLB)
775 {
776 tpPoints[0].Set(tpLT);
777 tpPoints[1].Set(tpRT);
778 tpPoints[2].Set(tpRB);
779 tpPoints[3].Set(tpLB);
780 }
781
782 void Set(const TPoint<uint64_t>* pTpLT, const TPoint<uint64_t>* pTpRT, const TPoint<uint64_t>* pTpRB, const TPoint<uint64_t>* pTpLB)
783 {
784 if(pTpLT && pTpRT && pTpRB && pTpLB)
785 {
786 tpPoints[0].Set(pTpLT);
787 tpPoints[1].Set(pTpRT);
788 tpPoints[2].Set(pTpRB);
789 tpPoints[3].Set(pTpLB);
790 }
791 }
792
793 void Set(const TPoint<float>& tpLT, const TPoint<float>& tpRT, const TPoint<float>& tpRB, const TPoint<float>& tpLB)
794 {
795 tpPoints[0].Set(tpLT);
796 tpPoints[1].Set(tpRT);
797 tpPoints[2].Set(tpRB);
798 tpPoints[3].Set(tpLB);
799 }
800
801 void Set(const TPoint<float>* pTpLT, const TPoint<float>* pTpRT, const TPoint<float>* pTpRB, const TPoint<float>* pTpLB)
802 {
803 if(pTpLT && pTpRT && pTpRB && pTpLB)
804 {
805 tpPoints[0].Set(pTpLT);
806 tpPoints[1].Set(pTpRT);
807 tpPoints[2].Set(pTpRB);
808 tpPoints[3].Set(pTpLB);
809 }
810 }
811
812 void Set(const TPoint<double>& tpLT, const TPoint<double>& tpRT, const TPoint<double>& tpRB, const TPoint<double>& tpLB)
813 {
814 tpPoints[0].Set(tpLT);
815 tpPoints[1].Set(tpRT);
816 tpPoints[2].Set(tpRB);
817 tpPoints[3].Set(tpLB);
818 }
819
820 void Set(const TPoint<double>* pTpLT, const TPoint<double>* pTpRT, const TPoint<double>* pTpRB, const TPoint<double>* pTpLB)
821 {
822 if(pTpLT && pTpRT && pTpRB && pTpLB)
823 {
824 tpPoints[0].Set(pTpLT);
825 tpPoints[1].Set(pTpRT);
826 tpPoints[2].Set(pTpRB);
827 tpPoints[3].Set(pTpLB);
828 }
829 }
830
831
832 const TQuad<T>& operator=(int32_t value)
833 {
834 tpPoints[0] = value;
835 tpPoints[1] = value;
836 tpPoints[2] = value;
837 tpPoints[3] = value;
838
839 return *this;
840 }
841
842 const TQuad<T>& operator=(int64_t value)
843 {
844 tpPoints[0] = value;
845 tpPoints[1] = value;
846 tpPoints[2] = value;
847 tpPoints[3] = value;
848
849 return *this;
850 }
851
852 const TQuad<T>& operator=(float value)
853 {
854 tpPoints[0] = value;
855 tpPoints[1] = value;
856 tpPoints[2] = value;
857 tpPoints[3] = value;
858
859 return *this;
860 }
861
862 const TQuad<T>& operator=(double value)
863 {
864 tpPoints[0] = value;
865 tpPoints[1] = value;
866 tpPoints[2] = value;
867 tpPoints[3] = value;
868
869 return *this;
870 }
871
872 const TQuad<T>& operator=(const TQuad<int32_t>& tq)
873 {
874 Set(tq);
875
876 return *this;
877 }
878
879 const TQuad<T>& operator=(const TQuad<int64_t>& tq)
880 {
881 Set(tq);
882
883 return *this;
884 }
885
886 const TQuad<T>& operator=(const TQuad<float>& tq)
887 {
888 Set(tq);
889
890 return *this;
891 }
892
893 const TQuad<T>& operator=(const TQuad<double>& tq)
894 {
895 Set(tq);
896
897 return *this;
898 }
899
900 bool operator==(const TQuad<int32_t>& tq)
901 {
902 return tpPoints[0] == tq.tpPoints[0] && tpPoints[1] == tq.tpPoints[1] && tpPoints[2] == tq.tpPoints[2] && tpPoints[3] == tq.tpPoints[3];
903 }
904
905 bool operator==(const TQuad<int64_t>& tq)
906 {
907 return tpPoints[0] == tq.tpPoints[0] && tpPoints[1] == tq.tpPoints[1] && tpPoints[2] == tq.tpPoints[2] && tpPoints[3] == tq.tpPoints[3];
908 }
909
910 bool operator==(const TQuad<float>& tq)
911 {
912 return tpPoints[0] == tq.tpPoints[0] && tpPoints[1] == tq.tpPoints[1] && tpPoints[2] == tq.tpPoints[2] && tpPoints[3] == tq.tpPoints[3];
913 }
914
915 bool operator==(const TQuad<double>& tq)
916 {
917 return tpPoints[0] == tq.tpPoints[0] && tpPoints[1] == tq.tpPoints[1] && tpPoints[2] == tq.tpPoints[2] && tpPoints[3] == tq.tpPoints[3];
918 }
919
920 bool operator!=(const TQuad<int32_t>& tq)
921 {
922 return tpPoints[0] != tq.tpPoints[0] || tpPoints[1] != tq.tpPoints[1] || tpPoints[2] != tq.tpPoints[2] || tpPoints[3] != tq.tpPoints[3];
923 }
924
925 bool operator!=(const TQuad<int64_t>& tq)
926 {
927 return tpPoints[0] != tq.tpPoints[0] || tpPoints[1] != tq.tpPoints[1] || tpPoints[2] != tq.tpPoints[2] || tpPoints[3] != tq.tpPoints[3];
928 }
929
930 bool operator!=(const TQuad<float>& tq)
931 {
932 return tpPoints[0] != tq.tpPoints[0] || tpPoints[1] != tq.tpPoints[1] || tpPoints[2] != tq.tpPoints[2] || tpPoints[3] != tq.tpPoints[3];
933 }
934
935 bool operator!=(const TQuad<double>& tq)
936 {
937 return tpPoints[0] != tq.tpPoints[0] || tpPoints[1] != tq.tpPoints[1] || tpPoints[2] != tq.tpPoints[2] || tpPoints[3] != tq.tpPoints[3];
938 }
939
940 const TQuad<T>& operator+=(int32_t value)
941 {
942 tpPoints[0] += value;
943 tpPoints[1] += value;
944 tpPoints[2] += value;
945 tpPoints[3] += value;
946
947 return *this;
948 }
949
950 const TQuad<T>& operator+=(int64_t value)
951 {
952 tpPoints[0] += value;
953 tpPoints[1] += value;
954 tpPoints[2] += value;
955 tpPoints[3] += value;
956
957 return *this;
958 }
959
960 const TQuad<T>& operator+=(float value)
961 {
962 tpPoints[0] += value;
963 tpPoints[1] += value;
964 tpPoints[2] += value;
965 tpPoints[3] += value;
966
967 return *this;
968 }
969
970 const TQuad<T>& operator+=(double value)
971 {
972 tpPoints[0] += value;
973 tpPoints[1] += value;
974 tpPoints[2] += value;
975 tpPoints[3] += value;
976
977 return *this;
978 }
979
980 const TQuad<T>& operator+=(const TQuad<int32_t>& tq)
981 {
982 tpPoints[0] += tq.tpPoints[0];
983 tpPoints[1] += tq.tpPoints[1];
984 tpPoints[2] += tq.tpPoints[2];
985 tpPoints[3] += tq.tpPoints[3];
986
987 return *this;
988 }
989
990 const TQuad<T>& operator+=(const TQuad<int64_t>& tq)
991 {
992 tpPoints[0] += tq.tpPoints[0];
993 tpPoints[1] += tq.tpPoints[1];
994 tpPoints[2] += tq.tpPoints[2];
995 tpPoints[3] += tq.tpPoints[3];
996
997 return *this;
998 }
999
1000 const TQuad<T>& operator+=(const TQuad<float>& tq)
1001 {
1002 tpPoints[0] += tq.tpPoints[0];
1003 tpPoints[1] += tq.tpPoints[1];
1004 tpPoints[2] += tq.tpPoints[2];
1005 tpPoints[3] += tq.tpPoints[3];
1006
1007 return *this;
1008 }
1009
1010 const TQuad<T>& operator+=(const TQuad<double>& tq)
1011 {
1012 tpPoints[0] += tq.tpPoints[0];
1013 tpPoints[1] += tq.tpPoints[1];
1014 tpPoints[2] += tq.tpPoints[2];
1015 tpPoints[3] += tq.tpPoints[3];
1016
1017 return *this;
1018 }
1019
1020 const TQuad<T>& operator-=(int32_t value)
1021 {
1022 tpPoints[0] -= value;
1023 tpPoints[1] -= value;
1024 tpPoints[2] -= value;
1025 tpPoints[3] -= value;
1026
1027 return *this;
1028 }
1029
1030 const TQuad<T>& operator-=(int64_t value)
1031 {
1032 tpPoints[0] -= value;
1033 tpPoints[1] -= value;
1034 tpPoints[2] -= value;
1035 tpPoints[3] -= value;
1036
1037 return *this;
1038 }
1039
1040 const TQuad<T>& operator-=(float value)
1041 {
1042 tpPoints[0] -= value;
1043 tpPoints[1] -= value;
1044 tpPoints[2] -= value;
1045 tpPoints[3] -= value;
1046
1047 return *this;
1048 }
1049
1050 const TQuad<T>& operator-=(double value)
1051 {
1052 tpPoints[0] -= value;
1053 tpPoints[1] -= value;
1054 tpPoints[2] -= value;
1055 tpPoints[3] -= value;
1056
1057 return *this;
1058 }
1059
1060 const TQuad<T>& operator-=(const TQuad<int32_t>& tq)
1061 {
1062 tpPoints[0] -= tq.tpPoints[0];
1063 tpPoints[1] -= tq.tpPoints[1];
1064 tpPoints[2] -= tq.tpPoints[2];
1065 tpPoints[3] -= tq.tpPoints[3];
1066
1067 return *this;
1068 }
1069
1070 const TQuad<T>& operator-=(const TQuad<int64_t>& tq)
1071 {
1072 tpPoints[0] -= tq.tpPoints[0];
1073 tpPoints[1] -= tq.tpPoints[1];
1074 tpPoints[2] -= tq.tpPoints[2];
1075 tpPoints[3] -= tq.tpPoints[3];
1076
1077 return *this;
1078 }
1079
1080 const TQuad<T>& operator-=(const TQuad<float>& tq)
1081 {
1082 tpPoints[0] -= tq.tpPoints[0];
1083 tpPoints[1] -= tq.tpPoints[1];
1084 tpPoints[2] -= tq.tpPoints[2];
1085 tpPoints[3] -= tq.tpPoints[3];
1086
1087 return *this;
1088 }
1089
1090 const TQuad<T>& operator-=(const TQuad<double>& tq)
1091 {
1092 tpPoints[0] -= tq.tpPoints[0];
1093 tpPoints[1] -= tq.tpPoints[1];
1094 tpPoints[2] -= tq.tpPoints[2];
1095 tpPoints[3] -= tq.tpPoints[3];
1096
1097 return *this;
1098 }
1099
1100 const TQuad<T>& operator*=(int32_t value)
1101 {
1102 tpPoints[0] *= value;
1103 tpPoints[1] *= value;
1104 tpPoints[2] *= value;
1105 tpPoints[3] *= value;
1106
1107 return *this;
1108 }
1109
1110 const TQuad<T>& operator*=(int64_t value)
1111 {
1112 tpPoints[0] *= value;
1113 tpPoints[1] *= value;
1114 tpPoints[2] *= value;
1115 tpPoints[3] *= value;
1116
1117 return *this;
1118 }
1119
1120 const TQuad<T>& operator*=(float value)
1121 {
1122 tpPoints[0] *= value;
1123 tpPoints[1] *= value;
1124 tpPoints[2] *= value;
1125 tpPoints[3] *= value;
1126
1127 return *this;
1128 }
1129
1130 const TQuad<T>& operator*=(double value)
1131 {
1132 tpPoints[0] *= value;
1133 tpPoints[1] *= value;
1134 tpPoints[2] *= value;
1135 tpPoints[3] *= value;
1136
1137 return *this;
1138 }
1139
1140 const TQuad<T>& operator*=(const TQuad<int32_t>& tq)
1141 {
1142 tpPoints[0] *= tq.tpPoints[0];
1143 tpPoints[1] *= tq.tpPoints[1];
1144 tpPoints[2] *= tq.tpPoints[2];
1145 tpPoints[3] *= tq.tpPoints[3];
1146
1147 return *this;
1148 }
1149
1150 const TQuad<T>& operator*=(const TQuad<int64_t>& tq)
1151 {
1152 tpPoints[0] *= tq.tpPoints[0];
1153 tpPoints[1] *= tq.tpPoints[1];
1154 tpPoints[2] *= tq.tpPoints[2];
1155 tpPoints[3] *= tq.tpPoints[3];
1156
1157 return *this;
1158 }
1159
1160 const TQuad<T>& operator*=(const TQuad<float>& tq)
1161 {
1162 tpPoints[0] *= tq.tpPoints[0];
1163 tpPoints[1] *= tq.tpPoints[1];
1164 tpPoints[2] *= tq.tpPoints[2];
1165 tpPoints[3] *= tq.tpPoints[3];
1166
1167 return *this;
1168 }
1169
1170 const TQuad<T>& operator*=(const TQuad<double>& tq)
1171 {
1172 tpPoints[0] *= tq.tpPoints[0];
1173 tpPoints[1] *= tq.tpPoints[1];
1174 tpPoints[2] *= tq.tpPoints[2];
1175 tpPoints[3] *= tq.tpPoints[3];
1176
1177 return *this;
1178 }
1179
1180 const TQuad<T>& operator/=(int32_t value)
1181 {
1182 tpPoints[0] /= value;
1183 tpPoints[1] /= value;
1184 tpPoints[2] /= value;
1185 tpPoints[3] /= value;
1186
1187 return *this;
1188 }
1189
1190 const TQuad<T>& operator/=(int64_t value)
1191 {
1192 tpPoints[0] /= value;
1193 tpPoints[1] /= value;
1194 tpPoints[2] /= value;
1195 tpPoints[3] /= value;
1196
1197 return *this;
1198 }
1199
1200 const TQuad<T>& operator/=(float value)
1201 {
1202 tpPoints[0] /= value;
1203 tpPoints[1] /= value;
1204 tpPoints[2] /= value;
1205 tpPoints[3] /= value;
1206
1207 return *this;
1208 }
1209
1210 const TQuad<T>& operator/=(double value)
1211 {
1212 tpPoints[0] /= value;
1213 tpPoints[1] /= value;
1214 tpPoints[2] /= value;
1215 tpPoints[3] /= value;
1216
1217 return *this;
1218 }
1219
1220 const TQuad<T>& operator/=(const TQuad<int32_t>& tq)
1221 {
1222 tpPoints[0] /= tq.tpPoints[0];
1223 tpPoints[1] /= tq.tpPoints[1];
1224 tpPoints[2] /= tq.tpPoints[2];
1225 tpPoints[3] /= tq.tpPoints[3];
1226
1227 return *this;
1228 }
1229
1230 const TQuad<T>& operator/=(const TQuad<int64_t>& tq)
1231 {
1232 tpPoints[0] /= tq.tpPoints[0];
1233 tpPoints[1] /= tq.tpPoints[1];
1234 tpPoints[2] /= tq.tpPoints[2];
1235 tpPoints[3] /= tq.tpPoints[3];
1236
1237 return *this;
1238 }
1239
1240 const TQuad<T>& operator/=(const TQuad<float>& tq)
1241 {
1242 tpPoints[0] /= tq.tpPoints[0];
1243 tpPoints[1] /= tq.tpPoints[1];
1244 tpPoints[2] /= tq.tpPoints[2];
1245 tpPoints[3] /= tq.tpPoints[3];
1246
1247 return *this;
1248 }
1249
1250 const TQuad<T>& operator/=(const TQuad<double>& tq)
1251 {
1252 tpPoints[0] /= tq.tpPoints[0];
1253 tpPoints[1] /= tq.tpPoints[1];
1254 tpPoints[2] /= tq.tpPoints[2];
1255 tpPoints[3] /= tq.tpPoints[3];
1256
1257 return *this;
1258 }
1259
1260 TQuad<T> operator+(int32_t value)
1261 {
1262 TQuad<T> tqReturn(this);
1263 tqReturn += value;
1264 return tqReturn;
1265 }
1266
1267 TQuad<T> operator+(int64_t value)
1268 {
1269 TQuad<T> tqReturn(this);
1270 tqReturn += value;
1271 return tqReturn;
1272 }
1273
1274 TQuad<T> operator+(float value)
1275 {
1276 TQuad<T> tqReturn(this);
1277 tqReturn += value;
1278 return tqReturn;
1279 }
1280
1281 TQuad<T> operator+(double value)
1282 {
1283 TQuad<T> tqReturn(this);
1284 tqReturn += value;
1285 return tqReturn;
1286 }
1287
1288 TQuad<T> operator+(const TQuad<int32_t>& tq)
1289 {
1290 TQuad<T> tqReturn(this);
1291 tqReturn += tq;
1292 return tqReturn;
1293 }
1294
1295 TQuad<T> operator+(const TQuad<int64_t>& tq)
1296 {
1297 TQuad<T> tqReturn(this);
1298 tqReturn += tq;
1299 return tqReturn;
1300 }
1301
1302 TQuad<T> operator+(const TQuad<float>& tq)
1303 {
1304 TQuad<T> tqReturn(this);
1305 tqReturn += tq;
1306 return tqReturn;
1307 }
1308
1309 TQuad<T> operator+(const TQuad<double>& tq)
1310 {
1311 TQuad<T> tqReturn(this);
1312 tqReturn += tq;
1313 return tqReturn;
1314 }
1315
1316 TQuad<T> operator-(int32_t value)
1317 {
1318 TQuad<T> tqReturn(this);
1319 tqReturn -= value;
1320 return tqReturn;
1321 }
1322
1323 TQuad<T> operator-(int64_t value)
1324 {
1325 TQuad<T> tqReturn(this);
1326 tqReturn -= value;
1327 return tqReturn;
1328 }
1329
1330 TQuad<T> operator-(float value)
1331 {
1332 TQuad<T> tqReturn(this);
1333 tqReturn -= value;
1334 return tqReturn;
1335 }
1336
1337 TQuad<T> operator-(double value)
1338 {
1339 TQuad<T> tqReturn(this);
1340 tqReturn -= value;
1341 return tqReturn;
1342 }
1343
1344 TQuad<T> operator-(const TQuad<int32_t>& tq)
1345 {
1346 TQuad<T> tqReturn(this);
1347 tqReturn -= tq;
1348 return tqReturn;
1349 }
1350
1351 TQuad<T> operator-(const TQuad<int64_t>& tq)
1352 {
1353 TQuad<T> tqReturn(this);
1354 tqReturn -= tq;
1355 return tqReturn;
1356 }
1357
1358 TQuad<T> operator-(const TQuad<float>& tq)
1359 {
1360 TQuad<T> tqReturn(this);
1361 tqReturn -= tq;
1362 return tqReturn;
1363 }
1364
1365 TQuad<T> operator-(const TQuad<double>& tq)
1366 {
1367 TQuad<T> tqReturn(this);
1368 tqReturn -= tq;
1369 return tqReturn;
1370 }
1371
1372 TQuad<T> operator*(int32_t value)
1373 {
1374 TQuad<T> tqReturn(this);
1375 tqReturn *= value;
1376 return tqReturn;
1377 }
1378
1379 TQuad<T> operator*(int64_t value)
1380 {
1381 TQuad<T> tqReturn(this);
1382 tqReturn *= value;
1383 return tqReturn;
1384 }
1385
1386 TQuad<T> operator*(float value)
1387 {
1388 TQuad<T> tqReturn(this);
1389 tqReturn *= value;
1390 return tqReturn;
1391 }
1392
1393 TQuad<T> operator*(double value)
1394 {
1395 TQuad<T> tqReturn(this);
1396 tqReturn *= value;
1397 return tqReturn;
1398 }
1399
1400 TQuad<T> operator*(const TQuad<int32_t>& tq)
1401 {
1402 TQuad<T> tqReturn(this);
1403 tqReturn *= tq;
1404 return tqReturn;
1405 }
1406
1407 TQuad<T> operator*(const TQuad<int64_t>& tq)
1408 {
1409 TQuad<T> tqReturn(this);
1410 tqReturn *= tq;
1411 return tqReturn;
1412 }
1413
1414 TQuad<T> operator*(const TQuad<float>& tq)
1415 {
1416 TQuad<T> tqReturn(this);
1417 tqReturn *= tq;
1418 return tqReturn;
1419 }
1420
1421 TQuad<T> operator*(const TQuad<double>& tq)
1422 {
1423 TQuad<T> tqReturn(this);
1424 tqReturn *= tq;
1425 return tqReturn;
1426 }
1427
1428 TQuad<T> operator/(int32_t value)
1429 {
1430 TQuad<T> tqReturn(this);
1431 tqReturn /= value;
1432 return tqReturn;
1433 }
1434
1435 TQuad<T> operator/(int64_t value)
1436 {
1437 TQuad<T> tqReturn(this);
1438 tqReturn /= value;
1439 return tqReturn;
1440 }
1441
1442 TQuad<T> operator/(float value)
1443 {
1444 TQuad<T> tqReturn(this);
1445 tqReturn /= value;
1446 return tqReturn;
1447 }
1448
1449 TQuad<T> operator/(double value)
1450 {
1451 TQuad<T> tqReturn(this);
1452 tqReturn /= value;
1453 return tqReturn;
1454 }
1455
1456 TQuad<T> operator/(const TQuad<int32_t>& tq)
1457 {
1458 TQuad<T> tqReturn(this);
1459 tqReturn /= tq;
1460 return tqReturn;
1461 }
1462
1463 TQuad<T> operator/(const TQuad<int64_t>& tq)
1464 {
1465 TQuad<T> tqReturn(this);
1466 tqReturn /= tq;
1467 return tqReturn;
1468 }
1469
1470 TQuad<T> operator/(const TQuad<float>& tq)
1471 {
1472 TQuad<T> tqReturn(this);
1473 tqReturn /= tq;
1474 return tqReturn;
1475 }
1476
1477 TQuad<T> operator/(const TQuad<double>& tq)
1478 {
1479 TQuad<T> tqReturn(this);
1480 tqReturn /= tq;
1481 return tqReturn;
1482 }
1483
1484 friend TQuad<T> operator+(int32_t value, const TQuad<T>& tr)
1485 {
1486 return TQuad<T>(TQuad<double>(tr) + value);
1487 }
1488 friend TQuad<T> operator+(int64_t value, const TQuad<T>& tr)
1489 {
1490 return TQuad<T>(TQuad<double>(tr) + value);
1491 }
1492 friend TQuad<T> operator+(float value, const TQuad<T>& tr)
1493 {
1494 return TQuad<T>(TQuad<double>(tr) + value);
1495 }
1496 friend TQuad<T> operator+(double value, const TQuad<T>& tr)
1497 {
1498 return TQuad<T>(TQuad<double>(tr) + value);
1499 }
1500
1501 friend TQuad<T> operator-(int32_t value, const TQuad<T>& tr)
1502 {
1503 return TQuad<T>(TPoint<T>((T)(value - tr.tpPoints[0].x), (T)(value - tr.tpPoints[0].y)), TPoint<T>((T)(value - tr.tpPoints[1].x), (T)(value - tr.tpPoints[1].y)), TPoint<T>((T)(value - tr.tpPoints[2].x), (T)(value - tr.tpPoints[2].y)), TPoint<T>((T)(value - tr.tpPoints[3].x), (T)(value - tr.tpPoints[3].y)));
1504 }
1505 friend TQuad<T> operator-(int64_t value, const TQuad<T>& tr)
1506 {
1507 return TQuad<T>(TPoint<T>((T)(value - tr.tpPoints[0].x), (T)(value - tr.tpPoints[0].y)), TPoint<T>((T)(value - tr.tpPoints[1].x), (T)(value - tr.tpPoints[1].y)), TPoint<T>((T)(value - tr.tpPoints[2].x), (T)(value - tr.tpPoints[2].y)), TPoint<T>((T)(value - tr.tpPoints[3].x), (T)(value - tr.tpPoints[3].y)));
1508 }
1509 friend TQuad<T> operator-(float value, const TQuad<T>& tr)
1510 {
1511 return TQuad<T>(TPoint<T>((T)(value - tr.tpPoints[0].x), (T)(value - tr.tpPoints[0].y)), TPoint<T>((T)(value - tr.tpPoints[1].x), (T)(value - tr.tpPoints[1].y)), TPoint<T>((T)(value - tr.tpPoints[2].x), (T)(value - tr.tpPoints[2].y)), TPoint<T>((T)(value - tr.tpPoints[3].x), (T)(value - tr.tpPoints[3].y)));
1512 }
1513 friend TQuad<T> operator-(double value, const TQuad<T>& tr)
1514 {
1515 return TQuad<T>(TPoint<T>((T)(value - tr.tpPoints[0].x), (T)(value - tr.tpPoints[0].y)), TPoint<T>((T)(value - tr.tpPoints[1].x), (T)(value - tr.tpPoints[1].y)), TPoint<T>((T)(value - tr.tpPoints[2].x), (T)(value - tr.tpPoints[2].y)), TPoint<T>((T)(value - tr.tpPoints[3].x), (T)(value - tr.tpPoints[3].y)));
1516 }
1517
1518 friend TQuad<T> operator*(int32_t value, const TQuad<T>& tr)
1519 {
1520 return TQuad<T>(TQuad<double>(tr) * value);
1521 }
1522 friend TQuad<T> operator*(int64_t value, const TQuad<T>& tr)
1523 {
1524 return TQuad<T>(TQuad<double>(tr) * value);
1525 }
1526 friend TQuad<T> operator*(float value, const TQuad<T>& tr)
1527 {
1528 return TQuad<T>(TQuad<double>(tr) * value);
1529 }
1530 friend TQuad<T> operator*(double value, const TQuad<T>& tr)
1531 {
1532 return TQuad<T>(TQuad<double>(tr) * value);
1533 }
1534
1535 friend TQuad<T> operator/(int32_t value, const TQuad<T>& tr)
1536 {
1537 return TQuad<T>(TPoint<T>((T)(value / tr.tpPoints[0].x), (T)(value / tr.tpPoints[0].y)), TPoint<T>((T)(value / tr.tpPoints[1].x), (T)(value / tr.tpPoints[1].y)), TPoint<T>((T)(value / tr.tpPoints[2].x), (T)(value / tr.tpPoints[2].y)), TPoint<T>((T)(value / tr.tpPoints[3].x), (T)(value / tr.tpPoints[3].y)));
1538 }
1539 friend TQuad<T> operator/(int64_t value, const TQuad<T>& tr)
1540 {
1541 return TQuad<T>(TPoint<T>((T)(value / tr.tpPoints[0].x), (T)(value / tr.tpPoints[0].y)), TPoint<T>((T)(value / tr.tpPoints[1].x), (T)(value / tr.tpPoints[1].y)), TPoint<T>((T)(value / tr.tpPoints[2].x), (T)(value / tr.tpPoints[2].y)), TPoint<T>((T)(value / tr.tpPoints[3].x), (T)(value / tr.tpPoints[3].y)));
1542 }
1543 friend TQuad<T> operator/(float value, const TQuad<T>& tr)
1544 {
1545 return TQuad<T>(TPoint<T>((T)(value / tr.tpPoints[0].x), (T)(value / tr.tpPoints[0].y)), TPoint<T>((T)(value / tr.tpPoints[1].x), (T)(value / tr.tpPoints[1].y)), TPoint<T>((T)(value / tr.tpPoints[2].x), (T)(value / tr.tpPoints[2].y)), TPoint<T>((T)(value / tr.tpPoints[3].x), (T)(value / tr.tpPoints[3].y)));
1546 }
1547 friend TQuad<T> operator/(double value, const TQuad<T>& tr)
1548 {
1549 return TQuad<T>(TPoint<T>((T)(value / tr.tpPoints[0].x), (T)(value / tr.tpPoints[0].y)), TPoint<T>((T)(value / tr.tpPoints[1].x), (T)(value / tr.tpPoints[1].y)), TPoint<T>((T)(value / tr.tpPoints[2].x), (T)(value / tr.tpPoints[2].y)), TPoint<T>((T)(value / tr.tpPoints[3].x), (T)(value / tr.tpPoints[3].y)));
1550 }
1551 };
1552 #pragma pack(pop)
1553
1554 typedef TQuad<int8_t> TQuadC;
1555 typedef TQuad<uint8_t> TQuadUC;
1556 typedef TQuad<int16_t> TQuadS;
1557 typedef TQuad<uint16_t> TQuadUS;
1558 typedef TQuad<int32_t> TQuadL;
1559 typedef TQuad<uint32_t> TQuadUL;
1560 typedef TQuad<int64_t> TQuadLL;
1561 typedef TQuad<uint64_t> TQuadULL;
1562 typedef TQuad<float> TQuadF;
1563 typedef TQuad<double> TQuadD;
1564 }
1565}
Simplified class representing a point.
Definition TPoint.h:37
Simplified class representing a quadrangle.
Definition TQuad.h:34