diff --git a/build.xml b/build.xml
index 635a838..ef92040 100644
--- a/build.xml
+++ b/build.xml
@@ -13,7 +13,7 @@
-
+
diff --git a/src/lsystem/Main2D.java b/src/lsystem/Main2D.java
deleted file mode 100644
index 50acf65..0000000
--- a/src/lsystem/Main2D.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package lsystem;
-
-import lsystem.screen.gl2d.SwingGLCanvas2D;
-import lsystem.screen.main.MainFrame;
-
-public class Main2D {
-
- /*public static MainFrame mainFrame;
- public static SwingGLCanvas2D joglFrame;
- public static void main(String[] args) {
- new Thread(() -> {
- mainFrame = new MainFrame();
- mainFrame.setVisible(true);
- }).start();
- new Thread(() -> joglFrame = new SwingGLCanvas2D()).start();
- } */
-
- /* public static void main(String[] args) {
-
- MainFrame frame = new MainFrame();
- frame.setVisible(true);
- SwingGLCanvas2D canvas = new SwingGLCanvas2D();
- canvas.setVisible(true);
- new Thread(() ->{
- SwingGLCanvas2D joglFrame = new SwingGLCanvas2D();
- String axiom="X";
- ArrayList> rules = new ArrayList<>();
- rules.add(new Pair<>("X=Y+[[X]-X]-Y[-YX]+X", "Y=YY"));
- joglFrame.setLSystem(axiom,rules,5);
- joglFrame.setVisible(true);
- }).start();
- } */
-
- public static MainFrame mainFrame;
- public static SwingGLCanvas2D joglFrame;
-
- public static void main(String[] args) {
- new Thread(() -> {
- mainFrame = new MainFrame();
- mainFrame.setVisible(true);
- }).start();
- new Thread(() -> joglFrame = new SwingGLCanvas2D()).start();
- }
-
-}
diff --git a/src/lsystem/screen/gl2d/JoglEventListener2D.java b/src/lsystem/screen/gl2d/JoglEventListener2D.java
deleted file mode 100644
index c88facf..0000000
--- a/src/lsystem/screen/gl2d/JoglEventListener2D.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package lsystem.screen.gl2d;
-
-import com.jogamp.opengl.GL2;
-import com.jogamp.opengl.GLAutoDrawable;
-
-import lsystem.engine.Element;
-import lsystem.engine.ElementProperties;
-import lsystem.screen.AbstractListener;
-import lsystem.screen.gl3d.DrawHelper;
-
-public class JoglEventListener2D extends AbstractListener {
-
- public JoglEventListener2D(SwingGLCanvas2D swingGLCanvas) {
- super(swingGLCanvas);
- }
-
- @Override
- public void drawLSystem(GL2 gl, Element element) {
- drawAll(gl, element, new lsystem.screen.gl2d.Point2(-1.0f, -1.0f));
- }
-
- private void drawAll(GL2 gl, Element actual, lsystem.screen.gl2d.Point2 origin) {
- if (actual.property == ElementProperties.DRAW) {
- System.out.println("DESSIN");
- lsystem.screen.gl2d.Point2 newOrigin = new lsystem.screen.gl2d.Point2(origin, actual.getRotation2D());
- DrawHelper.drawStick(gl, origin, newOrigin);
- }
- System.out.println(actual.children.isEmpty());
- for (Element children : actual.children) {
- System.out.println("CHILD");
- drawAll(gl, children, new lsystem.screen.gl2d.Point2(origin, actual.getRotation2D()));
- }
- }
-
- @Override
- public void display(GLAutoDrawable glAutoDrawable) {
-
- GL2 gl = glAutoDrawable.getGL().getGL2();
-
- drawLSystem(gl, canvas.getLSystem());
- drawAll(gl, canvas.getLSystem(), new lsystem.screen.gl2d.Point2(-1.0f, -1.0f));
-
- }
-}
diff --git a/src/lsystem/screen/gl2d/Point2.java b/src/lsystem/screen/gl2d/Point2.java
deleted file mode 100644
index 2383435..0000000
--- a/src/lsystem/screen/gl2d/Point2.java
+++ /dev/null
@@ -1,114 +0,0 @@
-package lsystem.screen.gl2d;
-
-public class Point2 {
- private float x;
- private float y;
-
- public Point2 () {
-
- }
-
- public Point2 (float x, float y) {
- this.x = x;
- this.y = y;
- }
-
- public Point2 (Point2 old, int angle) {
- angle = compactAngle(angle);
- //Point a = new Point();
- //x = getNewOrigin(old, angle, 0.1f);
- getNewOrigin(old, angle, 0.1f);
- }
-
- public float getX() {
- return x;
- }
-
- public void setX(float x) {
- this.x = x;
- }
-
- public float getY() {
- return y;
- }
-
- public void setY(float y) {
- this.y = y;
- }
-
- public void getNewOrigin (Point2 old, int angle, float echelle) {
-
- int newX=0, newY=0;
- switch (angle) {
- case 0:
- newX = 1;
- newY = 1;
- break;
- case 45:
- newX = 1;
- newY = 0;
- break;
- case 90:
- newX = 1;
- newY = -1;
- break;
- case 135:
- newX = 0;
- newY = -1;
- break;
- case 180:
- newX = -1;
- newY = -1;
- break;
- case 225:
- newX = -1;
- newY = 0;
- break;
- case 270:
- newX = -1;
- newY = 1;
- break;
- case 315:
- newX = 0;
- newY = 1;
- break;
- }
-
- this.x = old.getX() + echelle * newX;
- this.y+= old.getY() + echelle * newY;
- //return old;
- }
-
- public String toString () {
- return "("+this.x+";"+this.y+")";
- }
-
- public static int compactAngle (int angle) {
- angle = angle - ((angle / 360) * 360);
- switch (angle) {
- case -315:
- angle = 45;
- break;
- case -270:
- angle = 90;
- break;
- case -225:
- angle = 135;
- break;
- case -180:
- angle = 180;
- break;
- case -135:
- angle = 225;
- break;
- case -90:
- angle = 270;
- break;
- case -45:
- angle = 315;
- break;
- }
- return angle;
- }
-
-}
diff --git a/src/lsystem/screen/gl2d/SwingGLCanvas2D.java b/src/lsystem/screen/gl2d/SwingGLCanvas2D.java
deleted file mode 100644
index 9c93afc..0000000
--- a/src/lsystem/screen/gl2d/SwingGLCanvas2D.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package lsystem.screen.gl2d;
-
-import lsystem.screen.AbstractCanvas;
-
-
-public class SwingGLCanvas2D extends AbstractCanvas {
-
- @Override
- protected void addEventsListeners() {
- glCanvas.addGLEventListener(new JoglEventListener2D(this));
- }
-}
diff --git a/src/lsystem/screen/gl3d/DrawHelper.java b/src/lsystem/screen/gl3d/DrawHelper.java
index 71c1bc0..1e963b8 100644
--- a/src/lsystem/screen/gl3d/DrawHelper.java
+++ b/src/lsystem/screen/gl3d/DrawHelper.java
@@ -3,7 +3,6 @@ package lsystem.screen.gl3d;
import com.jogamp.opengl.GL2;
import com.jogamp.opengl.util.gl2.GLUT;
import lsystem.screen.AbstractCanvas;
-import lsystem.screen.gl2d.Point2;
public class DrawHelper {
@@ -89,14 +88,6 @@ public class DrawHelper {
+ canvas.camera[3] + " pitch = " + canvas.camera[4] + " roll = " + canvas.camera[5]);
}
- public static void drawStick(GL2 gl, Point2 origin, Point2 newOrigin) {
-
- gl.glBegin(GL2.GL_LINES);
- gl.glVertex2f(origin.getX(), origin.getY());
- gl.glVertex2f(newOrigin.getX(), newOrigin.getY());
- gl.glEnd();
- }
-
}
diff --git a/src/lsystem/screen/gl3d/GLEventListener.java b/src/lsystem/screen/gl3d/GLEventListener.java
index 3ae258b..bb1eb8b 100644
--- a/src/lsystem/screen/gl3d/GLEventListener.java
+++ b/src/lsystem/screen/gl3d/GLEventListener.java
@@ -10,6 +10,7 @@ import lsystem.screen.AbstractListener;
public class GLEventListener extends AbstractListener {
private final float[] light_0_position = {1000f, 1000f, 1000f, 1f};
+ private boolean firstGen;
public GLEventListener(GLCanvas swingGLCanvas) {
@@ -38,6 +39,7 @@ public class GLEventListener extends AbstractListener {
gl.glDepthFunc(GL2.GL_LEQUAL);
gl.glHint(GL2.GL_PERSPECTIVE_CORRECTION_HINT, GL2.GL_NICEST);
super.init(glAutoDrawable);
+ firstGen = true;
}
@Override
@@ -55,10 +57,11 @@ public class GLEventListener extends AbstractListener {
gl.glRotatef(90f, -1f, 0f, 0f);
gl.glColor3f(0f, 1f, 0f);
drawLSystem(gl, canvas.getLSystem());
+ firstGen = false;
gl.glPopMatrix();
DrawHelper.drawAxes(gl, glut);
- DrawHelper.drawDebugInformation(gl, glut, canvas);
+ // DrawHelper.drawDebugInformation(gl, glut, canvas);
gl.glFlush();
fps++;
}
@@ -67,10 +70,14 @@ public class GLEventListener extends AbstractListener {
gl.glPushMatrix();
gl.glRotatef(element.rotation[0] * 360, 1f, 0f, 0f);
gl.glRotatef(element.rotation[1] * 360, 0f, 1f, 0f);
- gl.glRotated(-Math.sin(element.rotation[0]) * 180, 0f, 0f, 1f);
- gl.glRotated(-Math.sin(element.rotation[1]) * 180, 0f, 0f, 1f);
+ gl.glRotated(-Math.sin(element.rotation[0]) * 180 - Math.sin(element.rotation[1]) * 180, 0f, 0f, 1f);
gl.glTranslated(-Math.sin(element.rotation[0]), -Math.sin(element.rotation[1]), -Math.sin(element.rotation[0] + element.rotation[1]));
+
if(element.property == ElementProperties.DRAW) {
+ if(firstGen) {
+ canvas.camera[1] += 0.10f;
+ canvas.camera[2] += 0.10f;
+ }
glut.glutSolidCylinder(0.25f, 1f, 10, 10);
gl.glTranslatef(0f, 0f, 1f);
}
diff --git a/src/lsystem/screen/main/Listener.java b/src/lsystem/screen/main/Listener.java
index bb2cbd3..dc89c0a 100644
--- a/src/lsystem/screen/main/Listener.java
+++ b/src/lsystem/screen/main/Listener.java
@@ -17,7 +17,7 @@ public class Listener implements ActionListener, KeyListener, MouseWheelListener
String type;
Integer nbAxioms = 0;
Thread parserThread = null;
- ImageIcon staticIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(getClass().getClassLoader().getResource("loading-gif.gif")));
+ ImageIcon staticIcon = new ImageIcon(Toolkit.getDefaultToolkit().createImage(getClass().getClassLoader().getResource("./resources/loading-gif.gif")));
public Listener(MainFrame frame, Integer index, String type, Tab tab){
diff --git a/src/lsystem/utils/Pair.java b/src/lsystem/utils/Pair.java
index 20d95b5..4ed5df6 100644
--- a/src/lsystem/utils/Pair.java
+++ b/src/lsystem/utils/Pair.java
@@ -1,5 +1,7 @@
package lsystem.utils;
+import java.util.Objects;
+
/**
* tuple containing 2 unknown type elements
*
@@ -41,7 +43,7 @@ public class Pair {
@Override
public int hashCode() {
- return 31 + left.hashCode() * right.hashCode();
+ return Objects.hash(left.hashCode(), right.hashCode());
}
@Override