GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Scatter.h
Go to the documentation of this file.
1 /* ----------------------------------------------------------------------------
2 
3  * GTSAM Copyright 2010, Georgia Tech Research Corporation,
4  * Atlanta, Georgia 30332-0415
5  * All Rights Reserved
6  * Authors: Frank Dellaert, et al. (see THANKS for the full author list)
7 
8  * See LICENSE for the license information
9 
10  * -------------------------------------------------------------------------- */
11 
20 #pragma once
21 
22 #include <gtsam/inference/Key.h>
23 #include <gtsam/base/FastMap.h>
24 #include <gtsam/dllexport.h>
25 
26 namespace gtsam {
27 
28 class GaussianFactorGraph;
29 class Ordering;
30 
32 struct GTSAM_EXPORT SlotEntry {
33  Key key;
34  size_t dimension;
35  SlotEntry(Key _key, size_t _dimension) : key(_key), dimension(_dimension) {}
36  std::string toString() const;
37  friend bool operator<(const SlotEntry& p, const SlotEntry& q) {
38  return p.key < q.key;
39  }
40  static bool Zero(const SlotEntry& p) { return p.dimension==0;}
41 };
42 
49 class Scatter : public FastVector<SlotEntry> {
50  public:
52  GTSAM_EXPORT Scatter() {}
53 
55  GTSAM_EXPORT explicit Scatter(const GaussianFactorGraph& gfg);
56 
58  GTSAM_EXPORT explicit Scatter(const GaussianFactorGraph& gfg, const Ordering& ordering);
59 
61  GTSAM_EXPORT void add(Key key, size_t dim);
62 
63  private:
65  iterator find(Key key);
66 };
67 
68 } // \ namespace gtsam
One SlotEntry stores the slot index for a variable, as well its dim.
Definition: Scatter.h:32
Definition: Scatter.h:49
std::vector< T, typename internal::FastDefaultVectorAllocator< T >::type > FastVector
Definition: FastVector.h:34
Definition: Ordering.h:37
Definition: chartTesting.h:28
A thin wrapper around std::map that uses boost&#39;s fast_pool_allocator.
GTSAM_EXPORT Scatter()
Default Constructor.
Definition: Scatter.h:52
std::uint64_t Key
Integer nonlinear key type.
Definition: types.h:102
Definition: GaussianFactorGraph.h:73