diff --git a/.gitignore b/.gitignore index a1d0ee3..5c9f847 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -.idea -*.iml -out -*.class +.idea +*.iml +out +*.class +/target/ \ No newline at end of file diff --git a/Makefile b/Makefile index 1037616..4325dc1 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,10 @@ JAVAC = javac JFLAGS = +ROOT_PACKAGE = 'src/main/java/com/github/idris/raytracer' + all: - $(JAVAC) $(JFLAGS) src/raytracer/*.java src/raytracer/pigments/*.java src/raytracer/shapes/*.java + $(JAVAC) $(JFLAGS) $(ROOT_PACKAGE)/*.java $(ROOT_PACKAGE)/pigments/*.java $(ROOT_PACKAGE)/shapes/*.java clean: - $(RM) src/raytracer/*.class src/raytracer/pigments/*.class src/raytracer/shapes/*.class \ No newline at end of file + $(RM) $(ROOT_PACKAGE)/*.class $(ROOT_PACKAGE)/*.class $(ROOT_PACKAGE)/*.class \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e084c19 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# RayTracer # + +by Idris Mokhtarzada + +I chose to write this RayTracer in Java because I am more comfortable with +Java as a language. Because there are concerns about speed with Java, I added +a multi-threaded mode (-multi) to be used when rendering large, anti-aliased +images. + +## Requirements ## + +Java JDK 5.0 or higher is required to compile and run this RayTracer. +Java JDK 6.0 is downloadable from the Java website: + + + +Additionally, Apache Maven is required for building the project. Maven comes +with basically any Java IDE available, but you can install it manually from +here: + + + +## Building ## + +### Apache Maven ### + +Compile and package with Maven: + +`mvn clean compile package` + +Maven will create a `target` directory with the runnable JAR inside. + +### Manual ### + +If you want to compile manually, you can simply type the following: + +`javac src/main/java/com/github/idris/raytracer/*.java src/main/java/com/github/idris/raytracer/pigments/*.java src/main/java/com/github/idris/raytracer/shapes/*.java` + +## Usage ## + +Simply run the JAR from the command line: + +`java -jar target/raytracer-*.jar` + +The wildcard is a convenience to not hardcode the application version into the command +( instead of, for example `java -jar target/raytracer-0.1-SNAPSHOT.jar` ) + +### Make ### + +A Makefile is included with the project, which will compile the Java source. + +Use `make` to compile, and `make clean` to remove the compiled .class files. + +### Manual build ### + +After building, you can simply run the application using java as follows: + +`java -cp src/main/java/ com.github.idris.raytracer.Main` + +## Command line arguments ## + +Run the jar without command line arguments to display a summary of parameters. + +The -Djava.awt.headless=true flag alerts java not to popup a Java window. +This is especially useful when running the command on a terminal or in an ssh +connection. + +## Implemented Features ## + +Basic Features: + +* shapes: spheres, planes +* pigments: solid, checker +* shadows +* reflection +* refraction + +Extra Features: + +* pigments: texmap +* anti-aliasing + To enable anti-aliasing, simply add "-aa" as a command line parameter +* multi-threading + To enable multi-threading, simply add "-multi" as a command line parameter + Note: Multi-threading is only optimal when the render time is very high. + For example, on my computer, when running test05.txt with + anti-aliasing enabled, and a canvas size of 800x600, multi-threading + saves about 6 seconds. + Also keep in mind, when using multi-threaded mode, there is no + incremental output. It only outputs the time it took to render. + +## Test Files ## + +Beyond the main test files (test01 - test05), there are some extra tests +included in the `samples` directory to demonstrate extra features: + +* wood.txt - Looks very nice with "-aa" option! + (uses texture mapping. hardwood.bmp must be in the working directory) +* test-texmap.txt + (also uses texture mapping. spectrum.bmp must be in the working directory) + +> Note: Samples using textures only work when ran from the project root. +> This will work: + +```bash +foo@bar MINGW64 ~/dev/raytracer (master) +λ java -jar target/raytracer-0.1-SNAPSHOT.jar samples/wood.txt out.bmp 640 360 -multi -aa +Finished in: 4202ms +``` + +> This wont': + +```bash +foo@bar MINGW64 ~/dev/raytracer/samples (master) +λ java -jar ../target/raytracer-0.1-SNAPSHOT.jar wood.txt out.bmp 640 360 -multi -aa +ERROR: Could not locate texmap file 'hardwood.bmp'. +``` \ No newline at end of file diff --git a/Readme.txt b/Readme.txt deleted file mode 100644 index 0dc869a..0000000 --- a/Readme.txt +++ /dev/null @@ -1,66 +0,0 @@ -RayTracer -by Idris Mokhtarzada ------------------------------- -I chose to write this RayTracer in Java because I am more comfortable with -Java as a language. Because there are concerns about speed with Java, I added -a multi-threaded mode (-multi) to be used when rendering large, anti-aliased -images. - -Requirements -============ -Java JDK 5.0 or higher is required to compile and run this RayTracer. -You will need the command line tools 'javac' and 'java'. -Java JDK 6.0 is downloadable from the Java website: -http://java.sun.com/javase/downloads/widget/jdk6.jsp - - -Building -======== -I have included a Makefile which will compile the java source. -Use 'make' to compile, and 'make clean' to remove the compiled .class files. - -If you do not have make (for example, on Windows), you can simply type the following: -javac src/raytracer/*.java src/raytracer/pigments/*.java src/raytracer/shapes/*.java - - -Usage -===== -After making, you can simply run the application using java as follows: -java -Djava.awt.headless=true -cp src raytracer.Main test05.txt test05.bmp 400 300 - -The -Djava.awt.headless=true flag alerts java not to popup a Java window. -This is especially useful when running the command on a terminal or in an ssh -connection. - - -Implemented Features -==================== -Basic Features: -* shapes: spheres, planes -* pigments: solid, checker -* shadows -* reflection -* refraction - -Extra Features: -* pigments: texmap -* anti-aliasing - To enable anti-aliasing, simply add "-aa" as a command line parameter -* multi-threading - To enable multi-threading, simply add "-multi" as a command line parameter - Note: Multi-threading is only optimal when the render time is very high. - For example, on my computer, when running test05.txt with - anti-aliasing enabled, and a canvas size of 800x600, multi-threading - saves about 6 seconds. - Also keep in mind, when using multi-threaded mode, there is no - incremental output. It only outputs the time it took to render. - - -Test Files -========== -Beyond the main test files (test01 - test05), there are some extra tests -included to demonstrate extra features: -* wood.txt - Looks very nice with "-aa" option! - (uses texture mapping. hardwood.bmp must be in the working directory) -* test-texmap.txt - (also uses texture mapping. spectrum.bmp must be in the working directory) diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..07148fa --- /dev/null +++ b/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + com.github.idris + raytracer + 0.1-SNAPSHOT + jar + + UTF-8 + 1.8 + 1.8 + + + + + + org.apache.maven.plugins + maven-shade-plugin + 3.1.0 + + + + package + + shade + + + + + + com.github.idris.raytracer.Main + + + + + + + + + \ No newline at end of file diff --git a/hardwood.bmp b/samples/hardwood.bmp similarity index 100% rename from hardwood.bmp rename to samples/hardwood.bmp diff --git a/spectrum.bmp b/samples/spectrum.bmp similarity index 100% rename from spectrum.bmp rename to samples/spectrum.bmp diff --git a/test-texmap.bmp b/samples/test-texmap.bmp similarity index 100% rename from test-texmap.bmp rename to samples/test-texmap.bmp diff --git a/test-texmap.txt b/samples/test-texmap.txt old mode 100755 new mode 100644 similarity index 96% rename from test-texmap.txt rename to samples/test-texmap.txt index 00feb1f..69a6430 --- a/test-texmap.txt +++ b/samples/test-texmap.txt @@ -9,7 +9,7 @@ -80.0 160.0 -200.0 1 1 1 1 0 0 3 -texmap spectrum.bmp +texmap samples/spectrum.bmp 0 .001 0 .12 0 0 0 0 checker .08 .25 .20 .93 .83 .82 40 diff --git a/test01.txt b/samples/test01.txt old mode 100755 new mode 100644 similarity index 100% rename from test01.txt rename to samples/test01.txt diff --git a/test02.txt b/samples/test02.txt old mode 100755 new mode 100644 similarity index 100% rename from test02.txt rename to samples/test02.txt diff --git a/test03.txt b/samples/test03.txt old mode 100755 new mode 100644 similarity index 100% rename from test03.txt rename to samples/test03.txt diff --git a/test04.txt b/samples/test04.txt old mode 100755 new mode 100644 similarity index 100% rename from test04.txt rename to samples/test04.txt diff --git a/test05.txt b/samples/test05.txt old mode 100755 new mode 100644 similarity index 100% rename from test05.txt rename to samples/test05.txt diff --git a/wood.txt b/samples/wood.txt old mode 100755 new mode 100644 similarity index 90% rename from wood.txt rename to samples/wood.txt index e94b3bb..7a6fed1 --- a/wood.txt +++ b/samples/wood.txt @@ -12,7 +12,7 @@ solid 1.0 0.0 0.0 solid 0.0 0.6 0.0 solid 0.0 0.0 1.0 -texmap hardwood.bmp +texmap samples/hardwood.bmp .5 0 0 0 0 .5 0 0 solid 0.1 0.8 1.0 diff --git a/src/raytracer/AmbientLight.java b/src/main/java/com/github/idris/raytracer/AmbientLight.java similarity index 89% rename from src/raytracer/AmbientLight.java rename to src/main/java/com/github/idris/raytracer/AmbientLight.java index 5be8bce..ff7d0a2 100644 --- a/src/raytracer/AmbientLight.java +++ b/src/main/java/com/github/idris/raytracer/AmbientLight.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; import java.awt.Color; diff --git a/src/raytracer/Camera.java b/src/main/java/com/github/idris/raytracer/Camera.java similarity index 98% rename from src/raytracer/Camera.java rename to src/main/java/com/github/idris/raytracer/Camera.java index 02a8335..cb6fe4f 100644 --- a/src/raytracer/Camera.java +++ b/src/main/java/com/github/idris/raytracer/Camera.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; public class Camera { private Point eye; diff --git a/src/raytracer/ColorUtil.java b/src/main/java/com/github/idris/raytracer/ColorUtil.java similarity index 97% rename from src/raytracer/ColorUtil.java rename to src/main/java/com/github/idris/raytracer/ColorUtil.java index fb5ad1a..db580df 100644 --- a/src/raytracer/ColorUtil.java +++ b/src/main/java/com/github/idris/raytracer/ColorUtil.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; import java.awt.Color; diff --git a/src/raytracer/Light.java b/src/main/java/com/github/idris/raytracer/Light.java similarity index 98% rename from src/raytracer/Light.java rename to src/main/java/com/github/idris/raytracer/Light.java index aecc7a6..bad1003 100644 --- a/src/raytracer/Light.java +++ b/src/main/java/com/github/idris/raytracer/Light.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; import java.awt.Color; diff --git a/src/raytracer/Log.java b/src/main/java/com/github/idris/raytracer/Log.java similarity index 90% rename from src/raytracer/Log.java rename to src/main/java/com/github/idris/raytracer/Log.java index 61d610d..ef0e7fc 100644 --- a/src/raytracer/Log.java +++ b/src/main/java/com/github/idris/raytracer/Log.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; public class Log { public static void error(String msg) { diff --git a/src/raytracer/Main.java b/src/main/java/com/github/idris/raytracer/Main.java similarity index 98% rename from src/raytracer/Main.java rename to src/main/java/com/github/idris/raytracer/Main.java index ec58eb9..f9d0d88 100644 --- a/src/raytracer/Main.java +++ b/src/main/java/com/github/idris/raytracer/Main.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; import java.io.File; import java.io.IOException; diff --git a/src/raytracer/Matrix.java b/src/main/java/com/github/idris/raytracer/Matrix.java similarity index 97% rename from src/raytracer/Matrix.java rename to src/main/java/com/github/idris/raytracer/Matrix.java index 5c808da..a4686b6 100644 --- a/src/raytracer/Matrix.java +++ b/src/main/java/com/github/idris/raytracer/Matrix.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; public class Matrix { private double m[][]; diff --git a/src/raytracer/Point.java b/src/main/java/com/github/idris/raytracer/Point.java similarity index 92% rename from src/raytracer/Point.java rename to src/main/java/com/github/idris/raytracer/Point.java index 29003b0..1a0c722 100644 --- a/src/raytracer/Point.java +++ b/src/main/java/com/github/idris/raytracer/Point.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; public class Point { public double x, y, z; diff --git a/src/raytracer/Ray.java b/src/main/java/com/github/idris/raytracer/Ray.java similarity index 95% rename from src/raytracer/Ray.java rename to src/main/java/com/github/idris/raytracer/Ray.java index cabe777..4d9ceea 100644 --- a/src/raytracer/Ray.java +++ b/src/main/java/com/github/idris/raytracer/Ray.java @@ -1,4 +1,4 @@ -package raytracer; +package com.github.idris.raytracer; public class Ray { public final Point origin; diff --git a/src/raytracer/RayHit.java b/src/main/java/com/github/idris/raytracer/RayHit.java similarity index 93% rename from src/raytracer/RayHit.java rename to src/main/java/com/github/idris/raytracer/RayHit.java index 101da91..57209a8 100644 --- a/src/raytracer/RayHit.java +++ b/src/main/java/com/github/idris/raytracer/RayHit.java @@ -1,6 +1,6 @@ -package raytracer; +package com.github.idris.raytracer; -import raytracer.shapes.Shape; +import com.github.idris.raytracer.shapes.Shape; public class RayHit { public final Ray ray; diff --git a/src/raytracer/RayTracer.java b/src/main/java/com/github/idris/raytracer/RayTracer.java similarity index 91% rename from src/raytracer/RayTracer.java rename to src/main/java/com/github/idris/raytracer/RayTracer.java index b0cb9fa..df04293 100644 --- a/src/raytracer/RayTracer.java +++ b/src/main/java/com/github/idris/raytracer/RayTracer.java @@ -1,7 +1,22 @@ -package raytracer; - -import raytracer.pigments.*; -import raytracer.shapes.*; +package com.github.idris.raytracer; + +import com.github.idris.raytracer.shapes.Triangle; +import com.github.idris.raytracer.shapes.Polyhedron; +import com.github.idris.raytracer.shapes.Disc; +import com.github.idris.raytracer.shapes.Shape; +import com.github.idris.raytracer.shapes.Bezier; +import com.github.idris.raytracer.shapes.Parallelogram; +import com.github.idris.raytracer.shapes.Plane; +import com.github.idris.raytracer.shapes.Cylinder; +import com.github.idris.raytracer.shapes.Sphere; +import com.github.idris.raytracer.shapes.Polygon; +import com.github.idris.raytracer.shapes.Cone; +import com.github.idris.raytracer.pigments.SolidPigment; +import com.github.idris.raytracer.pigments.TexmapPigment; +import com.github.idris.raytracer.pigments.Pigment; +import com.github.idris.raytracer.pigments.CheckerPigment; +import com.github.idris.raytracer.pigments.Finish; +import com.github.idris.raytracer.pigments.GradientPigment; import javax.imageio.ImageIO; import java.awt.Color; diff --git a/src/raytracer/Vector.java b/src/main/java/com/github/idris/raytracer/Vector.java similarity index 92% rename from src/raytracer/Vector.java rename to src/main/java/com/github/idris/raytracer/Vector.java index 38689ec..0565479 100644 --- a/src/raytracer/Vector.java +++ b/src/main/java/com/github/idris/raytracer/Vector.java @@ -1,4 +1,7 @@ -package raytracer; +package com.github.idris.raytracer; + +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; public class Vector { public double x, y, z; diff --git a/src/raytracer/pigments/CheckerPigment.java b/src/main/java/com/github/idris/raytracer/pigments/CheckerPigment.java similarity index 87% rename from src/raytracer/pigments/CheckerPigment.java rename to src/main/java/com/github/idris/raytracer/pigments/CheckerPigment.java index 7b40800..3cd04f1 100644 --- a/src/raytracer/pigments/CheckerPigment.java +++ b/src/main/java/com/github/idris/raytracer/pigments/CheckerPigment.java @@ -1,6 +1,6 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; -import raytracer.Point; +import com.github.idris.raytracer.Point; import java.awt.Color; diff --git a/src/raytracer/pigments/Finish.java b/src/main/java/com/github/idris/raytracer/pigments/Finish.java similarity index 90% rename from src/raytracer/pigments/Finish.java rename to src/main/java/com/github/idris/raytracer/pigments/Finish.java index 7c65676..79bad86 100644 --- a/src/raytracer/pigments/Finish.java +++ b/src/main/java/com/github/idris/raytracer/pigments/Finish.java @@ -1,4 +1,4 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; public class Finish { public float amb, diff, spec, shiny, refl, trans, ior; diff --git a/src/raytracer/pigments/GradientPigment.java b/src/main/java/com/github/idris/raytracer/pigments/GradientPigment.java similarity index 82% rename from src/raytracer/pigments/GradientPigment.java rename to src/main/java/com/github/idris/raytracer/pigments/GradientPigment.java index 7be0d30..5364661 100644 --- a/src/raytracer/pigments/GradientPigment.java +++ b/src/main/java/com/github/idris/raytracer/pigments/GradientPigment.java @@ -1,6 +1,9 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.ColorUtil; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; import java.awt.Color; diff --git a/src/raytracer/pigments/Pigment.java b/src/main/java/com/github/idris/raytracer/pigments/Pigment.java similarity index 50% rename from src/raytracer/pigments/Pigment.java rename to src/main/java/com/github/idris/raytracer/pigments/Pigment.java index a88302f..0c47e68 100644 --- a/src/raytracer/pigments/Pigment.java +++ b/src/main/java/com/github/idris/raytracer/pigments/Pigment.java @@ -1,6 +1,6 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; -import raytracer.Point; +import com.github.idris.raytracer.Point; import java.awt.Color; diff --git a/src/raytracer/pigments/SolidPigment.java b/src/main/java/com/github/idris/raytracer/pigments/SolidPigment.java similarity index 75% rename from src/raytracer/pigments/SolidPigment.java rename to src/main/java/com/github/idris/raytracer/pigments/SolidPigment.java index d7b6a64..38eac14 100644 --- a/src/raytracer/pigments/SolidPigment.java +++ b/src/main/java/com/github/idris/raytracer/pigments/SolidPigment.java @@ -1,6 +1,6 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; -import raytracer.Point; +import com.github.idris.raytracer.Point; import java.awt.Color; diff --git a/src/raytracer/pigments/TexmapPigment.java b/src/main/java/com/github/idris/raytracer/pigments/TexmapPigment.java similarity index 92% rename from src/raytracer/pigments/TexmapPigment.java rename to src/main/java/com/github/idris/raytracer/pigments/TexmapPigment.java index 9ceef4d..95bc057 100644 --- a/src/raytracer/pigments/TexmapPigment.java +++ b/src/main/java/com/github/idris/raytracer/pigments/TexmapPigment.java @@ -1,6 +1,6 @@ -package raytracer.pigments; +package com.github.idris.raytracer.pigments; -import raytracer.Point; +import com.github.idris.raytracer.Point; import javax.imageio.ImageIO; import java.awt.Color; diff --git a/src/raytracer/shapes/Bezier.java b/src/main/java/com/github/idris/raytracer/shapes/Bezier.java similarity index 59% rename from src/raytracer/shapes/Bezier.java rename to src/main/java/com/github/idris/raytracer/shapes/Bezier.java index 95a93fd..b360725 100644 --- a/src/raytracer/shapes/Bezier.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Bezier.java @@ -1,6 +1,9 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; import java.util.List; diff --git a/src/raytracer/shapes/Cone.java b/src/main/java/com/github/idris/raytracer/shapes/Cone.java similarity index 59% rename from src/raytracer/shapes/Cone.java rename to src/main/java/com/github/idris/raytracer/shapes/Cone.java index 4d9e362..a9ea2ca 100644 --- a/src/raytracer/shapes/Cone.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Cone.java @@ -1,6 +1,10 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; public class Cone extends Shape { private Point apex; diff --git a/src/raytracer/shapes/Cylinder.java b/src/main/java/com/github/idris/raytracer/shapes/Cylinder.java similarity index 59% rename from src/raytracer/shapes/Cylinder.java rename to src/main/java/com/github/idris/raytracer/shapes/Cylinder.java index fbcece1..0ef90f6 100644 --- a/src/raytracer/shapes/Cylinder.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Cylinder.java @@ -1,6 +1,10 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; public class Cylinder extends Shape { private Point base; diff --git a/src/raytracer/shapes/Disc.java b/src/main/java/com/github/idris/raytracer/shapes/Disc.java similarity index 60% rename from src/raytracer/shapes/Disc.java rename to src/main/java/com/github/idris/raytracer/shapes/Disc.java index 0cb788c..11f3b04 100644 --- a/src/raytracer/shapes/Disc.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Disc.java @@ -1,6 +1,10 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; public class Disc extends Shape { private Point center; diff --git a/src/raytracer/shapes/Parallelogram.java b/src/main/java/com/github/idris/raytracer/shapes/Parallelogram.java similarity index 62% rename from src/raytracer/shapes/Parallelogram.java rename to src/main/java/com/github/idris/raytracer/shapes/Parallelogram.java index 89f0c92..435e417 100644 --- a/src/raytracer/shapes/Parallelogram.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Parallelogram.java @@ -1,6 +1,10 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; +import com.github.idris.raytracer.Point; public class Parallelogram extends Shape { private final Point p1, p2, p3, p4; diff --git a/src/raytracer/shapes/Plane.java b/src/main/java/com/github/idris/raytracer/shapes/Plane.java similarity index 80% rename from src/raytracer/shapes/Plane.java rename to src/main/java/com/github/idris/raytracer/shapes/Plane.java index d6dca77..ea7b562 100644 --- a/src/raytracer/shapes/Plane.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Plane.java @@ -1,6 +1,8 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; public class Plane extends Shape { private final double a, b, c, d; diff --git a/src/raytracer/shapes/Polygon.java b/src/main/java/com/github/idris/raytracer/shapes/Polygon.java similarity index 77% rename from src/raytracer/shapes/Polygon.java rename to src/main/java/com/github/idris/raytracer/shapes/Polygon.java index 189ff8e..2c040d5 100644 --- a/src/raytracer/shapes/Polygon.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Polygon.java @@ -1,6 +1,6 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; public class Polygon { final double a, b, c, d; diff --git a/src/raytracer/shapes/Polyhedron.java b/src/main/java/com/github/idris/raytracer/shapes/Polyhedron.java similarity index 65% rename from src/raytracer/shapes/Polyhedron.java rename to src/main/java/com/github/idris/raytracer/shapes/Polyhedron.java index 0d9150f..f128a62 100644 --- a/src/raytracer/shapes/Polyhedron.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Polyhedron.java @@ -1,6 +1,8 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Log; import java.util.List; diff --git a/src/raytracer/shapes/Shape.java b/src/main/java/com/github/idris/raytracer/shapes/Shape.java similarity index 59% rename from src/raytracer/shapes/Shape.java rename to src/main/java/com/github/idris/raytracer/shapes/Shape.java index 7cfe333..2a3b4ba 100644 --- a/src/raytracer/shapes/Shape.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Shape.java @@ -1,8 +1,10 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; -import raytracer.pigments.Finish; -import raytracer.pigments.Pigment; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Point; +import com.github.idris.raytracer.pigments.Finish; +import com.github.idris.raytracer.pigments.Pigment; import java.awt.Color; diff --git a/src/raytracer/shapes/Sphere.java b/src/main/java/com/github/idris/raytracer/shapes/Sphere.java similarity index 89% rename from src/raytracer/shapes/Sphere.java rename to src/main/java/com/github/idris/raytracer/shapes/Sphere.java index 8741b65..f20312c 100644 --- a/src/raytracer/shapes/Sphere.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Sphere.java @@ -1,6 +1,9 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Point; public class Sphere extends Shape { Point center; diff --git a/src/raytracer/shapes/Triangle.java b/src/main/java/com/github/idris/raytracer/shapes/Triangle.java similarity index 84% rename from src/raytracer/shapes/Triangle.java rename to src/main/java/com/github/idris/raytracer/shapes/Triangle.java index ca5eb26..700bc4f 100644 --- a/src/raytracer/shapes/Triangle.java +++ b/src/main/java/com/github/idris/raytracer/shapes/Triangle.java @@ -1,6 +1,9 @@ -package raytracer.shapes; +package com.github.idris.raytracer.shapes; -import raytracer.*; +import com.github.idris.raytracer.Vector; +import com.github.idris.raytracer.RayHit; +import com.github.idris.raytracer.Ray; +import com.github.idris.raytracer.Point; public class Triangle extends Shape { private final Point p1, p2, p3;