11 #ifndef EIGEN_PARAMETRIZEDLINE_H
12 #define EIGEN_PARAMETRIZEDLINE_H
29 template <
typename _Scalar,
int _AmbientDim,
int _Options>
46 template<
int OtherOptions>
61 template <
int OtherOptions>
98 template <
int OtherOptions>
101 template <
int OtherOptions>
104 template <
int OtherOptions>
113 template<
typename XprType>
122 eigen_assert(0 &&
"invalid traits value in ParametrizedLine::transform()");
135 template<
int TrOptions>
149 template<
typename NewScalarType>
158 template<
typename OtherScalarType,
int OtherOptions>
181 template <
typename _Scalar,
int _AmbientDim,
int _Options>
182 template <
int OtherOptions>
186 direction() = hyperplane.
normal().unitOrthogonal();
192 template <
typename _Scalar,
int _AmbientDim,
int _Options>
196 return origin() + (direction()*t);
201 template <
typename _Scalar,
int _AmbientDim,
int _Options>
202 template <
int OtherOptions>
205 return -(hyperplane.
offset()+hyperplane.
normal().dot(origin()))
206 / hyperplane.
normal().dot(direction());
213 template <
typename _Scalar,
int _AmbientDim,
int _Options>
214 template <
int OtherOptions>
217 return intersectionParameter(hyperplane);
222 template <
typename _Scalar,
int _AmbientDim,
int _Options>
223 template <
int OtherOptions>
227 return pointAt(intersectionParameter(hyperplane));
EIGEN_DEVICE_FUNC const SqrtReturnType sqrt() const
Definition: ArrayCwiseUnaryOps.h:187
#define EIGEN_USING_STD(FUNC)
Definition: Macros.h:1185
#define EIGEN_DEVICE_FUNC
Definition: Macros.h:976
#define eigen_assert(x)
Definition: Macros.h:1037
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size)
Definition: Memory.h:842
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
Definition: StaticAssert.h:157
A hyperplane.
Definition: Hyperplane.h:35
EIGEN_DEVICE_FUNC ConstNormalReturnType normal() const
Definition: Hyperplane.h:157
EIGEN_DEVICE_FUNC const Scalar & offset() const
Definition: Hyperplane.h:167
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:50
A parametrized line.
Definition: ParametrizedLine.h:31
EIGEN_DEVICE_FUNC VectorType & origin()
Definition: ParametrizedLine.h:74
EIGEN_DEVICE_FUNC ParametrizedLine(const VectorType &origin, const VectorType &direction)
Definition: ParametrizedLine.h:58
EIGEN_DEVICE_FUNC RealScalar distance(const VectorType &p) const
Definition: ParametrizedLine.h:90
EIGEN_DEVICE_FUNC ~ParametrizedLine()
Definition: ParametrizedLine.h:68
EIGEN_DEVICE_FUNC bool isApprox(const ParametrizedLine &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
Definition: ParametrizedLine.h:169
EIGEN_DEVICE_FUNC ParametrizedLine(const ParametrizedLine< Scalar, AmbientDimAtCompileTime, OtherOptions > &other)
Definition: ParametrizedLine.h:47
EIGEN_DEVICE_FUNC VectorType & direction()
Definition: ParametrizedLine.h:77
EIGEN_DEVICE_FUNC Index dim() const
Definition: ParametrizedLine.h:71
EIGEN_DEVICE_FUNC internal::cast_return_type< ParametrizedLine, ParametrizedLine< NewScalarType, AmbientDimAtCompileTime, Options > >::type cast() const
Definition: ParametrizedLine.h:151
EIGEN_DEVICE_FUNC Scalar intersectionParameter(const Hyperplane< _Scalar, _AmbientDim, OtherOptions > &hyperplane) const
@ AmbientDimAtCompileTime
Definition: ParametrizedLine.h:35
@ Options
Definition: ParametrizedLine.h:36
VectorType m_direction
Definition: ParametrizedLine.h:174
EIGEN_DEVICE_FUNC const VectorType & direction() const
Definition: ParametrizedLine.h:76
EIGEN_DEVICE_FUNC VectorType projection(const VectorType &p) const
Definition: ParametrizedLine.h:93
Eigen::Index Index
Definition: ParametrizedLine.h:40
EIGEN_DEVICE_FUNC const VectorType & origin() const
Definition: ParametrizedLine.h:73
EIGEN_DEVICE_FUNC ParametrizedLine(const ParametrizedLine< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other)
Definition: ParametrizedLine.h:159
static EIGEN_DEVICE_FUNC ParametrizedLine Through(const VectorType &p0, const VectorType &p1)
Definition: ParametrizedLine.h:65
EIGEN_DEVICE_FUNC ParametrizedLine()
Definition: ParametrizedLine.h:44
EIGEN_DEVICE_FUNC RealScalar squaredDistance(const VectorType &p) const
Definition: ParametrizedLine.h:82
EIGEN_DEVICE_FUNC VectorType intersectionPoint(const Hyperplane< _Scalar, _AmbientDim, OtherOptions > &hyperplane) const
Definition: ParametrizedLine.h:225
_Scalar Scalar
Definition: ParametrizedLine.h:38
EIGEN_DEVICE_FUNC ParametrizedLine & transform(const MatrixBase< XprType > &mat, TransformTraits traits=Affine)
Definition: ParametrizedLine.h:114
EIGEN_DEVICE_FUNC ParametrizedLine & transform(const Transform< Scalar, AmbientDimAtCompileTime, Affine, TrOptions > &t, TransformTraits traits=Affine)
Definition: ParametrizedLine.h:136
Matrix< Scalar, AmbientDimAtCompileTime, 1, Options > VectorType
Definition: ParametrizedLine.h:41
NumTraits< Scalar >::Real RealScalar
Definition: ParametrizedLine.h:39
EIGEN_DEVICE_FUNC ParametrizedLine(Index _dim)
Definition: ParametrizedLine.h:53
EIGEN_DEVICE_FUNC Scalar intersection(const Hyperplane< _Scalar, _AmbientDim, OtherOptions > &hyperplane) const
EIGEN_DEVICE_FUNC VectorType pointAt(const Scalar &t) const
Definition: ParametrizedLine.h:194
VectorType m_origin
Definition: ParametrizedLine.h:174
TransformTraits
Definition: Constants.h:455
@ Affine
Definition: Constants.h:460
@ Isometry
Definition: Constants.h:457
Namespace containing all symbols from the Eigen library.
Definition: LDLT.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
type
The type the bitset is encoded with.
Definition: bitset.hpp:44
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.
Definition: NumTraits.h:233
Definition: XprHelper.h:510