11 #ifndef EIGEN_PARAMETRIZEDLINE_H
12 #define EIGEN_PARAMETRIZEDLINE_H
31 template <
typename Scalar_,
int AmbientDim_,
int Options_>
48 template<
int OtherOptions>
63 template <
int OtherOptions>
100 template <
int OtherOptions>
103 template <
int OtherOptions>
106 template <
int OtherOptions>
115 template<
typename XprType>
124 eigen_assert(0 &&
"invalid traits value in ParametrizedLine::transform()");
137 template<
int TrOptions>
151 template<
typename NewScalarType>
160 template<
typename OtherScalarType,
int OtherOptions>
183 template <
typename Scalar_,
int AmbientDim_,
int Options_>
184 template <
int OtherOptions>
188 direction() = hyperplane.
normal().unitOrthogonal();
194 template <
typename Scalar_,
int AmbientDim_,
int Options_>
198 return origin() + (direction()*t);
203 template <
typename Scalar_,
int AmbientDim_,
int Options_>
204 template <
int OtherOptions>
207 return -(hyperplane.
offset()+hyperplane.
normal().dot(origin()))
208 / hyperplane.
normal().dot(direction());
215 template <
typename Scalar_,
int AmbientDim_,
int Options_>
216 template <
int OtherOptions>
219 return intersectionParameter(hyperplane);
224 template <
typename Scalar_,
int AmbientDim_,
int Options_>
225 template <
int OtherOptions>
229 return pointAt(intersectionParameter(hyperplane));
#define EIGEN_USING_STD(FUNC)
#define EIGEN_DEVICE_FUNC
#define EIGEN_MAKE_ALIGNED_OPERATOR_NEW_IF_VECTORIZABLE_FIXED_SIZE(Scalar, Size)
#define EIGEN_STATIC_ASSERT_VECTOR_SPECIFIC_SIZE(TYPE, SIZE)
ConstNormalReturnType normal() const
const Scalar & offset() const
Base class for all dense matrices, vectors, and expressions.
ParametrizedLine & transform(const Transform< Scalar, AmbientDimAtCompileTime, Affine, TrOptions > &t, TransformTraits traits=Affine)
Scalar intersection(const Hyperplane< Scalar_, AmbientDim_, OtherOptions > &hyperplane) const
ParametrizedLine & transform(const MatrixBase< XprType > &mat, TransformTraits traits=Affine)
RealScalar squaredDistance(const VectorType &p) const
const VectorType & direction() const
RealScalar distance(const VectorType &p) const
const VectorType & origin() const
Matrix< Scalar, AmbientDimAtCompileTime, 1, Options > VectorType
@ AmbientDimAtCompileTime
VectorType intersectionPoint(const Hyperplane< Scalar_, AmbientDim_, OtherOptions > &hyperplane) const
ParametrizedLine(const ParametrizedLine< Scalar, AmbientDimAtCompileTime, OtherOptions > &other)
Scalar intersectionParameter(const Hyperplane< Scalar_, AmbientDim_, OtherOptions > &hyperplane) const
ParametrizedLine(const VectorType &origin, const VectorType &direction)
ParametrizedLine(Index _dim)
bool isApprox(const ParametrizedLine &other, const typename NumTraits< Scalar >::Real &prec=NumTraits< Scalar >::dummy_precision()) const
internal::cast_return_type< ParametrizedLine, ParametrizedLine< NewScalarType, AmbientDimAtCompileTime, Options > >::type cast() const
VectorType pointAt(const Scalar &t) const
static ParametrizedLine Through(const VectorType &p0, const VectorType &p1)
NumTraits< Scalar >::Real RealScalar
ParametrizedLine(const ParametrizedLine< OtherScalarType, AmbientDimAtCompileTime, OtherOptions > &other)
VectorType projection(const VectorType &p) const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
const Eigen::CwiseUnaryOp< Eigen::internal::scalar_sqrt_op< typename Derived::Scalar >, const Derived > sqrt(const Eigen::ArrayBase< Derived > &x)
Holds information about the various numeric (i.e. scalar) types allowed by Eigen.