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