From 62ff5245c26c305e35a2903cc64a60cb20718e96 Mon Sep 17 00:00:00 2001 From: Indrajith K L Date: Sun, 27 Feb 2022 01:15:31 +0530 Subject: Initial Commit * ECS - In-Progress * GameStates - Skeleton Implemented * Library Integrations - Completed * Levels - In-Progress --- libs/windfield/mlib/Changes.txt | 568 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 568 insertions(+) create mode 100644 libs/windfield/mlib/Changes.txt (limited to 'libs/windfield/mlib/Changes.txt') diff --git a/libs/windfield/mlib/Changes.txt b/libs/windfield/mlib/Changes.txt new file mode 100644 index 0000000..4e7fc52 --- /dev/null +++ b/libs/windfield/mlib/Changes.txt @@ -0,0 +1,568 @@ +0.11.0 +==== +Added: +---- +- mlib.vec2 component + +To-Do: +---- +- Update README.md +- Update spec.lua +- Fix tabbing + +0.10.1 +==== +Added: +---- +- Point category + - point.rotate + - point.scale + - point.polarToCartesian + - point.cartesianToPolar + +Changed: +---- +- math.getPercent now returns decimals (instead of percentages) since those are more common to use. + +To-Do: +---- +- Determine if isCompletelyInsideFunctions should return true with tangents. +- Check argument order for logicality and consistency. +- Add error checking. +- Make sure to see if any aliases were missed. (e.g. isSegmentInside) +- Clean up and correct README (add "Home" link, etc.) + +0.10.0 +==== +Added: +---- + +Changed: +---- +- mlib.line.segment is now mlib.segment. +- mlib.line.getIntercept has been renamed to mlib.line.getYIntercept +- mlib.line.getYIntercept now returns the x-coordinate for vertical lines instead of false. +- mlib.line.getYIntercept now returns the value `isVertical` as the second return value. +- mlib.line.getPerpendicularBisector is now mlib.segment.getPerpendicularBisector. + +Fixed: +---- +- mlib.line.getIntersection now should handle vertical slopes better. +- mlib.line.getClosestPoint now uses local function checkFuzzy for checking horizontal lines. +- Fixed possible bug in mlib.line.getSegmentIntersection and vertical lines. +- mlib.segment.getIntersection now uses fuzzy checking for parallel lines. +- mlib.math.round is now much more efficient. +- Removed some useless code from mlib.polygon.isSegmentInside. + +To-Do: +---- +- Determine if isCompletelyInsideFunctions should return true with tangents. +- Check argument order for logicality and consistency. +- Improve speed. +- Add error checking. +- Make sure to see if any aliases were missed. (e.g. isSegmentInside) +- Implement mlib.shapes again(?) +- Clean up and correct README (add "Home" link, etc.) + +0.9.4 +==== +Added: +---- + +Changed: +---- +- mlib.line.getDistance is now slightly faster. +- Made code much easier to debug by using new utility `cycle`. +- Added new utility. +- Various other minor changes. + +Removed: +---- +- Unused local utility function copy + +To-Do +---- +- Determine if isCompletelyInsideFunctions should return true with tangents. +- Make argument order more logical. +- Improve speed and error checking. +- Make sure to see if any aliases were missed. (e.g. isSegmentInside) +- Implement mlib.shapes again(?) +- Clean up README (add "Home" link, etc.) + +0.9.3 +==== +Added: +---- +- milb.circle.isCircleCompletelyInside +- mlib.circle.isPolygonCompletelyInside +- milb.circle.isSegmentCompletelyInside +- mlib.polygon.isCircleCompletelyInside +- mlib.polygon.isPolygonCompletelyInside +- mlib.polygon.isSegmentCompletelyInside + + - ALIASES - +- mlib.circle.getPolygonIntersection +- mlib.circle.isCircleInsidePolygon +- mlib.circle.isCircleCompletelyInsidePolygon +- milb.line.getCircleIntersection +- milb.line.getPolygonIntersection +- milb.line.getLineIntersection +- mlib.line.segment.getCircleIntersection +- mlib.line.segment.getPolygonIntersection +- mlib.line.segment.getLineIntersection +- mlib.line.segment.getSegmentIntersection +- mlib.line.segment.isSegmentCompletelyInsideCircle +- mlib.line.segment.isSegmentCompletelyInsidePolygon +- mlib.polygon.isCircleCompletelyOver + +Changed: +---- +- mlib.circle.getCircleIntersection now returns 'inside' instead of 'intersection' if the point has not intersections but is within the circle. +- Fixed problem involving mlib.circle.getSegmentIntersection + +- README.md now has more information on how to run specs and other minor improvements. +- Fixed some commenting on explanation of derivation of mlib.line.getIntersection. +- Updated the example to use the current version of mlib. +- Made/Changed some comments in the example main.lua. + +Removed: +---- + +To-Do +---- +- Make examples file on github (examples/shapes/main.lua, etc.) not just one line. +- Determine if isCompletelyInsideFunctions should return true with tangents. +- Make argument order more logical. +- Make sure to see if any aliases were missed. (e.g. isSegmentInside) +- Update spec links in README + +0.9.2 +==== +Added: +---- + +Changed: +---- +- mlib.polygon.getPolygonIntersection now does not create duplicate local table. +- mlib.line.getPerpendicularSlope now does not create a global variable. +- mlib.math.getSummation now allows the error to go through instead of returning false if the stop value is not a number. + +- Changed any instance of the term "userdata" with "input" + +Removed: +---- + +0.9.1 +==== +Added: +---- +- Added mlib.statistics.getCentralTendency +- Added mlib.statistics.getDispersion +- Added mlib.statistics.getStandardDeviation +- Added mlib.statistics.getVariation +- Added mlib.statistics.getVariationRatio + +Removed: +---- + +Changed: +---- +- FIX: mlib.polygon.checkPoint now handles vertices better. + + +To-Do +---- +- Add more functions. + +0.9.0 +==== +Added: +---- +- mlib.line.getDistance as an alias for mlib.line.getLength. +- mlib.line.checkPoint +- Internal documentation. + +Removed: +---- +- mlib.circle.isPointInCircle is replaced with mlib.circle.checkPoint +- mlib.circle.checkPoint is replaced with mlib.circle.isPointOnCircle +- Variation of mlib.circle.getLineIntersection( cx, cy, radius, slope, intercept ) is no longer supported, as it can cause errors with vertical lines. + +Changed: +---- +- CHANGE: mlib.line.getIntersection now returns true for colinear lines. +- CHANGE: mlib.line.getIntersection now returns true if the line are collinear. +- CHANGE: mlib.line.getIntersection now returns true if vertical lines are collinear. +- CHANGE: mlib.line.getSegmentIntersection now returns true if the line and segment are collinear. +- CHANGE: Changed the order of mlib.line.segment.checkPoint arguments. +- NAME: mlib.polygon.lineIntersects is now mlib.polygon.getLineIntersection +- NAME: mlib.polygon.lineSegmentIntersects is now mlib.polygon.getSegmentIntersection +- NAME: mlib.polygon.isLineSegmentInside is now mlib.polygon.isSegmentInside +- NAME: mlib.polygon.polygonIntersects is now mlib.polygon.getPolygonIntersection +- CHANGED: mlib.circle.checkPoint now takes arguments ( px, py, cx, cy, radius ). +- CHANGED: mlib.circle.isPointOnCircle now takes arguments ( px, py, cx, cy, radius ). +- NAME: mlib.polygon.circleIntersects is now mlib.polygon.getCircleIntersection +- NAME: mlib.circle.isLineSecant is now mlib.circle.getLineIntersection +- NAME: mlib.circle.isSegmentSecant is now mlib.circle.getSegmentIntersection +- NAME: mlib.circle.circlesIntersects is now mlib.circle.getCircleIntersection +- CHANGE: Added types 'tangent' and 'intersection' to mlib.circle.getCircleIntersection. +- NAME: mlib.math.getRootsOfQuadratic is now mlib.math.getQuadraticRoots +- CHANGE: mlib.math.getRoot now only returns the positive, since it there is not always negatives. +- NAME: mlib.math.getPercent is now mlib.math.getPercentage + +- Cleaned up code (added comments, spaced lines, etc.) +- Made syntax that uses camelCase instead of CamelCase. + - Match style of more programmers. + - Easier to type. +- Moved to semantic numbering. +- Made any returns strings lower-case. +- Updated specs for missing functions. + +To-Do +---- +- Update readme. +- Add mlib.statistics.getStandardDeviation +- Add mlib.statistics.getMeasuresOfCentralTendency +- Add mlib.statistics.getMeasuresOfDispersion + +1.1.0.2 +==== +Added: +---- +- MLib.Polygon.IsPolygonInside + +Removed: +---- +- Removed all MLib.Shape: + - Was very slow. + - Could not define custom callbacks. + - Allow for flexibility. + +Changed: +---- +- Switched MLib.Line.GetIntersection back to the old way +- MLib.Line.GetSegmentIntersection now returns 4 values if the lines are parallel. + +TODO: +- Make it so that MLib.Shape objects can use ':' syntax for other functions (i.e. MLib.Line.GetLength for Line objects, etc.) +- Intuitive error messages. + + +1.1.0.1 +==== +Added: +---- + +Removed: +---- + +Changed: +- MLib.Line.GetIntersection now returns true, instead of two points. + +---- + +Fixed: +---- +- MLib.Line.GetIntersection now handles vertical lines: returns true if they collide, false otherwise. +- MLib.Polygon.LineIntersects now also handles verticals. + +TODO: +- Fix + - MLib.Shape Table can't have metatables. + +1.1.0.0 +==== +Added: +---- +- MLib.Polygon.IsCircleInside +- MLib.Polygon.LineSegmentIntersects +- MLib.Polygon.IsLineSegmentInside +- MLib.Statistics.GetFrequency +- MLib.Math.Factorial +- MLib.Math.SystemOfEquations + +Removed: +---- + +Changed: +---- +- MLib.Polygon.LineIntersects is now MLib.Polygon.LineSegmentIntersects. +- Put Word-wrap on Changes.txt + +Fixed: +---- +- Problems with numberous MLib.Polygon and MLib.Circle problems. + +TODO: +- Fix + - MLib.Shape Table can't have metatables. + +1.0.0.3 +==== +Added: +---- + +Removed: +---- + +Changed: +---- + +Fixed: +---- +- README.md + +TODO: +- Add: + - Frequency + - Binomial Probability + - Standard Deviation + - Conditional Probability + +1.0.0.2 +==== +Added: +---- + +Removed: +---- +- Ability to use a direction for Math.GetAngle's 5th argument instead of having a third point. See Fixed for more. + +Changed: +---- +- Changed README.md for clarity and consistency. +- Updated spec.lua +- See Fixed for more. + +Fixed: +---- +- Circle.IsSegmentSecant now properly accounts for chords actually being chords, and not secants. +- Circle.CircleIntersects now can return 'Colinear' or 'Equal' if the circles have same x and y but different radii (Colinear) or are exactly the same (Equal). +- Statistics.GetMode now returns a table with the modes, and the second argument as the number of times they appear. +- Math.GetRoot now returns the negative number as a second argument. +- Math.GetPercentOfChange now works for 0 to 0 (previously false). +- Math.GetAngle now takes only three points and no direction option. +- Typos in Shape.CheckCollisions and Shape.Remove. +- Fixed nil problems in Shape.CheckCollisions. +- Improved readablility and DRYness of Shape.CheckCollisions. +- Bugs in Shape.Remove and Shape.CheckCollisions regarding passing tables as arguments. + +TODO: +- Add: + - Frequency + - Binomial Probability + - Standard Deviation + - Conditional Probability + +1.0.0.1 +==== +Added: +---- + +Removed: +---- + +Changed: +---- +- Changes.txt now expanded to include short excertps from all previous commits. +- Changed release number from 3.0.0 to 1.0.0.1 +- Math.Round now can round to decimal places as the second argument. +- Commented unnecessary call of Segment.CheckPoint in Polygon.LineIntersects. +- Polygon.LineIntersects now returns where the lines intersect. + - false if not intersection. + - A table with all of the intersections { { px, py } } +- Same with Polygon.PolygonIntersects, Polygon.CircleIntersects, + +Fixed: +---- +- Error with GetSlope being called incorrectly. +- README.md Line.GetPerpendicularSlope misdirection. +- Same with Line.GetPerpendicularBisector, Line.Segment.GetIntersection, Circle.IsLineSecant, Circle.IsSegmentSecant, Statistics.GetMean, Median, Mode, and Range, and Shape:Remove, and fixed the naming for Shape:CheckCollisions and Shape:Remove. +- Clarified README.md +- Made util SortWithReferences local. +- Errors caused by local functions. + +TODO: +- Add: + - Frequency + - Binomial Probability + - Standard Deviation + - Conditional Probability + +3.0.0 +----- +ADDED: +- Added function GetSignedArea. +REMOVED: +- Removed drawing functions. +- Removed MLib.Line.Functions entirely. +CHANGED: +- Changed all the names to CamelCase. +- Changed module name to MLib. +- Changed return order of GetPerpendicualrBisector from Slope, Midpoint to Midpoint, Slope. +- Changed returned string of MLib.circle.isLineSecant to be upper-case. +- Changed IsPrime to accept only one number at a time. +- Changed NewShape's type to Capitals. + +Related to code: +- Added more accuarate comments. +- Made code more DRY. +- Made code monkey-patchable and saved space (by declaring all functions as local values then inserted them into a large table. + +TODO: +- Make LineIntersectsPolygon return where intersection occurs. +- Ditto with PolygonIntersectsPolygon. +- Add: + - Frequency + - Binomial Probability + - Standard Deviation + - Conditional Probability + + +Not as accurately maintained before 2.0.2 +----------------------------------------- + +2.0.2 +----- +- Cleaned up code, mostly. + +2.0.1 +----- +- Bug fixes, mlib.shape:remove & demos added. + +2.0.0 +----- +- Added mlib.shape and various bug fixes. + +2.0.0 +----- +- Made mlib.shape and made numberous bug fixes. + +1.9.4 +----- +- Made mlib.math.prime faster and removed ability to test multiple numbers at once. Thanks Robin! + +1.9.3 +----- +- Fixed polygon.area and polygon.centroid + +1.9.2 +----- +- Updated to LOVE 0.9.0. + +1.9.1 +----- +- Made mlib.line.closestPoint able to take either two points on the slope or the slope and intercept. + +1.9.0 +----- +- Added mlib.lineSegmentIntersects (no affiliation with previous one (changed to mlib.line.segment.intersect)) and mlib.line.closestPoint + +1.8.3 +----- +- Changed naming mechanism to be more organized. + +1.8.2 +----- +- "Fixed" mlib.lineSegmentsIntersect AGAIN!!!! :x + +1.8.1 +----- +- Removed a print statement. + +1.8.0 +----- +- mlib.pointInPolygon added + +1.7.5 +----- +- mlib.lineSegmentsIntersect vertical lines fixed again. This time for real. I promise... or hope, at least... :P + +1.7.4 +----- +- mlib.lineSegmentsIntersect vertical parallels fixed + +1.7.3 +----- +- mlib.lineSegmentsIntersect parallels fixed + +1.7.2 +----- +- mlib.lineSegmentsIntersect now handles vertical lines + +1.7.1 +----- +- mlib.lineSegmentsIntersect now returns the two places in between where the line segments begin to intersect. + +1.7.0 +----- +- Added mlib.circlesIntersect, mlib.pointOnLineSegment, mlib.linesIntersect, and mlib.lineSegmentsIntersect + +1.6.1 +----- +- Employed usage of summations for mlib.getPolygonArea and mlib.getPolygonCentroid and removed area as an argument for mlib.getPolygonCentroid. + +1.6.0 +----- +- Added several functions. + +1.5.0 +----- +- Made lots of changes to syntax to make it easier to use (hopefully). I also put out specs. + +1.4.1 +----- +- Localized mlib. Thanks, Yonaba! + +1.4.0 +----- +- Added mlib.getPolygonCentroid (gets the midpoint of a non-self-intersecting polygons) + +1.3.2 +----- +- Made mlib.getPrime take tables as arguments, so you can check all the values of a table. + +1.3.1 +----- +- Changed name method to mlib.getPolygonArea + +1.3.0 +----- +- Added mlib.get_polygon_area and removed mlib.get_convex_area and mlib.get_triangle_area since they are repetitive. + +1.2.2 +----- +- Made functions return faster, functions that previously returned tables now return multiple arguments. + +1.2.1 +----- +- Localized functions, made tables acceptable as arguments, refined function speed, mlib.get_mode now returns number most repeated as well as how many times. + +1.2.0 +----- +- Added mlib.get_angle + +1.1.0 +----- +- Added mlib.get_convex_area + +1.0.4 +----- +- Fixed get_mode to handle bimodials. + +1.0.3 +----- +- Prime Checker optimized (hopefully final update on this.) + +1.0.2 +----- +- Prime checker now works! (At least to 1000. I haven't tested any +further) + +1.0.1 +----- +- 'Fixed' the prime checker + +1.0.0 +----- +- Initial release -- cgit v1.2.3