public double SchneidetMit(Gerade3D g) {
		Vector3d p12 = new Vector3d(p2.x - p1.x, p2.y - p1.y, p2.z - p1.z), p13 = new Vector3d(
				p3.x - p1.x, p3.y - p1.y, p3.z - p1.z), n = new Vector3d();
		n.cross(p12, p13);

		if (g.Richtungsvektor.dot(n) != 0) {
			Vector3d x = this.SchnittpunktMitGerade(g);

			if ((x.x <= 1) && (x.x >= 0) && (x.y <= 1) && (x.y >= 0)) {
				return x.z;
			}
		}
		return -1;
	}