Point2 specialized
parent
f08dc6c031
commit
ec69949f43
|
@ -337,8 +337,7 @@ struct is_manifold: public false_type {
|
||||||
|
|
||||||
// dimension
|
// dimension
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct dimension: public integral_constant<size_t, T::dimension> {
|
struct dimension;
|
||||||
};
|
|
||||||
|
|
||||||
// Fixed size Eigen::Matrix type
|
// Fixed size Eigen::Matrix type
|
||||||
template<int M, int N, int Options>
|
template<int M, int N, int Options>
|
||||||
|
@ -351,6 +350,16 @@ struct dimension<Eigen::Matrix<double, M, N, Options> > : public integral_consta
|
||||||
BOOST_STATIC_ASSERT(M!=Eigen::Dynamic && N!=Eigen::Dynamic);
|
BOOST_STATIC_ASSERT(M!=Eigen::Dynamic && N!=Eigen::Dynamic);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Point2
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct is_manifold<Point2> : public true_type {
|
||||||
|
};
|
||||||
|
|
||||||
|
template<>
|
||||||
|
struct dimension<Point2> : public integral_constant<size_t, 2> {
|
||||||
|
};
|
||||||
|
|
||||||
template<typename T>
|
template<typename T>
|
||||||
struct manifold_traits {
|
struct manifold_traits {
|
||||||
typedef T type;
|
typedef T type;
|
||||||
|
@ -381,8 +390,15 @@ struct manifold_traits<Eigen::Matrix<double, M, N, Options> > {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// Test dimension traits
|
// is_manifold
|
||||||
TEST(Expression, Traits) {
|
TEST(Expression, is_manifold) {
|
||||||
|
EXPECT(!is_manifold<int>::value);
|
||||||
|
EXPECT(is_manifold<Point2>::value);
|
||||||
|
EXPECT(is_manifold<Matrix24>::value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// dimension
|
||||||
|
TEST(Expression, dimension) {
|
||||||
EXPECT_LONGS_EQUAL(2, dimension<Point2>::value);
|
EXPECT_LONGS_EQUAL(2, dimension<Point2>::value);
|
||||||
EXPECT_LONGS_EQUAL(8, dimension<Matrix24>::value);
|
EXPECT_LONGS_EQUAL(8, dimension<Matrix24>::value);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue