-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
51 changed files
with
81,914 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
threex.domevents | ||
================ | ||
|
||
threex.domevents is a three.js extension which provide an domevents for other developpers. | ||
Thus they can copy it and start their own extension. | ||
|
||
Show Don't Tell | ||
=============== | ||
* [examples/basic.html](http://jeromeetienne.github.io/threex.domevents/examples/basic.html) | ||
\[[view source](https://github.com/jeromeetienne/threex.domevents/blob/master/examples/basic.html)\] : | ||
It shows this feature, and that one which is coded like that. | ||
* [examples/requirejs.html](http://jeromeetienne.github.io/threex.domevents/examples/requirejs.html) | ||
\[[view source](https://github.com/jeromeetienne/threex.domevents/blob/master/examples/requirejs.html)\] : | ||
It does that this way, and it is cool in that case. | ||
|
||
How To Install It | ||
================= | ||
|
||
You can install it via script tag | ||
|
||
```html | ||
<script src='threex.domevents.js'></script> | ||
``` | ||
|
||
Or you can install with [bower](http://bower.io/), as you wish. | ||
|
||
```bash | ||
bower install threex.domevents | ||
``` | ||
|
||
How To Use It | ||
============= | ||
|
||
there is no real use as it is only a boilerplate for your own extension. | ||
|
||
```javascript | ||
var instance = new THREEx.Sample() | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
* find a good demo | ||
* test all events in the demo | ||
* why not the usual teapots ones ? |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
<!DOCTYPE html> | ||
<script src='../../../vendor/three.js/build/three.min.js'></script> | ||
<script src='../threex.domevents.js'></script> | ||
<body style='margin: 0px; background-color: #bbbbbb; overflow: hidden;'><script> | ||
var renderer = new THREE.WebGLRenderer() | ||
renderer.setSize( window.innerWidth, window.innerHeight ) | ||
document.body.appendChild( renderer.domElement ) | ||
|
||
var onRenderFcts= [] | ||
var scene = new THREE.Scene() | ||
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.01, 1000) | ||
camera.position.z = 3 | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// add an object and make it move // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var geometry = new THREE.CubeGeometry( 1, 1, 1); | ||
var material = new THREE.MeshNormalMaterial(); | ||
var mesh = new THREE.Mesh( geometry, material ); | ||
scene.add( mesh ); | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// comment // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
|
||
var domEvents = new THREEx.DomEvents(camera, renderer.domElement); | ||
domEvents.bind(mesh, 'click', function(event){ | ||
console.log(arguments) | ||
}, false) | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// Camera Controls // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var mouse = {x : 0, y : 0} | ||
document.addEventListener('mousemove', function(event){ | ||
mouse.x = (event.clientX / window.innerWidth ) - 0.5 | ||
mouse.y = (event.clientY / window.innerHeight) - 0.5 | ||
}, false) | ||
onRenderFcts.push(function(delta, now){ | ||
camera.position.x += (mouse.x*5 - camera.position.x) * (delta*3) | ||
camera.position.y += (mouse.y*5 - camera.position.y) * (delta*3) | ||
camera.lookAt( scene.position ) | ||
}) | ||
|
||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// render the scene // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
onRenderFcts.push(function(){ | ||
renderer.render( scene, camera ); | ||
}) | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// loop runner // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var lastTimeMsec= null | ||
requestAnimationFrame(function animate(nowMsec){ | ||
// keep looping | ||
requestAnimationFrame( animate ); | ||
// measure time | ||
lastTimeMsec = lastTimeMsec || nowMsec-1000/60 | ||
var deltaMsec = Math.min(200, nowMsec - lastTimeMsec) | ||
lastTimeMsec = nowMsec | ||
// call each update function | ||
onRenderFcts.forEach(function(onRenderFct){ | ||
onRenderFct(deltaMsec/1000, nowMsec/1000) | ||
}) | ||
}) | ||
</script></body> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
<!DOCTYPE html> | ||
<script src='../../../vendor/three.js/build/three.min.js'></script> | ||
<script src='../threex.domevents.js'></script> | ||
<script src='../threex.linkify.js'></script> | ||
<body style='margin: 0px; background-color: #bbbbbb; overflow: hidden;'><script> | ||
var renderer = new THREE.WebGLRenderer(); | ||
renderer.setSize( window.innerWidth, window.innerHeight ); | ||
document.body.appendChild( renderer.domElement ); | ||
|
||
var onRenderFcts= []; | ||
var scene = new THREE.Scene(); | ||
var camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 0.01, 1000); | ||
camera.position.z = 3; | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// comment // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
|
||
var domEvents = new THREEx.DomEvents(camera, renderer.domElement) | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// add an object and make it move // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var geometry = new THREE.CubeGeometry( 1, 1, 1) | ||
var material = new THREE.MeshNormalMaterial() | ||
var mesh = new THREE.Mesh( geometry, material ) | ||
scene.add( mesh ) | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// linkify our cube // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
|
||
THREEx.linkify(domEvents, mesh, 'http://jeromeetienne.github.io/threex/') | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// Camera Controls // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var mouse = {x : 0, y : 0} | ||
document.addEventListener('mousemove', function(event){ | ||
mouse.x = (event.clientX / window.innerWidth ) - 0.5 | ||
mouse.y = (event.clientY / window.innerHeight) - 0.5 | ||
}, false) | ||
onRenderFcts.push(function(delta, now){ | ||
camera.position.x += (mouse.x*5 - camera.position.x) * (delta*3) | ||
camera.position.y += (mouse.y*5 - camera.position.y) * (delta*3) | ||
camera.lookAt( scene.position ) | ||
}) | ||
|
||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// render the scene // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
onRenderFcts.push(function(){ | ||
renderer.render( scene, camera ); | ||
}) | ||
|
||
////////////////////////////////////////////////////////////////////////////////// | ||
// loop runner // | ||
////////////////////////////////////////////////////////////////////////////////// | ||
var lastTimeMsec= null | ||
requestAnimationFrame(function animate(nowMsec){ | ||
// keep looping | ||
requestAnimationFrame( animate ); | ||
// measure time | ||
lastTimeMsec = lastTimeMsec || nowMsec-1000/60 | ||
var deltaMsec = Math.min(200, nowMsec - lastTimeMsec) | ||
lastTimeMsec = nowMsec | ||
// call each update function | ||
onRenderFcts.forEach(function(onRenderFct){ | ||
onRenderFct(deltaMsec/1000, nowMsec/1000) | ||
}) | ||
}) | ||
</script></body> |
Oops, something went wrong.