26 ConstructibleFrom<TT, typename TT::Point> && requires(TT g) {
27 { g.
translation() } -> ConvertibleTo<typename TT::Point>;
33 Eigen::Matrix<typename TT::Scalar, TT::kPointDim, TT::kPointDim> matrix) {
34 { TT::fromRotationMatrix(matrix) } -> ConvertibleTo<TT>;
38 Eigen::Matrix<typename TT::Scalar, TT::kPointDim, TT::kPointDim>>;
42 concept
TxTy = requires(
typename TT::Scalar s) {
43 { TT::fromT(s, s) } -> ConvertibleTo<TT>;
44 { TT::fromTx(s) } -> ConvertibleTo<TT>;
45 { TT::fromTy(s) } -> ConvertibleTo<TT>;
49 concept
TxTyTz = requires(
typename TT::Scalar s) {
50 { TT::fromT(s, s, s) } -> ConvertibleTo<TT>;
51 { TT::fromTx(s) } -> ConvertibleTo<TT>;
52 { TT::fromTy(s) } -> ConvertibleTo<TT>;
53 { TT::fromTz(s) } -> ConvertibleTo<TT>;
58 ConstructibleFrom<TT, typename TT::Rotation> &&
59 ConstructibleFrom<TT, typename TT::Point, typename TT::Rotation> &&
61 { g.rotation() } -> ConvertibleTo<typename TT::Rotation>;
62 {g.setRotation(rotation)};
71 typename TT::Scalar> &&
72 ConstructibleFrom<TT, typename TT::SpiralSimilarity> &&
73 ConstructibleFrom<TT, typename TT::Point, typename TT::SpiralSimilarity>;
77 ConstructibleFrom<TT, typename TT::Rotation> &&
78 ConstructibleFrom<TT, typename TT::Rotation, typename TT::Scalar> &&
79 requires(TT g,
typename TT::Scalar scale,
typename TT::Rotation rotation) {
80 { TT::fromScale(scale) } -> ConvertibleTo<TT>;
81 { g.rotation() } -> ConvertibleTo<typename TT::Rotation>;
82 {g.setRotation(rotation)};
83 { g.scale() } -> ConvertibleTo<typename TT::Scalar>;
90 { TT::fitFromComplex(z) } -> ConvertibleTo<TT>;
91 { TT::fromUnitComplex(z) } -> ConvertibleTo<TT>;
92 { g.unitComplex() } -> ConvertibleTo<Complex<typename TT::Scalar>>;
93 {g.setUnitComplex(z)};
99 { TT::fitFromQuaternion(q) } -> ConvertibleTo<TT>;
100 { TT::fromUnitQuaternion(q) } -> ConvertibleTo<TT>;
101 { g.unitQuaternion() } -> ConvertibleTo<Quaternion<typename TT::Scalar>>;
102 {g.setUnitQuaternion(q)};
108 { TT::fromAngle(s) } -> ConvertibleTo<TT>;
109 { g.
angle() } -> ConvertibleTo<typename TT::Scalar>;
115 { TT::fromRx(s) } -> ConvertibleTo<TT>;
116 { TT::fromRy(s) } -> ConvertibleTo<TT>;
117 { TT::fromRz(s) } -> ConvertibleTo<TT>;
129 { TT::fromComplex(z) } -> ConvertibleTo<TT>;
130 { g.complex() } -> ConvertibleTo<Complex<typename TT::Scalar>>;
137 { TT::fromQuaternion(q) } -> ConvertibleTo<TT>;
138 { g.quaternion() } -> ConvertibleTo<Quaternion<typename TT::Scalar>>;
139 {g.setQuaternion(q)};
155 Eigen::Matrix<typename TT::Scalar, TT::kPointDim, TT::kPointDim> matrix) {
156 { TT::fitFromMatrix(matrix) } -> ConvertibleTo<TT>;
163 base::Rotation<TT> && ConstructibleFrom<TT, typename TT::Scalar> &&
164 accessors::Rotation2<TT> && accessors::UnitComplex<TT>;
167 concept
Rotation3 = base::Rotation<TT> && accessors::Rotation3<TT> &&
168 accessors::UnitQuaternion<TT>;
177 concept
Isometry2 = accessors::Isometry2<TT> && accessors::Rotation2<TT> &&
178 accessors::UnitComplex<TT>;
181 concept
Isometry3 = accessors::Isometry3<TT> && accessors::Rotation3<TT> &&
182 accessors::UnitQuaternion<TT>;
186 accessors::Similarity<TT> && accessors::SpiralSimilarity2<TT>;
190 accessors::Similarity<TT> && accessors::SpiralSimilarity3<TT>;