Commit Graph

178 Commits

Author SHA1 Message Date
Michael Bayne 15224b8185 Merge pull request #7 from tconkling/master
Rectangles.pointRectDistance and associated unit test
2011-12-20 19:05:51 -08:00
Tim Conkling d2bebff736 Functions for computing the distance between a Point and a Rectangle 2011-12-16 12:35:25 -08:00
Michael Bayne 060ff1b877 Make the upper bound exclusive in normalizeAngle(Positive). 2011-11-22 16:43:52 -08:00
Michael Bayne 274dd1858d Fix typo. Thanks Tim! 2011-11-19 16:45:25 -08:00
Michael Bayne cc5e599235 Match the argument ordering of the float version. 2011-11-16 13:56:33 -08:00
Michael Bayne 26cf80f38f Added an integer MathUtil with clamp(low, value, high). 2011-11-16 13:55:34 -08:00
Michael Bayne 6f7b519102 My fix for said SBT bug has made it upstream. 2011-10-17 11:15:43 -07:00
Michael Bayne 9387ff18d5 Updated to ooo-build 2.9; added javadoc and deploy targets. 2011-10-15 15:05:11 -07:00
Michael Bayne 403bafce13 Ray recommends using <= when comparing to epsilon.
This allows epsilon of 0 to work.
2011-10-11 13:17:05 -07:00
Michael Bayne b67c0bfc48 Added IVector.isZero(), Vectors.isZero(), isEpsilonZero(), isEpsilonEquals(),
and similar epsilon equals methods to Points.
2011-10-11 12:43:50 -07:00
Michael Bayne 2a1e86e77f Formatting. 2011-10-11 12:43:35 -07:00
Michael Bayne 086c76e175 Merge pull request #6 from groves/master
Allow MathUtil.toString's decimals to be specified
2011-10-05 15:10:50 -07:00
Charlie Groves b54f684f45 Allow MathUtil.toString's decimals to be specified 2011-10-05 15:07:53 -07:00
Michael Bayne a9087b2c02 Bump to new snapshot version. 2011-09-20 13:46:20 -07:00
Michael Bayne 2052a92dc5 Updated README to reflect 1.1 release. 2011-09-20 13:33:46 -07:00
Michael Bayne ec70c7f0e1 [maven-release-plugin] prepare for next development iteration 2011-09-20 13:31:19 -07:00
Michael Bayne d4cc17c355 [maven-release-plugin] prepare release pythagoras-1.1 2011-09-20 13:31:14 -07:00
Michael Bayne 5e344f9511 Avoid an extra division (and field update) in setScaleX/Y. Thanks Tim! 2011-09-15 16:24:29 -07:00
Michael Bayne dd64ca194f Erm, we need our classes as well as our source. 2011-09-09 17:18:45 -07:00
Michael Bayne 4f2ad2493c Nix that, ooo-build uses maven.deploy.repo so that's what we must use. 2011-09-09 16:51:54 -07:00
Michael Bayne 0059edfd21 Tidied up Ant build. 2011-09-09 16:35:05 -07:00
Michael Bayne f32a735215 Merge remote-tracking branch 'tconkling/master'
Conflicts:
	src/main/java/pythagoras/f/AbstractCircle.java
	src/main/java/pythagoras/f/ICircle.java
2011-09-09 10:10:44 -07:00
Michael Bayne c6321e4573 Version of circle code specialized on double. 2011-09-09 10:08:49 -07:00
Michael Bayne 2753a9523d Small tidying. 2011-09-09 10:07:34 -07:00
Tim Conkling c82f38fa97 It helps to get the math right 2011-09-09 10:05:11 -07:00
Tim Conkling 1916a7e8e7 Circle implementation 2011-09-09 10:05:02 -07:00
Michael Bayne 6a4c46114e Don't publish to the Maven repository from SBT.
We need SBT to publish to the local Ivy repository, so that we can reference
snapshots from other SBT projects. Pulling a snapshot from the local Maven
repository just doesn't seem to work with SBT+Ivy.
2011-09-06 15:51:32 -07:00
Michael Bayne 42d4353788 Various Vector enhancements.
- Moved Vector.direction to Point.direction as that makes more sense. If you
  want to know the angle of the vector between two points, you should do that
  on points, not vectors.

