MultipleKernelData.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /**
  2. * @file MultipleKernelData.cpp
  3. * @brief caching some kernel data
  4. * @author Erik Rodner
  5. * @date 01/19/2010
  6. */
  7. #include <iostream>
  8. #include "MultipleKernelData.h"
  9. using namespace std;
  10. using namespace NICE;
  11. using namespace OBJREC;
  12. MultipleKernelData::MultipleKernelData ( const MultipleKernelData & src )
  13. : KernelData ( src )
  14. {
  15. for ( vector<KernelData *>::const_iterator i = src.multipleKernelData.begin();
  16. i != src.multipleKernelData.end(); i++ )
  17. multipleKernelData.push_back ( (*i)->clone() );
  18. }
  19. MultipleKernelData::MultipleKernelData( const Config *conf, const Matrix & kernelMatrix, const string & section )
  20. : KernelData( conf, kernelMatrix, section )
  21. {
  22. }
  23. MultipleKernelData::MultipleKernelData( const Config *conf, const string & section )
  24. : KernelData ( conf, section )
  25. {
  26. }
  27. MultipleKernelData::~MultipleKernelData()
  28. {
  29. }
  30. void MultipleKernelData::destroy (void)
  31. {
  32. for ( vector<KernelData *>::const_iterator i = multipleKernelData.begin();
  33. i != multipleKernelData.end(); i++ )
  34. delete (*i);
  35. multipleKernelData.clear();
  36. }
  37. const KernelData* MultipleKernelData::getSingleKernelData( uint i ) const
  38. {
  39. vector<KernelData *>::const_iterator it = multipleKernelData.begin();
  40. advance ( it, i );
  41. if ( it == multipleKernelData.end() )
  42. fthrow(Exception, "Kernel data with this index is unavailable");
  43. return *it;
  44. }
  45. MultipleKernelData *MultipleKernelData::clone(void) const
  46. {
  47. MultipleKernelData *dst = new MultipleKernelData (*this);
  48. return dst;
  49. }