MultipleKernelData.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /**
  2. * @file MultipleKernelData.h
  3. * @author Erik Rodner
  4. * @date 01/19/2010
  5. */
  6. #ifndef _NICE_OBJREC_MULTIPLEKERNELDATAINCLUDE
  7. #define _NICE_OBJREC_MULTIPLEKERNELDATAINCLUDE
  8. #include <string>
  9. #include "KernelData.h"
  10. namespace OBJREC {
  11. /** @class MultipleKernelData
  12. * caching multiple kernel data objects
  13. *
  14. * @author Erik Rodner
  15. */
  16. class MultipleKernelData : public KernelData
  17. {
  18. protected:
  19. std::vector<KernelData *> multipleKernelData;
  20. public:
  21. /** copy constructor */
  22. MultipleKernelData ( const MultipleKernelData & src );
  23. /** simple constructor */
  24. MultipleKernelData( const NICE::Config *conf, const std::string & section = "Kernel" );
  25. MultipleKernelData( const NICE::Config *conf, const NICE::Matrix & kernelMatrix, const std::string & section = "Kernel" );
  26. /** simple destructor, does not delete all inner kernel data objects ! */
  27. virtual ~MultipleKernelData();
  28. std::vector<KernelData *> & kernelData() { return multipleKernelData; };
  29. const KernelData* getSingleKernelData( uint i ) const;
  30. /** delete all inner kernel data objects */
  31. void destroy (void);
  32. MultipleKernelData *clone(void) const;
  33. };
  34. }
  35. #endif