added missing square matrix specialization - without it, square to square cases would be ambiguous.
							parent
							
								
									00765d9bf3
								
							
						
					
					
						commit
						fed2c8b684
					
				|  | @ -303,6 +303,15 @@ struct Reshape { | |||
|   } | ||||
| }; | ||||
| 
 | ||||
| /// Reshape specialization that does nothing as shape stays the same (needed to not be ambiguous for square input equals square output)
 | ||||
| template <int M, int InOptions> | ||||
| struct Reshape<M, M, M, M, InOptions> { | ||||
|   typedef const Eigen::Matrix<double, M, M, InOptions> & ReshapedType; | ||||
|   static inline ReshapedType reshape(const Eigen::Matrix<double, M, M, InOptions> & in) { | ||||
|     return in; | ||||
|   } | ||||
| }; | ||||
| 
 | ||||
| /// Reshape specialization that does nothing as shape stays the same
 | ||||
| template <int M, int N, int InOptions> | ||||
| struct Reshape<M, N, M, N, InOptions> { | ||||
|  |  | |||
|  | @ -96,6 +96,15 @@ TEST(Manifold, DefaultChart) { | |||
|     EXPECT(chart.retract(m, Vector2(1, 2)) == 2 * m); | ||||
|   } | ||||
| 
 | ||||
|   { | ||||
|     typedef Eigen::Matrix<double, 1, 1> ManifoldPoint; | ||||
|     ManifoldPoint m; | ||||
|     DefaultChart<ManifoldPoint> chart; | ||||
|     m << 1; | ||||
|     EXPECT(assert_equal(Vector(ManifoldPoint::Ones()), Vector(chart.local(ManifoldPoint::Zero(), m)))); | ||||
|     EXPECT(chart.retract(m, ManifoldPoint::Ones()) == 2 * m); | ||||
|   } | ||||
| 
 | ||||
|   DefaultChart<double> chart3; | ||||
|   Vector v1(1); | ||||
|   v1 << 1; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue