diff --git a/src/lib/components/Canvas.svelte b/src/lib/components/Canvas.svelte index ef93737..9717208 100644 --- a/src/lib/components/Canvas.svelte +++ b/src/lib/components/Canvas.svelte @@ -85,6 +85,9 @@ /** @param {Function} fn */ const run = (fn) => fn(); + /** + * @description is required to rerender the scene if something has changed + */ const invalidate = () => { if (frame) return; diff --git a/src/lib/components/controls/PointerLockControls.svelte b/src/lib/components/controls/PointerLockControls.svelte new file mode 100644 index 0000000..14931bc --- /dev/null +++ b/src/lib/components/controls/PointerLockControls.svelte @@ -0,0 +1,142 @@ + diff --git a/src/lib/index.js b/src/lib/index.js index a4e3a76..95558fb 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -14,6 +14,7 @@ export { default as OrthographicCamera } from './components/cameras/Orthographic // controls export { default as OrbitControls } from './components/controls/OrbitControls.svelte'; +export { default as PointerLockControls } from './components/controls/PointerLockControls.svelte'; // lights export { default as AmbientLight } from './components/lights/AmbientLight.svelte'; diff --git a/src/routes/docs/_content/02-reference/index.svelte.md b/src/routes/docs/_content/02-reference/index.svelte.md index 00f95ea..ae60513 100644 --- a/src/routes/docs/_content/02-reference/index.svelte.md +++ b/src/routes/docs/_content/02-reference/index.svelte.md @@ -161,6 +161,10 @@ TODO TODO +### + +TODO + ## Helpers ### diff --git a/src/routes/examples/_content/03-first-person-camera/index.svelte b/src/routes/examples/_content/03-first-person-camera/index.svelte new file mode 100644 index 0000000..24eecd9 --- /dev/null +++ b/src/routes/examples/_content/03-first-person-camera/index.svelte @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + diff --git a/src/routes/examples/_content/03-first-person-camera/meta.json b/src/routes/examples/_content/03-first-person-camera/meta.json new file mode 100644 index 0000000..a7a0f66 --- /dev/null +++ b/src/routes/examples/_content/03-first-person-camera/meta.json @@ -0,0 +1,3 @@ +{ + "title": "First Person Controls" +} diff --git a/static/example-thumbnails/first-person-camera.jpg b/static/example-thumbnails/first-person-camera.jpg new file mode 100644 index 0000000..9cd78bc Binary files /dev/null and b/static/example-thumbnails/first-person-camera.jpg differ