- Added Vector.angle() which returns the angle of the vector (in polar
  coordinates), which matches Vector.length() which returns the magnitude of
  the vector (in polar coordinates).

- Added Vectors.fromPolar to create a vector from polar coordinates, and added
  Vector.setLength and Vector.setAngle to set the one whilst preserving the
  other.
2011-09-02 15:55:05 -07:00
Michael Bayne 49eafa5653 Vector.angle -> Vector.angleBetween. 2011-09-02 15:23:13 -07:00
Michael Bayne 0644fc6f59 Added Point.subtract, for creating a vector from endpoints. 2011-09-02 15:21:17 -07:00
Michael Bayne ffd2f10b24 Changed Vector.mult to Vector.scale and clarified the javadocs.
As Tim points out, vector multiplication implies dot or cross products. These
methods are scaling, not multiplying. Cross product coming in a future commit.
2011-09-02 15:15:06 -07:00
Tim Conkling 59416dca9e It helps to get the math right 2011-09-02 13:43:55 -07:00
Tim Conkling ad7472bde2 Circle implementation 2011-09-02 13:41:18 -07:00
Michael Bayne e8b0a664d6 Specify that we want to 1.6-compatible class files. I'm building with 1.7 these
days. w00t!
2011-08-25 11:27:19 -07:00
Michael Bayne 67e2737548 Filter the super-source directory from the SBT build. 2011-08-15 07:34:02 -07:00
Michael Bayne 047bc49c31 Exclude the super-source directory when building the code. We also no longer
use src/main/resources.
2011-08-15 07:26:55 -07:00
Michael Bayne cc1c1d3f51 Use super-source to provide our GWT-specialized Platform.java. 2011-08-13 09:32:34 -07:00
Michael Bayne 41a3eff538 Build file tweaks. 2011-08-12 16:22:36 -07:00
Michael Bayne c8d591c8a2 Converted the float bits to double since they've substantially evolved. 2011-08-12 11:00:36 -07:00
Michael Bayne 0d82811da9 Split FloatMath into MathUtil and FloatMath.
FloatMath contains only shim methods that convert double Math methods to float,
but extends MathUtil so that library users can easily access everything via one
class. MathUtil is used internally so that I can convert pythagoras.f to
pythagoras.d with a few sed expressions. And MathUtil would be what users of
pythagoras.d would want to use for their lerping, clamping and stringifying.
2011-08-12 10:57:53 -07:00
Michael Bayne 41f62de088 getX -> x (in both the literal and algebraic sense).
In anticipation of the saying of nay, I offer this: these are value classes,
and in a civilized language, I wouldn't have setters either. "foo.x = x" would
call a setter method over which I had control. However, rather than throwing my
hands up and saying "Gee, I have to have verbose setters, so I guess I better
have verbose getters," I say, "I'll take what I can get."

Methods that verb can be verbs, and we can all agree to understand that methods
that are nouns are getters. foo.width() does not width my foo, it's my foo's
width. foo.invert() inverts up my foo, it is not some attribute of my foo's
nonsensically named invert. I don't want to add my foo's getWidth and
getHeight, I want to add my foo's width and height. So why should I have to
type get over and over again just because I want to protect myself from future
representation change? (Or in this case, to offer immutable views of my value
classes.)
2011-08-12 10:19:37 -07:00
Michael Bayne a537b6627d Fixed typo. 2011-08-05 16:47:39 -07:00
Michael Bayne 5e7529d969 Fixed bug in getTy(). 2011-08-05 16:45:49 -07:00
Michael Bayne e7cfc6c350 Fixed translate() methods. 2011-08-05 16:45:32 -07:00
Michael Bayne e21872e686 GLSL uses column-major matrices, so let's use those as well to avoid confusing
mismatch.
2011-08-05 13:56:13 -07:00
Michael Bayne 1cb8b8bff5 Better error reporting on test failure. 2011-08-05 13:55:57 -07:00
Michael Bayne 1936e20380 Fixed FloatMath.toString(), added tests. 2011-07-29 11:00:20 -07:00
Michael Bayne 92f6e0932f Added an SBT build. 2011-07-22 15:56:43 -07:00
Michael Bayne 102fb340b7 Improved float value formatting. 2011-07-19 09:33:17 -07:00
Michael Bayne d3b91156b0 Removed IEEERemainder for GWT compatibility. 2011-07-12 07:27:02 -07:00