cartodata 6.0.0
volumebase_d_instantiate.h
Go to the documentation of this file.
1/* This software and supporting documentation are distributed by
2 * Institut Federatif de Recherche 49
3 * CEA/NeuroSpin, Batiment 145,
4 * 91191 Gif-sur-Yvette cedex
5 * France
6 *
7 * This software is governed by the CeCILL-B license under
8 * French law and abiding by the rules of distribution of free software.
9 * You can use, modify and/or redistribute the software under the
10 * terms of the CeCILL-B license as circulated by CEA, CNRS
11 * and INRIA at the following URL "http://www.cecill.info".
12 *
13 * As a counterpart to the access to the source code and rights to copy,
14 * modify and redistribute granted by the license, users are provided only
15 * with a limited warranty and the software's author, the holder of the
16 * economic rights, and the successive licensors have only limited
17 * liability.
18 *
19 * In this respect, the user's attention is drawn to the risks associated
20 * with loading, using, modifying and/or developing or reproducing the
21 * software by the user in light of its specific status of free software,
22 * that may mean that it is complicated to manipulate, and that also
23 * therefore means that it is reserved for developers and experienced
24 * professionals having in-depth computer knowledge. Users are therefore
25 * encouraged to load and test the software's suitability as regards their
26 * requirements in conditions enabling the security of their systems and/or
27 * data to be ensured and, more generally, to use and operate it in the
28 * same conditions as regards security.
29 *
30 * The fact that you are presently reading this means that you have had
31 * knowledge of the CeCILL-B license and that you accept its terms.
32 */
33
34#ifndef CARTODATA_VOLUME_VOLUMEBASE_D_INSTANTIATE_H
35#define CARTODATA_VOLUME_VOLUMEBASE_D_INSTANTIATE_H
36
37//--- cartodata --------------------------------------------------------------
39//--- cartobase --------------------------------------------------------------
40#include <cartobase/smart/rcptr.h>
41#include <cartobase/type/types.h>
42#include <cartobase/type/voxelrgb.h>
43#include <cartobase/type/voxelhsv.h>
44#include <soma-io/vector/vector.h>
45//----------------------------------------------------------------------------
46
47namespace carto {
48
49//============================================================================
50// I N S T A N C I A T I O N
51//============================================================================
52
53 extern template class Volume<bool>;
54 extern template class Volume<int8_t>;
55 extern template class Volume<uint8_t>;
56 // ### remove after everything has been moved to intN_t/uintN_t
57#if !defined(__sun__) || !defined(_CHAR_IS_SIGNED)
58 extern template class Volume<char>;
59#endif
60 extern template class Volume<int16_t>;
61 extern template class Volume<uint16_t>;
62 extern template class Volume<int32_t>;
63 extern template class Volume<uint32_t>;
64 extern template class Volume<int64_t>;
65 extern template class Volume<uint64_t>;
66 extern template class Volume<float>;
67 extern template class Volume<double>;
68 extern template class Volume<cfloat>;
69 extern template class Volume<cdouble>;
70 extern template class Volume< std::map<int, float> >;
71 extern template class Volume< soma::VoxelRGB >;
72 extern template class Volume< soma::VoxelRGBA >;
73 extern template class Volume< soma::VoxelHSV >;
74 extern template class Volume<Point3df>;
75 extern template class Volume<Point3d>;
76 extern template class Volume<Point3dd>;
77 extern template class Volume<Point2d>;
78 extern template class Volume<AimsVector<float,6> >;
79#ifdef CARTO_LONG_IS_DISTINCT
80 extern template class Volume<long>;
81 extern template class Volume<unsigned long>;
82#endif
83
84 extern template class Creator<Volume<bool> >;
85 extern template class Creator<Volume<int8_t> >;
86 extern template class Creator<Volume<uint8_t> >;
87 // ### remove after everything has been moved to intN_t/uintN_t
88#if !defined(__sun__) || !defined(_CHAR_IS_SIGNED)
89 extern template class Creator<Volume<char> >;
90#endif
91 extern template class Creator<Volume<int16_t> >;
92 extern template class Creator<Volume<uint16_t> >;
93 extern template class Creator<Volume<int32_t> >;
94 extern template class Creator<Volume<uint32_t> >;
95 extern template class Creator<Volume<int64_t> >;
96 extern template class Creator<Volume<uint64_t> >;
97 extern template class Creator<Volume<float> >;
98 extern template class Creator<Volume<double> >;
99 extern template class Creator<Volume<cfloat> >;
100 extern template class Creator<Volume<cdouble> >;
101 extern template class Creator<Volume< std::map<int, float> > >;
102 extern template class Creator<Volume<soma::VoxelRGB> >;
103 extern template class Creator<Volume<soma::VoxelRGBA> >;
104 extern template class Creator<Volume<soma::VoxelHSV> >;
105 extern template class Creator<Point3df>;
106 extern template class Creator<Point3d>;
107 extern template class Creator<Point3dd>;
108 extern template class Creator<Point2d>;
109 extern template class Creator<AimsVector<float,6> >;
110#ifdef CARTO_LONG_IS_DISTINCT
111 extern template class Creator<Volume<long> >;
112 extern template class Creator<Volume<unsigned long> >;
113#endif
114
116 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< int8_t > > )
117 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< uint8_t > > )
118#if !defined(__sun__) || !defined(_CHAR_IS_SIGNED)
120#endif
122 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< uint16_t > > )
123 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< int32_t > > )
124 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< uint32_t > > )
125 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< int64_t > > )
126 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< uint64_t > > )
127 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< float > > )
128 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< double > > )
129 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< cfloat > > )
130 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< cdouble > > )
131 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< soma::VoxelRGB > > )
132 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< soma::VoxelRGBA > > )
133 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< soma::VoxelHSV > > )
134 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< Point3df > > )
135 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< Point3d > > )
136 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< Point3dd > > )
137 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< Point2d > > )
138#define CARTO_COMA ,
140#undef CARTO_COMA
141#ifdef CARTO_LONG_IS_DISTINCT
142 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< long > > )
143 DECLARE_GENERIC_OBJECT_TYPE( rc_ptr<Volume< unsigned long > > )
144#endif
145
146} // namespace carto
147
148#endif // CARTODATA_VOLUME_VOLUMEBASE_D_INSTANTIATE_H
N-D Volume main class.
Definition volumebase.h:120
#define DECLARE_GENERIC_OBJECT_TYPE(T)