X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Fgui%2FRenderingContext.java;h=a5f7fb70018ae2c6d6a4162a6b13fd62cd74bbd4;hb=a3ff3683bd0a025061667b26b6fcf56fe20f0afc;hp=ce8c4a00d4fa4493801098b5e63bf5ed938c1538;hpb=de8fb260a5e99922231b1d0f437916e796ec6ccb;p=sixth-3d.git
diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/gui/RenderingContext.java b/src/main/java/eu/svjatoslav/sixth/e3d/gui/RenderingContext.java
index ce8c4a0..a5f7fb7 100644
--- a/src/main/java/eu/svjatoslav/sixth/e3d/gui/RenderingContext.java
+++ b/src/main/java/eu/svjatoslav/sixth/e3d/gui/RenderingContext.java
@@ -1,5 +1,5 @@
/*
- * Sixth 3D engine. Author: Svjatoslav Agejenko.
+ * Sixth 3D engine. Author: Svjatoslav Agejenko.
* This project is released under Creative Commons Zero (CC0) license.
*/
package eu.svjatoslav.sixth.e3d.gui;
@@ -26,47 +26,35 @@ public class RenderingContext {
*/
public final Point2D centerCoordinate;
+ /**
+ * Zoom factor. The bigger the value, the more zoomed in the view is.
+ */
public final double zoom;
final BufferedImage bufferedImage;
+ /**
+ * Number of frame that is currently being rendered.
+ * Every frame has its own number.
+ */
public int frameNumber = 0;
/**
* UI component that mouse is currently hovering over.
*/
private MouseInteractionController objectPreviouslyUnderMouseCursor;
-
- public void prepareForNewFrameRendering(){
- mouseEvent = null;
- currentObjectUnderMouseCursor = null;
- }
-
/**
* Mouse click event that needs to be processed.
+ * This event is processed only once per frame.
+ * If there are multiple objects under mouse cursor, the top-most object will receive the event.
+ * If there are no objects under mouse cursor, the event will be ignored.
+ * If there is no event, this field will be null.
+ * This field is set to null after the event is processed.
*/
- private MouseEvent mouseEvent;
-
- public void setMouseEvent(MouseEvent mouseEvent) {
- this.mouseEvent = mouseEvent;
- }
-
- public MouseEvent getMouseEvent() {
- return mouseEvent;
- }
-
+ private MouseEvent mouseEvent;
/**
- * Item that user clicked on.
+ * UI component that mouse is currently hovering over.
*/
private MouseInteractionController currentObjectUnderMouseCursor;
- /**
- * Called when given object was detected under mouse cursor, while processing {@link #mouseEvent}.
- * Because objects are rendered back to front. The last method caller will set the top-most object, if
- * there are multiple objects under mouse cursor.
- */
- public void setCurrentObjectUnderMouseCursor(MouseInteractionController currentObjectUnderMouseCursor) {
- this.currentObjectUnderMouseCursor = currentObjectUnderMouseCursor;
- }
-
public RenderingContext(final int width, final int height) {
this.width = width;
this.height = height;
@@ -84,8 +72,30 @@ public class RenderingContext {
graphics.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
}
+ public void prepareForNewFrameRendering() {
+ mouseEvent = null;
+ currentObjectUnderMouseCursor = null;
+ }
+
+ public MouseEvent getMouseEvent() {
+ return mouseEvent;
+ }
+
+ public void setMouseEvent(MouseEvent mouseEvent) {
+ this.mouseEvent = mouseEvent;
+ }
+
+ /**
+ * Called when given object was detected under mouse cursor, while processing {@link #mouseEvent}.
+ * Because objects are rendered back to front. The last method caller will set the top-most object, if
+ * there are multiple objects under mouse cursor.
+ */
+ public void setCurrentObjectUnderMouseCursor(MouseInteractionController currentObjectUnderMouseCursor) {
+ this.currentObjectUnderMouseCursor = currentObjectUnderMouseCursor;
+ }
+
/**
- * @return true
if view repaint is needed.
+ * @return true
if view update is needed as a consequence of this mouse event.
*/
public boolean handlePossibleComponentMouseEvent() {
if (mouseEvent == null) return false;