Newer
Older
EPQ-3D-renderer / src / App.java
import javax.swing.*;

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();
        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(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},
        }, true));
    }
}