Skip to content

Commit

Permalink
Optimize Matrix[4/4x3]f.set3x3(Matrix3f)
Browse files Browse the repository at this point in the history
  • Loading branch information
httpdigest committed Oct 11, 2016
1 parent e256692 commit fe16c78
Show file tree
Hide file tree
Showing 3 changed files with 44 additions and 18 deletions.
10 changes: 1 addition & 9 deletions src/org/joml/Matrix4f.java
Original file line number Diff line number Diff line change
Expand Up @@ -4370,15 +4370,7 @@ public Matrix4f translationRotate(float tx, float ty, float tz, Quaternionf quat
* @return this
*/
public Matrix4f set3x3(Matrix3f mat) {
m00 = mat.m00;
m01 = mat.m01;
m02 = mat.m02;
m10 = mat.m10;
m11 = mat.m11;
m12 = mat.m12;
m20 = mat.m20;
m21 = mat.m21;
m22 = mat.m22;
MemUtil.INSTANCE.copy3x3(mat, this);
properties &= ~(PROPERTY_PERSPECTIVE | PROPERTY_IDENTITY | PROPERTY_TRANSLATION);
return this;
}
Expand Down
10 changes: 1 addition & 9 deletions src/org/joml/Matrix4x3f.java
Original file line number Diff line number Diff line change
Expand Up @@ -2865,15 +2865,7 @@ public Matrix4x3f translationRotate(float tx, float ty, float tz, Quaternionf qu
* @return this
*/
public Matrix4x3f set3x3(Matrix3f mat) {
m00 = mat.m00;
m01 = mat.m01;
m02 = mat.m02;
m10 = mat.m10;
m11 = mat.m11;
m12 = mat.m12;
m20 = mat.m20;
m21 = mat.m21;
m22 = mat.m22;
MemUtil.INSTANCE.copy3x3(mat, this);
properties &= ~(PROPERTY_IDENTITY | PROPERTY_TRANSLATION);
return this;
}
Expand Down
42 changes: 42 additions & 0 deletions src/org/joml/MemUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,8 @@ private static final MemUtil createInstance() {
public abstract void copy(Matrix3f src, Matrix4x3f dest);
public abstract void copy3x3(Matrix4f src, Matrix4f dest);
public abstract void copy3x3(Matrix4x3f src, Matrix4x3f dest);
public abstract void copy3x3(Matrix3f src, Matrix4x3f dest);
public abstract void copy3x3(Matrix3f src, Matrix4f dest);
public abstract void copy4x3(Matrix4f src, Matrix4f dest);
public abstract void copy4x3(Matrix4x3f src, Matrix4f dest);
public abstract void copy(Vector4f src, Vector4f dst);
Expand Down Expand Up @@ -1244,6 +1246,30 @@ public final void copy3x3(Matrix4x3f src, Matrix4x3f dest) {
dest.m22 = src.m22;
}

public final void copy3x3(Matrix3f src, Matrix4x3f dest) {
dest.m00 = src.m00;
dest.m01 = src.m01;
dest.m02 = src.m02;
dest.m10 = src.m10;
dest.m11 = src.m11;
dest.m12 = src.m12;
dest.m20 = src.m20;
dest.m21 = src.m21;
dest.m22 = src.m22;
}

public final void copy3x3(Matrix3f src, Matrix4f dest) {
dest.m00 = src.m00;
dest.m01 = src.m01;
dest.m02 = src.m02;
dest.m10 = src.m10;
dest.m11 = src.m11;
dest.m12 = src.m12;
dest.m20 = src.m20;
dest.m21 = src.m21;
dest.m22 = src.m22;
}

public final void copy4x3(Matrix4x3f src, Matrix4f dest) {
dest.m00 = src.m00;
dest.m01 = src.m01;
Expand Down Expand Up @@ -2509,6 +2535,22 @@ public final void copy3x3(Matrix4x3f src, Matrix4x3f dest) {
dest.m22 = src.m22;
}

public final void copy3x3(Matrix3f src, Matrix4x3f dest) {
for (int i = 0; i < 4; i++) {
UNSAFE.putOrderedLong(dest, Matrix4x3f_m00 + (i << 3), UNSAFE.getLong(src, Matrix3f_m00 + (i << 3)));
}
dest.m22 = src.m22;
}

public final void copy3x3(Matrix3f src, Matrix4f dest) {
for (int i = 0; i < 3; i++) {
UNSAFE.putOrderedLong(dest, Matrix4f_m00 + (i << 4), UNSAFE.getLong(src, Matrix3f_m00 + 12 * i));
}
dest.m02 = src.m02;
dest.m12 = src.m12;
dest.m22 = src.m22;
}

public final void copy4x3(Matrix4x3f src, Matrix4f dest) {
for (int i = 0; i < 4; i++) {
UNSAFE.putOrderedLong(dest, Matrix4f_m00 + (i << 4), UNSAFE.getLong(src, Matrix4x3f_m00 + 12 * i));
Expand Down

0 comments on commit fe16c78

Please sign in to comment.