CrossT.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * NICE-Core - efficient algebra and computer vision methods
  3. * - libimage - An image/template for new NICE libraries
  4. * See file License for license information.
  5. */
  6. #ifndef _CROSS_IMAGE_H
  7. #define _CROSS_IMAGE_H
  8. #include <iostream>
  9. #include <core/image/Drawable.h>
  10. #include <core/image/CoordT.h>
  11. #include <core/image/ColorT.h>
  12. namespace NICE {
  13. /**
  14. * A Drawabele cross with lines parallel to coordinate axes / image borders
  15. * or 45° diagonal.
  16. */
  17. template<class P>
  18. class CrossT : public Drawable<P>
  19. {
  20. private:
  21. Coord center;
  22. unsigned int halfWidth;
  23. bool diagonal;
  24. protected:
  25. void doDraw(ColorImageT<P> &image, const ColorT<P>& color) const;
  26. void doDraw(ImageT<P> &image, const P& gray) const;
  27. public:
  28. //! Default constructor
  29. inline CrossT() {}
  30. CrossT(const Coord &_center, const unsigned int _halfWidth,
  31. bool _diagonal = false);
  32. CrossT(const Coord &_center, const unsigned int _halfWidth,
  33. bool _diagonal, const ColorT<P>& _defaultColor);
  34. //! Copy-Constructor
  35. /*! \param arg class to copy
  36. */
  37. CrossT(const CrossT<P>& arg);
  38. //! Destructor of CrossT
  39. virtual ~CrossT();
  40. //! Assignment operator
  41. /*! \param ex class to copy
  42. * \return a reference to this class
  43. */
  44. CrossT<P>& operator=(const CrossT<P>& ex);
  45. //! Compare operator
  46. /*! \param ex class to compare
  47. * \return true if class content is equal
  48. */
  49. bool operator==(const CrossT<P>& ex) const;
  50. //! Compare operator
  51. /*! \param ex class to compare
  52. * \return true if class content is not equal
  53. */
  54. bool operator!=(const CrossT<P>& ex) const;
  55. };
  56. typedef CrossT<Ipp8u> Cross;
  57. } // namespace NICE
  58. //#ifdef __GNUC__
  59. #include "core/image/CrossT.tcc"
  60. //#endif
  61. #endif /* _CROSS_IMAGE_H */