in tensorflow_similarity/visualization/projector_v2/views/projector.ts [54:115]
constructor(messenger: Messenger) {
messenger.addOnMessage((message: Message) => {
switch (message.type) {
case InboundMessageType.UPDATE: {
const updateMessage = message;
this.updatePoints(updateMessage.mainPayload);
break;
}
case InboundMessageType.METADATA: {
const metadataMessage = message;
this.setMetadata(metadataMessage.mainPayload);
break;
}
}
});
const {canvas, container} = this.setupDom();
this.container = container;
this.renderer.setClearColor(0xffffff, 1);
this.renderer.setPixelRatio(window.devicePixelRatio);
this.scene.add(this.pointGroup);
this.scene.add(new THREE.AxesHelper(Number.MAX_SAFE_INTEGER));
this.settings.addSettingChangeListener((prev, next) => {
if (!prev || prev.threeDimensions !== next.threeDimensions) {
if (this.camera) {
this.scene.remove(this.camera);
}
const {width, height} = container.getBoundingClientRect();
if (next.threeDimensions) {
this.camera = new THREE.PerspectiveCamera(
55,
width / height,
1,
20000
);
this.camera.position.set(30, 30, 100);
} else {
this.camera = new THREE.OrthographicCamera(
-width / 2,
width / 2,
height / 2,
-height / 2,
-Number.MAX_SAFE_INTEGER,
Number.MAX_SAFE_INTEGER
);
}
this.scene.add(this.camera);
if (!this.control) {
this.control = new OrbitControls(this.camera, canvas);
} else {
this.control.object = this.camera;
}
}
});
anyWindow.requestIdleCallback(() => this.animate());
}