isce3  0.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Vector.h
1 #pragma once
2 
3 #include "forward.h"
4 
5 #include <array>
6 #include <cmath>
7 #define EIGEN_MPL2_ONLY
8 #include <Eigen/Dense>
9 #include "Common.h"
10 
11 namespace isce3 { namespace core {
12 
13 template<int N, typename T>
14 class Vector : public Eigen::Matrix<T, N, 1> {
15  using super_t = Eigen::Matrix<T, N, 1>;
16  using super_t::super_t;
17 };
18 
19 // Function to compute normal vector to a plane given three points
20 CUDA_HOSTDEV inline Vec3 normalPlane(const Vec3& p1,
21  const Vec3& p2,
22  const Vec3& p3) {
23  const Vec3 p13 = p3 - p1;
24  const Vec3 p12 = p2 - p1;
25  return p13.cross(p12).normalized();
26 }
27 
28 }} // namespace isce3::core

Generated for ISCE3.0 by doxygen 1.8.5.