import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
class App {
static ObjectCollection mainCollection;
private static void initWindow() {
// create a window frame and set the title in the toolbar
JFrame window = new JFrame("Testing");
// when we close the window, stop the app
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// create the jpanel to draw on.
// this also initializes the game loop
initObjects();
Screen screen = new Screen(mainCollection);
// add the jpanel to the window
window.add(screen);
window.addKeyListener(screen);
window.addMouseListener(screen);
window.addMouseMotionListener(screen);
// don't allow the user to resize the window
window.setResizable(false);
// fit the window size around the components (just our jpanel).
// pack() should be called after setResizable() to avoid issues on some platforms
window.pack();
// open window in the center of the screen
window.setLocationRelativeTo(null);
// display the window
window.setVisible(true);
}
public static void main(String[] args) {
// invokeLater() is used here to prevent our graphics processing from
// blocking the GUI. https://stackoverflow.com/a/22534931/4655368
// this is a lot of boilerplate code that you shouldn't be too concerned about.
// just know that when main runs it will call initWindow() once.
SwingUtilities.invokeLater(App::initWindow);
}
public static void initObjects(){
mainCollection = new ObjectCollection();
BufferedImage testTexture;
try {
testTexture = ImageIO.read(new File("/home/cory/Screenshot from 2022-06-06 18-52-12.png"));
} catch (IOException e) {
throw new RuntimeException(e);
}
mainCollection.addObject(new Object3d(new PointComp[]{
new PointComp(-30,-10,-10),
new PointComp(-30,-10,10),
new PointComp(-30,10,-10),
new PointComp(-30,10,10),
new PointComp(-10,-10,-10),
new PointComp(-10,-10,10),
new PointComp(-10,10,-10),
new PointComp(-10,10,10)
}, new int[][]{
{0,2,3,1},
{4,5,7,6},
{0,1,5,4},
{1,3,7,5},
{3,2,6,7},
{2,0,4,6},
}, new Point2D[][]{
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
{new Point2D(0, 0), new Point2D(100, 0), new Point2D(0, 100), new Point2D(100, 100)},
},
true,
testTexture,
true));
// mainCollection.addObject(new Object3d(new PointComp[]{
// new PointComp(-10,10,10),
// new PointComp(-10,-10,10),
// new PointComp(10,10,10),
// new PointComp(10,-10,10),
// new PointComp(0,0,24)
// }, new int[][]{
// {0,2,3,1},
// {1,0,4},
// {0,2,4},
// {2,3,4},
// {3,1,4}
// }, true));
mainCollection.addObject(new Object3d(new PointComp[]{
new PointComp(0,0,0),
new PointComp(20,0,0),
new PointComp(0,10,0),
new PointComp(0,0,10),
}, new int[][]{
{0,1,2},
{0,2,3},
{0,3,1},
{2,1,3}
}, new Point2D[][]{
{new Point2D(0,0), new Point2D(100,0), new Point2D(0,100)},
{new Point2D(0,0), new Point2D(100,0), new Point2D(0,100)},
{new Point2D(0,0), new Point2D(100,0), new Point2D(0,100)},
},
true,
testTexture,
true));
}
}