4 #include <itkVariableLengthVector.h> 6 #include <vnl/vnl_vector.h> 7 #include <vnl/vnl_vector_fixed.h> 15 template <
class VectorType>
double ComputeEuclideanDistance(
const VectorType &x1,
const VectorType &x2,
const unsigned int NDimension);
17 template <
class ScalarType,
unsigned int NDimension>
double ComputeEuclideanDistance(
const itk::Vector <ScalarType,NDimension> &x1,
const itk::Vector <ScalarType,NDimension> &x2);
19 template <
class ScalarType>
double ComputeEuclideanDistance(
const itk::VariableLengthVector <ScalarType> &x1,
const itk::VariableLengthVector <ScalarType> &x2);
21 template <
class ScalarType,
unsigned int NDimension>
double ComputeEuclideanDistance(
const itk::Point <ScalarType,NDimension> &x1,
const itk::Point <ScalarType,NDimension> &x2);
23 template <
class ScalarType>
double ComputeEuclideanDistance(
const vnl_vector <ScalarType> &x1,
const vnl_vector <ScalarType> &x2);
25 template <
class ScalarType,
unsigned int NDimension>
double ComputeEuclideanDistance(
const vnl_vector_fixed <ScalarType,NDimension> &x1,
const vnl_vector_fixed <ScalarType,NDimension> &x2);
27 template <
class ScalarType>
double ComputeEuclideanDistance(
const std::vector <ScalarType> &x1,
const std::vector <ScalarType> &x2);
32 template <
class VectorType>
double ComputeHausdorffDistance(
const std::vector <VectorType> &s1,
const std::vector <VectorType> &s2);
38 template <
class VectorType>
double ExponentialSum(
const VectorType &x,
const unsigned int NDimension);
40 template <
class ScalarType,
unsigned int NDimension>
double ExponentialSum(
const itk::Vector <ScalarType,NDimension> &x);
42 template <
class ScalarType>
double ExponentialSum(
const itk::VariableLengthVector <ScalarType> &x);
44 template <
class ScalarType,
unsigned int NDimension>
double ExponentialSum(
const itk::Point <ScalarType,NDimension> &x);
46 template <
class ScalarType>
double ExponentialSum(
const vnl_vector <ScalarType> &x);
48 template <
class ScalarType,
unsigned int NDimension>
double ExponentialSum(
const vnl_vector_fixed <ScalarType,NDimension> &x);
50 template <
class ScalarType>
double ExponentialSum(
const std::vector <ScalarType> &x);
55 template <
class VectorType>
double ComputeScalarProduct(
const VectorType &v1,
const VectorType &v2,
const unsigned int NDimension);
57 template <
class ScalarType,
unsigned int NDimension>
double ComputeScalarProduct(
const itk::Vector <ScalarType,NDimension> &v1,
const itk::Vector <ScalarType,NDimension> &v2);
59 template <
class ScalarType>
double ComputeScalarProduct(
const itk::VariableLengthVector <ScalarType> &v1,
const itk::VariableLengthVector <ScalarType> &v2);
61 template <
class ScalarType,
unsigned int NDimension>
double ComputeScalarProduct(
const itk::Point <ScalarType,NDimension> &v1,
const itk::Point <ScalarType,NDimension> &v2);
63 template <
class ScalarType>
double ComputeScalarProduct(
const vnl_vector <ScalarType> &v1,
const vnl_vector <ScalarType> &v2);
65 template <
class ScalarType,
unsigned int NDimension>
double ComputeScalarProduct(
const vnl_vector_fixed <ScalarType,NDimension> &v1,
const vnl_vector_fixed <ScalarType,NDimension> &v2);
67 template <
class ScalarType>
double ComputeScalarProduct(
const std::vector <ScalarType> &v1,
const std::vector <ScalarType> &v2);
72 template <
class VectorType>
void ComputeCrossProduct(
const VectorType &v1,
const VectorType &v2,
const unsigned int NDimension, VectorType &resVec);
74 template <
class ScalarType,
unsigned int NDimension>
void ComputeCrossProduct(
const itk::Vector <ScalarType,NDimension> &v1,
const itk::Vector <ScalarType,NDimension> &v2, itk::Vector <ScalarType,NDimension> &resVec);
76 template <
class ScalarType>
void ComputeCrossProduct(
const itk::VariableLengthVector <ScalarType> &v1,
const itk::VariableLengthVector <ScalarType> &v2, itk::VariableLengthVector <ScalarType> &resVec);
78 template <
class ScalarType,
unsigned int NDimension>
void ComputeCrossProduct(
const itk::Point <ScalarType,NDimension> &v1,
const itk::Point <ScalarType,NDimension> &v2, itk::Point <ScalarType,NDimension> &resVec);
80 template <
class ScalarType>
void ComputeCrossProduct(
const vnl_vector <ScalarType> &v1,
const vnl_vector <ScalarType> &v2, vnl_vector <ScalarType> &resVec);
82 template <
class ScalarType,
unsigned int NDimension>
void ComputeCrossProduct(
const vnl_vector_fixed <ScalarType,NDimension> &v1,
const vnl_vector_fixed <ScalarType,NDimension> &v2, vnl_vector_fixed <ScalarType,NDimension> &resVec);
84 template <
class ScalarType>
void ComputeCrossProduct(
const std::vector <ScalarType> &v1,
const std::vector <ScalarType> &v2, std::vector <ScalarType> &resVec);
87 template <
class VectorType>
double ComputeNorm(
const VectorType &v);
91 template <
class VectorType>
void Normalize(
const VectorType &v,
const unsigned int NDimension, VectorType &resVec);
93 template <
class ScalarType,
unsigned int NDimension>
void Normalize(
const itk::Vector <ScalarType,NDimension> &v, itk::Vector <ScalarType,NDimension> &resVec);
95 template <
class ScalarType>
void Normalize(
const itk::VariableLengthVector <ScalarType> &v, itk::VariableLengthVector <ScalarType> &resVec);
97 template <
class ScalarType,
unsigned int NDimension>
void Normalize(
const itk::Point <ScalarType,NDimension> &v, itk::Point <ScalarType,NDimension> &resVec);
99 template <
class ScalarType>
void Normalize(
const vnl_vector <ScalarType> &v, vnl_vector <ScalarType> &resVec);
101 template <
class ScalarType,
unsigned int NDimension>
void Normalize(
const vnl_vector_fixed <ScalarType, NDimension> &v, vnl_vector_fixed <ScalarType, NDimension> &resVec);
103 template <
class ScalarType>
void Normalize(
const std::vector <ScalarType> &v, std::vector <ScalarType> &resVec);
108 template <
class VectorType>
void ComputeHouseholderVector(
const VectorType &inputVector, VectorType &outputVector,
double &beta,
unsigned int dimension);
110 template <
class ScalarType>
void ComputeHouseholderVector(
const std::vector <ScalarType> &inputVector, std::vector <ScalarType> &outputVector,
double &beta);
115 template <
class VectorType>
double ComputeAngle(
const VectorType &v1,
const VectorType &v2);
118 template <
class VectorType>
void Revert(
const VectorType &v,
const unsigned int vSize, VectorType &resVec);
119 template <
class ScalarType>
void Revert(
const std::vector <ScalarType> &v, std::vector<ScalarType> &resVec);
120 template <
class ScalarType>
void Revert(
const itk::Point <ScalarType> &v, itk::Point <ScalarType> &resVec);
121 template <
class ScalarType,
unsigned int NDimension>
void Revert(
const vnl_vector_fixed <ScalarType, NDimension> &v,
122 vnl_vector_fixed <ScalarType, NDimension> &resVec);
127 template <
class T1,
class T2,
class T3>
void ProjectOnOrthogonalPlane(
const std::vector <T1> &v,
const std::vector <T2> &normalVec, std::vector <T3> &resVec);
129 template <
class T1,
class T2,
class T3,
class T4>
void RotateAroundAxis(
const std::vector <T1> &v,
const T2 &phi,
const std::vector <T3> &normalVec, std::vector <T4> &resVec);
130 template <
class Vector3DType,
class ScalarType>
void RotateAroundAxis(
const Vector3DType &v,
const ScalarType &phi,
const Vector3DType &normalVec, Vector3DType &resVec);
void Revert(const VectorType &v, const unsigned int vSize, VectorType &resVec)
double ExponentialSum(const VectorType &x, const unsigned int NDimension)
void TransformSphericalToCartesianCoordinates(const VectorType &v, VectorType &resVec)
double ComputeEuclideanDistance(const VectorType &x1, const VectorType &x2, const unsigned int NDimension)
double ComputeNorm(const VectorType &v)
void RotateAroundAxis(const std::vector< T1 > &v, const T2 &phi, const std::vector< T3 > &normalVec, std::vector< T4 > &resVec)
double ComputeAngle(const VectorType &v1, const VectorType &v2)
double ComputeModifiedHausdorffDistance(const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
double ComputeHausdorffDistance(const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
double ComputePointToSetDistance(const VectorType &x, const std::vector< VectorType > &s)
double ComputeOrientationAngle(const VectorType &v1, const VectorType &v2)
void Normalize(const VectorType &v, const unsigned int NDimension, VectorType &resVec)
double ComputeModifiedDirectedHausdorffDistance(const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
double ComputeDirectedHausdorffDistance(const std::vector< VectorType > &s1, const std::vector< VectorType > &s2)
double ComputeScalarProduct(const VectorType &v1, const VectorType &v2, const unsigned int NDimension)
void ComputeHouseholderVector(const VectorType &inputVector, VectorType &outputVector, double &beta, unsigned int dimension)
void ProjectOnOrthogonalPlane(const std::vector< T1 > &v, const std::vector< T2 > &normalVec, std::vector< T3 > &resVec)
void TransformCartesianToSphericalCoordinates(const VectorType &v, VectorType &resVec)
void ComputeCrossProduct(const VectorType &v1, const VectorType &v2, const unsigned int NDimension, VectorType &resVec)