From c427357db9910839982f5a11112f872b54792cf9 Mon Sep 17 00:00:00 2001 From: rdb Date: Tue, 27 Nov 2018 17:09:22 +0100 Subject: [PATCH] pnmimage: fix PixelSpec coercion, add PixelSpec unit test --- panda/src/pnmimage/pnmImageHeader.I | 23 ----------------------- panda/src/pnmimage/pnmImageHeader.h | 5 +++-- tests/pnmimage/test_pnmimage.py | 21 +++++++++++++++++++++ 3 files changed, 24 insertions(+), 25 deletions(-) create mode 100644 tests/pnmimage/test_pnmimage.py diff --git a/panda/src/pnmimage/pnmImageHeader.I b/panda/src/pnmimage/pnmImageHeader.I index 0e4adbaf11..630e41ff2a 100644 --- a/panda/src/pnmimage/pnmImageHeader.I +++ b/panda/src/pnmimage/pnmImageHeader.I @@ -295,29 +295,6 @@ PixelSpec(const xel &rgb, xelval alpha) : { } -/** - * - */ -INLINE PNMImageHeader::PixelSpec:: -PixelSpec(const PixelSpec ©) : - _red(copy._red), - _green(copy._green), - _blue(copy._blue), - _alpha(copy._alpha) -{ -} - -/** - * - */ -INLINE void PNMImageHeader::PixelSpec:: -operator = (const PixelSpec ©) { - _red = copy._red; - _green = copy._green; - _blue = copy._blue; - _alpha = copy._alpha; -} - /** * */ diff --git a/panda/src/pnmimage/pnmImageHeader.h b/panda/src/pnmimage/pnmImageHeader.h index 162dd21784..7030e06d2e 100644 --- a/panda/src/pnmimage/pnmImageHeader.h +++ b/panda/src/pnmimage/pnmImageHeader.h @@ -113,6 +113,9 @@ PUBLISHED: // make_histogram(). Note that pixels are stored by integer value, not by // floating-point scaled value. class EXPCL_PANDA_PNMIMAGE PixelSpec { + public: + INLINE PixelSpec() = default; + PUBLISHED: INLINE PixelSpec(xelval gray_value); INLINE PixelSpec(xelval gray_value, xelval alpha); @@ -120,8 +123,6 @@ PUBLISHED: INLINE PixelSpec(xelval red, xelval green, xelval blue, xelval alpha); INLINE PixelSpec(const xel &rgb); INLINE PixelSpec(const xel &rgb, xelval alpha); - INLINE PixelSpec(const PixelSpec ©); - INLINE void operator = (const PixelSpec ©); INLINE bool operator < (const PixelSpec &other) const; INLINE bool operator == (const PixelSpec &other) const; diff --git a/tests/pnmimage/test_pnmimage.py b/tests/pnmimage/test_pnmimage.py new file mode 100644 index 0000000000..0826e4f0b8 --- /dev/null +++ b/tests/pnmimage/test_pnmimage.py @@ -0,0 +1,21 @@ +from panda3d.core import PNMImage, PNMImageHeader + + +def test_pixelspec_ctor(): + assert tuple(PNMImage.PixelSpec(1)) == (1, 1, 1, 0) + assert tuple(PNMImage.PixelSpec(1, 2)) == (1, 1, 1, 2) + assert tuple(PNMImage.PixelSpec(1, 2, 3)) == (1, 2, 3, 0) + assert tuple(PNMImage.PixelSpec(1, 2, 3, 4)) == (1, 2, 3, 4) + + assert tuple(PNMImage.PixelSpec((1, 2, 3))) == (1, 2, 3, 0) + assert tuple(PNMImage.PixelSpec((1, 2, 3), 4)) == (1, 2, 3, 4) + + # Copy constructor + spec = PNMImage.PixelSpec(1, 2, 3, 4) + assert tuple(PNMImage.PixelSpec(spec)) == (1, 2, 3, 4) + + +def test_pixelspec_coerce(): + img = PNMImage(1, 1, 4) + img.set_pixel(0, 0, (1, 2, 3, 4)) + assert img.get_pixel(0, 0) == (1, 2, 3, 4)