18#ifndef itkMeasurementVectorTraits_h 
   19#define itkMeasurementVectorTraits_h 
   22#include "vnl/vnl_vector_fixed.h" 
   57  template <
typename TVectorType>
 
   71  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2, 
unsigned int VLength2>
 
   75         const char * errMsg = 
"Length Mismatch")
 
   77    if (VLength != VLength2)
 
   79      itkGenericExceptionMacro(<< errMsg);
 
 
   84  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2, 
unsigned int VLength2>
 
   88         const char * errMsg = 
"Length Mismatch")
 
   90    if (VLength != VLength2)
 
   92      itkGenericExceptionMacro(<< errMsg);
 
 
   97  template <
typename TValue1, 
typename TValue2>
 
  103      itkGenericExceptionMacro(<< errMsg);
 
 
  108  template <
typename TValue1, 
typename TValue2>
 
  114      itkGenericExceptionMacro(<< errMsg);
 
 
  119  template <
typename TValue1, 
typename TValue2>
 
  123         const char *                          errMsg = 
"Length Mismatch")
 
  125    if (b.Size() != a.Size())
 
  127      itkGenericExceptionMacro(<< errMsg);
 
 
  132  template <
typename TValue1, 
typename TValue2>
 
  136         const char *                          errMsg = 
"Length Mismatch")
 
  138    if (b->Size() != a->Size())
 
  140      itkGenericExceptionMacro(<< errMsg);
 
 
  145  template <
typename TValue1, 
typename TValue2>
 
  147  Assert(
const std::vector<TValue1> & a, 
const std::vector<TValue2> & b, 
const char * errMsg = 
"Length Mismatch")
 
  149    if (b.size() != a.size())
 
  151      itkGenericExceptionMacro(<< errMsg);
 
 
  156  template <
typename TValue1, 
typename TValue2>
 
  158  Assert(
const std::vector<TValue1> * a, 
const std::vector<TValue2> * b, 
const char * errMsg = 
"Length Mismatch")
 
  160    if (b->size() != a->size())
 
  162      itkGenericExceptionMacro(<< errMsg);
 
 
  167  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  177      if (b.
Size() != VLength)
 
  179        itkGenericExceptionMacro(<< errMsg);
 
 
  185  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  193    if (b->
Size() != VLength)
 
  195      itkGenericExceptionMacro(<< errMsg);
 
 
  200  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  204         const char *                          errMsg = 
"Length Mismatch")
 
  210    if (b.Size() != VLength)
 
  212      itkGenericExceptionMacro(<< errMsg);
 
 
  217  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  221         const char *                          errMsg = 
"Length Mismatch")
 
  227    if (b->Size() != VLength)
 
  229      itkGenericExceptionMacro(<< errMsg);
 
 
  234  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  242    if (b.size() != VLength)
 
  244      itkGenericExceptionMacro(<< errMsg);
 
 
  249  template <
typename TValue1, 
unsigned int VLength, 
typename TValue2>
 
  257    if (b->size() != VLength)
 
  259      itkGenericExceptionMacro(<< errMsg);
 
 
  264  template <
typename TValue1, 
unsigned int VLength>
 
  274      itkGenericExceptionMacro(<< errMsg);
 
 
  279  template <
typename TValue1, 
unsigned int VLength>
 
  289      itkGenericExceptionMacro(<< errMsg);
 
 
  294  template <
typename TValue>
 
  298    if (((l != 0) && (a.
Size() != l)) || (a.
Size() == 0))
 
  300      itkGenericExceptionMacro(<< errMsg);
 
 
  309  template <
typename TValue>
 
  313    if (((l != 0) && (a->
Size() != l)) || (a->
Size() == 0))
 
  315      itkGenericExceptionMacro(<< errMsg);
 
 
  324  template <
typename TValue>
 
  328         const char *                         errMsg = 
"Length Mismatch")
 
  330    if (((l != 0) && (a.Size() != l)) || (a.Size() == 0))
 
  332      itkGenericExceptionMacro(<< errMsg);
 
 
  341  template <
typename TValue>
 
  345         const char *                         errMsg = 
"Length Mismatch")
 
  347    if (((l != 0) && (a->Size() != l)) || (a->Size() == 0))
 
  349      itkGenericExceptionMacro(<< errMsg);
 
 
  358  template <
typename TValue>
 
  362    if (((l != 0) && (a.size() != l)) || (a.empty()))
 
  364      itkGenericExceptionMacro(<< errMsg);
 
 
  373  template <
typename TValue>
 
  377    if (((l != 0) && (a->size() != l)) || (a->size() == 0))
 
  379      itkGenericExceptionMacro(<< errMsg);
 
 
  388  template <
typename TArrayType>
 
  390  Assign(TArrayType & m, 
const TArrayType & v)
 
 
  395  template <
typename TValue, 
unsigned int VLength>
 
 
  408template <
typename TMeasurementVector>
 
  412  using ValueType = 
typename TMeasurementVector::ValueType;
 
 
  425template <
typename TPixelType>
 
  446class MeasurementVectorPixelTraits<unsigned char>
 
  453class MeasurementVectorPixelTraits<signed char>
 
Array class with size defined at construction time.
SizeValueType Size() const
Simulate a standard C array with copy semantics.
static unsigned int GetLength()
PixelType MeasurementVectorType
typename MeasurementVectorType::ValueType ValueType
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > &, const Array< TValue2 > &b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const Array< TValue > &a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > *, const std::vector< TValue2 > *b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > &, const VariableLengthVector< TValue2 > &b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const VariableLengthVector< TValue > &a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const Array< TValue1 > *a, const Array< TValue2 > *b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > *, const Array< TValue2 > *b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const VariableLengthVector< TValue1 > &a, const VariableLengthVector< TValue2 > &b, const char *errMsg="Length Mismatch")
NumericTraits< RelativeFrequencyType >::AccumulateType TotalRelativeFrequencyType
static MeasurementVectorLength Assert(const std::vector< TValue1 > &a, const std::vector< TValue2 > &b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > *, const FixedArray< TValue2, VLength2 > *, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const Array< TValue1 > &a, const Array< TValue2 > &b, const char *errMsg="Length Mismatch")
NumericTraits< AbsoluteFrequencyType >::AccumulateType TotalAbsoluteFrequencyType
static MeasurementVectorLength Assert(const std::vector< TValue > &a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > *, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > &, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const VariableLengthVector< TValue > *a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
IdentifierType InstanceIdentifier
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > &, const std::vector< TValue2 > &b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const VariableLengthVector< TValue1 > *a, const VariableLengthVector< TValue2 > *b, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const std::vector< TValue > *a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > &, const FixedArray< TValue2, VLength2 > &, const char *errMsg="Length Mismatch")
static void Assign(FixedArray< TValue, VLength > &m, const TValue &v)
static MeasurementVectorLength Assert(const FixedArray< TValue1, VLength > *, const VariableLengthVector< TValue2 > *b, const char *errMsg="Length Mismatch")
vcl_size_t MeasurementVectorLength
static void Assign(TArrayType &m, const TArrayType &v)
static MeasurementVectorLength Assert(const std::vector< TValue1 > *a, const std::vector< TValue2 > *b, const char *errMsg="Length Mismatch")
InstanceIdentifier AbsoluteFrequencyType
static bool IsResizable(const TVectorType &)
NumericTraits< AbsoluteFrequencyType >::RealType RelativeFrequencyType
static MeasurementVectorLength Assert(const Array< TValue > *a, const MeasurementVectorLength l, const char *errMsg="Length Mismatch")
SizeValueType IdentifierType