diff --git a/src/Controllers/PredictedObjectCollectionController.ts b/src/Controllers/PredictedObjectCollectionController.ts deleted file mode 100644 index ab45ccb..0000000 --- a/src/Controllers/PredictedObjectCollectionController.ts +++ /dev/null @@ -1,32 +0,0 @@ -import PredictedObject from "../Models/PredictedObject" -import PredictedObjectCollection from "../Models/PredictedObjectCollection" -import PredictedObjectView from "../Views/PredictedObjectView" - -class PredictedObjectCollectionController { - private model: PredictedObjectCollection - - constructor () { - this.model = new PredictedObjectCollection() - this.renderView() - } - - set predictedObjects (objects: PredictedObject[]) { - this.model.objects = objects - this.renderView() - } - - public renderView = () => { - const existingPredictedObjectViews = document.querySelectorAll('.PredictedObject') - existingPredictedObjectViews.forEach(v => { - v.outerHTML = '' - }) - - const body = document.querySelector('body')! - this.model.objects.forEach((object: PredictedObject) => { - const predictedObjectView = new PredictedObjectView(object) - body.appendChild(predictedObjectView.element) - }) - } -} - -export default PredictedObjectCollectionController diff --git a/src/Controllers/VideoController.ts b/src/Controllers/VideoController.ts deleted file mode 100644 index 3a975aa..0000000 --- a/src/Controllers/VideoController.ts +++ /dev/null @@ -1,48 +0,0 @@ -import Video from "../Models/Video" -import VideoView from '../Views/VideoView' - -class VideoController { - private defaultWidth: number = 640 - private defaultHeight: number = 480 - private userMediaConstraints = { video: true } - public model: Video - private view: VideoView - - constructor (props: { width?: number, height?: number } = {}) { - this.model = new Video({ - width: props.width || this.defaultWidth, - height: props.height || this.defaultHeight - }) - - this.view = new VideoView(this.model) - this.renderView() - this.enableCamera() - } - - get imageData () { - if (!this.view.element.srcObject) return null - - const canvas: HTMLCanvasElement = document.createElement('canvas') - canvas.width = this.model.width - canvas.height = this.model.height - const context = canvas.getContext('2d')! - context.drawImage(this.view.element, 0, 0, this.model.width, this.model.height) - - return context.getImageData(0, 0, this.model.width, this.model.height) - } - - private enableCamera = async () => { - const stream = await navigator.mediaDevices.getUserMedia(this.userMediaConstraints) - this.view.srcObject = stream - } - - private renderView () { - const existingVideoView = document.querySelector('#videoView') - if (existingVideoView) existingVideoView.outerHTML = '' - - const body = document.querySelector('body')! - body.appendChild(this.view.element) - } -} - -export default VideoController diff --git a/src/Interfaces/IObjectDetector.ts b/src/Vision/Interfaces/IObjectDetector.ts similarity index 100% rename from src/Interfaces/IObjectDetector.ts rename to src/Vision/Interfaces/IObjectDetector.ts diff --git a/src/Interfaces/IObjectLocator.ts b/src/Vision/Interfaces/IObjectLocator.ts similarity index 100% rename from src/Interfaces/IObjectLocator.ts rename to src/Vision/Interfaces/IObjectLocator.ts diff --git a/src/Interfaces/IOffset.ts b/src/Vision/Interfaces/IOffset.ts similarity index 100% rename from src/Interfaces/IOffset.ts rename to src/Vision/Interfaces/IOffset.ts diff --git a/src/Interfaces/IPredictedObject.ts b/src/Vision/Interfaces/IPredictedObject.ts similarity index 100% rename from src/Interfaces/IPredictedObject.ts rename to src/Vision/Interfaces/IPredictedObject.ts diff --git a/src/Interfaces/IUiRenderer.ts b/src/Vision/Interfaces/IUiRenderer.ts similarity index 100% rename from src/Interfaces/IUiRenderer.ts rename to src/Vision/Interfaces/IUiRenderer.ts diff --git a/src/Interfaces/IVideo.ts b/src/Vision/Interfaces/IVideo.ts similarity index 100% rename from src/Interfaces/IVideo.ts rename to src/Vision/Interfaces/IVideo.ts diff --git a/src/Interfaces/IVideoCapturer.ts b/src/Vision/Interfaces/IVideoCapturer.ts similarity index 100% rename from src/Interfaces/IVideoCapturer.ts rename to src/Vision/Interfaces/IVideoCapturer.ts diff --git a/src/Models/PredictedObject.ts b/src/Vision/Models/PredictedObject.ts similarity index 100% rename from src/Models/PredictedObject.ts rename to src/Vision/Models/PredictedObject.ts diff --git a/src/Models/PredictedObjectCollection.ts b/src/Vision/Models/PredictedObjectCollection.ts similarity index 100% rename from src/Models/PredictedObjectCollection.ts rename to src/Vision/Models/PredictedObjectCollection.ts diff --git a/src/Models/Video.ts b/src/Vision/Models/Video.ts similarity index 100% rename from src/Models/Video.ts rename to src/Vision/Models/Video.ts diff --git a/src/UseCases/Factories/makeObjectDetector.ts b/src/Vision/UseCases/Factories/makeObjectDetector.ts similarity index 86% rename from src/UseCases/Factories/makeObjectDetector.ts rename to src/Vision/UseCases/Factories/makeObjectDetector.ts index bf82047..3e0f911 100644 --- a/src/UseCases/Factories/makeObjectDetector.ts +++ b/src/Vision/UseCases/Factories/makeObjectDetector.ts @@ -3,7 +3,7 @@ import ObjectDetector from "../ObjectDetector" const defaultPredictions = [ (prediction: DetectedObject) => prediction.score > 0.6, - (prediction: DetectedObject) => prediction.class === 'cat', + (prediction: DetectedObject) => prediction.class === 'person', ] function makeObjectDetector (filterPredicates?: Function[]): ObjectDetector { diff --git a/src/UseCases/Factories/makeObjectLocator.ts b/src/Vision/UseCases/Factories/makeObjectLocator.ts similarity index 100% rename from src/UseCases/Factories/makeObjectLocator.ts rename to src/Vision/UseCases/Factories/makeObjectLocator.ts diff --git a/src/UseCases/Factories/makePredictedObject.ts b/src/Vision/UseCases/Factories/makePredictedObject.ts similarity index 100% rename from src/UseCases/Factories/makePredictedObject.ts rename to src/Vision/UseCases/Factories/makePredictedObject.ts diff --git a/src/UseCases/Factories/makeUiRenderer.ts b/src/Vision/UseCases/Factories/makeUiRenderer.ts similarity index 100% rename from src/UseCases/Factories/makeUiRenderer.ts rename to src/Vision/UseCases/Factories/makeUiRenderer.ts diff --git a/src/UseCases/Factories/makeVideoCatpurer.ts b/src/Vision/UseCases/Factories/makeVideoCatpurer.ts similarity index 100% rename from src/UseCases/Factories/makeVideoCatpurer.ts rename to src/Vision/UseCases/Factories/makeVideoCatpurer.ts diff --git a/src/UseCases/ObjectDetector.ts b/src/Vision/UseCases/ObjectDetector.ts similarity index 100% rename from src/UseCases/ObjectDetector.ts rename to src/Vision/UseCases/ObjectDetector.ts diff --git a/src/UseCases/ObjectLocator.ts b/src/Vision/UseCases/ObjectLocator.ts similarity index 100% rename from src/UseCases/ObjectLocator.ts rename to src/Vision/UseCases/ObjectLocator.ts diff --git a/src/UseCases/UiRenderer.ts b/src/Vision/UseCases/UiRenderer.ts similarity index 100% rename from src/UseCases/UiRenderer.ts rename to src/Vision/UseCases/UiRenderer.ts diff --git a/src/UseCases/VideoCapturer.ts b/src/Vision/UseCases/VideoCapturer.ts similarity index 100% rename from src/UseCases/VideoCapturer.ts rename to src/Vision/UseCases/VideoCapturer.ts diff --git a/src/Views/PredictedObjectView.ts b/src/Vision/Views/PredictedObjectView.ts similarity index 100% rename from src/Views/PredictedObjectView.ts rename to src/Vision/Views/PredictedObjectView.ts diff --git a/src/Views/VideoView.ts b/src/Vision/Views/VideoView.ts similarity index 100% rename from src/Views/VideoView.ts rename to src/Vision/Views/VideoView.ts diff --git a/src/app.ts b/src/Vision/app.ts similarity index 100% rename from src/app.ts rename to src/Vision/app.ts diff --git a/webpack.config.js b/webpack.config.js index a6eb348..5ecda91 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,10 +1,10 @@ const path = require('path'); module.exports = { - entry: './src/app.ts', + entry: './src/Vision/app.ts', devtool: 'inline-source-map', devServer: { - contentBase: './dist', + contentBase: './dist/Vision', hot: true, }, module: { @@ -21,6 +21,6 @@ module.exports = { }, output: { filename: 'app.js', - path: path.resolve(__dirname, 'dist'), + path: path.resolve(__dirname, 'dist', 'Vision'), }, }; \ No newline at end of file