List of usage examples for javafx.scene.shape Polygon setCursor
public final void setCursor(Cursor value)
From source file:editeurpanovisu.EditeurPanovisu.java
private void affichePoV(double longitude, double latitude) { double largeur = imagePanoramique.getFitWidth(); double X = (longitude + 180.0d) * largeur / 360.0d + imagePanoramique.getLayoutX(); double Y = (90.0d - latitude) * largeur / 360.0d; Node ancPoV = (Node) pano.lookup("#PoV"); if (ancPoV != null) { pano.getChildren().remove(ancPoV); }//from w w w . ja va 2s . c o m Polygon polygon = new Polygon(); polygon.getPoints().addAll(new Double[] { 20.0, 2.0, 2.0, 2.0, 2.0, 20.0, -2.0, 20.0, -2.0, 2.0, -20.0, 2.0, -20.0, -2.0, -2.0, -2.0, -2.0, -20.0, 2.0, -20.0, 2.0, -2.0, 20.0, -2.0 }); polygon.setStrokeLineJoin(StrokeLineJoin.MITER); polygon.setFill(Color.BLUEVIOLET); polygon.setStroke(Color.YELLOW); polygon.setId("PoV"); polygon.setLayoutX(X); polygon.setLayoutY(Y); polygon.setCursor(Cursor.DEFAULT); polygon.setOnDragDetected((MouseEvent me1) -> { polygon.setFill(Color.YELLOW); polygon.setStroke(Color.BLUEVIOLET); dragDrop = true; me1.consume(); }); polygon.setOnMouseDragged((MouseEvent me1) -> { double XX = me1.getSceneX() - imagePanoramique.getLayoutX(); if (XX < 0) { XX = 0; } if (XX > imagePanoramique.getFitWidth()) { XX = imagePanoramique.getFitWidth(); } polygon.setLayoutX(XX + imagePanoramique.getLayoutX()); double YY = me1.getSceneY() - pano.getLayoutY() - 109; if (YY < 0) { YY = 0; } if (YY > imagePanoramique.getFitHeight()) { YY = imagePanoramique.getFitHeight(); } polygon.setLayoutY(YY); me1.consume(); }); polygon.setOnMouseReleased((MouseEvent me1) -> { double X1 = me1.getSceneX(); double Y1 = me1.getSceneY(); double mouseX1 = X1 - imagePanoramique.getLayoutX(); if (mouseX1 < 0) { mouseX1 = 0; } if (mouseX1 > imagePanoramique.getFitWidth()) { mouseX1 = imagePanoramique.getFitWidth(); } double mouseY1 = Y1 - pano.getLayoutY() - 109; if (mouseY1 < 0) { mouseY1 = 0; } if (mouseY1 > imagePanoramique.getFitHeight()) { mouseY1 = imagePanoramique.getFitHeight(); } double regardX = 360.0f * mouseX1 / largeur - 180; double regardY = 90.0d - 2.0f * mouseY1 / largeur * 180.0f; panoramiquesProjet[panoActuel].setLookAtX(regardX); panoramiquesProjet[panoActuel].setLookAtY(regardY); polygon.setFill(Color.BLUEVIOLET); polygon.setStroke(Color.YELLOW); me1.consume(); }); pano.getChildren().add(polygon); }
From source file:editeurpanovisu.EditeurPanovisu.java
/** * * @param iLargeur/*from ww w. j av a 2s. c om*/ * @param iHauteur * @param bMasqueZones */ private static void afficheBarrePersonnalisee(int iLargeur, int iHauteur, boolean bMasqueZones) { apImgBarrePersonnalisee.getChildren().clear(); apZoneBarrePersonnalisee.getChildren().clear(); ImageView ivBarrePersonnalisee = new ImageView(imgBarrePersonnalisee); apImgBarrePersonnalisee.getChildren().add(ivBarrePersonnalisee); apImgBarrePersonnalisee.setPrefWidth(imgBarrePersonnalisee.getWidth()); apImgBarrePersonnalisee.setPrefHeight(imgBarrePersonnalisee.getHeight()); apImgBarrePersonnalisee.setCursor(Cursor.CROSSHAIR); apImgBarrePersonnalisee.setLayoutX((iLargeur - 300 - apImgBarrePersonnalisee.getPrefWidth()) / 2.d); apImgBarrePersonnalisee.setLayoutY((iHauteur - apImgBarrePersonnalisee.getPrefHeight()) / 2.d); if ((iNombreZones > 0) && !bMasqueZones) { for (int i = 0; i < iNombreZones; i++) { ZoneTelecommande zone = zones[i]; String[] strPoints = zone.getStrCoordonneesZone().split(","); double[] points = new double[strPoints.length]; for (int ij = 0; ij < strPoints.length; ij++) { points[ij] = Double.parseDouble(strPoints[ij]); } final String strIdZone = zone.getStrTypeZone() + "-" + i; switch (zone.getStrTypeZone()) { case "circle": Circle cercle = new Circle(points[0], points[1], points[2]); cercle.setFill(Color.rgb(255, 255, 0, 0.5)); cercle.setStroke(Color.FORESTGREEN); cercle.setCursor(Cursor.DEFAULT); apImgBarrePersonnalisee.getChildren().add(cercle); cercle.setId(strIdZone); cercle.setOnMouseClicked((t) -> { choixZone(iLargeur, iHauteur, bMasqueZones, strIdZone, t); t.consume(); }); break; case "rect": double largRect = points[2] - points[0]; double hautRect = points[3] - points[1]; Rectangle rect = new Rectangle(points[0], points[1], largRect, hautRect); rect.setFill(Color.rgb(255, 255, 0, 0.5)); rect.setStroke(Color.FORESTGREEN); rect.setCursor(Cursor.DEFAULT); apImgBarrePersonnalisee.getChildren().add(rect); rect.setId(strIdZone); rect.setOnMouseClicked((t) -> { choixZone(iLargeur, iHauteur, bMasqueZones, strIdZone, t); t.consume(); }); break; case "poly": Polygon poly = new Polygon(points); poly.setFill(Color.rgb(255, 255, 0, 0.5)); poly.setStroke(Color.FORESTGREEN); poly.setStrokeWidth(3); poly.setCursor(Cursor.DEFAULT); poly.setStrokeLineCap(StrokeLineCap.ROUND); poly.setId(strIdZone); apImgBarrePersonnalisee.getChildren().add(poly); poly.setOnMouseClicked((t) -> { choixZone(iLargeur, iHauteur, bMasqueZones, strIdZone, t); t.consume(); }); break; } } } }
From source file:editeurpanovisu.EditeurPanovisu.java
/** * Affiche la croix reprsentant le point de vue * * @param longitude longitude//from w ww .ja v a2 s . co m * @param latitude latitude * @param fov Champ de vision */ private static void affichePoV(double longitude, double latitude, double fov) { double largeur = ivImagePanoramique.getFitWidth(); double X = (longitude + 180.0d) * largeur / 360.0d + ivImagePanoramique.getLayoutX(); double Y = (90.0d - latitude) * largeur / 360.0d; Node nodeAncienPoV = (Node) panePanoramique.lookup("#PoV"); if (nodeAncienPoV != null) { panePanoramique.getChildren().remove(nodeAncienPoV); } Polygon plgPoV = new Polygon(); plgPoV.getPoints().addAll(new Double[] { 20.0, 2.0, 2.0, 2.0, 2.0, 20.0, -2.0, 20.0, -2.0, 2.0, -20.0, 2.0, -20.0, -2.0, -2.0, -2.0, -2.0, -20.0, 2.0, -20.0, 2.0, -2.0, 20.0, -2.0 }); plgPoV.setStrokeLineJoin(StrokeLineJoin.MITER); plgPoV.setFill(Color.BLUEVIOLET); plgPoV.setStroke(Color.YELLOW); plgPoV.setId("PoV"); plgPoV.setLayoutX(X); plgPoV.setLayoutY(Y); plgPoV.setCursor(Cursor.DEFAULT); plgPoV.setOnDragDetected((mouseEvent1) -> { plgPoV.setFill(Color.YELLOW); plgPoV.setStroke(Color.BLUEVIOLET); bDragDrop = true; mouseEvent1.consume(); }); plgPoV.setOnMouseDragged((mouseEvent1) -> { double XX = mouseEvent1.getSceneX() - ivImagePanoramique.getLayoutX(); if (XX < 0) { XX = 0; } if (XX > ivImagePanoramique.getFitWidth()) { XX = ivImagePanoramique.getFitWidth(); } plgPoV.setLayoutX(XX + ivImagePanoramique.getLayoutX()); double YY = mouseEvent1.getSceneY() - panePanoramique.getLayoutY() - 130 - getiDecalageMac(); if (YY < 0) { YY = 0; } if (YY > ivImagePanoramique.getFitHeight()) { YY = ivImagePanoramique.getFitHeight(); } plgPoV.setLayoutY(YY); afficheLoupe(XX, YY); mouseEvent1.consume(); }); plgPoV.setOnMouseReleased((mouseEvent1) -> { double X1 = mouseEvent1.getSceneX(); double Y1 = mouseEvent1.getSceneY(); double mouseX1 = X1 - ivImagePanoramique.getLayoutX(); if (mouseX1 < 0) { mouseX1 = 0; } if (mouseX1 > ivImagePanoramique.getFitWidth()) { mouseX1 = ivImagePanoramique.getFitWidth(); } double mouseY1 = Y1 - panePanoramique.getLayoutY() - 130 - getiDecalageMac(); if (mouseY1 < 0) { mouseY1 = 0; } if (mouseY1 > ivImagePanoramique.getFitHeight()) { mouseY1 = ivImagePanoramique.getFitHeight(); } double regardX = 360.0f * mouseX1 / largeur - 180; double regardY = 90.0d - 2.0f * mouseY1 / largeur * 180.0f; navigateurPanoramique.setLongitude(regardX - 180); navigateurPanoramique.setLatitude(regardY); navigateurPanoramique.setFov(fov); navigateurPanoramique.affiche(); getPanoramiquesProjet()[getiPanoActuel()].setRegardX(regardX); getPanoramiquesProjet()[getiPanoActuel()].setRegardY(regardY); plgPoV.setFill(Color.BLUEVIOLET); plgPoV.setStroke(Color.YELLOW); mouseEvent1.consume(); }); panePanoramique.getChildren().add(plgPoV); }