Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
igl::serialization Namespace Reference

Classes

struct  is_eigen_type
 
struct  is_eigen_type< Eigen::Matrix< T, R, C, P, MR, MC > >
 
struct  is_eigen_type< Eigen::SparseMatrix< T, P, I > >
 
struct  is_serializable
 
struct  is_smart_ptr
 
struct  is_smart_ptr< std::shared_ptr< T > >
 
struct  is_smart_ptr< std::unique_ptr< T > >
 
struct  is_smart_ptr< std::weak_ptr< T > >
 
struct  is_stl_container
 
struct  is_stl_container< std::list< T > >
 
struct  is_stl_container< std::map< T1, T2 > >
 
struct  is_stl_container< std::pair< T1, T2 > >
 
struct  is_stl_container< std::set< T > >
 
struct  is_stl_container< std::vector< T1, T2 > >
 

Functions

void serialization (bool s, igl::opengl::ViewerCore &obj, std::vector< char > &buffer)
 
template<>
void serialize (const igl::opengl::ViewerCore &obj, std::vector< char > &buffer)
 
template<>
void deserialize (igl::opengl::ViewerCore &obj, const std::vector< char > &buffer)
 
void serialization (bool s, igl::opengl::ViewerData &obj, std::vector< char > &buffer)
 
template<>
void serialize (const igl::opengl::ViewerData &obj, std::vector< char > &buffer)
 
template<>
void deserialize (igl::opengl::ViewerData &obj, const std::vector< char > &buffer)
 
