From aa3931998c5df6437fc7d23f8b720a0063d9a543 Mon Sep 17 00:00:00 2001 From: Nikita Volobuev Date: Sat, 25 May 2019 10:56:14 +0300 Subject: [PATCH 1/2] feat(project): change package name to labs.introtoprogramming.lab5 --- build.gradle | 2 +- src/main/java/com/labs/introtoprogramming/lab5/Main.java | 4 ---- src/main/java/labs/introtoprogramming/lab5/Main.java | 9 +++++++++ 3 files changed, 10 insertions(+), 5 deletions(-) delete mode 100644 src/main/java/com/labs/introtoprogramming/lab5/Main.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/Main.java diff --git a/build.gradle b/build.gradle index 96ce739..33bb38c 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ plugins { apply plugin: 'com.github.spotbugs' apply plugin: 'jacoco' -group 'com.labs.introtoprogramming' +group 'labs.introtoprogramming' version '1.0-SNAPSHOT' sourceCompatibility = 1.8 diff --git a/src/main/java/com/labs/introtoprogramming/lab5/Main.java b/src/main/java/com/labs/introtoprogramming/lab5/Main.java deleted file mode 100644 index 93e1708..0000000 --- a/src/main/java/com/labs/introtoprogramming/lab5/Main.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.labs.introtoprogramming.lab5; - -public class Main { -} diff --git a/src/main/java/labs/introtoprogramming/lab5/Main.java b/src/main/java/labs/introtoprogramming/lab5/Main.java new file mode 100644 index 0000000..0f51ee9 --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/Main.java @@ -0,0 +1,9 @@ +package labs.introtoprogramming.lab5; + +public class Main { + + public static void main(String[] args) { + System.out.println("Hello World!"); + } + +} From 73d1fc6172b8651e2f3972a1aaf855173a294ac1 Mon Sep 17 00:00:00 2001 From: Nikita Volobuev Date: Sat, 25 May 2019 11:33:09 +0300 Subject: [PATCH 2/2] feat(project): basic structure --- .../labs/introtoprogramming/lab5/Main.java | 4 ++- .../lab5/config/Config.java | 4 +++ .../lab5/config/ConfigReader.java | 4 +++ .../exception/NotImplementedException.java | 13 ++++++++++ .../lab5/geometry/Vector3.java | 14 +++++++++++ .../lab5/graphics/Raster.java | 25 +++++++++++++++++++ .../lab5/io/obj/ObjReader.java | 4 +++ .../lab5/object/Sphere.java | 11 ++++++++ .../introtoprogramming/lab5/scene/Camera.java | 4 +++ .../lab5/scene/PointLight.java | 4 +++ .../introtoprogramming/lab5/scene/Scene.java | 14 +++++++++++ .../lab5/scene/SceneObject.java | 9 +++++++ 12 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 src/main/java/labs/introtoprogramming/lab5/config/Config.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/config/ConfigReader.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/exception/NotImplementedException.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/geometry/Vector3.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/graphics/Raster.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/io/obj/ObjReader.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/object/Sphere.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/scene/Camera.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/scene/PointLight.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/scene/Scene.java create mode 100644 src/main/java/labs/introtoprogramming/lab5/scene/SceneObject.java diff --git a/src/main/java/labs/introtoprogramming/lab5/Main.java b/src/main/java/labs/introtoprogramming/lab5/Main.java index 0f51ee9..e0c95fb 100644 --- a/src/main/java/labs/introtoprogramming/lab5/Main.java +++ b/src/main/java/labs/introtoprogramming/lab5/Main.java @@ -1,9 +1,11 @@ package labs.introtoprogramming.lab5; +import labs.introtoprogramming.lab5.exception.NotImplementedException; + public class Main { public static void main(String[] args) { - System.out.println("Hello World!"); + throw new NotImplementedException(); } } diff --git a/src/main/java/labs/introtoprogramming/lab5/config/Config.java b/src/main/java/labs/introtoprogramming/lab5/config/Config.java new file mode 100644 index 0000000..eb1930c --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/config/Config.java @@ -0,0 +1,4 @@ +package labs.introtoprogramming.lab5.config; + +public class Config { +} diff --git a/src/main/java/labs/introtoprogramming/lab5/config/ConfigReader.java b/src/main/java/labs/introtoprogramming/lab5/config/ConfigReader.java new file mode 100644 index 0000000..884ab1c --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/config/ConfigReader.java @@ -0,0 +1,4 @@ +package labs.introtoprogramming.lab5.config; + +public interface ConfigReader { +} diff --git a/src/main/java/labs/introtoprogramming/lab5/exception/NotImplementedException.java b/src/main/java/labs/introtoprogramming/lab5/exception/NotImplementedException.java new file mode 100644 index 0000000..b66429d --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/exception/NotImplementedException.java @@ -0,0 +1,13 @@ +package labs.introtoprogramming.lab5.exception; + +public class NotImplementedException extends RuntimeException { + + public NotImplementedException(String message) { + super(message); + } + + public NotImplementedException() { + this("Not implemented yet"); + } + +} diff --git a/src/main/java/labs/introtoprogramming/lab5/geometry/Vector3.java b/src/main/java/labs/introtoprogramming/lab5/geometry/Vector3.java new file mode 100644 index 0000000..cfc0d2e --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/geometry/Vector3.java @@ -0,0 +1,14 @@ +package labs.introtoprogramming.lab5.geometry; + +public class Vector3 { + + private final double x; + private final double y; + private final double z; + + public Vector3(double x, double y, double z) { + this.x = x; + this.y = y; + this.z = z; + } +} diff --git a/src/main/java/labs/introtoprogramming/lab5/graphics/Raster.java b/src/main/java/labs/introtoprogramming/lab5/graphics/Raster.java new file mode 100644 index 0000000..6470a2b --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/graphics/Raster.java @@ -0,0 +1,25 @@ +package labs.introtoprogramming.lab5.graphics; + +public class Raster { + + private final int width; + private final int height; + + private byte[][] red; + private byte[][] green; + private byte[][] blue; + + public Raster(int width, int height) { + this.width = width; + this.height = height; + this.red = new byte[width][height]; + this.green = new byte[width][height]; + this.blue = new byte[width][height]; + } + + public void setPixel(int x, int y, byte red, byte green, byte blue) { + this.red[x][y] = red; + this.green[x][y] = green; + this.blue[x][y] = blue; + } +} diff --git a/src/main/java/labs/introtoprogramming/lab5/io/obj/ObjReader.java b/src/main/java/labs/introtoprogramming/lab5/io/obj/ObjReader.java new file mode 100644 index 0000000..76d29cc --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/io/obj/ObjReader.java @@ -0,0 +1,4 @@ +package labs.introtoprogramming.lab5.io.obj; + +public interface ObjReader { +} diff --git a/src/main/java/labs/introtoprogramming/lab5/object/Sphere.java b/src/main/java/labs/introtoprogramming/lab5/object/Sphere.java new file mode 100644 index 0000000..d218e9c --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/object/Sphere.java @@ -0,0 +1,11 @@ +package labs.introtoprogramming.lab5.object; + +import labs.introtoprogramming.lab5.geometry.Vector3; +import labs.introtoprogramming.lab5.scene.SceneObject; + +public class Sphere extends SceneObject { + + private Vector3 position; + private double radius; + +} diff --git a/src/main/java/labs/introtoprogramming/lab5/scene/Camera.java b/src/main/java/labs/introtoprogramming/lab5/scene/Camera.java new file mode 100644 index 0000000..01b0769 --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/scene/Camera.java @@ -0,0 +1,4 @@ +package labs.introtoprogramming.lab5.scene; + +public abstract class Camera extends SceneObject { +} diff --git a/src/main/java/labs/introtoprogramming/lab5/scene/PointLight.java b/src/main/java/labs/introtoprogramming/lab5/scene/PointLight.java new file mode 100644 index 0000000..5c1d06e --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/scene/PointLight.java @@ -0,0 +1,4 @@ +package labs.introtoprogramming.lab5.scene; + +public abstract class PointLight extends SceneObject { +} diff --git a/src/main/java/labs/introtoprogramming/lab5/scene/Scene.java b/src/main/java/labs/introtoprogramming/lab5/scene/Scene.java new file mode 100644 index 0000000..82e5fcb --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/scene/Scene.java @@ -0,0 +1,14 @@ +package labs.introtoprogramming.lab5.scene; + +import java.awt.Color; +import java.util.List; + +public interface Scene { + + List getSceneObjects(); + + List getLights(); + + Color getBackgroundColor(); + +} diff --git a/src/main/java/labs/introtoprogramming/lab5/scene/SceneObject.java b/src/main/java/labs/introtoprogramming/lab5/scene/SceneObject.java new file mode 100644 index 0000000..e8a059e --- /dev/null +++ b/src/main/java/labs/introtoprogramming/lab5/scene/SceneObject.java @@ -0,0 +1,9 @@ +package labs.introtoprogramming.lab5.scene; + +import labs.introtoprogramming.lab5.geometry.Vector3; + +public class SceneObject { + + private Vector3 position; + +}