diff --git a/src/jsMain/kotlin/canvas/ThreeCanvas.kt b/src/jsMain/kotlin/canvas/ThreeCanvas.kt deleted file mode 100644 index 46a056f..0000000 --- a/src/jsMain/kotlin/canvas/ThreeCanvas.kt +++ /dev/null @@ -1,67 +0,0 @@ -package canvas - -import kotlinx.browser.window -import org.w3c.dom.Element -import org.w3c.dom.HTMLCanvasElement -import space.kscience.visionforge.Colors -import three.WebGLRenderer -import three.cameras.PerspectiveCamera -import three.core.Object3D -import three.external.controls.OrbitControls -import three.scenes.Scene - -/** - * This class is analogous to the class from VisionForge with the same name. - * I keep it here in case imports are broken (they are broken at the time i write this). - */ -internal class ThreeCanvas( - val element: Element, -) { - private val scene = Scene() - private val camera = PerspectiveCamera(75, 4.0 / 3.0, 0.1, 1000) - private val renderer = WebGLRenderer { antialias = true }.apply { - setClearColor(Colors.darkgray, 1) - toneMapping = 4 // ACES filmic tone mapping - } - private val canvas = (renderer.domElement as HTMLCanvasElement).apply { - className += "three-canvas" - style.apply { - width = "100%" - height = "100%" - display = "block" - } - } - - init { - element.appendChild(canvas) - camera.position.z = 5.0 - OrbitControls(camera, element) - updateSize() - window.onresize = { updateSize() } - renderer.setAnimationLoop { - renderer.render(scene, camera) - } - } - - internal fun add(obj: Object3D) { - console.log("Adding objects...") - scene.add(obj) - } - - internal fun remove(obj: Object3D) { - console.log("Removing objects...") - scene.remove(obj) - val geometriesInMemotyCount = renderer.asDynamic()["info"]["memory"]["geometries"].toString() - console.log("Geometries: $geometriesInMemotyCount") - } - - private fun updateSize() { - val width = element.clientWidth - val height = element.clientHeight - canvas.width = width - canvas.height = height - renderer.setSize(width, height, false) - camera.aspect = width.toDouble() / height.toDouble() - camera.updateProjectionMatrix() - } -}