diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java index 52639e22ea66442c5e3a62b8fc3a90aef68893fa..03232d79cdc2f2fde8e049114bfc7d00d6b0a725 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/ProjectTopComp.java @@ -5,6 +5,7 @@ */ package cz.fidentis.analyst.gui; +import cz.fidentis.analyst.gui.tab.SingleFaceTab; import org.netbeans.api.settings.ConvertAsProperties; import org.openide.awt.ActionID; import org.openide.awt.ActionReference; @@ -13,8 +14,7 @@ import org.openide.util.NbBundle.Messages; import cz.fidentis.analyst.Project; import cz.fidentis.analyst.face.HumanFace; import cz.fidentis.analyst.mesh.io.ModelFileFilter; -import cz.fidentis.analyst.newgui.scene.Drawable; -import cz.fidentis.analyst.newgui.SingleFaceTab; +import cz.fidentis.analyst.gui.scene.DrawableMesh; import java.awt.Dimension; import java.io.File; import java.io.FileNotFoundException; @@ -369,7 +369,7 @@ public final class ProjectTopComp extends TopComponent { private void createSingleFaceTab(HumanFace face, String name) { SingleFaceTab newTab = new SingleFaceTab(); newTab.setName(name); - newTab.getCanvas().getScene().addDrawale(new Drawable(face.getMeshModel())); + newTab.getCanvas().initScene(face); this.singleFaceTabs.put(face, newTab); newTab.open(); newTab.requestActive(); diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.form b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.form similarity index 100% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.form rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.form diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java similarity index 90% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java index 2359b298b522248f39401bc0129f36e6cd954c18..81ce86d712057ffc40470216b5f060beefeff859 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/Canvas.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/Canvas.java @@ -1,9 +1,12 @@ -package cz.fidentis.analyst.newgui.canvas; +package cz.fidentis.analyst.gui.canvas; import com.jogamp.opengl.GLCapabilities; import com.jogamp.opengl.GLProfile; import com.jogamp.opengl.awt.GLCanvas; -import cz.fidentis.analyst.newgui.scene.Scene; +import cz.fidentis.analyst.face.HumanFace; +import cz.fidentis.analyst.gui.scene.Camera; +import cz.fidentis.analyst.gui.scene.Scene; +import cz.fidentis.analyst.gui.scene.SceneRenderer; import java.awt.Color; import java.awt.Cursor; @@ -17,11 +20,16 @@ import java.awt.Cursor; public class Canvas extends javax.swing.JPanel { private final GLCanvas glCanvas; - private final Scene scene; + private final SceneRenderer sceneRenderer; + private final Camera camera = new Camera(); + private Scene scene; + + // Listeners: private final CanvasListener listener; private final MouseRotationListener manipulator; private final RotationAnimator animator; + /** * Constructor. */ @@ -42,9 +50,9 @@ public class Canvas extends javax.swing.JPanel { glCanvas.requestFocusInWindow(); glCanvas.setSize(getWidth() - getInsets().left - getInsets().right, getHeight() - getInsets().top - getInsets().bottom); - scene = new Scene(); + sceneRenderer = new SceneRenderer(); - animator = new RotationAnimator(this); + animator = new RotationAnimator(this.glCanvas, this.camera); listener = new CanvasListener(this); glCanvas.addGLEventListener(listener); @@ -56,23 +64,75 @@ public class Canvas extends javax.swing.JPanel { this.validate(); } + + /** + * Initializes the scene for a single face. Can be called only once. + * + * @param face Human face + * @throws UnsupportedOperationException the the scene is already initiated + * @throws IllegalArgumentException if the face is missing + */ + public void initScene(HumanFace face) { + if (scene != null) { + throw new UnsupportedOperationException("Scene already exists"); + } + this.scene = new Scene(face); + } + + /** + * Initializes the scene for the 1:1 comparison. Can be called only once. + * + * @param face Human face + * @throws UnsupportedOperationException the the scene is already initiated + * @throws IllegalArgumentException if some face is missing + */ + public void initScene(HumanFace primary, HumanFace secondary) { + if (scene != null) { + throw new UnsupportedOperationException("Scene already exists"); + } + this.scene = new Scene(primary, secondary); + } /** * Returns the scene * @return the scene */ + public SceneRenderer getSceneRenderer() { + return sceneRenderer; + } + + public void renderScene() { + glCanvas.display(); + } + + /** + * Returns the scene. + * + * @return the scene. + */ public Scene getScene() { return scene; } + /** + * Returns camera. + * + * @return camera + */ + public Camera getCamera() { + return camera; + } + /** * Returns the underlying OpenGL canvas. * * @return the underlying OpenGL canvas. */ + /* public GLCanvas getGLCanvas() { return this.glCanvas; } + */ /** * Changing the size of glCanvas @@ -353,8 +413,8 @@ public class Canvas extends javax.swing.JPanel { }//GEN-LAST:event_rightNavigationButton1MouseReleased private void resetButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseClicked - scene.getCamera().initLocation(); - glCanvas.display(); + camera.initLocation(); + renderScene(); }//GEN-LAST:event_resetButtonMouseClicked private void resetButtonMouseMoved(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_resetButtonMouseMoved @@ -367,15 +427,15 @@ public class Canvas extends javax.swing.JPanel { }//GEN-LAST:event_resetButtonMouseExited private void whiteBackroundButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_whiteBackroundButtonMouseClicked - scene.setBrightBackground(); - scene.renderScene(); + sceneRenderer.setBrightBackground(); + renderScene(); whiteBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/whiteBackroundCanvasPressed.png"))); blackBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/blackBackroundCanvas.png"))); }//GEN-LAST:event_whiteBackroundButtonMouseClicked private void blackBackroundButtonMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_blackBackroundButtonMouseClicked - scene.setDarkBackground(); - scene.renderScene(); + sceneRenderer.setDarkBackground(); + renderScene(); whiteBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/whiteBackroundCanvas.png"))); blackBackroundButton.setIcon(new javax.swing.ImageIcon(getClass().getResource("/blackBackroundCanvasPressed.png"))); }//GEN-LAST:event_blackBackroundButtonMouseClicked diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java similarity index 75% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java index 3137754a29af3667d1e9b2fb712c46a3b5af4358..d8fbc1c9236e321ea829072988895a53fda7e7ca 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/CanvasListener.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/CanvasListener.java @@ -1,10 +1,10 @@ -package cz.fidentis.analyst.newgui.canvas; +package cz.fidentis.analyst.gui.canvas; import com.jogamp.opengl.GLAutoDrawable; import com.jogamp.opengl.GLEventListener; /** - * Listener invoked when the OpenGL canvas initiated, shown, or resized. + * Listener invoked when the OpenGL canvas is initiated, shown, or resized. * * @author Radek Oslejsek */ @@ -28,7 +28,7 @@ public class CanvasListener implements GLEventListener { @Override public void init(GLAutoDrawable glad) { //System.out.println("CanvasListener.init"); - canvas.getScene().initSceneGLContext(glad.getGL().getGL2()); + canvas.getSceneRenderer().initGLContext(glad.getGL().getGL2()); } @Override @@ -39,13 +39,13 @@ public class CanvasListener implements GLEventListener { @Override public void display(GLAutoDrawable glad) { //System.out.println("CanvasListener.display " + this.toString()); - canvas.getScene().renderScene(); + canvas.getSceneRenderer().renderScene(canvas.getCamera(), canvas.getScene().getDrawables()); } @Override public void reshape(GLAutoDrawable glad, int x, int y, int width, int height) { //System.out.println("CanvasListener.reshape"); - canvas.getScene().setViewport(x, y, width, height); + canvas.getSceneRenderer().setViewport(x, y, width, height); } } diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java similarity index 80% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java index 2bb4b237fafe9725092ec7e3905fae8901d03c24..162bd0d981b6171c1100e40be9308fb96e2abc58 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/MouseRotationListener.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/MouseRotationListener.java @@ -1,4 +1,4 @@ -package cz.fidentis.analyst.newgui.canvas; +package cz.fidentis.analyst.gui.canvas; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; @@ -51,19 +51,19 @@ public class MouseRotationListener extends MouseAdapter { } else if (Math.abs(rotateY) < Math.abs(rotateX)) { rotateY = 0; } - canvas.getScene().getCamera().rotate(rotateX, rotateY); + canvas.getCamera().rotate(rotateX, rotateY); } if (SwingUtilities.isRightMouseButton(evt)) { double moveX = -(lastX - evt.getX()) * moveSpeed; double moveY = -(lastY - evt.getY()) * moveSpeed; - canvas.getScene().getCamera().move(moveX, moveY); + canvas.getCamera().move(moveX, moveY); } if (SwingUtilities.isMiddleMouseButton(evt)) { - canvas.getScene().getCamera().initLocation(); + canvas.getCamera().initLocation(); } lastX = evt.getX(); lastY = evt.getY(); - canvas.getGLCanvas().display(); + canvas.renderScene(); } /** @@ -81,11 +81,11 @@ public class MouseRotationListener extends MouseAdapter { @Override public void mouseWheelMoved(MouseWheelEvent evt) { if (evt.getWheelRotation() > 0) { - canvas.getScene().getCamera().zoomIn(-5 * evt.getWheelRotation()); + canvas.getCamera().zoomIn(-5 * evt.getWheelRotation()); } else { - canvas.getScene().getCamera().zoomOut(5 * evt.getWheelRotation()); + canvas.getCamera().zoomOut(5 * evt.getWheelRotation()); } - canvas.getGLCanvas().display(); + canvas.renderScene(); } /** @@ -94,8 +94,8 @@ public class MouseRotationListener extends MouseAdapter { @Override public void mouseClicked(MouseEvent evt) { if (SwingUtilities.isMiddleMouseButton(evt)) { - canvas.getScene().getCamera().initLocation(); - canvas.getGLCanvas().display(); + canvas.getCamera().initLocation(); + canvas.renderScene(); } } diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java similarity index 88% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java index bb35f1fb145acacf35c5cd3c93f4e48a290d5952..59a26240dee7168ac92d46d54cf0f041695e29dd 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/canvas/RotationAnimator.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/canvas/RotationAnimator.java @@ -1,7 +1,8 @@ -package cz.fidentis.analyst.newgui.canvas; +package cz.fidentis.analyst.gui.canvas; +import com.jogamp.opengl.awt.GLCanvas; import com.jogamp.opengl.util.FPSAnimator; -import cz.fidentis.analyst.newgui.scene.Camera; +import cz.fidentis.analyst.gui.scene.Camera; import java.util.Timer; import java.util.TimerTask; @@ -28,6 +29,7 @@ public class RotationAnimator { } private final Camera camera; + /** * Frequency of the rotation or zoom animations @@ -55,12 +57,15 @@ public class RotationAnimator { * @param camera Camera * @throws IllegalArgumentException if some argument is missing */ - public RotationAnimator(Canvas canvas) { - if (canvas == null) { - throw new IllegalArgumentException("canvas is null"); + public RotationAnimator(GLCanvas glCanvas, Camera camera) { + if (glCanvas == null) { + throw new IllegalArgumentException("glCanvas is null"); + } + if (camera == null) { + throw new IllegalArgumentException("camera is null"); } - this.camera = canvas.getScene().getCamera(); - this.animator = new FPSAnimator(canvas.getGLCanvas(), FPS, true); + this.camera = camera; + this.animator = new FPSAnimator(glCanvas, FPS, true); } /** diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java similarity index 99% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java index ad1c8c59e663841b66691a7fd67228cf57b8f383..782da9040d3fd8a0fb276aaf4cee0e4f00d917fe 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Camera.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Camera.java @@ -1,4 +1,4 @@ -package cz.fidentis.analyst.newgui.scene; +package cz.fidentis.analyst.gui.scene; import javax.vecmath.Vector3d; diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java new file mode 100644 index 0000000000000000000000000000000000000000..82ee9db24d6e7ef5225cf62368aee9d17f1b3c04 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/DrawableMesh.java @@ -0,0 +1,65 @@ +package cz.fidentis.analyst.gui.scene; + +import cz.fidentis.analyst.mesh.core.MeshFacet; +import cz.fidentis.analyst.mesh.core.MeshModel; +import java.util.List; + +/** + * A drawable triangular mesh, i.e., a mesh model with drawing information like + * material, transparency, color, relative transformations in the scene etc. + * This class encapsulates rendering state and parameters, + * + * @author Radek Oslejsek + */ +public class DrawableMesh { + + private final MeshModel model; + + private boolean display = true; + + // TO DO - R. Pajersky: add transformation attributes and methods + + /** + * Constructor. + * + * @param model Drawable mesh model + * @throws IllegalArgumentException if the model is {@code null} + */ + public DrawableMesh(MeshModel model) { + if (model == null) { + throw new IllegalArgumentException("model is null"); + } + this.model = model; + } + + /** + * Returns list of individual facets. + * + * @return list of individual facets. + */ + public List<MeshFacet> getFacets() { + return model.getFacets(); + } + + /** + * This drawable mesh is included in the rendered scene. + */ + public void show() { + display = true; + } + + /** + * This drawable mesh is excluded from the rendered scene (skipped). + */ + public void hide() { + display = false; + } + + /** + * + * @return {@code true} if the object is included (rendered) in the scene. + */ + public boolean isShown() { + return display; + } +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java new file mode 100644 index 0000000000000000000000000000000000000000..0dd610263992e6b0a42292246d252ebf7b36dd41 --- /dev/null +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/Scene.java @@ -0,0 +1,69 @@ +package cz.fidentis.analyst.gui.scene; + +import cz.fidentis.analyst.face.HumanFace; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Abstract class for ... + * + * @author Radek Oslejsek + */ +public class Scene { + + private final HumanFace primaryFace; + + private final HumanFace secondaryFace ; + + private final List<DrawableMesh> drawables= new ArrayList<>(); + + /** + * Constructor for single face analysis. + * + * @param face Human face to be analyzed + * @throws IllegalArgumentException if the {@code face} is {@code null} + */ + public Scene(HumanFace face) { + if (face == null) { + throw new IllegalArgumentException("face"); + } + this.primaryFace = face; + this.secondaryFace = null; + + drawables.add(new DrawableMesh(primaryFace.getMeshModel())); + } + + /** + * Constructor for one-to-one analysis. + * + * @param primary Primary face to be analyzed + * @param primary Secondary face to be analyzed + * @throws IllegalArgumentException if some face is {@code null} + */ + public Scene(HumanFace primary, HumanFace secondary) { + if (primary == null) { + throw new IllegalArgumentException("primary"); + } + if (secondary == null) { + throw new IllegalArgumentException("secondary"); + } + this.primaryFace = primary; + this.secondaryFace = secondary; + + drawables.add(new DrawableMesh(primaryFace.getMeshModel())); + drawables.add(new DrawableMesh(secondaryFace.getMeshModel())); + } + + /** + * Returns all drawable objects in a modifiable collection (should be refactored in the future). + * + * @return all drawable objects + */ + public Collection<DrawableMesh> getDrawables() { + return this.drawables; + } +} diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java similarity index 85% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java index 63f10e2ab1cd6fa2da28af06f4d919a655b7860a..cda999208c6311f269071aea9dc2b7304cb13c64 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Scene.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/scene/SceneRenderer.java @@ -1,4 +1,4 @@ -package cz.fidentis.analyst.newgui.scene; +package cz.fidentis.analyst.gui.scene; import com.jogamp.opengl.GL; import static com.jogamp.opengl.GL.GL_DEPTH_TEST; @@ -9,22 +9,22 @@ import static com.jogamp.opengl.GL2GL3.GL_LINE; import com.jogamp.opengl.glu.GLU; import cz.fidentis.analyst.mesh.core.MeshFacet; import java.util.ArrayList; +import java.util.Collection; import java.util.List; import javax.vecmath.Point3d; +import javax.vecmath.Point4f; import javax.vecmath.Vector3d; -import javax.vecmath.Vector4f; /** - * An object responsible for handling {@link Drawable}s included in the scene - * (in the OpenGL context of the OpenGL canvas) and their rendering. + * Handles {@link DrawableMesh}s - objects to be drawn, and (re-)renders them on demand. * * @author Natalia Bebjakova * @author Radek Oslejsek */ -public class Scene { +public class SceneRenderer { - private static final Vector4f BRIGHT_BACKGROUND = new Vector4f(0.9f, 0.9f, 0.9f, 0); - private static final Vector4f DARK_BACKGROUND = new Vector4f(0.25f, 0.25f, 0.25f, 0); + private static final Point4f BRIGHT_BACKGROUND = new Point4f(0.9f, 0.9f, 0.9f, 0); + private static final Point4f DARK_BACKGROUND = new Point4f(0.25f, 0.25f, 0.25f, 0); private final GLU glu = new GLU(); private GL2 gl; @@ -32,28 +32,13 @@ public class Scene { private boolean brightBackground = false; private boolean wireframe = false; - private List<Drawable> drawables = new ArrayList<>(); - - private final Camera camera = new Camera(); - - /** - * Adds a drawable object into the scene. - * - * @param dr Drawable object - */ - public void addDrawale(Drawable dr) { - if (dr != null) { - drawables.add(dr); - } - } - /** * Constructor. * * @param gl OpenGL context of drawable objects * @throws IllegalArgumentException if the {@code gl} is null */ - public void initSceneGLContext(GL2 gl) { + public void initGLContext(GL2 gl) { if (gl == null) { throw new IllegalArgumentException("gl is null"); } @@ -120,7 +105,7 @@ public class Scene { /** * Renders drawable objects. */ - public void renderScene() { + public void renderScene(Camera camera, Collection<DrawableMesh> drawables) { clearScene(); // sets model to proper position @@ -142,8 +127,9 @@ public class Scene { gl.glPolygonMode( GL_FRONT_AND_BACK, GL_FILL); } - for (Drawable obj: drawables) { + for (DrawableMesh obj: drawables) { for (MeshFacet facet: obj.getFacets()) { + // TO DO - R. Pajersky: add transformation (glPushMatrix, glRotate, ...) renderFacet(facet); } } @@ -151,10 +137,6 @@ public class Scene { gl.glFlush(); } - public Camera getCamera() { - return camera; - } - /** * Clears the scene and prepares it for the re-drawing. */ diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form similarity index 97% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form rename to GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form index 93a6b9326e1280b591d38d8795f4ef272a3ce359..cebe2c58f760e41ebae4086d6afc2f22201b7e1e 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.form +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.form @@ -52,7 +52,7 @@ </DimensionLayout> </Layout> <SubComponents> - <Component class="cz.fidentis.analyst.newgui.canvas.Canvas" name="canvas1"> + <Component class="cz.fidentis.analyst.gui.canvas.Canvas" name="canvas1"> </Component> <Container class="javax.swing.JToolBar" name="jToolBar1"> <Properties> diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java similarity index 93% rename from GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java rename to GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java index ccac31a0c1878bfe98a5b0d868284e38f6d9ef5e..60e82105374ed069fdcaf4b5a0d33ac2bc84ca6d 100644 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/SingleFaceTab.java +++ b/GUI/src/main/java/cz/fidentis/analyst/gui/tab/SingleFaceTab.java @@ -1,6 +1,6 @@ -package cz.fidentis.analyst.newgui; +package cz.fidentis.analyst.gui.tab; -import cz.fidentis.analyst.newgui.canvas.Canvas; +import cz.fidentis.analyst.gui.canvas.Canvas; import org.netbeans.api.settings.ConvertAsProperties; import org.openide.windows.TopComponent; @@ -12,7 +12,7 @@ import org.openide.windows.TopComponent; * @author Richard Pajersky */ @ConvertAsProperties( - dtd = "-//cz.fidentis.analyst.gui//SingleFaceTab//EN", + dtd = "-//cz.fidentis.analyst.gui.tab//SingleFaceTab//EN", autostore = false ) public final class SingleFaceTab extends TopComponent { @@ -37,7 +37,7 @@ public final class SingleFaceTab extends TopComponent { // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents private void initComponents() { - canvas1 = new cz.fidentis.analyst.newgui.canvas.Canvas(); + canvas1 = new cz.fidentis.analyst.gui.canvas.Canvas(); jToolBar1 = new javax.swing.JToolBar(); jButton1 = new javax.swing.JButton(); @@ -67,7 +67,7 @@ public final class SingleFaceTab extends TopComponent { }// </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables - private cz.fidentis.analyst.newgui.canvas.Canvas canvas1; + private cz.fidentis.analyst.gui.canvas.Canvas canvas1; private javax.swing.JButton jButton1; private javax.swing.JToolBar jToolBar1; // End of variables declaration//GEN-END:variables diff --git a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java b/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java deleted file mode 100644 index 693619e1cc85cafe4601b44330e24d6e6bf5f508..0000000000000000000000000000000000000000 --- a/GUI/src/main/java/cz/fidentis/analyst/newgui/scene/Drawable.java +++ /dev/null @@ -1,38 +0,0 @@ -package cz.fidentis.analyst.newgui.scene; - -import cz.fidentis.analyst.mesh.core.MeshFacet; -import cz.fidentis.analyst.mesh.core.MeshModel; -import java.util.List; - -/** - * A drawable object, i.e., a mesh model with drawing information like - * material, transparency, color, etc. The objects draws itself via provided scene renderer. - * - * @author Radek Oslejsek - */ -public class Drawable { - - private final MeshModel model; - - /** - * Constructor. - * - * @param model Drawable mesh model - * @throws IllegalArgumentException if the model is {@code null} - */ - public Drawable(MeshModel model) { - if (model == null) { - throw new IllegalArgumentException("model is null"); - } - this.model = model; - } - - /** - * Returns list of individual facets. - * - * @return list of individual facets. - */ - public List<MeshFacet> getFacets() { - return model.getFacets(); - } -} diff --git a/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties new file mode 100644 index 0000000000000000000000000000000000000000..3b4ce9f121b8633cb7cf8321818cc146ce77b8ad --- /dev/null +++ b/GUI/src/main/resources/cz/fidentis/analyst/gui/tab/Bundle.properties @@ -0,0 +1,2 @@ + +SingleFaceTab.jButton1.text=