rectangle intersects error

Bug #1400906 reported by Ahmet Sezgin DURAN
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
python-sfml (Ubuntu)
Fix Released
High
James Cowgill

Bug Description

In the v1.3 release of the library, there's a bug in "intersects" method of the Rectangle class, here:

http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/vivid/python-sfml/vivid/view/head:/src/sfml/graphics.pyx#L188

Also in the original source code on Github:

https://github.com/Sonkun/python-sfml/blob/bb9e11918508e8f38c5a308a36aaeda72896a635/src/sfml/graphics.pyx#L188

It makes "intersects" method to fail. Like this:

>>> a.global_bounds.intersects(b.global_bounds)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "graphics.pyx", line 188, in sfml.graphics.Rectangle.intersects (src/sfml/graphics.cpp:4717)
  File "graphics.pyx", line 97, in sfml.graphics.Rectangle.__init__ (src/sfml/graphics.cpp:2489)
TypeError: __init__() takes at most 2 positional arguments (4 given)

Related branches

description: updated
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in python-sfml (Ubuntu):
status: New → Confirmed
Revision history for this message
Russell Ballestrini (russell-ballestrini) wrote :

Test case:

test_case.py:

import sfml as sf
r1 = sf.Rectangle((0,0), (5,5))
r2 = sf.Rectangle((4,4), (5,5))
r1.intersects(r2)

python test_case.py
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    r1.intersects(r2)
  File "graphics.pyx", line 188, in sfml.graphics.Rectangle.intersects (src/sfml/graphics.cpp:4717)
  File "graphics.pyx", line 97, in sfml.graphics.Rectangle.__init__ (src/sfml/graphics.cpp:2489)
TypeError: __init__() takes at most 2 positional arguments (4 given)

Revision history for this message
Russell Ballestrini (russell-ballestrini) wrote :

The issue seems to be a difference between CPP and Python versions.

The CPP version has 3 constructors for `Rect`, including a constructor that accepts four positional arguments:

        https://github.com/LaurentGomila/SFML/blob/master/include/SFML/Graphics/Rect.hpp#L67

The Python `Rectangle` class only supports the default constructor with no arguments and the constructor with two keyword arguments.

        https://github.com/Sonkun/python-sfml/blob/master/src/sfml/graphics.pyx#L111-L115

Inside the intersection method, an invocation of the four argument constructor is called, which is most likely the reason this breaks in python-sfml but not cpp SFML

Revision history for this message
Russell Ballestrini (russell-ballestrini) wrote :

Additionally this bug seems to have been fixed upstream:

https://github.com/Sonkun/python-sfml/blob/master/src/sfml/graphics.pyx#L202

Revision history for this message
Russell Ballestrini (russell-ballestrini) wrote :

workaround posted in forums --

        http://en.sfml-dev.org/forums/index.php?topic=11436.0

Changed in python-sfml (Ubuntu):
importance: Undecided → High
status: Confirmed → Triaged
tags: added: trusty utopic vivid
Revision history for this message
James Cowgill (jcowgill) wrote :

Fixed in the Debian git repo - will upload shortly.

Changed in python-sfml (Ubuntu):
assignee: nobody → James Cowgill (jcowgill)
status: Triaged → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package python-sfml - 1.5.1.is.1.3+dfsg-2

---------------
python-sfml (1.5.1.is.1.3+dfsg-2) unstable; urgency=medium

  * debian/README.Debian
    - Add with information about removed non-dfsg files (see #732139).
  * debian/control:
    - Bump standards version - no changes.
    - Use cgit Vcs-Browser URL.
  * debian/copyright:
    - Update debian/copyright and readd Christoph Egger's copyright.
  * debian/patches:
    - Add numbers to patch names.
    - Add patch to fix sf.Rectangle.intersects (LP: #1400906).
  * debian/rules:
    - Fix arch-independent build failure.
  * debian/watch:
    - Fix watch file to work with 1.5.1 version number.

 -- James Cowgill <email address hidden> Mon, 18 May 2015 14:31:19 +0100

Changed in python-sfml (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.