Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef LOADEDGES_3D_H
00018 #define LOADEDGES_3D_H
00019
00020 #include <set>
00021 #include <iostream>
00022
00023 #include "hogman_minimal/math/transformation.h"
00024
00025 namespace AISNavigation {
00026
00027 struct LoadedEdge3D
00028 {
00029 int id1, id2;
00030 Transformation3 mean;
00031 Matrix6 informationMatrix;
00032 };
00033
00034 struct LoadedEdgeComparator3D
00035 {
00036 inline bool operator()(const LoadedEdge3D& e1, const LoadedEdge3D& e2){
00037 int i11=e1.id1, i12=e1.id2;
00038 if (i11>i12){
00039 i11=e1.id2;
00040 i12=e1.id1;
00041 }
00042 int i21=e2.id1, i22=e2.id2;
00043 if (i21>i22){
00044 i21=e2.id2;
00045 i22=e2.id1;
00046 }
00047 if (i12<i22)
00048 return true;
00049 if (i12>i22)
00050 return false;
00051 return (i11<i21);
00052 }
00053 };
00054
00055 typedef std::set<LoadedEdge3D, LoadedEdgeComparator3D> LoadedEdgeSet3D;
00056
00057 void loadEdges3D(LoadedEdgeSet3D& edges, std::istream& is, bool overrideCovariances = false);
00058
00059 }
00060
00061 #endif