| 4688 | |
| 4689 | |
| 4690 | @Override |
| 4691 | public float modelX(float x, float y, float z) { |
| 4692 | float ax = |
| 4693 | modelview.m00*x + modelview.m01*y + modelview.m02*z + modelview.m03; |
| 4694 | float ay = |
| 4695 | modelview.m10*x + modelview.m11*y + modelview.m12*z + modelview.m13; |
| 4696 | float az = |
| 4697 | modelview.m20*x + modelview.m21*y + modelview.m22*z + modelview.m23; |
| 4698 | float aw = |
| 4699 | modelview.m30*x + modelview.m31*y + modelview.m32*z + modelview.m33; |
| 4700 | |
| 4701 | float ox = |
| 4702 | cameraInv.m00*ax + cameraInv.m01*ay + cameraInv.m02*az + cameraInv.m03*aw; |
| 4703 | float ow = |
| 4704 | cameraInv.m30*ax + cameraInv.m31*ay + cameraInv.m32*az + cameraInv.m33*aw; |
| 4705 | |
| 4706 | return nonZero(ow) ? ox / ow : ox; |
| 4707 | } |
| 4708 | |
| 4709 | |
| 4710 | @Override |