|
|
|
const scene = new THREE.Scene(); |
|
const camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000); |
|
const renderer = new THREE.WebGLRenderer({ canvas: document.getElementById("canvas") }); |
|
|
|
|
|
const pdfLoader = new THREE.PDFLoader(); |
|
pdfLoader.setPath("path/to/pdf"); |
|
|
|
|
|
const pdfGeometry = pdfLoader.parse(pdfLoader.load("pdf.pdf")); |
|
const pdfMaterial = new THREE.MeshBasicMaterial({ color: 0x0066cc }); |
|
const pdfObject = new THREE.Mesh(pdfGeometry, pdfMaterial); |
|
pdfObject.position.set(0, 0, 0); |
|
scene.add(pdfObject); |
|
|
|
|
|
camera.position.z = 5; |
|
const controls = new THREE.OrbitControls(camera, renderer.domElement); |
|
controls.target.set(0, 0, 0); |
|
controls.update(); |
|
|
|
|
|
document.addEventListener("keydown", (event) => { |
|
if (event.key === "ArrowRight") { |
|
pdfObject.geometry.layers.next(); |
|
render(); |
|
} else if (event.key === "ArrowLeft") { |
|
pdfObject.geometry.layers.prev(); |
|
render(); |
|
} |
|
}); |
|
|
|
|
|
function render() { |
|
renderer.render(scene, camera); |
|
} |
|
|
|
|
|
pdfObject.geometry.layers.callback = () => { |
|
controls.update(); |
|
render(); |
|
}; |