template<typename T >
std::enable_if<!is_serializable< T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if<!is_serializable< T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
std::enable_if<!is_serializable< T >::value >::type deserialize (T &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
std::enable_if< std::is_fundamental< T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if< std::is_fundamental< T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
std::enable_if< std::is_fundamental< T >::value >::type deserialize (T &obj, std::vector< char >::const_iterator &iter)
 
size_t getByteSize (const std::string &obj)
 
void serialize (const std::string &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
void deserialize (std::string &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
std::enable_if< std::is_enum< T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if< std::is_enum< T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
std::enable_if< std::is_enum< T >::value >::type deserialize (T &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value >::type deserialize (T &obj, std::vector< char >::const_iterator &iter)
 
template<typename T1 , typename T2 >
size_t getByteSize (const std::pair< T1, T2 > &obj)
 
template<typename T1 , typename T2 >
void serialize (const std::pair< T1, T2 > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T1 , typename T2 >
void deserialize (std::pair< T1, T2 > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T1 , typename T2 >
size_t getByteSize (const std::vector< T1, T2 > &obj)
 
template<typename T1 , typename T2 >
void serialize (const std::vector< T1, T2 > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T1 , typename T2 >
void deserialize (std::vector< T1, T2 > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T2 >
void deserialize (std::vector< bool, T2 > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
size_t getByteSize (const std::set< T > &obj)
 
template<typename T >
void serialize (const std::set< T > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
void deserialize (std::set< T > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T1 , typename T2 >
size_t getByteSize (const std::map< T1, T2 > &obj)
 
template<typename T1 , typename T2 >
void serialize (const std::map< T1, T2 > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T1 , typename T2 >
void deserialize (std::map< T1, T2 > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
size_t getByteSize (const std::list< T > &obj)
 
template<typename T >
void serialize (const std::list< T > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
void deserialize (std::list< T > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T , int R, int C, int P, int MR, int MC>
size_t getByteSize (const Eigen::Matrix< T, R, C, P, MR, MC > &obj)
 
template<typename T , int R, int C, int P, int MR, int MC>
void serialize (const Eigen::Matrix< T, R, C, P, MR, MC > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T , int R, int C, int P, int MR, int MC>
void deserialize (Eigen::Matrix< T, R, C, P, MR, MC > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T , int P, typename I >
size_t getByteSize (const Eigen::SparseMatrix< T, P, I > &obj)
 
template<typename T , int P, typename I >
void serialize (const Eigen::SparseMatrix< T, P, I > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T , int P, typename I >
void deserialize (Eigen::SparseMatrix< T, P, I > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T , int P>
size_t getByteSize (const Eigen::Quaternion< T, P > &obj)
 
template<typename T , int P>
void serialize (const Eigen::Quaternion< T, P > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T , int P>
void deserialize (Eigen::Quaternion< T, P > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
std::enable_if< std::is_pointer< T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if< std::is_pointer< T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
std::enable_if< std::is_pointer< T >::value >::type deserialize (T &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
std::enable_if< serialization::is_smart_ptr< T >::value, size_t >::type getByteSize (const T &obj)
 
template<typename T >
std::enable_if< serialization::is_smart_ptr< T >::value >::type serialize (const T &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<template< typename > class T0, typename T1 >
std::enable_if< serialization::is_smart_ptr< T0< T1 > >::value >::type deserialize (T0< T1 > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
size_t getByteSize (const std::weak_ptr< T > &obj)
 
template<typename T >
void serialize (const std::weak_ptr< T > &obj, std::vector< char > &buffer, std::vector< char >::iterator &iter)
 
template<typename T >
void deserialize (std::weak_ptr< T > &obj, std::vector< char >::const_iterator &iter)
 
template<typename T >
void serialize (const T &obj, std::vector< char > &buffer)
 
template<typename T >
void deserialize (T &obj, const std::vector< char > &buffer)
 
template<typename T >
void updateMemoryMap (T &obj, size_t size)
 
template<typename T >
void updateMemoryMap (T &obj, size_t size, std::map< std::uintptr_t, IndexedPointerBase * > &memoryMap)
 

Function Documentation

◆ deserialize() [1/20]

template<typename T , int R, int C, int P, int MR, int MC>
void igl::serialization::deserialize ( Eigen::Matrix< T, R, C, P, MR, MC > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1021 {
1022 typename Eigen::Matrix<T,R,C,P,MR,MC>::Index rows,cols;
1023 serialization::deserialize(rows,iter);
1024 serialization::deserialize(cols,iter);
1025 size_t size = sizeof(T)*rows*cols;
1026 obj.resize(rows,cols);
1027 auto ptr = reinterpret_cast<uint8_t*>(obj.data());
1028 std::copy(iter,iter+size,ptr);
1029 iter+=size;
1030 }
The matrix class, also used for vectors and row-vectors.
Definition Matrix.h:180
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Scalar * data() const
Definition PlainObjectBase.h:255
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void resize(Index rows, Index cols)
Definition PlainObjectBase.h:279
unsigned __int8 uint8_t
Definition unistd.h:77

References Eigen::PlainObjectBase< Derived >::data(), deserialize(), and Eigen::PlainObjectBase< Derived >::resize().

+ Here is the call graph for this function:

◆ deserialize() [2/20]

template<typename T , int P>
void igl::serialization::deserialize ( Eigen::Quaternion< T, P > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1099 {
1100 serialization::deserialize(obj.w(),iter);
1101 serialization::deserialize(obj.x(),iter);
1102 serialization::deserialize(obj.y(),iter);
1103 serialization::deserialize(obj.z(),iter);
1104 }
EIGEN_DEVICE_FUNC CoeffReturnType w() const
Definition Quaternion.h:72
EIGEN_DEVICE_FUNC CoeffReturnType y() const
Definition Quaternion.h:68
EIGEN_DEVICE_FUNC CoeffReturnType x() const
Definition Quaternion.h:66
EIGEN_DEVICE_FUNC CoeffReturnType z() const
Definition Quaternion.h:70

References deserialize(), Eigen::QuaternionBase< Derived >::w(), Eigen::QuaternionBase< Derived >::x(), Eigen::QuaternionBase< Derived >::y(), and Eigen::QuaternionBase< Derived >::z().

+ Here is the call graph for this function:

◆ deserialize() [3/20]

template<typename T , int P, typename I >
void igl::serialization::deserialize ( Eigen::SparseMatrix< T, P, I > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1060 {
1061 typename Eigen::SparseMatrix<T,P,I>::Index rows,cols,nonZeros;
1062 serialization::deserialize(rows,iter);
1063 serialization::deserialize(cols,iter);
1064 serialization::deserialize(nonZeros,iter);
1065
1066 obj.resize(rows,cols);
1067 obj.setZero();
1068
1069 std::vector<Eigen::Triplet<T,I> > triplets;
1070 for(int i=0;i<nonZeros;i++)
1071 {
1072 typename Eigen::SparseMatrix<T,P,I>::Index rowId,colId;
1073 serialization::deserialize(rowId,iter);
1074 serialization::deserialize(colId,iter);
1075 T value;
1076 serialization::deserialize(value,iter);
1077 triplets.push_back(Eigen::Triplet<T,I>(rowId,colId,value));
1078 }
1079 obj.setFromTriplets(triplets.begin(),triplets.end());
1080 }
void setFromTriplets(const InputIterators &begin, const InputIterators &end)
Definition SparseMatrix.h:993
void setZero()
Definition SparseMatrix.h:251
void resize(Index rows, Index cols)
Definition SparseMatrix.h:621
A small structure to hold a non zero as a triplet (i,j,value).
Definition SparseUtil.h:155
Eigen::Index Index
The interface type of indices.
Definition EigenBase.h:38

References deserialize(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::resize(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::setFromTriplets(), and Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::setZero().

+ Here is the call graph for this function:

◆ deserialize() [4/20]

template<>
void igl::serialization::deserialize ( igl::opengl::ViewerCore obj,
const std::vector< char > &  buffer 
)
inline
189 {
190 serialization(false, obj, const_cast<std::vector<char>&>(buffer));
191 }
void serialization(bool s, igl::opengl::ViewerCore &obj, std::vector< char > &buffer)
Definition ViewerCore.h:146

References serialization().

Referenced by deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), deserialize(), igl::deserialize(), deserialize(), and deserialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ deserialize() [5/20]

template<>
void igl::serialization::deserialize ( igl::opengl::ViewerData obj,
const std::vector< char > &  buffer 
)
inline
265 {
266 serialization(false, obj, const_cast<std::vector<char>&>(buffer));
268 }
@ DIRTY_ALL
Definition MeshGL.h:42
uint32_t dirty
Definition ViewerData.h:174

References igl::opengl::ViewerData::dirty, igl::opengl::MeshGL::DIRTY_ALL, and serialization().

+ Here is the call graph for this function:

◆ deserialize() [6/20]

template<typename T >
void igl::serialization::deserialize ( std::list< T > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
987 {
988 size_t size;
989 serialization::deserialize(size, iter);
990
991 obj.clear();
992 for (size_t i = 0; i < size; ++i)
993 {
994 T val;
995 serialization::deserialize(val, iter);
996 obj.emplace_back(val);
997 }
998 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [7/20]

template<typename T1 , typename T2 >
void igl::serialization::deserialize ( std::map< T1, T2 > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
954 {
955 size_t size;
956 serialization::deserialize(size,iter);
957
958 obj.clear();
959 for(size_t i=0; i<size; ++i)
960 {
961 std::pair<T1,T2> pair;
962 serialization::deserialize(pair,iter);
963 obj.insert(pair);
964 }
965 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [8/20]

template<typename T1 , typename T2 >
void igl::serialization::deserialize ( std::pair< T1, T2 > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
849 {
850 serialization::deserialize(obj.first,iter);
851 serialization::deserialize(obj.second,iter);
852 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [9/20]

template<typename T >
void igl::serialization::deserialize ( std::set< T > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
921 {
922 size_t size;
923 serialization::deserialize(size,iter);
924
925 obj.clear();
926 for(size_t i=0; i<size; ++i)
927 {
928 T val;
929 serialization::deserialize(val,iter);
930 obj.insert(val);
931 }
932 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [10/20]

void igl::serialization::deserialize ( std::string &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
755 {
756 size_t size;
757 serialization::deserialize(size,iter);
758
759 std::string str(size,'\0');
760 for(size_t i=0; i<size; ++i)
761 {
762 serialization::deserialize(str.at(i),iter);
763 }
764
765 obj = str;
766 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [11/20]

template<typename T2 >
void igl::serialization::deserialize ( std::vector< bool, T2 > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
888 {
889 size_t size;
890 serialization::deserialize(size,iter);
891
892 obj.resize(size);
893 for(int i=0;i<obj.size();i++)
894 {
895 bool val;
896 serialization::deserialize(val,iter);
897 obj[i] = val;
898 }
899 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [12/20]

template<typename T1 , typename T2 >
void igl::serialization::deserialize ( std::vector< T1, T2 > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
875 {
876 size_t size;
877 serialization::deserialize(size,iter);
878
879 obj.resize(size);
880 for(T1& v : obj)
881 {
882 serialization::deserialize(v,iter);
883 }
884 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [13/20]

template<typename T >
void igl::serialization::deserialize ( std::weak_ptr< T > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1203 {
1204
1205 }

◆ deserialize() [14/20]

template<typename T >
void igl::serialization::deserialize ( T &  obj,
const std::vector< char > &  buffer 
)
inline
1216 {
1217 std::cerr << typeid(obj).name() << " is not deserializable: derive from igl::Serializable or spezialize the template function igl::serialization::deserialize(T& obj, const std::vector<char>& buffer)" << std::endl;
1218 }

◆ deserialize() [15/20]

template<typename T >
std::enable_if<!is_serializable< T >::value >::type igl::serialization::deserialize ( T &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
702 {
703 std::vector<char>::size_type size;
704 serialization::deserialize<>(size,iter);
705
706 std::vector<char> tmp;
707 tmp.resize(size);
708 std::copy(iter,iter+size,tmp.begin());
709
710 deserialize<>(obj,tmp);
711 iter += size;
712 }

◆ deserialize() [16/20]

template<typename T >
std::enable_if< std::is_fundamental< T >::value >::type igl::serialization::deserialize ( T &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
732 {
733 uint8_t* ptr = reinterpret_cast<uint8_t*>(&obj);
734 std::copy(iter,iter+sizeof(T),ptr);
735 iter += sizeof(T);
736 }

◆ deserialize() [17/20]

template<typename T >
std::enable_if< std::is_enum< T >::value >::type igl::serialization::deserialize ( T &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
785 {
786 uint8_t* ptr = reinterpret_cast<uint8_t*>(&obj);
787 std::copy(iter,iter+sizeof(T),ptr);
788 iter += sizeof(T);
789 }

◆ deserialize() [18/20]

template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value >::type igl::serialization::deserialize ( T &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
818 {
819 std::vector<char>::size_type size;
820 serialization::deserialize(size,iter);
821
822 std::vector<char> tmp;
823 tmp.resize(size);
824 std::copy(iter,iter+size,tmp.begin());
825
826 obj.Deserialize(tmp);
827 iter += size;
828 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [19/20]

template<typename T >
std::enable_if< std::is_pointer< T >::value >::type igl::serialization::deserialize ( T &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1130 {
1131 bool isNullPtr;
1132 serialization::deserialize(isNullPtr,iter);
1133
1134 if(isNullPtr)
1135 {
1136 if(obj)
1137 {
1138 std::cout << "serialization: possible memory leak in serialization for '" << typeid(obj).name() << "'" << std::endl;
1139 obj = nullptr;
1140 }
1141 }
1142 else
1143 {
1144 if(obj)
1145 {
1146 std::cout << "serialization: possible memory corruption in deserialization for '" << typeid(obj).name() << "'" << std::endl;
1147 }
1148 else
1149 {
1150 obj = new typename std::remove_pointer<T>::type();
1151 }
1152 serialization::deserialize(*obj,iter);
1153 }
1154 }

References deserialize().

+ Here is the call graph for this function:

◆ deserialize() [20/20]

template<template< typename > class T0, typename T1 >
std::enable_if< serialization::is_smart_ptr< T0< T1 > >::value >::type igl::serialization::deserialize ( T0< T1 > &  obj,
std::vector< char >::const_iterator &  iter 
)
inline
1172 {
1173 bool isNullPtr;
1174 serialization::deserialize(isNullPtr,iter);
1175
1176 if(isNullPtr)
1177 {
1178 obj.reset();
1179 }
1180 else
1181 {
1182 obj = T0<T1>(new T1());
1183 serialization::deserialize(*obj,iter);
1184 }
1185 }

References deserialize().

+ Here is the call graph for this function:

◆ getByteSize() [1/16]

template<typename T , int R, int C, int P, int MR, int MC>
size_t igl::serialization::getByteSize ( const Eigen::Matrix< T, R, C, P, MR, MC > &  obj)
inline
1004 {
1005 // space for numbers of rows,cols and data
1006 return 2*sizeof(typename Eigen::Matrix<T,R,C,P,MR,MC>::Index)+sizeof(T)*obj.rows()*obj.cols();
1007 }
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index cols() const
Definition PlainObjectBase.h:153
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index rows() const
Definition PlainObjectBase.h:151

References Eigen::PlainObjectBase< Derived >::cols(), and Eigen::PlainObjectBase< Derived >::rows().

+ Here is the call graph for this function:

◆ getByteSize() [2/16]

template<typename T , int P>
size_t igl::serialization::getByteSize ( const Eigen::Quaternion< T, P > &  obj)
inline
1084 {
1085 return sizeof(T)*4;
1086 }

◆ getByteSize() [3/16]

template<typename T , int P, typename I >
size_t igl::serialization::getByteSize ( const Eigen::SparseMatrix< T, P, I > &  obj)
inline
1034 {
1035 // space for numbers of rows,cols,nonZeros and tripplets with data (rowIdx,colIdx,value)
1036 size_t size = sizeof(typename Eigen::SparseMatrix<T,P,I>::Index);
1037 return 3*size+(sizeof(T)+2*size)*obj.nonZeros();
1038 }
Index nonZeros() const
Definition SparseCompressedBase.h:56

References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::nonZeros().

+ Here is the call graph for this function:

◆ getByteSize() [4/16]

template<typename T >
size_t igl::serialization::getByteSize ( const std::list< T > &  obj)
inline
971 {
972 return std::accumulate(obj.begin(), obj.end(), getByteSize(obj.size()), [](const size_t& acc, const T& cur) { return acc + getByteSize(cur); });
973 }
std::enable_if<!is_serializable< T >::value, size_t >::type getByteSize(const T &obj)
Definition serialize.h:678

References getByteSize().

+ Here is the call graph for this function:

◆ getByteSize() [5/16]

template<typename T1 , typename T2 >
size_t igl::serialization::getByteSize ( const std::map< T1, T2 > &  obj)
inline
938 {
939 return std::accumulate(obj.begin(),obj.end(),sizeof(size_t),[](const size_t& acc,const std::pair<T1,T2>& cur) { return acc+getByteSize(cur); });
940 }

◆ getByteSize() [6/16]

template<typename T1 , typename T2 >
size_t igl::serialization::getByteSize ( const std::pair< T1, T2 > &  obj)
inline
836 {
837 return getByteSize(obj.first)+getByteSize(obj.second);
838 }

References getByteSize().

+ Here is the call graph for this function:

◆ getByteSize() [7/16]

template<typename T >
size_t igl::serialization::getByteSize ( const std::set< T > &  obj)
inline
905 {
906 return std::accumulate(obj.begin(),obj.end(),getByteSize(obj.size()),[](const size_t& acc,const T& cur) { return acc+getByteSize(cur); });
907 }

References getByteSize().

+ Here is the call graph for this function:

◆ getByteSize() [8/16]

size_t igl::serialization::getByteSize ( const std::string &  obj)
inline
741 {
742 return getByteSize(obj.length())+obj.length()*sizeof(uint8_t);
743 }

References getByteSize().

+ Here is the call graph for this function:

◆ getByteSize() [9/16]

template<typename T1 , typename T2 >
size_t igl::serialization::getByteSize ( const std::vector< T1, T2 > &  obj)
inline
858 {
859 return std::accumulate(obj.begin(),obj.end(),sizeof(size_t),[](const size_t& acc,const T1& cur) { return acc+getByteSize(cur); });
860 }

◆ getByteSize() [10/16]

template<typename T >
size_t igl::serialization::getByteSize ( const std::weak_ptr< T > &  obj)
inline
1191 {
1192 return sizeof(size_t);
1193 }

◆ getByteSize() [11/16]

template<typename T >
std::enable_if<!is_serializable< T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
679 {
680 return sizeof(std::vector<char>::size_type);
681 }

Referenced by getByteSize(), getByteSize(), getByteSize(), getByteSize(), getByteSize(), and igl::serialize().

+ Here is the caller graph for this function:

◆ getByteSize() [12/16]

template<typename T >
std::enable_if< std::is_fundamental< T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
718 {
719 return sizeof(T);
720 }

◆ getByteSize() [13/16]

template<typename T >
std::enable_if< std::is_enum< T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
772 {
773 return sizeof(T);
774 }

◆ getByteSize() [14/16]

template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
795 {
796 return sizeof(std::vector<char>::size_type);
797 }

◆ getByteSize() [15/16]

template<typename T >
std::enable_if< std::is_pointer< T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
1110 {
1111 size_t size = sizeof(bool);
1112
1113 if(obj)
1114 size += getByteSize(*obj);
1115
1116 return size;
1117 }

References getByteSize().

+ Here is the call graph for this function:

◆ getByteSize() [16/16]

template<typename T >
std::enable_if< serialization::is_smart_ptr< T >::value, size_t >::type igl::serialization::getByteSize ( const T &  obj)
inline
1160 {
1161 return getByteSize(obj.get());
1162 }

References getByteSize().

+ Here is the call graph for this function:

◆ serialization() [1/2]

void igl::serialization::serialization ( bool  s,
igl::opengl::ViewerCore obj,
std::vector< char > &  buffer 
)
inline
147 {
148
149 SERIALIZE_MEMBER(background_color);
150
151 SERIALIZE_MEMBER(light_position);
152 SERIALIZE_MEMBER(lighting_factor);
153
154 SERIALIZE_MEMBER(trackball_angle);
155 SERIALIZE_MEMBER(rotation_type);
156
157 SERIALIZE_MEMBER(camera_base_zoom);
158 SERIALIZE_MEMBER(camera_zoom);
159 SERIALIZE_MEMBER(orthographic);
160 SERIALIZE_MEMBER(camera_base_translation);
161 SERIALIZE_MEMBER(camera_translation);
162 SERIALIZE_MEMBER(camera_view_angle);
163 SERIALIZE_MEMBER(camera_dnear);
164 SERIALIZE_MEMBER(camera_dfar);
165 SERIALIZE_MEMBER(camera_eye);
166 SERIALIZE_MEMBER(camera_center);
167 SERIALIZE_MEMBER(camera_up);
168
169 SERIALIZE_MEMBER(depth_test);
170 SERIALIZE_MEMBER(is_animating);
171 SERIALIZE_MEMBER(animation_max_fps);
172
173 SERIALIZE_MEMBER(object_scale);
174
175 SERIALIZE_MEMBER(viewport);
176 SERIALIZE_MEMBER(view);
177 SERIALIZE_MEMBER(proj);
178 SERIALIZE_MEMBER(norm);
179 }
#define SERIALIZE_MEMBER(Object)
Definition serialize.h:68

References serialization(), and SERIALIZE_MEMBER.

Referenced by deserialize(), deserialize(), serialization(), serialization(), serialize(), and serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ serialization() [2/2]

void igl::serialization::serialization ( bool  s,
igl::opengl::ViewerData obj,
std::vector< char > &  buffer 
)
inline
221 {
224 SERIALIZE_MEMBER(F_normals);
225 SERIALIZE_MEMBER(F_material_ambient);
226 SERIALIZE_MEMBER(F_material_diffuse);
227 SERIALIZE_MEMBER(F_material_specular);
228 SERIALIZE_MEMBER(V_normals);
229 SERIALIZE_MEMBER(V_material_ambient);
230 SERIALIZE_MEMBER(V_material_diffuse);
231 SERIALIZE_MEMBER(V_material_specular);
232 SERIALIZE_MEMBER(V_uv);
233 SERIALIZE_MEMBER(F_uv);
234 SERIALIZE_MEMBER(texture_R);
235 SERIALIZE_MEMBER(texture_G);
236 SERIALIZE_MEMBER(texture_B);
237 SERIALIZE_MEMBER(texture_A);
238 SERIALIZE_MEMBER(lines);
239 SERIALIZE_MEMBER(points);
240 SERIALIZE_MEMBER(labels_positions);
241 SERIALIZE_MEMBER(labels_strings);
242 SERIALIZE_MEMBER(dirty);
243 SERIALIZE_MEMBER(face_based);
244 SERIALIZE_MEMBER(show_faces);
245 SERIALIZE_MEMBER(show_lines);
246 SERIALIZE_MEMBER(invert_normals);
247 SERIALIZE_MEMBER(show_overlay);
248 SERIALIZE_MEMBER(show_overlay_depth);
249 SERIALIZE_MEMBER(show_vertid);
250 SERIALIZE_MEMBER(show_faceid);
251 SERIALIZE_MEMBER(show_texture);
252 SERIALIZE_MEMBER(point_size);
253 SERIALIZE_MEMBER(line_width);
254 SERIALIZE_MEMBER(line_color);
255 SERIALIZE_MEMBER(shininess);
257 }

References serialization(), and SERIALIZE_MEMBER.

+ Here is the call graph for this function:

◆ serialize() [1/19]

template<typename T , int R, int C, int P, int MR, int MC>
void igl::serialization::serialize ( const Eigen::Matrix< T, R, C, P, MR, MC > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1011 {
1012 serialization::serialize(obj.rows(),buffer,iter);
1013 serialization::serialize(obj.cols(),buffer,iter);
1014 size_t size = sizeof(T)*obj.rows()*obj.cols();
1015 auto ptr = reinterpret_cast<const uint8_t*>(obj.data());
1016 iter = std::copy(ptr,ptr+size,iter);
1017 }

References Eigen::PlainObjectBase< Derived >::cols(), Eigen::PlainObjectBase< Derived >::data(), Eigen::PlainObjectBase< Derived >::rows(), and serialize().

+ Here is the call graph for this function:

◆ serialize() [2/19]

template<typename T , int P>
void igl::serialization::serialize ( const Eigen::Quaternion< T, P > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1090 {
1091 serialization::serialize(obj.w(),buffer,iter);
1092 serialization::serialize(obj.x(),buffer,iter);
1093 serialization::serialize(obj.y(),buffer,iter);
1094 serialization::serialize(obj.z(),buffer,iter);
1095 }

References serialize(), Eigen::QuaternionBase< Derived >::w(), Eigen::QuaternionBase< Derived >::x(), Eigen::QuaternionBase< Derived >::y(), and Eigen::QuaternionBase< Derived >::z().

+ Here is the call graph for this function:

◆ serialize() [3/19]

template<typename T , int P, typename I >
void igl::serialization::serialize ( const Eigen::SparseMatrix< T, P, I > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1042 {
1043 serialization::serialize(obj.rows(),buffer,iter);
1044 serialization::serialize(obj.cols(),buffer,iter);
1045 serialization::serialize(obj.nonZeros(),buffer,iter);
1046
1047 for(int k=0;k<obj.outerSize();++k)
1048 {
1049 for(typename Eigen::SparseMatrix<T,P,I>::InnerIterator it(obj,k);it;++it)
1050 {
1051 serialization::serialize(it.row(),buffer,iter);
1052 serialization::serialize(it.col(),buffer,iter);
1053 serialization::serialize(it.value(),buffer,iter);
1054 }
1055 }
1056 }
Definition SparseCompressedBase.h:137
Index outerSize() const
Definition SparseMatrix.h:143
Index rows() const
Definition SparseMatrix.h:136
Index cols() const
Definition SparseMatrix.h:138

References Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::cols(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::nonZeros(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::outerSize(), Eigen::SparseMatrix< _Scalar, _Options, _StorageIndex >::rows(), and serialize().

+ Here is the call graph for this function:

◆ serialize() [4/19]

template<>
void igl::serialization::serialize ( const igl::opengl::ViewerCore obj,
std::vector< char > &  buffer 
)
inline
183 {
184 serialization(true, const_cast<igl::opengl::ViewerCore&>(obj), buffer);
185 }
Definition ViewerCore.h:27

References serialization().

Referenced by serialize(), serialize(), serialize(), serialize(), serialize(), serialize(), serialize(), serialize(), serialize(), igl::serialize(), and serialize().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ serialize() [5/19]

template<>
void igl::serialization::serialize ( const igl::opengl::ViewerData obj,
std::vector< char > &  buffer 
)
inline
260 {
261 serialization(true, const_cast<igl::opengl::ViewerData&>(obj), buffer);
262 }
Definition ViewerData.h:30

References serialization().

+ Here is the call graph for this function:

◆ serialize() [6/19]

template<typename T >
void igl::serialization::serialize ( const std::list< T > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
977 {
978 serialization::serialize(obj.size(), buffer, iter);
979 for (const T& cur : obj)
980 {
981 serialization::serialize(cur, buffer, iter);
982 }
983 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [7/19]

template<typename T1 , typename T2 >
void igl::serialization::serialize ( const std::map< T1, T2 > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
944 {
945 serialization::serialize(obj.size(),buffer,iter);
946 for(const auto& cur : obj)
947 {
948 serialization::serialize(cur,buffer,iter);
949 }
950 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [8/19]

template<typename T1 , typename T2 >
void igl::serialization::serialize ( const std::pair< T1, T2 > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
842 {
843 serialization::serialize(obj.first,buffer,iter);
844 serialization::serialize(obj.second,buffer,iter);
845 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [9/19]

template<typename T >
void igl::serialization::serialize ( const std::set< T > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
911 {
912 serialization::serialize(obj.size(),buffer,iter);
913 for(const T& cur : obj)
914 {
915 serialization::serialize(cur,buffer,iter);
916 }
917 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [10/19]

void igl::serialization::serialize ( const std::string &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
746 {
747 serialization::serialize(obj.length(),buffer,iter);
748 for(const auto& cur : obj)
749 {
750 serialization::serialize(cur,buffer,iter);
751 }
752 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [11/19]

template<typename T1 , typename T2 >
void igl::serialization::serialize ( const std::vector< T1, T2 > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
864 {
865 size_t size = obj.size();
866 serialization::serialize(size,buffer,iter);
867 for(const T1& cur : obj)
868 {
869 serialization::serialize(cur,buffer,iter);
870 }
871 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [12/19]

template<typename T >
void igl::serialization::serialize ( const std::weak_ptr< T > &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1197 {
1198
1199 }

◆ serialize() [13/19]

template<typename T >
void igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer 
)
inline
1210 {
1211 std::cerr << typeid(obj).name() << " is not serializable: derive from igl::Serializable or spezialize the template function igl::serialization::serialize(const T& obj,std::vector<char>& buffer)" << std::endl;
1212 }

◆ serialize() [14/19]

template<typename T >
std::enable_if<!is_serializable< T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
685 {
686 // data
687 std::vector<char> tmp;
688 serialize<>(obj,tmp);
689
690 // size
691 size_t size = buffer.size();
692 serialization::serialize(tmp.size(),buffer,iter);
693 size_t cur = iter - buffer.begin();
694
695 buffer.resize(size+tmp.size());
696 iter = buffer.begin()+cur;
697 iter = std::copy(tmp.begin(),tmp.end(),iter);
698 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [15/19]

template<typename T >
std::enable_if< std::is_fundamental< T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
724 {
725 //serialization::updateMemoryMap(obj,sizeof(T));
726 const uint8_t* ptr = reinterpret_cast<const uint8_t*>(&obj);
727 iter = std::copy(ptr,ptr+sizeof(T),iter);
728 }

◆ serialize() [16/19]

template<typename T >
std::enable_if< std::is_enum< T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
778 {
779 const uint8_t* ptr = reinterpret_cast<const uint8_t*>(&obj);
780 iter = std::copy(ptr,ptr+sizeof(T),iter);
781 }

◆ serialize() [17/19]

template<typename T >
std::enable_if< std::is_base_of< SerializableBase, T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
801 {
802 // data
803 std::vector<char> tmp;
804 obj.Serialize(tmp);
805
806 // size
807 size_t size = buffer.size();
808 serialization::serialize(tmp.size(),buffer,iter);
809 size_t cur = iter - buffer.begin();
810
811 buffer.resize(size+tmp.size());
812 iter = buffer.begin()+cur;
813 iter = std::copy(tmp.begin(),tmp.end(),iter);
814 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [18/19]

template<typename T >
std::enable_if< std::is_pointer< T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1121 {
1122 serialization::serialize(obj == nullptr,buffer,iter);
1123
1124 if(obj)
1125 serialization::serialize(*obj,buffer,iter);
1126 }

References serialize().

+ Here is the call graph for this function:

◆ serialize() [19/19]

template<typename T >
std::enable_if< serialization::is_smart_ptr< T >::value >::type igl::serialization::serialize ( const T &  obj,
std::vector< char > &  buffer,
std::vector< char >::iterator &  iter 
)
inline
1166 {
1167 serialize(obj.get(),buffer,iter);
1168 }
void serialize(Archive &ar, FacenamesSerializer &t, const std::uint32_t version)
Definition GLGizmoEmboss.cpp:1562

References serialize().

+ Here is the call graph for this function:

◆ updateMemoryMap() [1/2]

template<typename T >
void igl::serialization::updateMemoryMap ( T &  obj,
size_t  size 
)
inline

◆ updateMemoryMap() [2/2]

template<typename T >
void igl::serialization::updateMemoryMap ( T &  obj,
size_t  size,
std::map< std::uintptr_t, IndexedPointerBase * > &  memoryMap 
)
inline
1224 {
1225 // check if object is already serialized
1226 auto startPtr = new IndexedPointer<T>();
1227 startPtr->Object = &obj;
1228 auto startBasePtr = static_cast<IndexedPointerBase*>(startPtr);
1229 startBasePtr->Type = IndexedPointerBase::BEGIN;
1230 auto startAddress = reinterpret_cast<std::uintptr_t>(&obj);
1231 auto p = std::pair<std::uintptr_t,IndexedPointerBase*>(startAddress,startBasePtr);
1232
1233 auto el = memoryMap.insert(p);
1234 auto iter = ++el.first; // next elememt
1235 if(el.second && (iter == memoryMap.end() || iter->second->Type != IndexedPointerBase::END))
1236 {
1237 // not yet serialized
1238 auto endPtr = new IndexedPointer<T>();
1239 auto endBasePtr = static_cast<IndexedPointerBase*>(endPtr);
1240 endBasePtr->Type = IndexedPointerBase::END;
1241 auto endAddress = reinterpret_cast<std::uintptr_t>(&obj) + size - 1;
1242 auto p = std::pair<std::uintptr_t,IndexedPointerBase*>(endAddress,endBasePtr);
1243
1244 // insert end address
1245 memoryMap.insert(el.first,p);
1246 }
1247 else
1248 {
1249 // already serialized
1250
1251 // remove inserted address
1252 memoryMap.erase(el.first);
1253 }
1254 }
Definition serialize.h:220
enum igl::IndexedPointerBase::@675 Type
Definition serialize.h:226

References igl::IndexedPointerBase::BEGIN, igl::IndexedPointerBase::END, and igl::IndexedPointerBase::Type.