35 #ifndef INCLUDE_NRT_POINTCLOUD2_POINTCLOUD2_H
36 #define INCLUDE_NRT_POINTCLOUD2_POINTCLOUD2_H
38 #include <nrt/config.h>
41 #include <type_traits>
51 #include <nrt/External/cereal/types/memory.hpp>
142 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, 3, 1>
Vector3;
144 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, 4, 1>
Vector4;
146 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, Eigen::Dynamic, 1>
VectorX;
149 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, 3, 3>
Matrix3;
151 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, 4, 4>
Matrix4;
153 typedef Eigen::Matrix<POINTCLOUD2_BASE_TYPE, Eigen::Dynamic, Eigen::Dynamic>
MatrixX;
202 template <
class ... Fields>
268 template <
class ... Fields>
281 template <
class ... Fields>
366 template <
class ... Fields>
384 template <
class ... Fields>
415 template <
class ... Fields>
friend class Iterator;
477 template <
class T,
class ... OtherT>
500 template <
class T,
class ... OtherT>
523 template <
class T,
class ... OtherT>
558 template <
class T,
class ... OtherT>
581 template <
class T,
class ... OtherT>
604 template <
class T,
class ... OtherT>
671 template <
class T,
class ... OtherT>
695 template <
class T,
class ... OtherT>
719 template <
class T,
class ... OtherT>
761 template <
class T,
class ... OtherT>
785 template <
class T,
class ... OtherT>
809 template <
class T,
class ... OtherT>
897 template <
class T,
class ... OtherT>
920 template <
class T,
class ... OtherT>
943 template <
class T,
class ... OtherT>
969 template <
class T,
class ... OtherT>
993 template <
class T,
class ... OtherT>
1017 template <
class T,
class ... OtherT>
1066 template <
class ... Fields>
1085 template <
class ... Fields>
1086 void insertSparse(
size_t const index, StreamableGenericBag<Fields...>
const & data );
1111 void remove(
size_t index );
1118 template <
class Field>
1119 void remove(
size_t index );
1166 template <
class ... Fields>
struct addFieldHelper;
1167 template <
class ... Fields>
friend struct addFieldHelper;
1170 template <
class ... Fields>
struct removeFieldHelper;
1171 template <
class ... Fields>
friend struct removeFieldHelper;
1174 template <
size_t Index>
struct insertDataHelper;
1175 template <
size_t Index>
friend struct insertDataHelper;
1178 template <
class ... T>
struct insertionChecker;
1179 template <
class ... T>
friend struct insertionChecker;
1182 template <
class RetT,
class ... T>
struct lookupHelper;
1183 template <
class RetT,
class ... T>
friend struct lookupHelper;
1186 template <
class RetT,
class ... T>
struct pointerHelper;
1187 template <
class RetT,
class ... T>
friend struct pointerHelper;
1190 template <
class ... T>
struct sparseExistHelper;
1191 template <
class ... T>
friend struct sparseExistHelper;
1199 template <
class ... T>
struct sparseOnlyExistHelper;
1200 template <
class ... T>
friend struct sparseOnlyExistHelper;
1203 template <
class ... T>
struct sparseInsertHelper;
1204 template <
class ... T>
friend struct sparseInsertHelper;
1208 typename std::enable_if<!std::is_base_of<SparseFieldCore, T>::value,
void>::type
1213 typename std::enable_if<std::is_base_of<SparseFieldCore, T>::value,
void>::type
1218 void removeDataField();
1224 void insertFieldData(
size_t index, T
const & data );
1229 T & getFieldData(
size_t index );
1234 T
const & getFieldData(
size_t index )
const;
1237 void deepCopyIfNotUnique();
1242 void insertEqualize(
size_t const size );
1251 void invalidateCache();
1258 std::shared_ptr<Memory> itsData;
1269 friend class cereal::access;
1272 template <
class Archive>
inline
1273 void save( Archive & ar )
const
1277 itsSparseExistCache,
1282 template <
class Archive>
inline
1283 void load( Archive & ar )
1287 itsSparseExistCache,
1318 std::string
const &
field()
const;
1321 std::string itsField;
1322 std::string whatstring;
1335 std::string whatstring;
1342 #endif // INCLUDE_NRT_POINTCLOUD2_POINTCLOUD2_H
1343 #endif // NRT_HAVE_CLOUD