-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
First commit : todo : translate math referential to screen referential
- Loading branch information
1 parent
4c03095
commit a99c080
Showing
7 changed files
with
470 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
1. $ java TheCube -mode=fildefer | -mode=facesvisibles | ||
2. 1 cube = 8 lignes de 3 floattant sur fichier d'entrée | ||
3. à l'aide des boutons tourner dans l'espace(centre cube immobile) | ||
4. afficher après chaque usage de bouton | ||
4'. Perspective ? | ||
This file was modified by IntelliJ IDEA 10.5.2 for binding GitHub repository |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
package org.blackpanther; | ||
|
||
import org.blackpanther.model.Cube; | ||
import org.blackpanther.render.CubeRender; | ||
import org.blackpanther.render.CubeScene; | ||
|
||
import java.awt.*; | ||
import java.awt.event.KeyAdapter; | ||
import java.awt.event.KeyEvent; | ||
import java.awt.event.WindowAdapter; | ||
import java.awt.event.WindowEvent; | ||
|
||
/** | ||
* @author MACHIZAUD Andréa | ||
* @version 9/29/11 | ||
*/ | ||
public class Launcher { | ||
|
||
private static final java.util.logging.Logger logger = | ||
java.util.logging.Logger.getLogger(Launcher.class.getCanonicalName()); | ||
|
||
public static void main(String[] args) { | ||
|
||
CubeRender.DrawMode mode = CubeRender.DrawMode.LINE; | ||
|
||
if( args.length > 0 && args[0].equals("--fill") ) { | ||
mode = CubeRender.DrawMode.FILL; | ||
} | ||
|
||
logger.info("Draw mode changed to " + mode); | ||
|
||
final Frame frame = new Frame("Cube manipulation"); | ||
final Dimension drawingAreaDimension = new Dimension(500, 500); | ||
final Cube cube = new Cube(); | ||
final CubeRender renderer = new CubeRender( | ||
cube, 40, | ||
drawingAreaDimension); | ||
final CubeScene scene = new CubeScene(renderer, drawingAreaDimension); | ||
|
||
frame.addWindowListener(new WindowAdapter() { | ||
@Override | ||
public void windowClosing(WindowEvent e) { | ||
frame.dispose(); | ||
} | ||
}); | ||
|
||
frame.addKeyListener(new KeyAdapter() { | ||
@Override | ||
public void keyPressed(KeyEvent e) { | ||
if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { | ||
frame.dispose(); | ||
} | ||
} | ||
}); | ||
|
||
frame.add(scene); | ||
frame.pack(); | ||
|
||
frame.setLocationRelativeTo(null); | ||
renderer.render(); | ||
|
||
frame.setVisible(true); | ||
|
||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
package org.blackpanther.model; | ||
|
||
/** | ||
* @author MACHIZAUD Andréa | ||
* @version 9/29/11 | ||
*/ | ||
public class Cube { | ||
private static final java.util.logging.Logger logger = | ||
java.util.logging.Logger.getLogger(Cube.class.getCanonicalName()); | ||
|
||
//top | ||
public static final int A = 0; | ||
public static final int B = 1; | ||
public static final int C = 2; | ||
public static final int D = 3; | ||
public static final int E = 4; | ||
public static final int F = 5; | ||
public static final int G = 6; | ||
public static final int H = 7; | ||
|
||
//face | ||
public static final int ABFE = 0; | ||
public static final int ABCD = 1; | ||
public static final int BCGF = 2; | ||
public static final int CDHG = 3; | ||
public static final int EHGF = 4; | ||
public static final int DAEH = 5; | ||
|
||
private final Point3D[] matrix; | ||
|
||
@SuppressWarnings("unchecked") | ||
public Cube() { | ||
this.matrix = new Point3D[]{ | ||
new Point3D(-1, -1, -1), //A | ||
new Point3D(-1, -1, +1), //B | ||
new Point3D(-1, +1, +1), //C | ||
new Point3D(-1, +1, -1), //D | ||
new Point3D(+1, -1, -1), //E | ||
new Point3D(+1, -1, +1), //F | ||
new Point3D(+1, +1, +1), //G | ||
new Point3D(+1, +1, -1) //H | ||
}; | ||
} | ||
|
||
public final Point3D[] getPoints() { | ||
return matrix; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
package org.blackpanther.model; | ||
|
||
/** | ||
* @author MACHIZAUD Andréa | ||
* @version 9/29/11 | ||
*/ | ||
public class Point3D { | ||
private static final java.util.logging.Logger logger = | ||
java.util.logging.Logger.getLogger(Point3D.class.getCanonicalName()); | ||
|
||
private int[] coordinate; | ||
|
||
@SuppressWarnings("unchecked") | ||
public Point3D( | ||
final int x, | ||
final int y, | ||
final int z | ||
) { | ||
coordinate = new int[3]; | ||
coordinate[0] = x; | ||
coordinate[1] = y; | ||
coordinate[2] = z; | ||
} | ||
|
||
public final int getX(){ | ||
return coordinate[0]; | ||
} | ||
|
||
public final int getY(){ | ||
return coordinate[1]; | ||
} | ||
|
||
public final int getZ(){ | ||
return coordinate[2]; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
package org.blackpanther.model; | ||
|
||
/** | ||
* @author MACHIZAUD Andréa | ||
* @version 9/29/11 | ||
*/ | ||
public class Vector3D { | ||
private static final java.util.logging.Logger logger = | ||
java.util.logging.Logger.getLogger(Vector3D.class.getCanonicalName()); | ||
|
||
private final int[] chunks; | ||
|
||
public Vector3D( | ||
final int x, | ||
final int y, | ||
final int z | ||
) { | ||
chunks = new int[]{x,y,z}; | ||
} | ||
|
||
public Vector3D(Point3D origin, Point3D destination) { | ||
this( | ||
destination.getX() - origin.getX(), | ||
destination.getY() - origin.getY(), | ||
destination.getZ() - origin.getZ() | ||
); | ||
} | ||
|
||
public final int getX(){ | ||
return chunks[0]; | ||
} | ||
|
||
public final int getY(){ | ||
return chunks[1]; | ||
} | ||
|
||
public final int getZ(){ | ||
return chunks[2]; | ||
} | ||
|
||
public final Vector3D normal(Vector3D v) { | ||
final Vector3D u = this; | ||
return new Vector3D( | ||
u.getY() * v.getZ() - u.getZ() * v.getY(), | ||
u.getZ() * v.getX() - u.getX() * v.getZ(), | ||
u.getX() * v.getY() - u.getY() * v.getX() | ||
); | ||
} | ||
} |
Oops, something went wrong.