ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkPixelTraits.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18/*=========================================================================
19 *
20 * Portions of this file are subject to the VTK Toolkit Version 3 copyright.
21 *
22 * Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
23 *
24 * For complete copyright, license and disclaimer of warranty information
25 * please refer to the NOTICE file at the top of the ITK source tree.
26 *
27 *=========================================================================*/
28#ifndef itkPixelTraits_h
29#define itkPixelTraits_h
30
31#include "itkMacro.h"
32#include <type_traits>
33
34namespace itk
35{
36namespace detail
37{
38template <typename TPixelType, typename = void>
41template <typename TPixelType>
42struct PixelTraitsDimension<TPixelType, std::void_t<decltype(TPixelType::Length)>>
43{
45 static constexpr unsigned int Dimension = TPixelType::Length;
46};
47
48template <typename TPixelType, typename = void>
51template <typename TPixelType>
52struct PixelTraitsValueType<TPixelType, std::void_t<typename TPixelType::ValueType>>
53{
55 using ValueType = typename TPixelType::ValueType;
56};
57} // namespace detail
58
69template <typename TPixelType>
71 : public detail::PixelTraitsDimension<TPixelType>
72 , public detail::PixelTraitsValueType<TPixelType>
73{};
74
76
81template <>
82class PixelTraits<bool>
83{
84public:
85 static constexpr unsigned int Dimension = 1;
86 using ValueType = bool;
87};
88
89template <>
90class PixelTraits<char>
91{
92public:
93 static constexpr unsigned int Dimension = 1;
94 using ValueType = char;
95};
96
97template <>
98class PixelTraits<signed char>
99{
100public:
101 static constexpr unsigned int Dimension = 1;
102 using ValueType = char;
103};
104
105template <>
106class PixelTraits<unsigned char>
107{
108public:
109 static constexpr unsigned int Dimension = 1;
110 using ValueType = unsigned char;
111};
112
113template <>
114class PixelTraits<short>
115{
116public:
117 static constexpr unsigned int Dimension = 1;
118 using ValueType = short;
119};
120
121template <>
122class PixelTraits<unsigned short>
123{
124public:
125 static constexpr unsigned int Dimension = 1;
126 using ValueType = unsigned short;
127};
128
129template <>
130class PixelTraits<int>
131{
132public:
133 static constexpr unsigned int Dimension = 1;
134 using ValueType = int;
135};
136
137template <>
138class PixelTraits<unsigned int>
139{
140public:
141 static constexpr unsigned int Dimension = 1;
142 using ValueType = unsigned int;
143};
144
145template <>
146class PixelTraits<long>
147{
148public:
149 static constexpr unsigned int Dimension = 1;
150 using ValueType = long;
151};
152
153template <>
154class PixelTraits<unsigned long>
155{
156public:
157 static constexpr unsigned int Dimension = 1;
158 using ValueType = unsigned long;
159};
160
161
162template <>
163class PixelTraits<long long>
164{
165public:
166 static constexpr unsigned int Dimension = 1;
167 using ValueType = long long;
168};
169
170template <>
171class PixelTraits<unsigned long long>
172{
173public:
174 static constexpr unsigned int Dimension = 1;
175 using ValueType = unsigned long long;
176};
177
178template <>
179class PixelTraits<float>
180{
181public:
182 static constexpr unsigned int Dimension = 1;
183 using ValueType = float;
184};
185
186template <>
187class PixelTraits<double>
188{
189public:
190 static constexpr unsigned int Dimension = 1;
191 using ValueType = double;
192};
193
195
214template <typename TValue1, typename TValue2>
216{
217public:
218 using ValueType = TValue1;
219};
220
222
227template <>
228class JoinTraits<bool, bool>
229{
230public:
231 using ValueType = bool;
232};
233
234template <>
235class JoinTraits<bool, char>
236{
237public:
238 using ValueType = char;
239};
240
241template <>
242class JoinTraits<bool, unsigned char>
243{
244public:
245 using ValueType = unsigned char;
246};
247
248template <>
249class JoinTraits<bool, short>
250{
251public:
252 using ValueType = short;
253};
254
255template <>
256class JoinTraits<bool, unsigned short>
257{
258public:
259 using ValueType = unsigned short;
260};
261
262template <>
263class JoinTraits<bool, int>
264{
265public:
266 using ValueType = int;
267};
268
269template <>
270class JoinTraits<bool, unsigned int>
271{
272public:
273 using ValueType = unsigned int;
274};
275
276template <>
277class JoinTraits<bool, long>
278{
279public:
280 using ValueType = long;
281};
282
283template <>
284class JoinTraits<bool, unsigned long>
285{
286public:
287 using ValueType = unsigned long;
288};
289
290
291template <>
292class JoinTraits<bool, long long>
293{
294public:
295 using ValueType = long long;
296};
297
298template <>
299class JoinTraits<bool, unsigned long long>
300{
301public:
302 using ValueType = unsigned long long;
303};
304
305template <>
306class JoinTraits<bool, float>
307{
308public:
309 using ValueType = float;
310};
311
312template <>
313class JoinTraits<bool, double>
314{
315public:
316 using ValueType = double;
317};
318
323template <>
324class JoinTraits<char, bool>
325{
326public:
327 using ValueType = char;
328};
329
330template <>
331class JoinTraits<char, char>
332{
333public:
334 using ValueType = char;
335};
336
337template <>
338class JoinTraits<char, unsigned char>
339{
340public:
341 using ValueType = short;
342};
343
344template <>
345class JoinTraits<char, short>
346{
347public:
348 using ValueType = short;
349};
350
351template <>
352class JoinTraits<char, unsigned short>
353{
354public:
355 using ValueType = int;
356};
357
358template <>
359class JoinTraits<char, int>
360{
361public:
362 using ValueType = int;
363};
364
365template <>
366class JoinTraits<char, unsigned int>
367{
368public:
369 // unsigned int & unsigned long may be the same size, so promote to float
370 using ValueType = float;
371};
372
373template <>
374class JoinTraits<char, long>
375{
376public:
377 using ValueType = long;
378};
379
380template <>
381class JoinTraits<char, unsigned long>
382{
383public:
384 using ValueType = float;
385};
386
387template <>
388class JoinTraits<char, long long>
389{
390public:
391 using ValueType = long long;
392};
393
394template <>
395class JoinTraits<char, unsigned long long>
396{
397public:
398 using ValueType = double;
399};
400
401template <>
402class JoinTraits<char, float>
403{
404public:
405 using ValueType = float;
406};
407
408template <>
409class JoinTraits<char, double>
410{
411public:
412 using ValueType = double;
413};
414
419template <>
420class JoinTraits<unsigned char, bool>
421{
422public:
423 using ValueType = unsigned char;
424};
425
426template <>
427class JoinTraits<unsigned char, char>
428{
429public:
430 using ValueType = short;
431};
432
433template <>
434class JoinTraits<unsigned char, unsigned char>
435{
436public:
437 using ValueType = unsigned char;
438};
439
440template <>
441class JoinTraits<unsigned char, short>
442{
443public:
444 using ValueType = short;
445};
446
447template <>
448class JoinTraits<unsigned char, unsigned short>
449{
450public:
451 using ValueType = unsigned short;
452};
453
454template <>
455class JoinTraits<unsigned char, int>
456{
457public:
458 using ValueType = int;
459};
460
461template <>
462class JoinTraits<unsigned char, unsigned int>
463{
464public:
465 using ValueType = unsigned int;
466};
467
468template <>
469class JoinTraits<unsigned char, long>
470{
471public:
472 using ValueType = long;
473};
474
475template <>
476class JoinTraits<unsigned char, unsigned long>
477{
478public:
479 using ValueType = unsigned long;
480};
481
482template <>
483class JoinTraits<unsigned char, long long>
484{
485public:
486 using ValueType = long long;
487};
488
489template <>
490class JoinTraits<unsigned char, unsigned long long>
491{
492public:
493 using ValueType = unsigned long long;
494};
495
496template <>
497class JoinTraits<unsigned char, float>
498{
499public:
500 using ValueType = float;
501};
502
503template <>
504class JoinTraits<unsigned char, double>
505{
506public:
507 using ValueType = double;
508};
509
514template <>
515class JoinTraits<short, bool>
516{
517public:
518 using ValueType = short;
519};
520
521template <>
522class JoinTraits<short, char>
523{
524public:
525 using ValueType = short;
526};
527
528template <>
529class JoinTraits<short, unsigned char>
530{
531public:
532 using ValueType = short;
533};
534
535template <>
536class JoinTraits<short, short>
537{
538public:
539 using ValueType = short;
540};
541
542template <>
543class JoinTraits<short, unsigned short>
544{
545public:
546 using ValueType = int;
547};
548
549template <>
550class JoinTraits<short, int>
551{
552public:
553 using ValueType = int;
554};
555
556template <>
557class JoinTraits<short, unsigned int>
558{
559public:
560 // unsigned int & unsigned long may be the same size, so promote to float
561 using ValueType = float;
562};
563
564template <>
565class JoinTraits<short, long>
566{
567public:
568 using ValueType = long;
569};
570
571template <>
572class JoinTraits<short, unsigned long>
573{
574public:
575 using ValueType = float;
576};
577
578template <>
579class JoinTraits<short, long long>
580{
581public:
582 using ValueType = long long;
583};
584
585template <>
586class JoinTraits<short, unsigned long long>
587{
588public:
589 using ValueType = double;
590};
591
592template <>
593class JoinTraits<short, float>
594{
595public:
596 using ValueType = float;
597};
598
599template <>
600class JoinTraits<short, double>
601{
602public:
603 using ValueType = double;
604};
605
610template <>
611class JoinTraits<unsigned short, bool>
612{
613public:
614 using ValueType = unsigned short;
615};
616
617template <>
618class JoinTraits<unsigned short, char>
619{
620public:
621 using ValueType = int;
622};
623
624template <>
625class JoinTraits<unsigned short, unsigned char>
626{
627public:
628 using ValueType = unsigned short;
629};
630
631template <>
632class JoinTraits<unsigned short, short>
633{
634public:
635 using ValueType = int;
636};
637
638template <>
639class JoinTraits<unsigned short, unsigned short>
640{
641public:
642 using ValueType = unsigned short;
643};
644
645template <>
646class JoinTraits<unsigned short, int>
647{
648public:
649 using ValueType = int;
650};
651
652template <>
653class JoinTraits<unsigned short, unsigned int>
654{
655public:
656 using ValueType = unsigned int;
657};
658
659template <>
660class JoinTraits<unsigned short, long>
661{
662public:
663 using ValueType = long;
664};
665
666template <>
667class JoinTraits<unsigned short, unsigned long>
668{
669public:
670 using ValueType = unsigned long;
671};
672
673template <>
674class JoinTraits<unsigned short, long long>
675{
676public:
677 using ValueType = long long;
678};
679
680template <>
681class JoinTraits<unsigned short, unsigned long long>
682{
683public:
684 using ValueType = unsigned long long;
685};
686
687template <>
688class JoinTraits<unsigned short, float>
689{
690public:
691 using ValueType = float;
692};
693
694template <>
695class JoinTraits<unsigned short, double>
696{
697public:
698 using ValueType = double;
699};
700
705template <>
706class JoinTraits<int, bool>
707{
708public:
709 using ValueType = int;
710};
711
712template <>
713class JoinTraits<int, char>
714{
715public:
716 using ValueType = int;
717};
718
719template <>
720class JoinTraits<int, unsigned char>
721{
722public:
723 using ValueType = int;
724};
725
726template <>
727class JoinTraits<int, short>
728{
729public:
730 using ValueType = int;
731};
732
733template <>
734class JoinTraits<int, unsigned short>
735{
736public:
737 using ValueType = int;
738};
739
740template <>
741class JoinTraits<int, int>
742{
743public:
744 using ValueType = int;
745};
746
747template <>
748class JoinTraits<int, unsigned int>
749{
750public:
751 // unsigned int & unsigned long may be the same size, so promote to float
752 using ValueType = float;
753};
754
755template <>
756class JoinTraits<int, long>
757{
758public:
759 using ValueType = long;
760};
761
762template <>
763class JoinTraits<int, unsigned long>
764{
765public:
766 using ValueType = float;
767};
768
769template <>
770class JoinTraits<int, long long>
771{
772public:
773 using ValueType = long long;
774};
775
776template <>
777class JoinTraits<int, unsigned long long>
778{
779public:
780 using ValueType = double;
781};
782
783template <>
784class JoinTraits<int, float>
785{
786public:
787 using ValueType = float;
788};
789
790template <>
791class JoinTraits<int, double>
792{
793public:
794 using ValueType = double;
795};
796
801template <>
802class JoinTraits<unsigned int, bool>
803{
804public:
805 using ValueType = unsigned int;
806};
807
808template <>
809class JoinTraits<unsigned int, char>
810{
811public:
812 // unsigned int & unsigned long may be the same size, so promote to float
813 using ValueType = float;
814};
815
816template <>
817class JoinTraits<unsigned int, unsigned char>
818{
819public:
820 using ValueType = unsigned int;
821};
822
823template <>
824class JoinTraits<unsigned int, short>
825{
826public:
827 // unsigned int & unsigned long may be the same size, so promote to float
828 using ValueType = float;
829};
830
831template <>
832class JoinTraits<unsigned int, unsigned short>
833{
834public:
835 using ValueType = unsigned int;
836};
837
838template <>
839class JoinTraits<unsigned int, int>
840{
841public:
842 // unsigned int & unsigned long may be the same size, so promote to float
843 using ValueType = float;
844};
845
846template <>
847class JoinTraits<unsigned int, unsigned int>
848{
849public:
850 using ValueType = unsigned int;
851};
852
853template <>
854class JoinTraits<unsigned int, long>
855{
856public:
857 using ValueType = float;
858};
859
860template <>
861class JoinTraits<unsigned int, unsigned long>
862{
863public:
864 using ValueType = unsigned long;
865};
866
867template <>
868class JoinTraits<unsigned int, long long>
869{
870public:
871 using ValueType = long long;
872};
873
874template <>
875class JoinTraits<unsigned int, unsigned long long>
876{
877public:
878 using ValueType = unsigned long long;
879};
880
881template <>
882class JoinTraits<unsigned int, float>
883{
884public:
885 using ValueType = float;
886};
887
888template <>
889class JoinTraits<unsigned int, double>
890{
891public:
892 using ValueType = double;
893};
894
899template <>
900class JoinTraits<long, bool>
901{
902public:
903 using ValueType = long;
904};
905
906template <>
907class JoinTraits<long, char>
908{
909public:
910 using ValueType = long;
911};
912
913template <>
914class JoinTraits<long, unsigned char>
915{
916public:
917 using ValueType = long;
918};
919
920template <>
921class JoinTraits<long, short>
922{
923public:
924 using ValueType = long;
925};
926
927template <>
928class JoinTraits<long, unsigned short>
929{
930public:
931 using ValueType = long;
932};
933
934template <>
935class JoinTraits<long, int>
936{
937public:
938 using ValueType = long;
939};
940
941template <>
942class JoinTraits<long, unsigned int>
943{
944public:
945 using ValueType = float;
946};
947
948template <>
949class JoinTraits<long, long>
950{
951public:
952 using ValueType = long;
953};
954
955template <>
956class JoinTraits<long, unsigned long>
957{
958public:
959 using ValueType = float;
960};
961
962
963template <>
964class JoinTraits<long, long long>
965{
966public:
967 using ValueType = long long;
968};
969
970template <>
971class JoinTraits<long, unsigned long long>
972{
973public:
974 using ValueType = double;
975};
976
977template <>
978class JoinTraits<long, float>
979{
980public:
981 using ValueType = float;
982};
983
984template <>
985class JoinTraits<long, double>
986{
987public:
988 using ValueType = double;
989};
990
995template <>
996class JoinTraits<unsigned long, bool>
997{
998public:
999 using ValueType = unsigned long;
1000};
1001
1002template <>
1003class JoinTraits<unsigned long, char>
1004{
1005public:
1006 using ValueType = float;
1007};
1008
1009template <>
1010class JoinTraits<unsigned long, unsigned char>
1011{
1012public:
1013 using ValueType = unsigned long;
1014};
1015
1016template <>
1017class JoinTraits<unsigned long, short>
1018{
1019public:
1020 using ValueType = float;
1021};
1022
1023template <>
1024class JoinTraits<unsigned long, unsigned short>
1025{
1026public:
1027 using ValueType = unsigned long;
1028};
1029
1030template <>
1031class JoinTraits<unsigned long, int>
1032{
1033public:
1034 using ValueType = float;
1035};
1036
1037template <>
1038class JoinTraits<unsigned long, unsigned int>
1039{
1040public:
1041 using ValueType = unsigned long;
1042};
1043
1044template <>
1045class JoinTraits<unsigned long, long>
1046{
1047public:
1048 using ValueType = float;
1049};
1050
1051template <>
1052class JoinTraits<unsigned long, unsigned long>
1053{
1054public:
1055 using ValueType = unsigned long;
1056};
1057
1058template <>
1059class JoinTraits<unsigned long, long long>
1060{
1061public:
1062 using ValueType = double;
1063};
1064
1065template <>
1066class JoinTraits<unsigned long, unsigned long long>
1067{
1068public:
1069 using ValueType = unsigned long long;
1070};
1071
1072template <>
1073class JoinTraits<unsigned long, float>
1074{
1075public:
1076 using ValueType = float;
1077};
1078
1079template <>
1080class JoinTraits<unsigned long, double>
1081{
1082public:
1083 using ValueType = double;
1084};
1085
1086
1091template <>
1092class JoinTraits<long long, bool>
1093{
1094public:
1095 using ValueType = long long;
1096};
1097
1098template <>
1099class JoinTraits<long long, char>
1100{
1101public:
1102 using ValueType = long long;
1103};
1104
1105template <>
1106class JoinTraits<long long, unsigned char>
1107{
1108public:
1109 using ValueType = long long;
1110};
1111
1112template <>
1113class JoinTraits<long long, short>
1114{
1115public:
1116 using ValueType = long long;
1117};
1118
1119template <>
1120class JoinTraits<long long, unsigned short>
1121{
1122public:
1123 using ValueType = long long;
1124};
1125
1126template <>
1127class JoinTraits<long long, int>
1128{
1129public:
1130 using ValueType = long long;
1131};
1132
1133template <>
1134class JoinTraits<long long, unsigned int>
1135{
1136public:
1137 using ValueType = long long;
1138};
1139
1140template <>
1141class JoinTraits<long long, long>
1142{
1143public:
1144 using ValueType = long long;
1145};
1146
1147template <>
1148class JoinTraits<long long, unsigned long>
1149{
1150public:
1151 using ValueType = double;
1152};
1153
1154template <>
1155class JoinTraits<long long, long long>
1156{
1157public:
1158 using ValueType = long long;
1159};
1160
1161template <>
1162class JoinTraits<long long, unsigned long long>
1163{
1164public:
1165 using ValueType = double;
1166};
1167
1168template <>
1169class JoinTraits<long long, float>
1170{
1171public:
1172 using ValueType = double;
1173};
1174
1175template <>
1176class JoinTraits<long long, double>
1177{
1178public:
1179 using ValueType = double;
1180};
1181
1186template <>
1187class JoinTraits<unsigned long long, bool>
1188{
1189public:
1190 using ValueType = unsigned long long;
1191};
1192
1193template <>
1194class JoinTraits<unsigned long long, char>
1195{
1196public:
1197 using ValueType = double;
1198};
1199
1200template <>
1201class JoinTraits<unsigned long long, unsigned char>
1202{
1203public:
1204 using ValueType = unsigned long long;
1205};
1206
1207template <>
1208class JoinTraits<unsigned long long, short>
1209{
1210public:
1211 using ValueType = double;
1212};
1213
1214template <>
1215class JoinTraits<unsigned long long, unsigned short>
1216{
1217public:
1218 using ValueType = unsigned long long;
1219};
1220
1221template <>
1222class JoinTraits<unsigned long long, int>
1223{
1224public:
1225 using ValueType = double;
1226};
1227
1228template <>
1229class JoinTraits<unsigned long long, unsigned int>
1230{
1231public:
1232 using ValueType = unsigned long long;
1233};
1234
1235template <>
1236class JoinTraits<unsigned long long, long>
1237{
1238public:
1239 using ValueType = double;
1240};
1241
1242template <>
1243class JoinTraits<unsigned long long, unsigned long>
1244{
1245public:
1246 using ValueType = unsigned long long;
1247};
1248
1249template <>
1250class JoinTraits<unsigned long long, long long>
1251{
1252public:
1253 using ValueType = double;
1254};
1255
1256template <>
1257class JoinTraits<unsigned long long, unsigned long long>
1258{
1259public:
1260 using ValueType = unsigned long long;
1261};
1262
1263template <>
1264class JoinTraits<unsigned long long, float>
1265{
1266public:
1267 using ValueType = double;
1268};
1269
1270template <>
1271class JoinTraits<unsigned long long, double>
1272{
1273public:
1274 using ValueType = double;
1275};
1276
1277
1282template <>
1283class JoinTraits<float, bool>
1284{
1285public:
1286 using ValueType = float;
1287};
1288
1289template <>
1290class JoinTraits<float, char>
1291{
1292public:
1293 using ValueType = float;
1294};
1295
1296template <>
1297class JoinTraits<float, unsigned char>
1298{
1299public:
1300 using ValueType = float;
1301};
1302
1303template <>
1304class JoinTraits<float, short>
1305{
1306public:
1307 using ValueType = float;
1308};
1309
1310template <>
1311class JoinTraits<float, unsigned short>
1312{
1313public:
1314 using ValueType = float;
1315};
1316
1317template <>
1318class JoinTraits<float, int>
1319{
1320public:
1321 using ValueType = float;
1322};
1323
1324template <>
1325class JoinTraits<float, unsigned int>
1326{
1327public:
1328 using ValueType = float;
1329};
1330
1331template <>
1332class JoinTraits<float, long>
1333{
1334public:
1335 using ValueType = float;
1336};
1337
1338template <>
1339class JoinTraits<float, unsigned long>
1340{
1341public:
1342 using ValueType = float;
1343};
1344
1345template <>
1346class JoinTraits<float, long long>
1347{
1348public:
1349 using ValueType = double;
1350};
1351
1352template <>
1353class JoinTraits<float, unsigned long long>
1354{
1355public:
1356 using ValueType = double;
1357};
1358
1359template <>
1360class JoinTraits<float, float>
1361{
1362public:
1363 using ValueType = float;
1364};
1365
1366template <>
1367class JoinTraits<float, double>
1368{
1369public:
1370 using ValueType = double;
1371};
1372
1377template <>
1378class JoinTraits<double, bool>
1379{
1380public:
1381 using ValueType = double;
1382};
1383
1384template <>
1385class JoinTraits<double, char>
1386{
1387public:
1388 using ValueType = double;
1389};
1390
1391template <>
1392class JoinTraits<double, unsigned char>
1393{
1394public:
1395 using ValueType = double;
1396};
1397
1398template <>
1399class JoinTraits<double, short>
1400{
1401public:
1402 using ValueType = double;
1403};
1404
1405template <>
1406class JoinTraits<double, unsigned short>
1407{
1408public:
1409 using ValueType = double;
1410};
1411
1412template <>
1413class JoinTraits<double, int>
1414{
1415public:
1416 using ValueType = double;
1417};
1418
1419template <>
1420class JoinTraits<double, unsigned int>
1421{
1422public:
1423 using ValueType = double;
1424};
1425
1426template <>
1427class JoinTraits<double, long>
1428{
1429public:
1430 using ValueType = double;
1431};
1432
1433template <>
1434class JoinTraits<double, unsigned long>
1435{
1436public:
1437 using ValueType = double;
1438};
1439
1440template <>
1441class JoinTraits<double, long long>
1442{
1443public:
1444 using ValueType = double;
1445};
1446
1447template <>
1448class JoinTraits<double, unsigned long long>
1449{
1450public:
1451 using ValueType = double;
1452};
1453
1454template <>
1455class JoinTraits<double, float>
1456{
1457public:
1458 using ValueType = double;
1459};
1460
1461template <>
1462class JoinTraits<double, double>
1463{
1464public:
1465 using ValueType = double;
1466};
1467
1469
1470} // end namespace itk
1471
1472#endif // itkPixelTraits_h
Trait to determine what datatype is needed if the specified pixel types are "joined" into a single ve...
Traits for a pixel that define the dimension and component type.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
STL namespace.