Releases: BhavyeMathur/goopylib
1.1.134a15
- Added a
try except
clause when importing the sound subpackage to handle for MacOS Users - The goopylib
__init__.py
file not longer imports everything.
1.1.132a14
-
Renamed the
open
argument of theUniformBSpline()
function tois_open
to avoid the same name as the
built-in function -
BSpline.py
no longer uses thePoint
class for any of its functions -
Fixed a bug with the
Line
class'sset_arrow_first()
,set_arrow_last()
, &set_arrow_both
functions removing
all arrows -
The
Line
class'sset_arrow()
function now displays the correct error -
Made the setter functions for the
Line
class run faster by getting rid ofnot
s and restructuring the code -
The
Line
class no longer uses aGraphicsObject
config to store data opting instead for internal variables -
Fixed an error with the closed
UniformBSpline()
function working incorrectly -
Renamed the
UniformBSpline()
&CoxDeBoorRecursion
functions touniform_bspline()
&cox_de_boor_recursion
respectively to conform with Python Convention & PEP 8 -
The
Line
class no longer uses styles -
Fixed bug with the
AnimatedImage
class not defining itsanchor
attribute -
Added a try & except clause for the
CBezierCurve
import statement as some people were facing errors importing it.
1.1.21a12
-
Changed the if-else statements for the easing functions from
if t is not None:
toif t is None:
and switched the
code (from else-if and if-else) to reduce the amount ofnot
s called and improve performance. -
Removed an unnecessary
+
symbol from+r
,+g
,+b
from theColourRGB()
__init__
function. -
Started working a C-implementation of
colours.py
- Added the 4 colour classes andrgb_to_hex()
function. -
Added a
rgb_to_hex()
function tocolours.py
-
Removed the
__bytes__()
,__oct__()
,__ceil__()
, and__floor__() functions from
Colour` object as they are
mostly unnecessary -
The
Arc
,CurvedLine
,Entry
, &Circle
classes no longer usePoint
objects opting instead for lists in the
form[x, y]
-
You can no longer assign a style to
Circle
,Entry
,Arc
,Text
, &CurvedLine
objects -
Added a
rotate_to_face()
function to theGraphicsObject
that rotates an object to face another -
Removed a check from the
GraphicsObject
class that checked if the cursor provided was astr
because another check
already made sure that the cursor was part of a set of options -
Removed the style argument from the
GraphicsObject
class's__init__()
function -
Text
objects no longer use the old system of configs for everyGraphicsObject
. They have shifted to just using
variables -
The
Text
object getter functions now call_update_layer()
internally to fix bug with a manual redrawing required -
Changed the
Text
object'sclone()
function to copy all the attributes properly -
All the
GraphicsErrors
raised inText.py
now start with"\n\nGraphicsError: "
1.1.107a11
-
The BSpline module no longer uses the Point class. It returns the spline as a list in the form
[x, y]
-
Removed an unnecessary and unused definition of
_ease_liner()
fromEasing.py
-
Renamed the
Easing.py
module toPyEasing.py
and renamed all functions in it to have a suffix ofpy_
-
Added a
BezierCurve.py
file to serve as an interface between Python & the C Extensions -
Few more optimizations to the
bezier_curve()
function to make it run a little bit quicker
- Added a C implementation of the
rational_bezier_curve()
function - Optimized the
py_rational_bezier_curve()
function a lot
-
The
py_rational_bezier_curve()
function takes thecontrol_points
argument before theweights
to make it more
consistent with the other functions -
Added a
MANIFEST.in
file to include the.pyd
C-extension modules which weren't being packaged properly -
The CPython Interface functions now raise errors if the arguments provided are bigger than what C can accuratly
provide results for -
Moved most argument checking statements to the C implementation to increase the performance of the CPython Interface
functions.
- Added argument and error checks to the
bezier_curve()
,berstein_polynomial()
, andcombination()
functions - The C extension packages now correctly package as a module with the goopylib package
1.1.94a10
-
If no parameter is supplied to a GraphicObject's
draw()
function, it checks if it has been previously drawn and if
so, draws to the same window -
Fixed bug with the Rectangle using its
width
variable (defines how wide the rectangle is) instead ofoutline_width
(defines the thickness of the outline) to draw the outline -
The Window & AnimatedImages objects do not use the Point class anymore opting instead for a list in form
[x, y]
-
Window attributes related to size & position now have to
ints
instead of the previously acceptableint
orfloat
-
The Window's
max_width
&max_height
variables areNone
by default which means the user can choose to not define
a max size -
Added a check to ensure that the Window's
min_height
andmin_width
are greater than 0 and changed the check from
... not > 0
to... < 1
-
Window objects no longer use styles
-
Fixed bug with wrongly spelt
filter_more_enhance_edge()
asmore_enhance_edge()
inside the AnimatedImage class -
Added a C implementation of the
PyRawBezierCurve()
function to make it run much faster. -
Added optimizations for the
PyBezierCurve()
function for curves with a degree less than 6. -
numpy
is no longer a goopylib dependency -
Renamed the Python implementations of the Bezier Curve functions to follow the Python Convention
-
Removed the
py_raw_bezier_curve()
&raw_bezier_curve()
functions as they were only meant to be used internally
and moved their code directly into where they were being called
1.1.80a9
UNSTABLE RELEASE!
-
Renamed the Window's
update_win()
function to justupdate()
-
The rectangle class doesn't define a list of points inside the
__init__()
function anymore, rather, it does it in
thedraw()
function -
Added a C implementation for the Factorial, Combination, & BernsteinPolynomial functions
-
Renamed all the functions (
Combination
,BernsteinPolynomial
,RawBezierCurve
,RationalBezierCurve
,
BezierCurve
) inside BezierCurve.py to have a suffixPy
in front to avoid confusion with the C functions. -
The
PyRawBezierCurve()
,PyRationalBezierCurve()
, &PyBezierCurve()
functions now return a tuple(x, y)
instead ofPoint(x, y)
-
Made the
PyRawBezierCurve()
function more efficient and faster by calculating the size of thecontrol_points
once
rather than every iteration -
Made the
PyRawBezierCurve()
function more efficient by calculating theberstein_polynomial
once every iteration
and using the stored value -
The Rectangle class raises exceptions if proper arguments aren't supplied
-
Removed an unused VectorEquation import statement from the Rectangle class
-
You can now provide bounds arguments for the Rectangle
set_resizable()
function to define custom bounds in each
direction -
Removed the
show_bounds
argument from the _BBox'sset_resizable()
function -
Added an
undraw_bounds()
function to the GraphicsObject class to undraw any drawn bounds -
Removed the
show_bounds()
andhide_bounds()
functions from the _BBox class as these are already defined in the
GraphicsObject class -
Fixed bug with the _BBox's
set_resizable()
function being able to add the objects to the GraphicsObject's
resizing_objects
set multiple times and not removing objects from it if the object is set to be not resizable. -
Removed an unused Line module import statement from _BBox.py and a VectorEquation module import statement from
Rectangle.py -
_BBox & Line objects now use floor division to find the anchor of itself to give an integer result rather than a
float. -
The Rectangle, Oval, and _BBox classes no longer use the Point class. This aims towards a shift from deprecating the point
class in favour of length-2 list[x, y]
-
Removed the
reset_bounds()
function from the _BBox class as its functionality is not required. -
You can no longer assign a style value to any of the _BBox classes. This is a step towards deprecating the largely
useless styles -
The Rectangle's
_draw()
function now draws a Polygon shaped like a rectangle only if the rectangle is rounded,
otherwise, it draws a rectangle -
Fixed the Rectangle's
clone()
function to transfer all the previous Rectangle's attributes over properly -
More misc changes to the GraphicsObject & Oval classes
1.1.59a8
-
Added functionality to the Radio Button class
-
The Checkbox now only checks if its graphic has been clicked if its bound is None. otherwise, it returns whether or
not its bound was clicked. -
Removed the Checkbox's
is_clicked()
function because its superclass (CycleButton) already defines it -
Removed the CycleButton's
_update_layer()
function because its superclass (GraphicsObject) already defines it -
Removed an unnecessary
checkbox_instances
variable from the GraphicsObject class as the checkbox now works under
the CycleButton class -
Fixed bug with the Checkbox's
set_state()
function setting the opposite state -
Created the official goopylib logo
-
Made destroying compound GraphicObject classes much more efficient
-
Added more destroy all instances functions to the Window class
1.1.50a7
-
If the distance to move an object is 0 for both x & y, the
_move()
function does not execute. -
Changed a lot about how objects are drawn to fix bug with the layering system
-
Optimized Entry box movement to make it much faster
-
Fixed bug with Checkboxes not changing states properly
-
Closing a window now binds another window to mouse & key functions
-
The Entry, MultilineEntry, and Text objects'
set_text()
function now converts the text given to a string -
The MultilinEntry now raises an error if the user tries to use the
get_text()
function when the object is not drawn -
Fixed bug with the Window's
update_win()
function not working properly.
1.1.43a6
-
Fixed
destroy()
function with Buttons -
Fixed bug with the Button's
move()
functions not working properly due to bug with the anchor being moved twice -
Added more getter functions to the Entry & MultilineEntry classes
-
Added more setter functions to the MultilineEntry class
-
Fixed bug with Checkbox state changing not undrawing the previous state properly
-
Fixed more bugs with the Checkbox not undrawing when changing sate when using non-button states
-
You can now bind the state of a Checkbox to the state of another
-
Fixed the state argument in Checkboxes which was setting its state to the opposite state of the one inputted
-
Added a setter & getter function for text inside a multiline entry
1.1.35a5
-
Fixed AttributeError in the _BBox
set_resizable()
function because of using theappend()
function on a set,
should have beenadd()
-
Added a max_characters variable to the Entry class to control the max number of characters the user can enter
-
Added a multiline entry class to create... multi-line entries.
-
You can use tags for setting bounds for GraphicsObjects
-
Added Dragging functions for the Window class
-
Added bounding bounds for the Window class
-
Added getter functions to get the position of the window