LSSTApplications  10.0+286,10.0+36,10.0+46,10.0-2-g4f67435,10.1+152,10.1+37,11.0,11.0+1,11.0-1-g47edd16,11.0-1-g60db491,11.0-1-g7418c06,11.0-2-g04d2804,11.0-2-g68503cd,11.0-2-g818369d,11.0-2-gb8b8ce7
LSSTDataManagementBasePackage
types.h
Go to the documentation of this file.
1 // -*- lsst-c++ -*-
2 #ifndef AFW_TABLE_types_h_INCLUDED
3 #define AFW_TABLE_types_h_INCLUDED
4 
5 #include <cstring>
6 #include <iostream>
7 
8 #include "boost/mpl/vector.hpp"
9 #include "boost/preprocessor/punctuation/paren.hpp"
10 #include "Eigen/Core"
11 
12 #include "lsst/base.h"
13 #include "lsst/pex/exceptions.h"
14 #include "ndarray.h"
15 #include "lsst/afw/geom.h"
16 #include "lsst/afw/geom/ellipses.h"
17 #include "lsst/afw/coord.h"
18 #include "lsst/afw/table/misc.h"
19 #include "lsst/afw/table/KeyBase.h"
20 
28 // Scalar types: those that can serve as elements for other types, and use the default FieldBase template.
29 #define AFW_TABLE_SCALAR_FIELD_TYPE_N 6
30 #define AFW_TABLE_SCALAR_FIELD_TYPES \
31  RecordId, boost::uint16_t, boost::int32_t, float, double, Angle
32 #define AFW_TABLE_SCALAR_FIELD_TYPE_TUPLE BOOST_PP_LPAREN() AFW_TABLE_SCALAR_FIELD_TYPES BOOST_PP_RPAREN()
33 
34 // Arrays types: the types we allow for Array fields.
35 #define AFW_TABLE_ARRAY_FIELD_TYPE_N 4
36 #define AFW_TABLE_ARRAY_FIELD_TYPES \
37  boost::uint16_t, int, float, double
38 #define AFW_TABLE_ARRAY_FIELD_TYPE_TUPLE BOOST_PP_LPAREN() AFW_TABLE_ARRAY_FIELD_TYPES BOOST_PP_RPAREN()
39 
40 // Field types: all the types we allow for fields.
41 #define AFW_TABLE_FIELD_TYPE_N 12
42 #define AFW_TABLE_FIELD_TYPES \
43  AFW_TABLE_SCALAR_FIELD_TYPES, \
44  Flag, std::string, \
45  Array<boost::uint16_t>, Array<int>, Array<float>, Array<double>
46 
47 #define AFW_TABLE_FIELD_TYPE_TUPLE BOOST_PP_LPAREN() AFW_TABLE_FIELD_TYPES BOOST_PP_RPAREN()
48 
49 namespace lsst { namespace afw { namespace table {
50 
52 typedef boost::mpl::vector< AFW_TABLE_SCALAR_FIELD_TYPES > ScalarFieldTypes;
53 
55 typedef boost::mpl::vector< AFW_TABLE_FIELD_TYPES > FieldTypes;
56 
57 }}} // namespace lsst::afw::table
58 
59 #endif // !AFW_TABLE_types_h_INCLUDED
An include file to include the header files for lsst::afw::geom.
Public header class for ellipse library.
An include file to include the header files for lsst::afw::coord.
Include files required for standard LSST Exception handling.
boost::mpl::vector< RecordId, boost::uint16_t, boost::int32_t, float, double, Angle, Flag, std::string, Array< boost::uint16_t >, Array< int >, Array< float >, Array< double > > FieldTypes
An MPL vector of all field types.
Definition: types.h:55
boost::mpl::vector< RecordId, boost::uint16_t, boost::int32_t, float, double, Angle > ScalarFieldTypes
An MPL vector of scalar field types.
Definition: types.h:52