X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Fsixth%2Fe3d%2Frenderer%2Fraster%2Fshapes%2Fbasic%2Ftexturedpolygon%2FTexturedPolygon.java;h=7a6f2bf9e5e7ebcb13e90436027b0ff732981a3c;hb=a377e3094d304bbc815b36edc2eb303ec023ea48;hp=8d6ef266dbf8402b62b5208d570019680050c482;hpb=03447008b8ee26a6463d2cd03005dc26464863db;p=sixth-3d.git diff --git a/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedPolygon.java b/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedPolygon.java index 8d6ef26..7a6f2bf 100644 --- a/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedPolygon.java +++ b/src/main/java/eu/svjatoslav/sixth/e3d/renderer/raster/shapes/basic/texturedpolygon/TexturedPolygon.java @@ -1,17 +1,11 @@ /* - * Sixth 3D engine. Copyright ©2012-2016, Svjatoslav Agejenko, svjatoslav@svjatoslav.eu - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of version 3 of the GNU Lesser General Public License - * or later as published by the Free Software Foundation. - * + * Sixth 3D engine. Author: Svjatoslav Agejenko. + * This project is released under Creative Commons Zero (CC0) license. */ - package eu.svjatoslav.sixth.e3d.renderer.raster.shapes.basic.texturedpolygon; import eu.svjatoslav.sixth.e3d.geometry.Point2D; import eu.svjatoslav.sixth.e3d.geometry.Point3D; -import eu.svjatoslav.sixth.e3d.geometry.Polygon; import eu.svjatoslav.sixth.e3d.gui.RenderingContext; import eu.svjatoslav.sixth.e3d.renderer.raster.shapes.AbstractCoordinateShape; import eu.svjatoslav.sixth.e3d.renderer.raster.slicer.PolygonCoordinate; @@ -20,6 +14,8 @@ import eu.svjatoslav.sixth.e3d.renderer.raster.texture.TextureBitmap; import java.awt.*; +import static eu.svjatoslav.sixth.e3d.geometry.Polygon.pointWithinPolygon; + public class TexturedPolygon extends AbstractCoordinateShape { public final Texture texture; @@ -30,7 +26,12 @@ public class TexturedPolygon extends AbstractCoordinateShape { * Polygon texture coordinates. */ public Point2D texturePoint1, texturePoint2, texturePoint3; - private boolean showBorders = false; + + /** + * If true then polygon borders will be drawn. + * It is used for debugging purposes. + */ + public boolean showBorders = false; private double totalTextureDistance = -1; public TexturedPolygon(final Point3D p1, final Point3D p2, @@ -105,7 +106,7 @@ public class TexturedPolygon extends AbstractCoordinateShape { x2 = renderBuffer.width - 1; int renderBufferOffset = ((y * renderBuffer.width) + x1) * 4; - final byte[] renderBufferBytes = renderBuffer.bytes; + final byte[] renderBufferBytes = renderBuffer.pixels; final double twidth = tx2 - tx1; final double theight = ty2 - ty1; @@ -140,11 +141,11 @@ public class TexturedPolygon extends AbstractCoordinateShape { projectedPoint3.roundToInteger(); if (mouseInteractionController != null) - if (renderBuffer.mouseClick != null) - if (Polygon.pointWithinPolygon( - renderBuffer.mouseClick.coordinate, projectedPoint1, + if (renderBuffer.getMouseEvent() != null) + if (pointWithinPolygon( + renderBuffer.getMouseEvent().coordinate, projectedPoint1, projectedPoint2, projectedPoint3)) - renderBuffer.clickedItem = mouseInteractionController; + renderBuffer.setCurrentObjectUnderMouseCursor(mouseInteractionController); // Show polygon boundaries (for debugging) if (showBorders)