3 #include <Core/RaCore.hpp>
7 #include <Eigen/Geometry>
8 #include <OpenMesh/Core/Mesh/Traits.hh>
9 #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh>
19 template <
typename Derived>
20 typename Derived::Scalar dot( Eigen::MatrixBase<Derived>
const& v1,
21 Eigen::MatrixBase<Derived>
const& v2 ) {
25 template <
typename Derived>
26 typename Derived::Scalar norm( Eigen::MatrixBase<Derived>
const& v1 ) {
30 template <
typename Derived>
31 Eigen::MatrixBase<Derived>& normalize( Eigen::MatrixBase<Derived>& v1 ) {
36 template <
typename Derived>
37 Eigen::MatrixBase<Derived>& vectorize( Eigen::MatrixBase<Derived>& v1, Scalar a ) {
42 template <
typename Derived>
43 typename Derived::Scalar sqrnorm( Eigen::MatrixBase<Derived>
const& v1 ) {
44 return v1.squaredNorm();
47 template <
typename Derived>
48 typename Derived::template cross_product_return_type<Derived>::type
49 cross( Eigen::MatrixBase<Derived>
const& v1, Eigen::MatrixBase<Derived>
const& v2 ) {
50 return v1.cross( v2 );
56 struct vector_traits<
Ra::Core::Vector3> {
57 using vector_type = Ra::Core::Vector3;
58 using value_type = Scalar;
59 static const size_t size_ = 3;
60 static size_t size() {
return 3; }