@Override
	public BranchGroup draw() {
		BranchGroup ebene = new BranchGroup();
		ebene.setCapability(BranchGroup.ALLOW_DETACH);
		QuadArray planeVerteciesXZ = new QuadArray(4, QuadArray.COORDINATES);

		Point3d[] eckenXZ = new Point3d[4];

		eckenXZ[0] = p1;
		eckenXZ[1] = p2;
		eckenXZ[2] = p3;
		eckenXZ[3] = p4;

		planeVerteciesXZ.setCoordinates(0, eckenXZ);
		Shape3D plane = new Shape3D(planeVerteciesXZ);
		if (!active && !isTangentialEbene && !zeichneSteigung) {
			plane.setAppearance(getTransparentAppearance(false));
		}
		if (active) {
			plane.setAppearance(getAppearance(Color.RED));
		} else if (isTangentialEbene) {
			plane.setAppearance(getTransparentAppearance(Color.cyan));
		} else if (zeichneSteigung) {
			plane.setAppearance(getTransparentAppearance(true));
		}

		ebene.addChild(plane);
		return ebene;
	}