+ Vec4d start(x, y, 0.0, 1.0);
+ Vec4d end(x, y, 1.0, 1.0);
+ Matrix windowMat = viewport->computeWindowMatrix();
+ Matrix startPtMat = Matrix::inverse(camera->getProjectionMatrix()
+ * windowMat);
+ Matrix endPtMat;
+ if (!cinfo->farCamera.valid() || cinfo->farCamera->getNodeMask() == 0)
+ endPtMat = startPtMat;
+ else
+ endPtMat = Matrix::inverse(cinfo->farCamera->getProjectionMatrix()
+ * windowMat);
+ start = start * startPtMat;
+ start /= start.w();
+ end = end * endPtMat;
+ end /= end.w();