28package com.jogamp.opengl.test.junit.math;
30import java.util.Arrays;
32import com.jogamp.junit.util.JunitTracer;
33import com.jogamp.math.FloatUtil;
34import com.jogamp.math.Matrix4f;
35import com.jogamp.math.Recti;
36import com.jogamp.math.Vec2f;
37import com.jogamp.math.Vec3f;
39import org.junit.Assert;
41import org.junit.FixMethodOrder;
42import org.junit.runners.MethodSorters;
44@FixMethodOrder(MethodSorters.NAME_ASCENDING)
47 static final float epsilon = 0.00001f;
54 final Recti viewport =
new Recti(0, 0, 1280, 720);
57 0.40000000596046450000f, 0.00000000000000000000f, 0.00000000000000000000f, 0.00000000000000000000f,
58 0.00000000000000000000f, 0.40000000596046450000f, 0.00000000000000000000f, 0.00000000000000000000f,
59 0.00000000000000000000f, 0.00000000000000000000f, 1.00000000000000000000f, 0.00000000000000000000f,
60 -0.09278385341167450000f, -0.00471283448860049250f, -0.20000000298023224000f, 1.00000000000000000000f });
63 1.35799503326416020000f, 0.00000000000000000000f, 0.00000000000000000000f, 0.00000000000000000000f,
64 0.00000000000000000000f, 2.41421341896057130000f, 0.00000000000000000000f, 0.00000000000000000000f,
65 0.00000000000000000000f, 0.00000000000000000000f, -1.00002861022949220000f, -1.00000000000000000000f,
66 0.00000000000000000000f, 0.00000000000000000000f, -0.20000286400318146000f, 0.00000000000000000000f });
68 final Vec3f objPos =
new Vec3f(0.02945519052445888500f, 0.01178207620978355400f, -0.00499999988824129100f);
70 System.err.println(
"pMv");
71 System.err.println(mat4Mv.
toString(
null,
"",
"%25.20ff"));
72 System.err.println(
"pP");
73 System.err.println(mat4P.toString(
null,
"",
"%25.20ff"));
76 System.err.println(
"B.0.0 - Project 1,0 -->" + winHas);
78 Assert.assertEquals(
"A/B 0.0 Project 1,0 failure.x", winExp.x(), Math.round(winHas.x()), epsilon);
79 Assert.assertEquals(
"A/B 0.0 Project 1,0 failure.y", winExp.y(), Math.round(winHas.y()), epsilon);
87 final Recti viewport =
new Recti(0, 0, 1280, 720);
91 0.40000000596046450000f, 0.00000000000000000000f, 0.00000000000000000000f, 0.00000000000000000000f,
92 0.00000000000000000000f, 0.40000000596046450000f, 0.00000000000000000000f, 0.00000000000000000000f,
93 0.00000000000000000000f, 0.00000000000000000000f, 1.00000000000000000000f, 0.00000000000000000000f,
94 -0.13065303862094880000f, -0.00471283448860049250f, -0.20000000298023224000f, 1.00000000000000000000f });
97 1.35799503326416020000f, 0.00000000000000000000f, 0.00000000000000000000f, 0.00000000000000000000f,
98 0.00000000000000000000f, 2.41421341896057130000f, 0.00000000000000000000f, 0.00000000000000000000f,
99 0.00000000000000000000f, 0.00000000000000000000f, -1.00002861022949220000f, -1.00000000000000000000f,
100 0.00000000000000000000f, 0.00000000000000000000f, -0.20000286400318146000f, 0.00000000000000000000f });
102 final Vec3f objPos =
new Vec3f(0.02945519052445888500f, 0.01178207620978355400f, -0.00499999988824129100f);
104 System.err.println(
"pMv");
105 System.err.println(mat4Mv.
toString(
null,
"",
"%25.20ff"));
106 System.err.println(
"pP");
107 System.err.println(mat4P.toString(
null,
"",
"%25.20ff"));
110 System.err.println(
"B.0.0 - Project 1,0 -->" + winHas);
112 Assert.assertEquals(
"A/B 0.0 Project 1,0 failure.x", winExp.x(), Math.round(winHas.x()), epsilon);
113 Assert.assertEquals(
"A/B 0.0 Project 1,0 failure.y", winExp.y(), Math.round(winHas.y()), epsilon);
116 public static void main(
final String args[]) {
Basic 4x4 float matrix implementation using fields for intensive use-cases (host operations).
static boolean mapObjToWin(final Vec3f obj, final Matrix4f mMv, final Matrix4f mP, final Recti viewport, final Vec3f winPos)
Map object coordinates to window coordinates.
StringBuilder toString(final StringBuilder sb, final String rowPrefix, final String f)
Rectangle with x, y, width and height integer components.
2D Vector based upon two float components.
3D Vector based upon three float components.
static void main(final String args[])