Removed Ordering again -> templated vector method simply works
parent
c450222ff1
commit
5a8363a775
|
|
@ -142,7 +142,7 @@ namespace gtsam {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ************************************************************************* */
|
/* ************************************************************************* */
|
||||||
Vector VectorValues::vector(boost::optional<const Ordering&> ordering) const {
|
Vector VectorValues::vector() const {
|
||||||
// Count dimensions
|
// Count dimensions
|
||||||
DenseIndex totalDim = 0;
|
DenseIndex totalDim = 0;
|
||||||
for (const Vector& v : *this | map_values) totalDim += v.size();
|
for (const Vector& v : *this | map_values) totalDim += v.size();
|
||||||
|
|
@ -150,17 +150,9 @@ namespace gtsam {
|
||||||
// Copy vectors
|
// Copy vectors
|
||||||
Vector result(totalDim);
|
Vector result(totalDim);
|
||||||
DenseIndex pos = 0;
|
DenseIndex pos = 0;
|
||||||
if (ordering) {
|
for (const Vector& v : *this | map_values) {
|
||||||
for (const auto& key : *ordering) {
|
result.segment(pos, v.size()) = v;
|
||||||
const auto& v = (*this)[key];
|
pos += v.size();
|
||||||
result.segment(pos, v.size()) = v;
|
|
||||||
pos += v.size();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for (const Vector& v : *this | map_values) {
|
|
||||||
result.segment(pos, v.size()) = v;
|
|
||||||
pos += v.size();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,7 @@ namespace gtsam {
|
||||||
/// @{
|
/// @{
|
||||||
|
|
||||||
/** Retrieve the entire solution as a single vector */
|
/** Retrieve the entire solution as a single vector */
|
||||||
Vector vector(boost::optional<const Ordering&> ordering = boost::none) const;
|
Vector vector() const;
|
||||||
|
|
||||||
/** Access a vector that is a subset of relevant keys. */
|
/** Access a vector that is a subset of relevant keys. */
|
||||||
template <typename CONTAINER>
|
template <typename CONTAINER>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue