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>
65 static inline ParametrizedLine
Through(
const VectorType& p0,
const VectorType& p1)
84 VectorType diff = p -
origin();
96 VectorType
pointAt(
const Scalar& t)
const;
98 template <
int OtherOptions>
101 template <
int OtherOptions>
104 template <
int OtherOptions>
112 template<
typename NewScalarType>
121 template<
typename OtherScalarType,
int OtherOptions>
124 m_origin = other.origin().template cast<Scalar>();
125 m_direction = other.direction().template cast<Scalar>();
133 {
return m_origin.isApprox(other.m_origin, prec) &&
m_direction.isApprox(other.m_direction, prec); }
144 template <
typename _Scalar,
int _AmbientDim,
int _Options>
145 template <
int OtherOptions>
155 template <
typename _Scalar,
int _AmbientDim,
int _Options>
164 template <
typename _Scalar,
int _AmbientDim,
int _Options>
165 template <
int OtherOptions>
176 template <
typename _Scalar,
int _AmbientDim,
int _Options>
177 template <
int OtherOptions>
185 template <
typename _Scalar,
int _AmbientDim,
int _Options>
186 template <
int OtherOptions>
195 #endif // EIGEN_PARAMETRIZEDLINE_H
internal::cast_return_type< ParametrizedLine, ParametrizedLine< NewScalarType, AmbientDimAtCompileTime, Options > >::type cast() const
const VectorType & origin() const
IntermediateState sqrt(const Expression &arg)
static ParametrizedLine Through(const VectorType &p0, const VectorType &p1)
RealScalar squaredDistance(const VectorType &p) const
const NormalReturnType normal() const
ParametrizedLine(const ParametrizedLine< Scalar, AmbientDimAtCompileTime, OtherOptions > &other)
Matrix< Scalar, AmbientDimAtCompileTime, 1, Options > VectorType
ParametrizedLine(const ParametrizedLine< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other)
VectorType pointAt(const Scalar &t) const
VectorType intersectionPoint(const Hyperplane< _Scalar, _AmbientDim, OtherOptions > &hyperplane) const
iterative scaling algorithm to equilibrate rows and column norms in matrices
Holds information about the various numeric (i.e. scalar) types allowed by Eigen. ...
RealScalar distance(const VectorType &p) const
ParametrizedLine(const VectorType &origin, const VectorType &direction)
NumTraits< Scalar >::Real RealScalar
VectorType projection(const VectorType &p) const
bool isApprox(const ParametrizedLine &other, typename NumTraits< Scalar >::Real prec=NumTraits< Scalar >::dummy_precision()) const
ParametrizedLine(Index _dim)
Provides a generic way to set and pass user-specified options.
const VectorType & direction() const
const Scalar & offset() const
EIGEN_DEFAULT_DENSE_INDEX_TYPE DenseIndex
Expression dot(const Expression &arg)
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size)
The matrix class, also used for vectors and row-vectors.
Scalar intersection(const Hyperplane< _Scalar, _AmbientDim > &hyperplane)
Scalar intersectionParameter(const Hyperplane< _Scalar, _AmbientDim, OtherOptions > &hyperplane) const
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)