Skip to content

Releases: Simsilica/SimMath

SimMath version 1.6.0

26 Jan 20:55
Compare
Choose a tag to compare

Incremental release with some enhancements and bug fixes.

Change log:

  • Fixed an issue with how Quatd.equals() and Vec3d.equals() dealt with NaN and -0. Thanks, sgold.
  • Added Vec3i forms of the many of the Vec3d.add()/subtract()/etc. methods. Most Vec3d operations will now accept a Vec3i as well as Vec3d.
  • Added Matrix4d.mult(vec3, vec3) method.
  • Added Quatd.mult(quatd, quatd) method.
  • Added Matrix3d.isIdentity(), Matrix4d.isIdentity(), and Quatd.isIdentity().
  • Added Vec3d.isFinite().
  • Added .equals()/.hashCode() to Matrix3d and Matrix4d.
  • Added Vec3i.multLocal(scalar)
  • Refactored the Grid ID stuff to allow for configurable bit sizes for the different x,y,z components instead of always having the bits split evenly.
  • Added some Grid unit tests for different ID methods and Grid serialization.
  • A bunch of javadoc updates (thanks, sgold)

SimMath version 1.5.0

04 Apr 02:02
Compare
Choose a tag to compare

Just one minor change over 1.4.1 and the move to maven central.

Change log:

  • Added Quatd.get(int) and Quatd.set(int, double) methods to be similar to Vec3d in allowing individual components to be set by index.
  • Published to sonatype/maven central

SimMath version 1.4.1

31 Mar 17:01
Compare
Choose a tag to compare

Incremental release, minor changes and a few new methods and a new class.

Change log:

  • Added some copy constructors to Vec3d, Vec4d, and Quatd.
  • Added getters for the start/end pos, rotation, visibility of
    PositionTransition3d and PositionTransition3f
  • Added Grid.worldToId(Vec3d), Grid.worldToId(double, double, double)
    and Grid.cellToId(Vec3i)
  • Added Vec3d.set(Vec3i)
  • Added GridCell.getId() that maps to Grid.cellToId()
  • Added Vec3d.toVec3i(), floor(), and ceil() for Vec3d to Vec3i conversion.
  • Added Grid.getContainingCell(Vec3i)
  • Added Vec3d.distance(x,y,z) and Vec3d.distanceSq(x,y,z)
  • Added Vec3i.length() and Vec3i.lengthSq()
  • Added a Vec3d.ZERO 'constant'
  • Added Rayd, a double-precision Ray class.

SimMath version 1.4.0

27 Apr 20:59
Compare
Choose a tag to compare

Incremental release with a new IntRangeSet class.

Change log:

  • Added an IntRange interface and default FixedIntRange implementation to
    represent a range of ints.
  • Added an IntRangeSet which is a Set (and effectively Set<int))
    that is space-optimized for sets of integers that consist of packed ranges.

SimMath version 1.3.0

13 Feb 10:20
Compare
Choose a tag to compare

Incremental release with some new methods.

Change log:

  • Added Quatd.fromAngles(double[])
  • Added Quatd.equals() and Quatd.hashCode()
  • Added Vec3d.isSimilar() and Quatd.isSimilar() that allow for comparison of values within some epsilon.
  • Converted a System.out.println() in Vec3Bits to a log.debug() call.
  • Added Vec3d.interpolateLocal().
  • Added Quatd.slerpLocal().
  • Added PositionTransition3f and PositionTransition3d.
  • Deprecated PositionTransition in favor of PositionTransition3f or PositionTransition3d.
  • Deprecated PositionTransition.getFrameVelocity() and did not port it to PositionTransition3f or PositionTransition3d.

SimMath version 1.2.0

20 Nov 01:07
Compare
Choose a tag to compare

Incremental release with some new methods.

Change log:

  • Added Vec4i.toVec3d()
  • Added Vec3d.set(Vector3f)
  • Modified Vec3d.set(Vec3d) and set(index, val) to return Vec3d (this)
  • Added Quatd.set(Quaternion)
  • Added a Vec3d.xzy() swizzle method
  • Added filter package with Filterd interface and initial
    SimpleMovingMean filter implementation
  • Modified all Quatd.set() methods to return Quatd (this)
  • Modified Quatd.addScaledVectorLocal() to return Quatd (this)
  • Modified Vec3d.zeroEpsilon() and Vec4d.zeroEpsilon() to return
    Vec3d and Vec4d resepctively (this)
  • Modified all Vec3i void-return methods to return Vec3i (this)
  • Added Vec3d.divide() and divideLocal() methods.
  • Added Vec3d.multLocal(Vec3d) method
  • Added Vec4d.divide() and divideLocal() methods.
  • Added Vec4d.multLocal(Vec3d) method
  • Suppressed some 'unchecked' warnings in TransitionBuffer since we
    know we're doing generic-voodoo in there.
  • Set sourceCompatibility to 1.7 and turned on detailed 'unchecked' warnings

SimMath Version 1.1.1

18 Feb 07:00
Compare
Choose a tag to compare

Incremental release that merely adds a toAngles() call to Quatd.

SimMath Version 1.1.0

29 Dec 22:22
Compare
Choose a tag to compare

Incremental improvements and new Grid and GridCell classes.

Full change list:

  • Added an alternate AaBBox.setCenter(double, double, double) method.
  • Added Matrix3d.addLocal(Matrix3d).
  • Added Matrix3d.setSkewSymmetric(Vec3d).
  • Modified Matrix3d.set() and Matrix3d.makeIdentity() to return 'this'
    Matrix3d.
  • Modified Vec3d.set() to return 'this' Vec3d.
  • Added Vec3d.isNaN() which will return true if any of the components
    are NaN.
  • Added a Vec3d constructor that takes a JME Vector3f as a reciprocal to
    the existing toVector3f() method.
  • Added Grid and GridCell classes for standardizing the partitioning of
    3D space into regularly spaced cells.
  • Made several of the classes Serializable: Quatd, Vec3d, Vec3d, Matrix3d,
    Matrix4d, and AaBBox.
  • Made Matrix3d, Matrix4d, and AaBBox cloneable.
  • Added a Quatd constructor that takes a JME Quaternion as a reciprocal to
    the existing toQuaternion() method.

SimMath Version 1.0.2

22 Nov 10:16
Compare
Choose a tag to compare

A small bug fix release with the following changes:

  • Modified TransitionBuffer to have a 'clamp' on getTransition()
    that when 'true' will use the old behavior of returning the
    earliest/latest transition for out-of-range times. For 'false',
    it will return null for out-of-range times.
  • Modified TransitionBuffer to remove the System.out.println() for
    out-of-range times.
  • Modified the build.gradle to replace the JME version with a specific
    version instead of letting it float. I think alpha4 is generally
    the minimum accepted 3.1 version at this point.

Version 1.0.1

29 Feb 23:32
Compare
Choose a tag to compare

This is the initial release to coincide with the release of gradle/maven artifacts.