Point3i adjustedTemporaryScreenPoint() {
		float z = (point3fScreenTemp.z - perspectiveOffset.z);
		if (z < cameraDistance) {
			if (Float.isNaN(point3fScreenTemp.z)) {
				// removed for extending pmesh to points and lines BH 2/25/06
				if (!haveNotifiedNaN)
					Logger.debug("NaN seen in TransformPoint");
				haveNotifiedNaN = true;
				z = 1;
			}
			else if (z <= 0) {
				// just don't let z go past 1 BH 11/15/06
				z = 1;
			}
		}
		point3fScreenTemp.z = z;
		if (perspectiveDepth) {
			float perspectiveFactor = perspectiveFactor(z);
			point3fScreenTemp.x *= perspectiveFactor;
			point3fScreenTemp.y *= perspectiveFactor;
		}

		// higher resolution here for spin control.

		point3fScreenTemp.x += perspectiveOffset.x;
		point3fScreenTemp.y += perspectiveOffset.y;
		if (Float.isNaN(point3fScreenTemp.x) && !haveNotifiedNaN) {
			Logger.debug("NaN found in transformPoint ");
			haveNotifiedNaN = true;
		}

		point3iScreenTemp.x = (int) point3fScreenTemp.x;
		point3iScreenTemp.y = (int) point3fScreenTemp.y;
		point3iScreenTemp.z = (int) point3fScreenTemp.z;

		return point3iScreenTemp;
	}