-
Notifications
You must be signed in to change notification settings - Fork 24
/
PatternMarker.ts
40 lines (31 loc) · 1.04 KB
/
PatternMarker.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import { Object3D } from "three";
import { BaseMarker } from "./BaseMarker";
/**
* PatternMarker takes a given image (as a URL) and use this as the pattern to detect to place
* a given marker from three.js, in this case an given Object3D
* @param parameters parameters for determining things the pattern URL and minimum confidence
*/
interface PatternMarkerParameters {
patternUrl: string;
markerObject: Object3D;
size?: number;
minConfidence?: number;
}
export class PatternMarker extends BaseMarker {
public static count = 0;
public patternUrl: string;
public markerObject: Object3D;
constructor(parameters: PatternMarkerParameters) {
super(parameters);
if (!parameters.patternUrl) {
throw Error("Pattern Marker requires a patternUrl to be passed");
}
if (parameters.markerObject === undefined) {
throw Error("Pattern Marker requires a markerObject to be passed");
}
this.patternUrl = parameters.patternUrl;
this.markerObject = parameters.markerObject;
this.markerObject.visible = false;
}
}
export default PatternMarker;