All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
The changelog only keeps track of updates post version 0.1.4
- Dropped python
2.7
support as there is no further reason to with a complete rewrite of typehints.
amath
module is renamed togeometry
PixelPainter
class is renamed tomask
geometry
-Matrix
classes now supports attribute and index fetchingm.x
orm[0]
orm["x"]
as part of the__getitem__
routine.screen
-DispWindow
renamed toscreen.WindowsControl
,screen.DispMacOS
andscreen.DispLinux
is generalized toscreen.UnixControl
.Displayable
is renamed toScreen
.- Built-in render and collision methods provided acquires color from
object.color
and acquires texture fromobject.texture
- Rendering methods are completely re-written in a way optimized for coloring
utils
- Added aProfiler
class which utilizes a tiny wrapper class that usescProfile
andpstats
from the stdlib and allows a form of context manager to gather the statistics of the application and dump it elsewhere.Color
- general means of coloring components of the consolegeometry
- Projection and rotational matrixes,geometry.X_ROTO_MATRIX
,geometry.Y_ROTO_MATRIX
,geometry.Z_ROTO_MATRIX
,geometry.PROJE_MATRIX
. these are further implemented bygeometry.project_3D
andgeometry.rotate_3D
screen
-Screen.refresh
used to write directly in a low level operation onto stdout with cursor at the origin (the frame system remains the same)values
-ANSI
provides variou ANSI escape code as hex code for chaning escape sequences to willdevices
-Keyboard
andMouse
module provides handling input and output on those devices ~Mic
andAudio
will be implemented later down the line.planes
-Rasterizer
,Collidable
implemented (they used to be generalized as part ofPlane
)
planes.Rectangle
utils.caches
- usefunctools.lru_cache
_2D.methods
directory is removed and specific methods are now stitched to relevant objects, this includes collision physics and rasturizing.
- This is the last update until major release
0.2
, which is expected to feature 3D elements at first hand and a more concrete structure definition, although there are possibilities of bug fixing releases before it.
amath.Line
- a simple abstract representation of a mathemathical line from two points, this isn't subclassed underPlane
because it isn't a graphical modelplanes.Triangle
- simple class that implementsamath.Line
classesamath
- module in the general scope for optimized arithmeticamath.Matrix
- the genesis of all 3D objects and concepts for the future ;) supports all operable actions with and on itself and other compatible types- An installable extension package which is a code interpolator that condenses any post version 0.1.4 distributions of the library into one singular
.py
file that can be shipped off readily. The condensed python contains version information, resolved relative dependencies, system dependencies and licenses as well ~ it will also support the submodule importing syntax e.g.from Asciinpy._2D import Plane
; as it makes-up classes under the namespace of the sub packages with their contents defined.
- Objects are now appropriately categorized onto their respective sub-packages (
_2D
and_3D
)if said dimensions are an integral part of differientiating and using them ~ objects lower than 2D are put in the general scope, this is for example whyutils
andamath
aren't categorized into dimensions. - 2D specific models are now subclassed under
Plane
which is a renamed class of version 0.1.4Model
~ while the 3D base model class is namedModel
.