16 #include <itkVector.h> 17 #include <vnl/vnl_vector.h> 18 #include <vnl/vnl_vector_fixed.h> 27 template <
class TCoordRep,
unsigned int NVectorDimension = 3>
28 class Vector :
public itk::Vector<TCoordRep, NVectorDimension>
39 : itk::Vector<TCoordRep, NVectorDimension>(r)
47 : itk::Vector<TCoordRep, NVectorDimension>(r)
57 : itk::Vector<TCoordRep, NVectorDimension>(r)
70 : itk::Vector<TCoordRep, NVectorDimension>()
72 if (vnlVector.size() != NVectorDimension)
73 mitkThrow() <<
"when constructing mitk::Vector from vnl_vector: sizes didn't match: mitk::Vector " 74 << NVectorDimension <<
"; vnl_vector " << vnlVector.size();
76 for (
unsigned int var = 0; (var < NVectorDimension) && (var < vnlVector.size()); ++var)
78 this->SetElement(var, vnlVector.get(var));
86 : itk::Vector<TCoordRep, NVectorDimension>()
88 for (
unsigned int var = 0; var < NVectorDimension; ++var)
90 this->SetElement(var, vnlVectorFixed[var]);
100 template <
typename ArrayType>
103 itk::FixedArray<TCoordRep, NVectorDimension> *thisP =
104 dynamic_cast<itk::FixedArray<TCoordRep, NVectorDimension> *
>(
this);
105 mitk::FillArray<ArrayType, TCoordRep, NVectorDimension>(*thisP, array);
113 template <
typename ArrayType>
116 mitk::ToArray<ArrayType, TCoordRep, NVectorDimension>(array, *
this);
124 operator vnl_vector<TCoordRep>()
const {
return this->GetVnlVector(); }
147 template <
typename TCoordRep,
unsigned int NPo
intDimension>
148 inline bool Equal(
const itk::Vector<TCoordRep, NPointDimension> &vector1,
149 const itk::Vector<TCoordRep, NPointDimension> &vector2,
151 bool verbose =
false)
154 typename itk::Vector<TCoordRep, NPointDimension>::VectorType diff = vector1 - vector2;
155 for (
unsigned int i = 0; i < NPointDimension; i++)
181 bool verbose =
false)
185 for (
unsigned int i = 0; i < diff.size(); i++)
208 template <
typename TCoordRep,
unsigned int NPo
intDimension>
209 inline bool Equal(
const vnl_vector_fixed<TCoordRep, NPointDimension> &vector1,
210 const vnl_vector_fixed<TCoordRep, NPointDimension> &vector2,
212 bool verbose =
false)
214 vnl_vector_fixed<TCoordRep, NPointDimension> diff = vector1 - vector2;
216 for (
unsigned int i = 0; i < diff.size(); i++)
void ConditionalOutputOfDifference(ElementToOutput1 elem1, ElementToOutput2 elem2, mitk::ScalarType eps, bool verbose, bool isEqual)
MITKCORE_EXPORT const ScalarType eps
vnl_vector< ScalarType > VnlVector
DataCollection - Class to facilitate loading/accessing structured data.
Vector< ScalarType, 4 > Vector4D
MITKNEWMODULE_EXPORT bool Equal(mitk::ExampleDataStructure *leftHandSide, mitk::ExampleDataStructure *rightHandSide, mitk::ScalarType eps, bool verbose)
Returns true if the example data structures are considered equal.
void FillVector(const ArrayType &array)
Vector< ScalarType, 2 > Vector2D
Vector< ScalarType, 3 > Vector3D
bool DifferenceBiggerOrEqualEps(DifferenceType diff, mitk::ScalarType epsilon=mitk::eps)
void ToArray(ArrayType array) const