Loading...
Searching...
No Matches
ellipsoid.hpp
Go to the documentation of this file.
1// Copyright (c) 2015-2018, CNRS
2// Authors: Justin Carpentier <jcarpent@laas.fr>
3
4#ifndef __multicontact_api_geometry_ellipsoid_hpp__
5#define __multicontact_api_geometry_ellipsoid_hpp__
6
7#include <Eigen/Dense>
8#include <iostream>
9
11
12namespace multicontact_api {
13namespace geometry {
14template <typename _Scalar, int _dim, int _Options>
15struct Ellipsoid {
16 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
17 typedef _Scalar Scalar;
18 enum { dim = _dim };
19 enum { Options = _Options };
20
21 typedef Eigen::Matrix<Scalar, dim, dim, Options> Matrix;
22 typedef Eigen::Matrix<Scalar, dim, 1, Options> Vector;
23
24 Ellipsoid(const Matrix& A, const Vector& center) : m_A(A), m_center(center) {}
25
26 Scalar lhsValue(const Vector& point) const {
27 return (m_A * (point - m_center)).norm();
28 }
29
30 const Matrix& A() const { return m_A; }
31 Matrix& A() { return m_A; }
32 const Vector& center() const { return m_center; }
33 Vector& center() { return m_center; }
34
35 void disp(std::ostream& os) const {
36 os << "A:\n"
37 << m_A << std::endl
38 << "center: " << m_center.transpose() << std::endl;
39 }
40
41 friend std::ostream& operator<<(std::ostream& os, const Ellipsoid& E) {
42 E.disp(os);
43 return os;
44 }
45
46 protected:
49
52};
53} // namespace geometry
54} // namespace multicontact_api
55
56#endif // ifndef __multicontact_api_geometry_ellipsoid_hpp__
Definition ellipsoid.hpp:12
Definition ellipsoid.hpp:15
@ dim
Definition ellipsoid.hpp:18
Eigen::Matrix< Scalar, dim, dim, Options > Matrix
Definition ellipsoid.hpp:21
const Vector & center() const
Definition ellipsoid.hpp:32
Ellipsoid(const Matrix &A, const Vector &center)
Definition ellipsoid.hpp:24
Matrix & A()
Definition ellipsoid.hpp:31
Vector & center()
Definition ellipsoid.hpp:33
void disp(std::ostream &os) const
Definition ellipsoid.hpp:35
friend std::ostream & operator<<(std::ostream &os, const Ellipsoid &E)
Definition ellipsoid.hpp:41
Vector m_center
Center of the ellipsoid expressed in the global frame.
Definition ellipsoid.hpp:51
@ Options
Definition ellipsoid.hpp:19
Scalar lhsValue(const Vector &point) const
Definition ellipsoid.hpp:26
const Matrix & A() const
Definition ellipsoid.hpp:30
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Definition ellipsoid.hpp:17
Matrix m_A
Definition ellipsoid.hpp:48
Eigen::Matrix< Scalar, dim, 1, Options > Vector
Definition ellipsoid.hpp:22