diff --git a/src/main/java/com/cringe_studios/christmastreescanning/FourSidedScanner.java b/src/main/java/com/cringe_studios/christmastreescanning/FourSidedScanner.java new file mode 100644 index 0000000..e974f62 --- /dev/null +++ b/src/main/java/com/cringe_studios/christmastreescanning/FourSidedScanner.java @@ -0,0 +1,45 @@ +package com.cringe_studios.christmastreescanning; + +import java.awt.geom.Point2D; +import java.awt.image.BufferedImage; + +import com.cringe_studios.christmastreescanning.scanning.SideScanner; +import com.cringe_studios.christmastreescanning.scanning.SingleColoredSideScanner; + +public class FourSidedScanner extends SingleColorScanner { + private SideScanner frontSideScanner; + private SideScanner rightSideScanner; + private SideScanner behindSideScanner; + private SideScanner leftSideScanner; + + public FourSidedScanner(BufferedImage frontSideImages[], BufferedImage rightSideImages[], BufferedImage behindSideImages[], BufferedImage leftSideImages[], byte gammaDelta) { + + //TODO + + frontSideScanner = new SingleColoredSideScanner(frontSideImages, gammaDelta, , , ); + rightSideScanner = new SingleColoredSideScanner(rightSideImages, gammaDelta, , , ); + behindSideScanner = new SingleColoredSideScanner(behindSideScanner, gammaDelta, , , ); + leftSideScanner = new SingleColoredSideScanner(leftSideScanner, gammaDelta, , , ); + } + + @Override + public Point3D[] scan() { + // TODO Auto-generated method stub + frontSideScanner.scan(); + frontSideScanner.normalizePoints(); + Point2D[] frontPoints = frontSideScanner.getPoints(); + + rightSideScanner.scan(); + rightSideScanner.normalizePoints(); + Point2D[] rightSidePoints = rightSideScanner.getPoints(); + + behindSideScanner.scan(); + behindSideScanner.normalizePoints(); + Point2D[] frontPoints = behindSideScanner.getPoints(); + + leftSideScanner.scan(); + leftSideScanner.normalizePoints(); + Point2D[] rightSidePoints = leftSideScanner.getPoints(); + return null; + } +} diff --git a/src/main/java/com/cringe_studios/christmastreescanning/MultiColorScanner.java b/src/main/java/com/cringe_studios/christmastreescanning/MultiColorScanner.java new file mode 100644 index 0000000..a3ed774 --- /dev/null +++ b/src/main/java/com/cringe_studios/christmastreescanning/MultiColorScanner.java @@ -0,0 +1,5 @@ +package com.cringe_studios.christmastreescanning; + +public abstract class MultiColorScanner extends Scanner { + +} diff --git a/src/main/java/com/cringe_studios/christmastreescanning/Scanner.java b/src/main/java/com/cringe_studios/christmastreescanning/Scanner.java index 624e5fa..12f2e60 100644 --- a/src/main/java/com/cringe_studios/christmastreescanning/Scanner.java +++ b/src/main/java/com/cringe_studios/christmastreescanning/Scanner.java @@ -4,53 +4,55 @@ import java.awt.image.BufferedImage; import com.cringe_studios.christmastreescanning.scanning.image_scanning.ImageScanner; -public class Scanner { - BufferedImage frontSideImages[]; - BufferedImage frontSideImagesRed[]; - BufferedImage frontSideImagesGreen[]; - BufferedImage frontSideImagesBlue[]; +public abstract class Scanner { +// BufferedImage frontSideImages[]; +// BufferedImage frontSideImagesRed[]; +// BufferedImage frontSideImagesGreen[]; +// BufferedImage frontSideImagesBlue[]; +// +// BufferedImage rightSideImages[]; +// BufferedImage rightSideImagesRed[]; +// BufferedImage rightSideImagesGreen[]; +// BufferedImage rightSideImagesBlue[]; +// +// BufferedImage behindSideImages[]; +// BufferedImage behindSideImagesRed[]; +// BufferedImage behindSideImagesGreen[]; +// BufferedImage behindSideImagesBlue[]; +// +// BufferedImage leftSideImages[]; +// BufferedImage leftSideImagesRed[]; +// BufferedImage leftSideImagesGreen[]; +// BufferedImage leftSideImagesBlue[]; - BufferedImage rightSideImages[]; - BufferedImage rightSideImagesRed[]; - BufferedImage rightSideImagesGreen[]; - BufferedImage rightSideImagesBlue[]; + protected byte gammaDelta = ImageScanner.GAMMA_DELTA_DEFAULT; - BufferedImage behindSideImages[]; - BufferedImage behindSideImagesRed[]; - BufferedImage behindSideImagesGreen[]; - BufferedImage behindSideImagesBlue[]; +// Boolean distinctColorChannels = null; // use the non-primitive datatype, so the user has to set the state +// Boolean sideCount = null; // use the non-primitive datatype, so the user has to set the state - BufferedImage leftSideImages[]; - BufferedImage leftSideImagesRed[]; - BufferedImage leftSideImagesGreen[]; - BufferedImage leftSideImagesBlue[]; +// public Scanner() {} + +public abstract Point3D[] scan(); - byte gammaDelta = ImageScanner.GAMMA_DELTA_DEFAULT; - - Boolean distinctColorChannels = null; // use the non-primitive datatype, so the user has to set the state - Boolean sideCount = null; // use the non-primitive datatype, so the user has to set the state - - public Scanner() {} - - public Point3D[] scan() { - if(distinctColorChannels == null || sideCount == null); //TODO error - - Point3D[] ret; - - if(distinctColorChannels == true && sideCount == true) { - - }else if(distinctColorChannels == true && sideCount == false) { - - }else if(distinctColorChannels == false && sideCount == true) { - - }else if(distinctColorChannels == false && sideCount == false) { - - } - - //TODO call SideScanner.scan for every side and merge the four sides into 3d points - - return null; - } +// public Point3D[] scan() { +// if(distinctColorChannels == null || sideCount == null); //TODO error +// +// Point3D[] ret; +// +// if(distinctColorChannels == true && sideCount == true) { +// +// }else if(distinctColorChannels == true && sideCount == false) { +// +// }else if(distinctColorChannels == false && sideCount == true) { +// +// }else if(distinctColorChannels == false && sideCount == false) { +// +// } +// +// //TODO call SideScanner.scan for every side and merge the four sides into 3d points +// +// return null; +// } public void setData(ScannerData dataType, BufferedImage images[]) { //TODO convert image to known format utilizing @@ -195,19 +197,19 @@ public class Scanner { this.gammaDelta = gammaDelta; } - /** - * - * @param useDistinctRGBImages if this parameter is true, you have to use the IMAGE_*_RED/_GREEN/_BLUE enum types in the setData method - */ - public void setDistinctColorChannels(boolean useDistinctRGBImages) { - this.distinctColorChannels = Boolean.valueOf(useDistinctRGBImages); - } - - /** - * - * @param useAllFourSides if this Parameter is true, you have to give images for all sides with the "setData" method, if false, you may only give two sides: front and right - */ - public void setSideCount(boolean useAllFourSides) { - this.sideCount = Boolean.valueOf(useAllFourSides); - } +// /** +// * +// * @param useDistinctRGBImages if this parameter is true, you have to use the IMAGE_*_RED/_GREEN/_BLUE enum types in the setData method +// */ +// public void setDistinctColorChannels(boolean useDistinctRGBImages) { +// this.distinctColorChannels = Boolean.valueOf(useDistinctRGBImages); +// } +// +// /** +// * +// * @param useAllFourSides if this Parameter is true, you have to give images for all sides with the "setData" method, if false, you may only give two sides: front and right +// */ +// public void setSideCount(boolean useAllFourSides) { +// this.sideCount = Boolean.valueOf(useAllFourSides); +// } } diff --git a/src/main/java/com/cringe_studios/christmastreescanning/SingleColorScanner.java b/src/main/java/com/cringe_studios/christmastreescanning/SingleColorScanner.java new file mode 100644 index 0000000..a834a42 --- /dev/null +++ b/src/main/java/com/cringe_studios/christmastreescanning/SingleColorScanner.java @@ -0,0 +1,5 @@ +package com.cringe_studios.christmastreescanning; + +public abstract class SingleColorScanner extends Scanner{ + +} diff --git a/src/main/java/com/cringe_studios/christmastreescanning/TwoSidedScanner.java b/src/main/java/com/cringe_studios/christmastreescanning/TwoSidedScanner.java new file mode 100644 index 0000000..7ec6dfe --- /dev/null +++ b/src/main/java/com/cringe_studios/christmastreescanning/TwoSidedScanner.java @@ -0,0 +1,33 @@ +package com.cringe_studios.christmastreescanning; + +import java.awt.geom.Point2D; +import java.awt.image.BufferedImage; + +import com.cringe_studios.christmastreescanning.scanning.SideScanner; +import com.cringe_studios.christmastreescanning.scanning.SingleColoredSideScanner; + +public class TwoSidedScanner extends SingleColorScanner { + private SideScanner frontSideScanner; + private SideScanner rightSideScanner; + + public TwoSidedScanner(BufferedImage frontSideImages[], BufferedImage rightSideImages[], byte gammaDelta) { + + //TODO + + frontSideScanner = new SingleColoredSideScanner(frontSideImages, gammaDelta, , , ); + rightSideScanner = new SingleColoredSideScanner(rightSideImages, gammaDelta, , , ); + } + + @Override + public Point3D[] scan() { + // TODO Auto-generated method stub + frontSideScanner.scan(); + frontSideScanner.normalizePoints(); + Point2D[] frontPoints = frontSideScanner.getPoints(); + + rightSideScanner.scan(); + rightSideScanner.normalizePoints(); + Point2D[] rightSidePoints = rightSideScanner.getPoints(); + return null; + } +}