| 1760 | return; |
| 1761 | } |
| 1762 | void MeshRendererWithOBBPerformanceTest::unproject(const Mat4& viewProjection, const Size* viewport, Vec3* src, Vec3* dst) |
| 1763 | { |
| 1764 | assert(dst); |
| 1765 | |
| 1766 | assert(viewport->width != 0.0f && viewport->height != 0.0f); |
| 1767 | Vec4 screen(src->x / viewport->width, ((viewport->height - src->y)) / viewport->height, src->z, 1.0f); |
| 1768 | |
| 1769 | screen.x = screen.x * 2.0f - 1.0f; |
| 1770 | screen.y = screen.y * 2.0f - 1.0f; |
| 1771 | screen.z = screen.z * 2.0f - 1.0f; |
| 1772 | |
| 1773 | viewProjection.getInversed().transformVector(screen, &screen); |
| 1774 | |
| 1775 | if (screen.w != 0.0f) |
| 1776 | { |
| 1777 | screen.x /= screen.w; |
| 1778 | screen.y /= screen.w; |
| 1779 | screen.z /= screen.w; |
| 1780 | } |
| 1781 | |
| 1782 | dst->set(screen.x, screen.y, screen.z); |
| 1783 | } |
| 1784 | |
| 1785 | void MeshRendererWithOBBPerformanceTest::calculateRayByLocationInView(Ray* ray, const Vec2& location) |
| 1786 | { |
no test coverage detected