24 #include <gtsam/config.h> 25 #include <gtsam/base/VectorSpace.h> 27 #include <gtsam/dllexport.h> 29 #ifdef GTSAM_ENABLE_BOOST_SERIALIZATION 30 #include <boost/serialization/nvp.hpp> 39 typedef std::vector<Point3, Eigen::aligned_allocator<Point3> > Point3Vector;
42 using Point3Pair = std::pair<Point3, Point3>;
43 GTSAM_EXPORT std::ostream &operator<<(std::ostream &os,
const gtsam::Point3Pair &p);
45 using Point3Pairs = std::vector<Point3Pair>;
48 GTSAM_EXPORT
double distance3(
const Point3& p1,
const Point3& q,
59 GTSAM_EXPORT Point3
cross(
const Point3& p,
const Point3& q,
64 GTSAM_EXPORT
double dot(
const Point3& p,
const Point3& q,
69 template <
class CONTAINER>
70 Point3
mean(
const CONTAINER& points) {
71 if (points.size() == 0)
throw std::invalid_argument(
"Point3::mean input container is empty");
73 sum = std::accumulate(points.begin(), points.end(), sum);
74 return sum / points.size();
78 GTSAM_EXPORT Point3Pair
means(
const std::vector<Point3Pair> &abPointPairs);
80 template <
typename A1,
typename A2>
85 typedef double result_type;
86 double operator()(
const Point3& p,
const Point3& q,
GTSAM_EXPORT Point3 normalize(const Point3 &p, OptionalJacobian< 3, 3 > H={})
normalize, with optional Jacobian
double dot(const V1 &a, const V2 &b)
Definition: Vector.h:195
GTSAM_EXPORT Point3 cross(const Point3 &p, const Point3 &q, OptionalJacobian< 3, 3 > H_p={}, OptionalJacobian< 3, 3 > H_q={})
cross product
Point3 mean(const CONTAINER &points)
mean
Definition: Point3.h:70
GTSAM_EXPORT Point2Pair means(const std::vector< Point2Pair > &abPointPairs)
Calculate the two means of a set of Point2 pairs.
GTSAM_EXPORT double norm3(const Point3 &p, OptionalJacobian< 1, 3 > H={})
Distance of the point from the origin, with Jacobian.
Definition: BearingRange.h:41
Definition: chartTesting.h:28
typedef and functions to augment Eigen's VectorXd
Definition: OptionalJacobian.h:38
GTSAM_EXPORT double distance3(const Point3 &p1, const Point3 &q, OptionalJacobian< 1, 3 > H1={}, OptionalJacobian< 1, 3 > H2={})
distance between two points
serialization for Vectors
Vector3 Point3
Definition: Point3.h:38