farm-ng-core
scaling.h
Go to the documentation of this file.
1 // Copyright (c) 2011, Hauke Strasdat
2 // Copyright (c) 2012, Steven Lovegrove
3 // Copyright (c) 2021, farm-ng, inc.
4 //
5 // Use of this source code is governed by an MIT-style
6 // license that can be found in the LICENSE file or at
7 // https://opensource.org/licenses/MIT.
8 
9 #pragma once
10 
13 #include "sophus/lie/lie_group.h"
14 
15 namespace sophus {
16 
17 // origin, coordinate axis directions, and shape preserving mapping
18 
19 template <class TScalar, int kDim>
20 class Scaling : public lie::Group<
21  lie::ScalingWithDim<kDim>::template Group,
22  TScalar,
23  lie::ScalingWithDim<kDim>::template Impl> {
24  public:
25  using Scalar = TScalar;
26  using Base = lie::Group<
28  TScalar,
30 
31  using Tangent = typename Base::Tangent;
32  using Params = typename Base::Params;
33  using Point = typename Base::Point;
34 
35  Scaling() = default;
36 
37  explicit Scaling(UninitTag /*unused*/) {}
38 
39  template <class TOtherScalar>
40  auto cast() const -> Scaling<TOtherScalar, kDim> {
42  this->params_.template cast<TOtherScalar>());
43  }
44 
45  [[nodiscard]] auto scaleFactors() const -> Params const& {
46  return this->params_;
47  }
48 
49  auto setScaleFactors(Params const& scale_factors) -> void {
50  this->params_ = scale_factors;
51  }
52 };
53 
54 template <class TScalar>
56 template <class TScalar>
58 
59 } // namespace sophus
sophus::Scaling::Tangent
typename Base::Tangent Tangent
Definition: scaling.h:31
sophus::lie::Group::Params
Eigen::Vector< Scalar, kNumParams > Params
Definition: lie_group.h:69
sophus::lie::Group::Tangent
Eigen::Vector< Scalar, kDof > Tangent
Definition: lie_group.h:68
sophus::lie::Group
Definition: lie_group.h:24
sophus
Image MutImage, owning images types.
Definition: num_diff.h:20
sophus::Scaling::Scaling
Scaling()=default
sophus::Scaling::cast
auto cast() const -> Scaling< TOtherScalar, kDim >
Definition: scaling.h:40
sophus::lie::Group::Point
Eigen::Vector< Scalar, kPointDim > Point
Definition: lie_group.h:70
sophus::Scaling::Scaling
Scaling(UninitTag)
Definition: scaling.h:37
sophus::Scaling::Scalar
TScalar Scalar
Definition: scaling.h:25
sophus::Scaling::scaleFactors
auto scaleFactors() const -> Params const &
Definition: scaling.h:45
sophus::Scaling::Point
typename Base::Point Point
Definition: scaling.h:33
sophus::lie::ScalingWithDim
Definition: scaling.h:312
sophus::Scaling::setScaleFactors
auto setScaleFactors(Params const &scale_factors) -> void
Definition: scaling.h:49
sophus::Scaling::Params
typename Base::Params Params
Definition: scaling.h:32
scaling.h
lie_group.h
group_accessors.h
sophus::Scaling
Definition: scaling.h:308
sophus::UninitTag
Definition: common.h:70