Toggle main menu visibility
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
10
#include "
multicontact-api/geometry/fwd.hpp
"
11
12
namespace
multicontact_api
{
13
namespace
geometry
{
14
template
<
typename
_Scalar,
int
_dim,
int
_Options>
15
struct
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
:
48
Matrix
m_A
;
49
51
Vector
m_center
;
52
};
53
}
// namespace geometry
54
}
// namespace multicontact_api
55
56
#endif
// ifndef __multicontact_api_geometry_ellipsoid_hpp__
fwd.hpp
multicontact_api::geometry
Definition
ellipsoid.hpp:13
multicontact_api
Definition
ellipsoid.hpp:12
multicontact_api::geometry::Ellipsoid::Matrix
Eigen::Matrix< Scalar, dim, dim, Options > Matrix
Definition
ellipsoid.hpp:21
multicontact_api::geometry::Ellipsoid< double, 3 >::center
const Vector & center() const
Definition
ellipsoid.hpp:32
multicontact_api::geometry::Ellipsoid::Ellipsoid
Ellipsoid(const Matrix &A, const Vector ¢er)
Definition
ellipsoid.hpp:24
multicontact_api::geometry::Ellipsoid::A
Matrix & A()
Definition
ellipsoid.hpp:31
multicontact_api::geometry::Ellipsoid::center
Vector & center()
Definition
ellipsoid.hpp:33
multicontact_api::geometry::Ellipsoid::disp
void disp(std::ostream &os) const
Definition
ellipsoid.hpp:35
multicontact_api::geometry::Ellipsoid::operator<<
friend std::ostream & operator<<(std::ostream &os, const Ellipsoid &E)
Definition
ellipsoid.hpp:41
multicontact_api::geometry::Ellipsoid< double, 3 >::dim
@ dim
Definition
ellipsoid.hpp:18
multicontact_api::geometry::Ellipsoid< double, 3 >::m_center
Vector m_center
Definition
ellipsoid.hpp:51
multicontact_api::geometry::Ellipsoid::lhsValue
Scalar lhsValue(const Vector &point) const
Definition
ellipsoid.hpp:26
multicontact_api::geometry::Ellipsoid< double, 3 >::A
const Matrix & A() const
Definition
ellipsoid.hpp:30
multicontact_api::geometry::Ellipsoid::Scalar
EIGEN_MAKE_ALIGNED_OPERATOR_NEW typedef _Scalar Scalar
Definition
ellipsoid.hpp:17
multicontact_api::geometry::Ellipsoid< double, 3 >::m_A
Matrix m_A
Definition
ellipsoid.hpp:48
multicontact_api::geometry::Ellipsoid::Vector
Eigen::Matrix< Scalar, dim, 1, Options > Vector
Definition
ellipsoid.hpp:22
multicontact_api::geometry::Ellipsoid< double, 3 >::Options
@ Options
Definition
ellipsoid.hpp:19
include
multicontact-api
geometry
ellipsoid.hpp
Generated by
1.17.0