mirror of
https://github.com/WhitestormJS/whs.js.git
synced 2026-02-01 16:57:32 +00:00
WIP.
Former-commit-id: 374cd293b1e17ccbea65330747e4eb028e289152
This commit is contained in:
parent
011cfe138f
commit
42abd98748
4
.npmignore
Normal file
4
.npmignore
Normal file
@ -0,0 +1,4 @@
|
||||
examples_src/
|
||||
examples_bak/
|
||||
examples/
|
||||
src/
|
||||
@ -1,9 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Webpack App</title>
|
||||
</head>
|
||||
<body>
|
||||
<script type="text/javascript" src="whitestorm.js"></script></body>
|
||||
</html>
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
<script src="../../build/whitestorm.js"></script>
|
||||
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because one or more lines are too long
76
examples/basic/basic/script.js
Normal file
76
examples/basic/basic/script.js
Normal file
@ -0,0 +1,76 @@
|
||||
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var GAME = new WHS.World({
|
||||
stats: 'fps', // fps, ms, mb
|
||||
autoresize: true,
|
||||
|
||||
gravity: {
|
||||
x: 0,
|
||||
y: -100,
|
||||
z: 0
|
||||
},
|
||||
|
||||
camera: {
|
||||
far: 10000,
|
||||
y: 10,
|
||||
z: 30
|
||||
},
|
||||
|
||||
paths: {
|
||||
worker: '../../libs/physijs_worker.js',
|
||||
ammo: '../../libs/ammo.js'
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Privet, Papa");
|
||||
|
||||
var sphere = new WHS.Sphere({
|
||||
geometry: {
|
||||
radius: 3
|
||||
},
|
||||
|
||||
mass: 10,
|
||||
onlyvis: false,
|
||||
|
||||
material: {
|
||||
color: 0xffffff,
|
||||
kind: 'basic'
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 100,
|
||||
z: 0
|
||||
}
|
||||
});
|
||||
|
||||
var plane = new WHS.Plane({
|
||||
geometry: {
|
||||
width: 250,
|
||||
height: 250
|
||||
},
|
||||
|
||||
mass: 0,
|
||||
|
||||
material: {
|
||||
color: 0xff0000,
|
||||
kind: 'basic'
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
|
||||
rot: {
|
||||
x: -Math.PI / 2
|
||||
}
|
||||
});
|
||||
|
||||
GAME.add(sphere);
|
||||
GAME.add(plane);
|
||||
GAME.start(plane);
|
||||
|
||||
},{}]},{},[1]);
|
||||
@ -1,207 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>WhitestormJS development</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content="WhitestormJS is a 3D Javascript engine based on Three.js (http://threejs.org/). It uses physics and effects libraries to define WhitestormJS API that contains useful scripts for terrain generation, skybox, animation, physics simulation and post-effects. WhitestormJS simplifies Three.js object crafting algorithm to javascript methods with parameters." />
|
||||
<meta name="keywords" content="three.js,cannon.js,webgl,wagner,WHS.API,3d,web,javascript" />
|
||||
<meta name="author" content="Alexander Buzin">
|
||||
<meta property="og:title" content="WhitestormJS 3D Engine" />
|
||||
<meta property="og:site_name" content="WhitestormJS 3D Engine" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:url" content="http://www.jsdelivr.com/projects/whitestormjs" />
|
||||
<meta property="og:description" content="WhitestormJS is a 3D Javascript engine based on Three.js (http://threejs.org/). It uses physics and effects libraries to define WhitestormJS API that contains useful scripts for terrain generation, skybox, animation, physics simulation and post-effects. WhitestormJS simplifies Three.js object crafting algorithm to javascript methods with parameters." />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@whitestormjs" />
|
||||
<meta name="twitter:title" content="whitestormjs" />
|
||||
<meta name="twitter:description" content="WhitestormJS 3D Engine" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="http://whitestormjs.xyz/favicon.ico" />
|
||||
<link rel="apple-touch-icon-precomposed" href="http://whitestormjs.xyz/favicon.ico" sizes="57x57" />
|
||||
<meta name="msapplication-square150x150logo" content="../development/art/logo/Icon-72@2.png" />
|
||||
<script src="../libs/three.js"></script>
|
||||
<script src="../libs/physi.js"></script>
|
||||
|
||||
<script src="plugins/whs.preload.js"></script>
|
||||
<style>
|
||||
/* Preloading animation */
|
||||
|
||||
#animation {
|
||||
-webkit-animation: play 2s steps(100) infinite;
|
||||
-moz-animation: play 2s steps(100) infinite;
|
||||
-o-animation: play 2s steps(100) infinite;
|
||||
animation: play 2s steps(100) infinite;
|
||||
margin-left: calc(50% - 50px);
|
||||
}
|
||||
|
||||
@-webkit-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@-moz-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@-o-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
|
||||
.sprite-right {
|
||||
content: "";
|
||||
position: fixed;
|
||||
width: 10000px;
|
||||
height: 100px;
|
||||
display: block;
|
||||
top: calc(50% - 50px);
|
||||
left: calc(50% + 50px);
|
||||
z-index: 3;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.sprite-left {
|
||||
content: "";
|
||||
position: fixed;
|
||||
width: 10000px;
|
||||
height: 100px;
|
||||
display: block;
|
||||
top: calc(50% - 50px);
|
||||
right: calc(50% + 50px);
|
||||
z-index: 3;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.whs {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.whs > canvas {
|
||||
width: inherit !important;
|
||||
height: inherit !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="preloader" style="width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
z-index: 999;
|
||||
background: black;">
|
||||
|
||||
<div class="sprite-left"></div>
|
||||
<div class="sprite-right"></div>
|
||||
|
||||
<center style="vertical-align: middle; top: calc(50% - 50px); position:relative;">
|
||||
<div id="animation" style="background: url('data:image/png;base64,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'); background-size: auto 100%; width:10000px; height:100px;"></div>
|
||||
</center>
|
||||
</div>
|
||||
<script src="../build/whitestorm.js"></script>
|
||||
<script defer>
|
||||
|
||||
// NOTE: Basic scene with sphere and ground.
|
||||
var preloader = Preloader();
|
||||
|
||||
var GAME = new WHS.World({
|
||||
|
||||
stats: "fps", // fps, ms, mb
|
||||
autoresize: true,
|
||||
|
||||
gravity: {
|
||||
x: 0,
|
||||
y: -100,
|
||||
z: 0
|
||||
},
|
||||
|
||||
camera: {
|
||||
far: 10000,
|
||||
y: 10,
|
||||
z: 30
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var torusknot = GAME.Torusknot({
|
||||
|
||||
geometry: {
|
||||
radius:5,
|
||||
tube: 2
|
||||
},
|
||||
|
||||
mass: 10,
|
||||
|
||||
material: {
|
||||
vertexColors: THREE.VertexColors,
|
||||
shading: THREE.SmoothShading,
|
||||
map: WHS.API.texture('assets/textures/bricks.jpg'),
|
||||
kind: "phong"
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 100,
|
||||
z: 0
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var ground = GAME.Plane({
|
||||
|
||||
geometry: {
|
||||
width: 250,
|
||||
height: 250,
|
||||
},
|
||||
|
||||
material: {
|
||||
color: 0x0000ff,
|
||||
shading: THREE.SmoothShading,
|
||||
kind: "basic"
|
||||
},
|
||||
|
||||
pos:{
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
|
||||
rot: {
|
||||
x: -Math.PI/2
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
GAME.light = GAME.DirectionalLight({
|
||||
|
||||
color: 0xffffff, //0x00ff00,
|
||||
intensity: 2,
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 10,
|
||||
z: 30
|
||||
},
|
||||
|
||||
target: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
GAME.start();
|
||||
|
||||
GAME.OrbitControls(GAME.torusknot);
|
||||
|
||||
preloader.check();
|
||||
|
||||
</script>
|
||||
</html>
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
<script src="../../build/whitestorm.js"></script>
|
||||
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because one or more lines are too long
123
examples/basic/basic_model/script.js
Normal file
123
examples/basic/basic_model/script.js
Normal file
@ -0,0 +1,123 @@
|
||||
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
|
||||
'use strict';
|
||||
|
||||
var GAME = new WHS.World({
|
||||
stats: 'fps', // fps, ms, mb
|
||||
autoresize: true,
|
||||
|
||||
gravity: {
|
||||
x: 0,
|
||||
y: -100,
|
||||
z: 0
|
||||
},
|
||||
|
||||
camera: {
|
||||
far: 10000,
|
||||
y: 100,
|
||||
z: 300
|
||||
},
|
||||
|
||||
shadowmap: {
|
||||
type: THREE.PCFSoftShadowMap
|
||||
},
|
||||
|
||||
paths: {
|
||||
worker: '../../libs/physijs_worker.js',
|
||||
ammo: '../../libs/ammo.js'
|
||||
}
|
||||
});
|
||||
|
||||
new WHS.Model({
|
||||
geometry: {
|
||||
path: '../../assets/models/utah-teapot-large.json',
|
||||
physics: '../../assets/models/utah-teapot-light.json'
|
||||
},
|
||||
|
||||
mass: 100,
|
||||
onlyvis: false,
|
||||
|
||||
material: {
|
||||
shading: THREE.SmoothShading,
|
||||
map: WHS.texture('../../assets/textures/teapot.jpg', { repeat: { x: 2, y: 2 } }),
|
||||
kind: 'phong',
|
||||
side: THREE.DoubleSide,
|
||||
useCustomMaterial: true,
|
||||
rest: 0,
|
||||
fri: 1
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 100,
|
||||
z: 0
|
||||
},
|
||||
|
||||
scale: {
|
||||
x: 4,
|
||||
y: 4,
|
||||
z: 4
|
||||
}
|
||||
}).addTo(GAME, 'wait');
|
||||
|
||||
new WHS.Sphere({
|
||||
geometry: {
|
||||
radius: 3
|
||||
},
|
||||
|
||||
mass: 12,
|
||||
|
||||
material: {
|
||||
kind: 'phong',
|
||||
color: 0x00ff00
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 10, // 45
|
||||
y: 250,
|
||||
z: 0.769
|
||||
}
|
||||
}).addTo(GAME);
|
||||
|
||||
new WHS.Box({
|
||||
|
||||
geometry: {
|
||||
width: 250,
|
||||
height: 1,
|
||||
depth: 250
|
||||
},
|
||||
|
||||
mass: 0,
|
||||
|
||||
material: {
|
||||
color: 0xff0000,
|
||||
kind: 'phong'
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
}
|
||||
}).addTo(GAME);
|
||||
|
||||
new WHS.DirectionalLight({
|
||||
color: 0xffffff, // 0x00ff00,
|
||||
intensity: 2,
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 10,
|
||||
z: 30
|
||||
},
|
||||
|
||||
target: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
}
|
||||
}).addTo(GAME);
|
||||
|
||||
GAME.setControls(WHS.orbitControls());
|
||||
GAME.start();
|
||||
|
||||
},{}]},{},[1]);
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
<script src="../../build/whitestorm.js"></script>
|
||||
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
File diff suppressed because one or more lines are too long
382
examples/fps/shooter/script.js
Normal file
382
examples/fps/shooter/script.js
Normal file
File diff suppressed because one or more lines are too long
@ -1,4 +1,4 @@
|
||||
{% extends '../../layout.html' %}
|
||||
{% block script %}
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
{% endblock %}
|
||||
|
||||
@ -20,6 +20,8 @@ const GAME = new WHS.World({
|
||||
}
|
||||
});
|
||||
|
||||
console.log("Privet, Papa");
|
||||
|
||||
const sphere = new WHS.Sphere({
|
||||
geometry: {
|
||||
radius: 3
|
||||
@ -66,4 +68,4 @@ const plane = new WHS.Plane({
|
||||
|
||||
GAME.add(sphere);
|
||||
GAME.add(plane);
|
||||
GAME.start(plane);
|
||||
GAME.start(plane);
|
||||
@ -1,207 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>WhitestormJS development</title>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="description" content="WhitestormJS is a 3D Javascript engine based on Three.js (http://threejs.org/). It uses physics and effects libraries to define WhitestormJS API that contains useful scripts for terrain generation, skybox, animation, physics simulation and post-effects. WhitestormJS simplifies Three.js object crafting algorithm to javascript methods with parameters." />
|
||||
<meta name="keywords" content="three.js,cannon.js,webgl,wagner,WHS.API,3d,web,javascript" />
|
||||
<meta name="author" content="Alexander Buzin">
|
||||
<meta property="og:title" content="WhitestormJS 3D Engine" />
|
||||
<meta property="og:site_name" content="WhitestormJS 3D Engine" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:locale" content="en_US">
|
||||
<meta property="og:url" content="http://www.jsdelivr.com/projects/whitestormjs" />
|
||||
<meta property="og:description" content="WhitestormJS is a 3D Javascript engine based on Three.js (http://threejs.org/). It uses physics and effects libraries to define WhitestormJS API that contains useful scripts for terrain generation, skybox, animation, physics simulation and post-effects. WhitestormJS simplifies Three.js object crafting algorithm to javascript methods with parameters." />
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:site" content="@whitestormjs" />
|
||||
<meta name="twitter:title" content="whitestormjs" />
|
||||
<meta name="twitter:description" content="WhitestormJS 3D Engine" />
|
||||
<link rel="shortcut icon" type="image/x-icon" href="http://whitestormjs.xyz/favicon.ico" />
|
||||
<link rel="apple-touch-icon-precomposed" href="http://whitestormjs.xyz/favicon.ico" sizes="57x57" />
|
||||
<meta name="msapplication-square150x150logo" content="../development/art/logo/Icon-72@2.png" />
|
||||
<script src="../libs/three.js"></script>
|
||||
<script src="../libs/physi.js"></script>
|
||||
|
||||
<script src="plugins/whs.preload.js"></script>
|
||||
<style>
|
||||
/* Preloading animation */
|
||||
|
||||
#animation {
|
||||
-webkit-animation: play 2s steps(100) infinite;
|
||||
-moz-animation: play 2s steps(100) infinite;
|
||||
-o-animation: play 2s steps(100) infinite;
|
||||
animation: play 2s steps(100) infinite;
|
||||
margin-left: calc(50% - 50px);
|
||||
}
|
||||
|
||||
@-webkit-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@-moz-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@-o-keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
@keyframes play {
|
||||
100% { transform: translateX(-10000px); }
|
||||
}
|
||||
|
||||
.sprite-right {
|
||||
content: "";
|
||||
position: fixed;
|
||||
width: 10000px;
|
||||
height: 100px;
|
||||
display: block;
|
||||
top: calc(50% - 50px);
|
||||
left: calc(50% + 50px);
|
||||
z-index: 3;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.sprite-left {
|
||||
content: "";
|
||||
position: fixed;
|
||||
width: 10000px;
|
||||
height: 100px;
|
||||
display: block;
|
||||
top: calc(50% - 50px);
|
||||
right: calc(50% + 50px);
|
||||
z-index: 3;
|
||||
background: black;
|
||||
}
|
||||
|
||||
.whs {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.whs > canvas {
|
||||
width: inherit !important;
|
||||
height: inherit !important;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<div class="preloader" style="width: 100%;
|
||||
height: 100%;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
z-index: 999;
|
||||
background: black;">
|
||||
|
||||
<div class="sprite-left"></div>
|
||||
<div class="sprite-right"></div>
|
||||
|
||||
<center style="vertical-align: middle; top: calc(50% - 50px); position:relative;">
|
||||
<div id="animation" style="background: url('data:image/png;base64,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'); background-size: auto 100%; width:10000px; height:100px;"></div>
|
||||
</center>
|
||||
</div>
|
||||
<script src="../build/whitestorm.js"></script>
|
||||
<script defer>
|
||||
|
||||
// NOTE: Basic scene with sphere and ground.
|
||||
var preloader = Preloader();
|
||||
|
||||
var GAME = new WHS.World({
|
||||
|
||||
stats: "fps", // fps, ms, mb
|
||||
autoresize: true,
|
||||
|
||||
gravity: {
|
||||
x: 0,
|
||||
y: -100,
|
||||
z: 0
|
||||
},
|
||||
|
||||
camera: {
|
||||
far: 10000,
|
||||
y: 10,
|
||||
z: 30
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var torusknot = GAME.Torusknot({
|
||||
|
||||
geometry: {
|
||||
radius:5,
|
||||
tube: 2
|
||||
},
|
||||
|
||||
mass: 10,
|
||||
|
||||
material: {
|
||||
vertexColors: THREE.VertexColors,
|
||||
shading: THREE.SmoothShading,
|
||||
map: WHS.API.texture('assets/textures/bricks.jpg'),
|
||||
kind: "phong"
|
||||
},
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 100,
|
||||
z: 0
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var ground = GAME.Plane({
|
||||
|
||||
geometry: {
|
||||
width: 250,
|
||||
height: 250,
|
||||
},
|
||||
|
||||
material: {
|
||||
color: 0x0000ff,
|
||||
shading: THREE.SmoothShading,
|
||||
kind: "basic"
|
||||
},
|
||||
|
||||
pos:{
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
},
|
||||
|
||||
rot: {
|
||||
x: -Math.PI/2
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
GAME.light = GAME.DirectionalLight({
|
||||
|
||||
color: 0xffffff, //0x00ff00,
|
||||
intensity: 2,
|
||||
|
||||
pos: {
|
||||
x: 0,
|
||||
y: 10,
|
||||
z: 30
|
||||
},
|
||||
|
||||
target: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
z: 0
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
GAME.start();
|
||||
|
||||
GAME.OrbitControls(GAME.torusknot);
|
||||
|
||||
preloader.check();
|
||||
|
||||
</script>
|
||||
</html>
|
||||
@ -1,4 +1,4 @@
|
||||
{% extends '../../layout.html' %}
|
||||
{% block script %}
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
{% endblock %}
|
||||
|
||||
@ -26,8 +26,8 @@ const GAME = new WHS.World({
|
||||
|
||||
new WHS.Model({
|
||||
geometry: {
|
||||
path: '{{ assets }}/models/utah-teapot-large.json',
|
||||
physics: '{{ assets }}/models/utah-teapot-light.json'
|
||||
path: '../{{ assets }}/models/utah-teapot-large.json',
|
||||
physics: '../{{ assets }}/models/utah-teapot-light.json'
|
||||
},
|
||||
|
||||
mass: 100,
|
||||
@ -35,7 +35,7 @@ new WHS.Model({
|
||||
|
||||
material: {
|
||||
shading: THREE.SmoothShading,
|
||||
map: WHS.texture('{{ assets }}/textures/teapot.jpg', {repeat: {x: 2, y: 2}}),
|
||||
map: WHS.texture('../{{ assets }}/textures/teapot.jpg', {repeat: {x: 2, y: 2}}),
|
||||
kind: 'phong',
|
||||
side: THREE.DoubleSide,
|
||||
useCustomMaterial: true,
|
||||
@ -1,4 +1,4 @@
|
||||
{% extends '../../layout.html' %}
|
||||
{% block script %}
|
||||
<script src="index.js" defer></script>
|
||||
<script src="script.js" defer></script>
|
||||
{% endblock %}
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
import defaultTerrainMap from '../../assets/terrain/default_terrain';
|
||||
import defaultTerrainMap from './assets/terrain/default_terrain';
|
||||
|
||||
const GAME = new WHS.World({
|
||||
stats: 'fps', // fps, ms, mb
|
||||
@ -1,5 +1,5 @@
|
||||
import gulp from 'gulp';
|
||||
import path from 'path';
|
||||
import gulp from 'gulp';
|
||||
import loadPlugins from 'gulp-load-plugins';
|
||||
import runSequence from 'run-sequence';
|
||||
import del from 'del';
|
||||
@ -11,7 +11,7 @@ import babel from 'gulp-babel';
|
||||
import nodeResolve from 'rollup-plugin-node-resolve';
|
||||
import commonjs from 'rollup-plugin-commonjs';
|
||||
import swig from 'gulp-swig';
|
||||
import browserify from 'gulp-browserify';
|
||||
import gbrowser from 'gulp-browser';
|
||||
import webpackConfig from './webpack.config.babel.js';
|
||||
|
||||
const isProduction = process.env.NODE_ENV === 'production';
|
||||
@ -68,7 +68,7 @@ gulp.task('webpack', (callback) => {
|
||||
});
|
||||
});
|
||||
|
||||
gulp.task('dev', () => {
|
||||
gulp.task('dev', ['examples:watch'], () => {
|
||||
const server = new WebpackDevServer(webpackCompiler, {
|
||||
contentBase: examplesDest,
|
||||
publicPath: '/build/',
|
||||
@ -77,47 +77,75 @@ gulp.task('dev', () => {
|
||||
});
|
||||
|
||||
server.listen(8080, 'localhost', () => {});
|
||||
});
|
||||
|
||||
const watcher = gulp.watch(examplesSources, () => {
|
||||
gulp.src([
|
||||
`${examplesDev}/**/*`,
|
||||
`!${examplesDev}/**/*.html`,
|
||||
`!${examplesDev}/!(libs)/*.js`,
|
||||
`!${examplesDev}/**/index.js`,
|
||||
`${examplesDev}/libs/**/*`,
|
||||
`${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
gulp.task('examples:watch', () => {
|
||||
const watcher = gulp.watch(examplesSources, (obj) => {
|
||||
if (obj.type === 'changed') {
|
||||
if (path.extname(obj.path) === '.js') {
|
||||
console.log('.js change deleted.');
|
||||
const filePath = path.relative(path.resolve('./'), obj.path);
|
||||
|
||||
gulp.src([
|
||||
`${examplesDev}/**/*.js`,
|
||||
`!${examplesDev}/**/index.js`,
|
||||
`!${examplesDev}/libs/**/*`,
|
||||
`!${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
.pipe(babel({
|
||||
presets: ['es2015']
|
||||
}))
|
||||
.pipe(browserify({
|
||||
insertGlobals: true,
|
||||
debug: !gulp.env.production
|
||||
}))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
gulp.src([
|
||||
obj.path,
|
||||
`!${examplesDev}/libs/**/*`,
|
||||
`!${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
.pipe(swig(Object.assign({}, swigOpts, {ext: '.js'})))
|
||||
.pipe(gbrowser.browserify({
|
||||
transform: 'babelify',
|
||||
options: {presets: ['es2015']}
|
||||
}))
|
||||
.pipe(
|
||||
gulp.dest(
|
||||
path.join(
|
||||
path.relative(path.resolve('./'), path.resolve(examplesDest)),
|
||||
path.relative(path.resolve(examplesDev), path.dirname(obj.path))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
gulp.src(`${examplesDev}/**/index.js`)
|
||||
.pipe(swig(swigOpts))
|
||||
.pipe(babel({
|
||||
presets: ['es2015']
|
||||
}))
|
||||
.pipe(browserify({
|
||||
insertGlobals: true,
|
||||
debug: !gulp.env.production
|
||||
}))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
console.log(`Swig, babelify & browserify: ${filePath}`);
|
||||
} else if (path.extname(obj.path) === '.html') {
|
||||
console.log('.html change deleted.');
|
||||
const filePath = path.relative(path.resolve('./'), obj.path);
|
||||
|
||||
gulp.src(`${examplesDev}/**/*.html`)
|
||||
.pipe(swig(swigOpts))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
gulp.src(filePath)
|
||||
.pipe(swig(swigOpts))
|
||||
.pipe(
|
||||
gulp.dest(
|
||||
path.join(
|
||||
path.relative(path.resolve('./'), path.resolve(examplesDest)),
|
||||
path.relative(path.resolve(examplesDev), path.dirname(obj.path))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
console.log(`Swig: ${filePath}`);
|
||||
} else {
|
||||
console.log('Other file change deleted.');
|
||||
const filePath = path.relative(path.resolve('./'), obj.path);
|
||||
|
||||
gulp.src([
|
||||
filePath,
|
||||
`!${examplesDev}/**/*.html`,
|
||||
`!${examplesDev}/!(libs)/*.js`,
|
||||
`!${examplesDev}/**/script.js`,
|
||||
`${examplesDev}/libs/**/*`,
|
||||
`${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
.pipe(
|
||||
gulp.dest(
|
||||
path.join(
|
||||
path.relative(path.resolve('./'), path.resolve(examplesDest)),
|
||||
path.relative(path.resolve(examplesDev), path.dirname(obj.path))
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
console.log(`File copied: ${filePath}`);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
watcher.on('change', (event) => {
|
||||
@ -138,7 +166,7 @@ gulp.task('examples', () => {
|
||||
`${examplesDev}/**/*`,
|
||||
`!${examplesDev}/**/*.html`,
|
||||
`!${examplesDev}/!(libs)/*.js`,
|
||||
`!${examplesDev}/**/index.js`,
|
||||
`!${examplesDev}/**/script.js`,
|
||||
`${examplesDev}/libs/**/*`,
|
||||
`${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
@ -146,30 +174,17 @@ gulp.task('examples', () => {
|
||||
|
||||
gulp.src([
|
||||
`${examplesDev}/**/*.js`,
|
||||
`!${examplesDev}/**/index.js`,
|
||||
`!${examplesDev}/**/*.html`,
|
||||
`!${examplesDev}/libs/**/*`,
|
||||
`!${examplesDev}/assets/**/*.js`
|
||||
])
|
||||
.pipe(babel({
|
||||
presets: ['es2015']
|
||||
}))
|
||||
.pipe(browserify({
|
||||
insertGlobals: true,
|
||||
debug: !gulp.env.production
|
||||
.pipe(swig(Object.assign({}, swigOpts, {ext: '.js'})))
|
||||
.pipe(gbrowser.browserify({
|
||||
transform: 'babelify',
|
||||
options: {presets: ['es2015']}
|
||||
}))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
|
||||
gulp.src(`${examplesDev}/**/index.js`)
|
||||
.pipe(swig(swigOpts))
|
||||
.pipe(babel({
|
||||
presets: ['es2015']
|
||||
}))
|
||||
.pipe(browserify({
|
||||
insertGlobals: true,
|
||||
debug: !gulp.env.production
|
||||
}))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
|
||||
gulp.src(`${examplesDev}/**/*.html`)
|
||||
.pipe(swig(swigOpts))
|
||||
.pipe(gulp.dest(examplesDest));
|
||||
|
||||
@ -43,6 +43,8 @@ var THREE = _interopRequireWildcard(_three);
|
||||
|
||||
var _Loop = require('../extensions/Loop');
|
||||
|
||||
var _defaults = require('../utils/defaults');
|
||||
|
||||
var _Object = require('./Object');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
@ -107,7 +109,7 @@ var Camera = function (_WHSObject) {
|
||||
helper: false
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Camera: Camera ' + scope._type + ' found.', scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Camera: Camera ' + scope._type + ' found.', scope);
|
||||
|
||||
return _ret = scope, (0, _possibleConstructorReturn3.default)(_this, _ret);
|
||||
}
|
||||
@ -137,7 +139,7 @@ var Camera = function (_WHSObject) {
|
||||
_this2[tag] = true;
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Camera: Camera ' + _this2._type + ' is ready.', _this2);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Camera: Camera ' + _this2._type + ' is ready.', _this2);
|
||||
|
||||
_this2.emit('ready');
|
||||
|
||||
@ -166,7 +168,7 @@ var Camera = function (_WHSObject) {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Camera: Camera ' + _scope._type + ' was added to world.', [_scope, _scope.parent]);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -43,6 +43,8 @@ var THREE = _interopRequireWildcard(_three);
|
||||
|
||||
var _api = require('../extras/api');
|
||||
|
||||
var _defaults = require('../utils/defaults');
|
||||
|
||||
var _Object = require('./Object');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
@ -73,7 +75,6 @@ var Curve = function (_WHSObject) {
|
||||
(0, _get3.default)((0, _getPrototypeOf2.default)(Curve.prototype), 'setParams', _this).call(_this, params);
|
||||
|
||||
var geometry = new THREE.Geometry();
|
||||
|
||||
geometry.vertices = params.geometry.curve.getPoints(params.geometry.points);
|
||||
|
||||
var curve = new THREE.Line(geometry, (0, _api.loadMaterial)(params.material, false)._material);
|
||||
@ -107,7 +108,7 @@ var Curve = function (_WHSObject) {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Curve: Curve ' + _scope._type + ' was added to world.', [_scope, _scope.parent]);
|
||||
}
|
||||
|
||||
@ -172,7 +173,7 @@ var Curve = function (_WHSObject) {
|
||||
|
||||
this.emit('remove');
|
||||
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Curve: Curve ' + this._type + ' was removed from world', [_scope]);
|
||||
}
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["core/Curve.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AAEZ;;AACA;;;;;;IAEM,K;;;;;;;;;AAMJ,iBAAY,MAAZ,EAAoB;AAAA;;AAAA;;AAAA,+GACZ;AACJ,gBAAU;AACR,eAAO,KADC;AAER,gBAAQ;AAFA;AADN,KADY;;AAQlB,uGAAgB,MAAhB;;AAEA,QAAM,WAAW,IAAI,MAAM,QAAV,EAAjB;;AAEA,aAAS,QAAT,GAAoB,OAAO,QAAP,CAAgB,KAAhB,CAAsB,SAAtB,CAAgC,OAAO,QAAP,CAAgB,MAAhD,CAApB;;AAEA,QAAM,QAAQ,IAAI,MAAM,IAAV,CACV,QADU,EAEV,uBAAa,OAAO,QAApB,EAA8B,KAA9B,EAAqC,SAF3B,CAAd;;AAKA,UAAK,SAAL,CAAe,KAAf;;AAEA,QAAM,QAAQ,6BACZ;AACE,aAAO,OADT;AAEE,cAAQ,OAAO,QAAP,CAAgB;AAF1B,KADY,CAAd;;AAOA,kBAAO,KAAP;AACD;;;;;;;;;0BAKK,M,EAAQ;AACZ,UAAM,SAAS,IAAf;AACA,aAAO,MAAP,GAAgB,MAAhB;;AAEA,aAAO,sBAAY,UAAC,OAAD,EAAU,MAAV,EAAqB;AACtC,YAAI;AACF,iBAAO,MAAP,CAAc,QAAd,GAAyB,GAAzB,CAA6B,OAAO,SAAP,EAA7B;AACA,iBAAO,MAAP,CAAc,QAAd,CAAuB,IAAvB,CAA4B,MAA5B;AACD,SAHD,CAGE,OAAO,GAAP,EAAY;AACZ,kBAAQ,KAAR,CAAc,IAAI,OAAlB;AACA;AACD,SAND,SAMU;AACR,cAAI,IAAI,KAAR,EAAe;AACb,oBAAQ,KAAR,wBACuB,OAAO,KAD9B,2BAEE,CAAC,MAAD,EAAS,OAAO,MAAhB,CAFF;AAID;;AAED,kBAAQ,MAAR;AACD;AACF,OAjBM,CAAP;AAkBD;;;;;;8BAGS,M,EAAQ;AAChB,WAAK,MAAL,GAAc,MAAd;AACA,aAAO,KAAK,MAAZ;AACD;;;gCAEW;AACV,aAAO,KAAK,MAAZ;AACD;;;;;;;;4BAKO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,QAAf,EAAyB,IAAzB,CAA8B,IAA9B,CAAP;AACD;;;;;;;;;;yBAOI,M,EAAQ;AACX,WAAK,SAAL,CAAe,OAAO,SAAP,GAAmB,KAAnB,EAAf;;AAEA,WAAK,KAAL,GAAa,OAAO,KAApB;;AAEA,aAAO,IAAP;AACD;;;;;;;;;;6BAOQ;AACP,WAAK,MAAL,CAAY,QAAZ,GAAuB,MAAvB,CAA8B,KAAK,SAAL,EAA9B;;AAEA,WAAK,MAAL,CAAY,QAAZ,CAAqB,MAArB,CAA4B,KAAK,MAAL,CAAY,QAAZ,CAAqB,OAArB,CAA6B,IAA7B,CAA5B,EAAgE,CAAhE;AACA,WAAK,MAAL,GAAc,IAAd;;AAEA,WAAK,IAAL,CAAU,QAAV;;AAEA,UAAI,IAAI,KAAR,EAAe;AACb,gBAAQ,KAAR,wBACuB,KAAK,KAD5B,8BAEE,CAAC,MAAD,CAFF;AAID;;AAED,aAAO,IAAP;AACD;;;;;QAID,K,GAAA,K","file":"Curve.js","sourcesContent":["import * as THREE from 'three';\r\n\r\nimport {loadMaterial} from '../extras/api';\r\nimport {WHSObject} from './Object';\r\n\r\nclass Curve extends WHSObject {\r\n /**\r\n * Create curve.\r\n *\r\n * Todo\r\n */\r\n constructor(params) {\r\n super({\r\n geometry: {\r\n curve: false,\r\n points: 50\r\n }\r\n });\r\n\r\n super.setParams(params);\r\n\r\n const geometry = new THREE.Geometry();\r\n\r\n geometry.vertices = params.geometry.curve.getPoints(params.geometry.points);\r\n\r\n const curve = new THREE.Line(\r\n geometry,\r\n loadMaterial(params.material, false)._material\r\n );\r\n\r\n this.setNative(curve);\r\n\r\n const scope = Object.assign(this,\r\n {\r\n _type: 'curve',\r\n __path: params.geometry.curve\r\n }\r\n );\r\n\r\n return scope;\r\n }\r\n\r\n /**\r\n * Add curve to scene.\r\n */\r\n addTo(parent) {\r\n const _scope = this;\r\n _scope.parent = parent;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n _scope.parent.getScene().add(_scope.getNative());\r\n _scope.parent.children.push(_scope);\r\n } catch (err) {\r\n console.error(err.message);\r\n reject();\r\n } finally {\r\n if (WHS.debug) {\r\n console.debug(\r\n `@WHS.Curve: Curve ${_scope._type} was added to world.`,\r\n [_scope, _scope.parent]\r\n );\r\n }\r\n\r\n resolve(_scope);\r\n }\r\n });\r\n }\r\n\r\n /* Access private data */\r\n setNative(native) {\r\n this.native = native;\r\n return this.native;\r\n }\r\n\r\n getNative() {\r\n return this.native;\r\n }\r\n\r\n /**\r\n * Clone curve.\r\n */\r\n clone() {\r\n return new Curve(this.__params).copy(this);\r\n }\r\n\r\n /**\r\n * Copy curve.\r\n *\r\n * @param {WHS.Curve} source - Source object, that will be applied to this.\r\n */\r\n copy(source) {\r\n this.setNative(source.getNative().clone());\r\n\r\n this._type = source._type;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove this curve from world.\r\n *\r\n * @return {WHS.Curve} - this.\r\n */\r\n remove() {\r\n this.parent.getScene().remove(this.getNative());\r\n\r\n this.parent.children.splice(this.parent.children.indexOf(this), 1);\r\n this.parent = null;\r\n\r\n this.emit('remove');\r\n\r\n if (WHS.debug) {\r\n console.debug(\r\n `@WHS.Curve: Curve ${this._type} was removed from world`,\r\n [_scope]\r\n );\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nexport {\r\n Curve\r\n};\r\n"]}
|
||||
{"version":3,"sources":["core/Curve.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AAEZ;;AACA;;AACA;;;;;;IAEM,K;;;;;;;;;AAMJ,iBAAY,MAAZ,EAAoB;AAAA;;AAAA;;AAAA,+GACZ;AACJ,gBAAU;AACR,eAAO,KADC;AAER,gBAAQ;AAFA;AADN,KADY;;AAQlB,uGAAgB,MAAhB;;AAEA,QAAM,WAAW,IAAI,MAAM,QAAV,EAAjB;AACA,aAAS,QAAT,GAAoB,OAAO,QAAP,CAAgB,KAAhB,CAAsB,SAAtB,CAAgC,OAAO,QAAP,CAAgB,MAAhD,CAApB;;AAEA,QAAM,QAAQ,IAAI,MAAM,IAAV,CACV,QADU,EAEV,uBAAa,OAAO,QAApB,EAA8B,KAA9B,EAAqC,SAF3B,CAAd;;AAKA,UAAK,SAAL,CAAe,KAAf;;AAEA,QAAM,QAAQ,6BAAoB;AAChC,aAAO,OADyB;AAEhC,cAAQ,OAAO,QAAP,CAAgB;AAFQ,KAApB,CAAd;;AAKA,kBAAO,KAAP;AACD;;;;;;;;;0BAKK,M,EAAQ;AACZ,UAAM,SAAS,IAAf;AACA,aAAO,MAAP,GAAgB,MAAhB;;AAEA,aAAO,sBAAY,UAAC,OAAD,EAAU,MAAV,EAAqB;AACtC,YAAI;AACF,iBAAO,MAAP,CAAc,QAAd,GAAyB,GAAzB,CAA6B,OAAO,SAAP,EAA7B;AACA,iBAAO,MAAP,CAAc,QAAd,CAAuB,IAAvB,CAA4B,MAA5B;AACD,SAHD,CAGE,OAAO,GAAP,EAAY;AACZ,kBAAQ,KAAR,CAAc,IAAI,OAAlB;AACA;AACD,SAND,SAMU;AACR,cAAI,mBAAS,KAAb,EAAoB;AAClB,oBAAQ,KAAR,wBACuB,OAAO,KAD9B,2BAEE,CAAC,MAAD,EAAS,OAAO,MAAhB,CAFF;AAID;;AAED,kBAAQ,MAAR;AACD;AACF,OAjBM,CAAP;AAkBD;;;;;;8BAGS,M,EAAQ;AAChB,WAAK,MAAL,GAAc,MAAd;AACA,aAAO,KAAK,MAAZ;AACD;;;gCAEW;AACV,aAAO,KAAK,MAAZ;AACD;;;;;;;;4BAKO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,QAAf,EAAyB,IAAzB,CAA8B,IAA9B,CAAP;AACD;;;;;;;;;;yBAOI,M,EAAQ;AACX,WAAK,SAAL,CAAe,OAAO,SAAP,GAAmB,KAAnB,EAAf;;AAEA,WAAK,KAAL,GAAa,OAAO,KAApB;;AAEA,aAAO,IAAP;AACD;;;;;;;;;;6BAOQ;AACP,WAAK,MAAL,CAAY,QAAZ,GAAuB,MAAvB,CAA8B,KAAK,SAAL,EAA9B;;AAEA,WAAK,MAAL,CAAY,QAAZ,CAAqB,MAArB,CAA4B,KAAK,MAAL,CAAY,QAAZ,CAAqB,OAArB,CAA6B,IAA7B,CAA5B,EAAgE,CAAhE;AACA,WAAK,MAAL,GAAc,IAAd;;AAEA,WAAK,IAAL,CAAU,QAAV;;AAEA,UAAI,mBAAS,KAAb,EAAoB;AAClB,gBAAQ,KAAR,wBACuB,KAAK,KAD5B,8BAEE,CAAC,MAAD,CAFF;AAID;;AAED,aAAO,IAAP;AACD;;;;;QAID,K,GAAA,K","file":"Curve.js","sourcesContent":["import * as THREE from 'three';\r\n\r\nimport {loadMaterial} from '../extras/api';\r\nimport {defaults} from '../utils/defaults';\r\nimport {WHSObject} from './Object';\r\n\r\nclass Curve extends WHSObject {\r\n /**\r\n * Create curve.\r\n *\r\n * Todo\r\n */\r\n constructor(params) {\r\n super({\r\n geometry: {\r\n curve: false,\r\n points: 50\r\n }\r\n });\r\n\r\n super.setParams(params);\r\n\r\n const geometry = new THREE.Geometry();\r\n geometry.vertices = params.geometry.curve.getPoints(params.geometry.points);\r\n\r\n const curve = new THREE.Line(\r\n geometry,\r\n loadMaterial(params.material, false)._material\r\n );\r\n\r\n this.setNative(curve);\r\n\r\n const scope = Object.assign(this, {\r\n _type: 'curve',\r\n __path: params.geometry.curve\r\n });\r\n\r\n return scope;\r\n }\r\n\r\n /**\r\n * Add curve to scene.\r\n */\r\n addTo(parent) {\r\n const _scope = this;\r\n _scope.parent = parent;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n _scope.parent.getScene().add(_scope.getNative());\r\n _scope.parent.children.push(_scope);\r\n } catch (err) {\r\n console.error(err.message);\r\n reject();\r\n } finally {\r\n if (defaults.debug) {\r\n console.debug(\r\n `@WHS.Curve: Curve ${_scope._type} was added to world.`,\r\n [_scope, _scope.parent]\r\n );\r\n }\r\n\r\n resolve(_scope);\r\n }\r\n });\r\n }\r\n\r\n /* Access private data */\r\n setNative(native) {\r\n this.native = native;\r\n return this.native;\r\n }\r\n\r\n getNative() {\r\n return this.native;\r\n }\r\n\r\n /**\r\n * Clone curve.\r\n */\r\n clone() {\r\n return new Curve(this.__params).copy(this);\r\n }\r\n\r\n /**\r\n * Copy curve.\r\n *\r\n * @param {WHS.Curve} source - Source object, that will be applied to this.\r\n */\r\n copy(source) {\r\n this.setNative(source.getNative().clone());\r\n\r\n this._type = source._type;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove this curve from world.\r\n *\r\n * @return {WHS.Curve} - this.\r\n */\r\n remove() {\r\n this.parent.getScene().remove(this.getNative());\r\n\r\n this.parent.children.splice(this.parent.children.indexOf(this), 1);\r\n this.parent = null;\r\n\r\n this.emit('remove');\r\n\r\n if (defaults.debug) {\r\n console.debug(\r\n `@WHS.Curve: Curve ${this._type} was removed from world`,\r\n [_scope]\r\n );\r\n }\r\n\r\n return this;\r\n }\r\n}\r\n\r\nexport {\r\n Curve\r\n};\r\n"]}
|
||||
@ -43,6 +43,8 @@ var THREE = _interopRequireWildcard(_three);
|
||||
|
||||
var _Loop = require('../extensions/Loop');
|
||||
|
||||
var _defaults = require('../utils/defaults');
|
||||
|
||||
var _Object = require('./Object');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
@ -142,7 +144,7 @@ var Light = function (_WHSObject) {
|
||||
_shadowmap: _this.__params.shadowmap
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Light: Light ' + scope._type + ' found.', scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Light: Light ' + scope._type + ' found.', scope);
|
||||
|
||||
return _ret = scope, (0, _possibleConstructorReturn3.default)(_this, _ret);
|
||||
}
|
||||
@ -179,7 +181,7 @@ var Light = function (_WHSObject) {
|
||||
_scope[tag] = true;
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Light: Light ' + _scope._type + ' + \' is ready.', _scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Light: Light ' + _scope._type + ' + \' is ready.', _scope);
|
||||
|
||||
_scope.emit('ready');
|
||||
|
||||
@ -216,7 +218,7 @@ var Light = function (_WHSObject) {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Camera: Camera ' + _scope._type + ' was added to world.', [_scope, _scope.parent]);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -84,7 +84,7 @@ var WHSObject = function () {
|
||||
value: function add(children) {
|
||||
var _scope = this;
|
||||
|
||||
if (children instanceof WHS.Shape || children instanceof WHS.Light) return children.addTo(this);else if (children instanceof WHS.Object) {
|
||||
if (children.addTo) return children.addTo(this);else if (children instanceof Object) {
|
||||
return new _promise2.default(function (resolve) {
|
||||
children.parent = _scope;
|
||||
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["core/Object.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAEA;;;;IAEM,S;;;;;;;;;AAQJ,uBAAgD;AAAA,QAApC,QAAoC,yDAAzB,EAAyB;AAAA,QAArB,YAAqB,yDAAN,IAAM;AAAA;;AAC9C,QAAM,QAAQ,eACZ,sBAAc,IAAd,EACA;AACE,mBAAa,IADf;AAEE,qBAAe,IAAI,IAAJ,GAAW,OAAX,EAFjB;AAGE,gBAAU,EAHZ;AAIE,kBAAY,QAJd;;AAME,cAAQ,IANV;AAOE,gBAAU;AAPZ,KADA,EAUF,yBAVE,CADY,GAYZ,sBAAc,IAAd,EACA;AACE,mBAAa,IADf;AAEE,qBAAe,IAAI,IAAJ,GAAW,OAAX,EAFjB;AAGE,gBAAU;AAHZ,KADA,EAMF,yBANE,CAZF;;AAoBA,WAAO,KAAP;AACD;;;;gCAEsB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACrB,WAAK,QAAL,GAAgB,iBAAO,MAAP,EAAe,KAAK,UAApB,CAAhB;AACD;;;mCAEyB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACxB,WAAK,QAAL,GAAgB,iBAAO,MAAP,EAAe,KAAK,QAApB,CAAhB;AACD;;;gCAEW;AACV,aAAO,KAAK,QAAZ;AACD;;;wBAEG,Q,EAAU;AACZ,UAAM,SAAS,IAAf;;AAEA,UAAI,oBAAoB,IAAI,KAAxB,IAAiC,oBAAoB,IAAI,KAA7D,EACE,OAAO,SAAS,KAAT,CAAe,IAAf,CAAP,CADF,KAEK,IAAI,oBAAoB,IAAI,MAA5B,EAAoC;AACvC,eAAO,sBAAY,UAAC,OAAD,EAAa;AAC9B,mBAAS,MAAT,GAAkB,MAAlB;;AAEA,iBAAO,SAAP,GAAmB,GAAnB,CAAuB,SAAS,SAAT,EAAvB;AACA,iBAAO,QAAP,CAAgB,IAAhB,CAAqB,MAArB;;AAEA;AACD,SAPM,CAAP;AAQD;AACF;;;;;QAID,S,GAAA,S","file":"Object.js","sourcesContent":["import Events from 'minivents';\r\n\r\nimport {extend} from '../extras/api';\r\n\r\nclass WHSObject {\r\n /**\r\n * Constructing WHS.Shape object.\r\n *\r\n * @param {Boolean} structurable - true if object has parents and children.\r\n * @param {String} type - Shape type.\r\n * @return {WHS.Object}\r\n */\r\n constructor(defaults = {}, structurable = true) {\r\n const scope = structurable\r\n ? Object.assign(this,\r\n {\r\n __whsobject: true,\r\n __releaseTime: new Date().getTime(),\r\n __params: {},\r\n __defaults: defaults,\r\n\r\n parent: null,\r\n children: []\r\n },\r\n new Events())\r\n : Object.assign(this,\r\n {\r\n __whsobject: true,\r\n __releaseTime: new Date().getTime(),\r\n __params: {}\r\n },\r\n new Events());\r\n\r\n return scope;\r\n }\r\n\r\n setParams(params = {}) {\r\n this.__params = extend(params, this.__defaults);\r\n }\r\n\r\n updateParams(params = {}) {\r\n this.__params = extend(params, this.__params);\r\n }\r\n\r\n getParams() {\r\n return this.__params;\r\n }\r\n\r\n add(children) {\r\n const _scope = this;\r\n\r\n if (children instanceof WHS.Shape || children instanceof WHS.Light)\r\n return children.addTo(this);\r\n else if (children instanceof WHS.Object) {\r\n return new Promise((resolve) => {\r\n children.parent = _scope;\r\n\r\n _scope.getNative().add(children.getNative());\r\n _scope.children.push(_scope);\r\n\r\n resolve();\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport {\r\n WHSObject\r\n};\r\n"]}
|
||||
{"version":3,"sources":["core/Object.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AACA;;;;IAEM,S;;;;;;;;;AAQJ,uBAAgD;AAAA,QAApC,QAAoC,yDAAzB,EAAyB;AAAA,QAArB,YAAqB,yDAAN,IAAM;AAAA;;AAC9C,QAAM,QAAQ,eACZ,sBAAc,IAAd,EACA;AACE,mBAAa,IADf;AAEE,qBAAe,IAAI,IAAJ,GAAW,OAAX,EAFjB;AAGE,gBAAU,EAHZ;AAIE,kBAAY,QAJd;;AAME,cAAQ,IANV;AAOE,gBAAU;AAPZ,KADA,EAUF,yBAVE,CADY,GAYZ,sBAAc,IAAd,EACA;AACE,mBAAa,IADf;AAEE,qBAAe,IAAI,IAAJ,GAAW,OAAX,EAFjB;AAGE,gBAAU;AAHZ,KADA,EAMF,yBANE,CAZF;;AAoBA,WAAO,KAAP;AACD;;;;gCAEsB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACrB,WAAK,QAAL,GAAgB,iBAAO,MAAP,EAAe,KAAK,UAApB,CAAhB;AACD;;;mCAEyB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACxB,WAAK,QAAL,GAAgB,iBAAO,MAAP,EAAe,KAAK,QAApB,CAAhB;AACD;;;gCAEW;AACV,aAAO,KAAK,QAAZ;AACD;;;wBAEG,Q,EAAU;AACZ,UAAM,SAAS,IAAf;;AAEA,UAAI,SAAS,KAAb,EACE,OAAO,SAAS,KAAT,CAAe,IAAf,CAAP,CADF,KAEK,IAAI,oBAAoB,MAAxB,EAAgC;AACnC,eAAO,sBAAY,UAAC,OAAD,EAAa;AAC9B,mBAAS,MAAT,GAAkB,MAAlB;;AAEA,iBAAO,SAAP,GAAmB,GAAnB,CAAuB,SAAS,SAAT,EAAvB;AACA,iBAAO,QAAP,CAAgB,IAAhB,CAAqB,MAArB;;AAEA;AACD,SAPM,CAAP;AAQD;AACF;;;;;QAID,S,GAAA,S","file":"Object.js","sourcesContent":["import Events from 'minivents';\r\nimport {extend} from '../extras/api';\r\n\r\nclass WHSObject {\r\n /**\r\n * Constructing WHS.Shape object.\r\n *\r\n * @param {Boolean} structurable - true if object has parents and children.\r\n * @param {String} type - Shape type.\r\n * @return {WHS.Object}\r\n */\r\n constructor(defaults = {}, structurable = true) {\r\n const scope = structurable\r\n ? Object.assign(this,\r\n {\r\n __whsobject: true,\r\n __releaseTime: new Date().getTime(),\r\n __params: {},\r\n __defaults: defaults,\r\n\r\n parent: null,\r\n children: []\r\n },\r\n new Events())\r\n : Object.assign(this,\r\n {\r\n __whsobject: true,\r\n __releaseTime: new Date().getTime(),\r\n __params: {}\r\n },\r\n new Events());\r\n\r\n return scope;\r\n }\r\n\r\n setParams(params = {}) {\r\n this.__params = extend(params, this.__defaults);\r\n }\r\n\r\n updateParams(params = {}) {\r\n this.__params = extend(params, this.__params);\r\n }\r\n\r\n getParams() {\r\n return this.__params;\r\n }\r\n\r\n add(children) {\r\n const _scope = this;\r\n\r\n if (children.addTo)\r\n return children.addTo(this);\r\n else if (children instanceof Object) {\r\n return new Promise((resolve) => {\r\n children.parent = _scope;\r\n\r\n _scope.getNative().add(children.getNative());\r\n _scope.children.push(_scope);\r\n\r\n resolve();\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport {\r\n WHSObject\r\n};\r\n"]}
|
||||
@ -47,6 +47,8 @@ var _Loop = require('../extensions/Loop');
|
||||
|
||||
var _World = require('./World');
|
||||
|
||||
var _defaults = require('../utils/defaults');
|
||||
|
||||
var _Object = require('./Object');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
@ -139,7 +141,7 @@ var Shape = function (_WHSObject) {
|
||||
physics: params.physics
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Shape: Shape ' + scope._type + ' found.', scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Shape: Shape ' + scope._type + ' found.', scope);
|
||||
|
||||
return _ret = scope, (0, _possibleConstructorReturn3.default)(_this, _ret);
|
||||
}
|
||||
@ -205,7 +207,7 @@ var Shape = function (_WHSObject) {
|
||||
_scope.helpers.vertexNormals = new THREE.VertexNormalsHelper(_scope.getNative(), _scope.__params.helpers.vertexNormals.size ? _scope.__params.helpers.vertexNormals.size : 2, _scope.__params.helpers.vertexNormals.color ? _scope.__params.helpers.vertexNormals.color : 0xffffff, _scope.__params.helpers.vertexNormals.linewidth ? _scope.__params.helpers.vertexNormals.linewidth : 1);
|
||||
}
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Shape: Shape ' + _scope._type + ' is ready.', _scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Shape: Shape ' + _scope._type + ' is ready.', _scope);
|
||||
|
||||
_scope.emit('ready');
|
||||
|
||||
@ -253,7 +255,7 @@ var Shape = function (_WHSObject) {
|
||||
_scope.helpers.vertexNormals = new THREE.VertexNormalsHelper(_scope.getNative(), _scope.__params.helpers.vertexNormals.size ? _scope.__params.helpers.vertexNormals.size : 2, _scope.__params.helpers.vertexNormals.color ? _scope.__params.helpers.vertexNormals.color : 0xffffff, _scope.__params.helpers.vertexNormals.linewidth ? _scope.__params.helpers.vertexNormals.linewidth : 1);
|
||||
}
|
||||
|
||||
if (WHS.debug) console.debug('@WHS.Shape: Shape ' + _scope._type + ' is ready.', _scope);
|
||||
if (_defaults.defaults.debug) console.debug('@WHS.Shape: Shape ' + _scope._type + ' is ready.', _scope);
|
||||
|
||||
resolve();
|
||||
|
||||
@ -317,7 +319,7 @@ var Shape = function (_WHSObject) {
|
||||
_scope.emit('collide');
|
||||
});
|
||||
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Shape: Shape ' + _scope._type + ' was added to world.', [_scope, _scope.parent]);
|
||||
}
|
||||
}
|
||||
@ -354,7 +356,7 @@ var Shape = function (_WHSObject) {
|
||||
_scope.emit('ready');
|
||||
});
|
||||
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Shape: Shape ' + _scope._type + ' was added to world.', [_scope, _scope.parent]);
|
||||
}
|
||||
}
|
||||
@ -421,7 +423,7 @@ var Shape = function (_WHSObject) {
|
||||
|
||||
this.emit('remove');
|
||||
|
||||
if (WHS.debug) {
|
||||
if (_defaults.defaults.debug) {
|
||||
console.debug('@WHS.Shape: Shape ' + this._type + ' was removed from world', [this]);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -445,6 +445,12 @@ var World = function (_WHSObject) {
|
||||
value: function getRenderer() {
|
||||
return this.renderer;
|
||||
}
|
||||
}, {
|
||||
key: 'setControls',
|
||||
value: function setControls(controls) {
|
||||
this.controls = controls(this);
|
||||
return this.controls;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set a camera for rendering world.
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.loadMaterial = exports.extend = exports.texture = exports.loadTexture = exports.loadJson = exports.loadFont = undefined;
|
||||
exports.loadMaterial = exports.extend = exports.texture = exports.TextureLoader = exports.JSONLoader = exports.FontLoader = undefined;
|
||||
|
||||
var _assign = require('babel-runtime/core-js/object/assign');
|
||||
|
||||
@ -25,7 +25,7 @@ var _physi = require('../physics/physi.js');
|
||||
|
||||
var _physi2 = _interopRequireDefault(_physi);
|
||||
|
||||
var _loader = require('../utils/loader');
|
||||
var _loaders = require('../utils/loaders');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
@ -98,7 +98,7 @@ var extend = function extend(object) {
|
||||
};
|
||||
|
||||
var texture = function texture(url, options) {
|
||||
var texture = (0, _loader.loadTexture)(url);
|
||||
var texture = _loaders.TextureLoader.load(url);
|
||||
|
||||
if (options) {
|
||||
var opt = (0, _assign2.default)({}, options, {
|
||||
@ -218,9 +218,9 @@ var loadMaterial = function loadMaterial() {
|
||||
return scope;
|
||||
};
|
||||
|
||||
exports.loadFont = _loader.loadFont;
|
||||
exports.loadJson = _loader.loadJson;
|
||||
exports.loadTexture = _loader.loadTexture;
|
||||
exports.FontLoader = _loaders.FontLoader;
|
||||
exports.JSONLoader = _loaders.JSONLoader;
|
||||
exports.TextureLoader = _loaders.TextureLoader;
|
||||
exports.texture = texture;
|
||||
exports.extend = extend;
|
||||
exports.loadMaterial = loadMaterial;
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -3,7 +3,7 @@
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.FPSControls = FPSControls;
|
||||
exports.firstPersonControls = firstPersonControls;
|
||||
|
||||
var _three = require('three');
|
||||
|
||||
@ -15,246 +15,248 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
|
||||
|
||||
var PI_2 = Math.PI / 2;
|
||||
|
||||
function FPSControls(object) {
|
||||
var _this = this;
|
||||
|
||||
function firstPersonControls(object) {
|
||||
var params = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
|
||||
|
||||
var target = (0, _api.extend)(params, {
|
||||
block: document.getElementById('blocker'),
|
||||
speed: 1,
|
||||
ypos: 1
|
||||
});
|
||||
return function (world) {
|
||||
var _this = this;
|
||||
|
||||
var controls = new function (camera, mesh, params) {
|
||||
var velocityFactor = 1;
|
||||
var runVelocity = 0.25;
|
||||
|
||||
mesh.setAngularFactor({ x: 0, y: 0, z: 0 });
|
||||
|
||||
/* Init */
|
||||
var scope = _this,
|
||||
player = mesh,
|
||||
pitchObject = new THREE.Object3D();
|
||||
|
||||
pitchObject.add(camera.getNative());
|
||||
|
||||
var yawObject = new THREE.Object3D();
|
||||
|
||||
yawObject.position.y = params.ypos; // eyes are 2 meters above the ground
|
||||
yawObject.add(pitchObject);
|
||||
|
||||
var quat = new THREE.Quaternion();
|
||||
|
||||
var canJump = false,
|
||||
|
||||
// Moves.
|
||||
moveForward = false,
|
||||
moveBackward = false,
|
||||
moveLeft = false,
|
||||
moveRight = false;
|
||||
|
||||
player.addEventListener('collision', function (otherObject, v, r, contactNormal) {
|
||||
if (contactNormal.y < 0.5) // Use a "good" threshold value between 0 and 1 here!
|
||||
canJump = true;
|
||||
var target = (0, _api.extend)(params, {
|
||||
block: document.getElementById('blocker'),
|
||||
speed: 1,
|
||||
ypos: 1
|
||||
});
|
||||
|
||||
function onMouseMove(event) {
|
||||
if (scope.enabled === false) return;
|
||||
var controls = new function (camera, mesh, params) {
|
||||
var velocityFactor = 1;
|
||||
var runVelocity = 0.25;
|
||||
|
||||
var movementX = event.movementX || event.mozMovementX || event.getMovementX() || 0,
|
||||
movementY = event.movementY || event.mozMovementY || event.getMovementY() || 0;
|
||||
mesh.setAngularFactor({ x: 0, y: 0, z: 0 });
|
||||
|
||||
yawObject.rotation.y -= movementX * 0.002;
|
||||
pitchObject.rotation.x -= movementY * 0.002;
|
||||
/* Init */
|
||||
var scope = _this,
|
||||
player = mesh,
|
||||
pitchObject = new THREE.Object3D();
|
||||
|
||||
pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));
|
||||
}
|
||||
pitchObject.add(camera.getNative());
|
||||
|
||||
function onKeyDown(event) {
|
||||
switch (event.keyCode) {
|
||||
case 38: // up
|
||||
case 87:
|
||||
// w
|
||||
moveForward = true;
|
||||
break;
|
||||
var yawObject = new THREE.Object3D();
|
||||
|
||||
case 37: // left
|
||||
case 65:
|
||||
// a
|
||||
moveLeft = true;
|
||||
break;
|
||||
yawObject.position.y = params.ypos; // eyes are 2 meters above the ground
|
||||
yawObject.add(pitchObject);
|
||||
|
||||
case 40: // down
|
||||
case 83:
|
||||
// s
|
||||
moveBackward = true;
|
||||
break;
|
||||
var quat = new THREE.Quaternion();
|
||||
|
||||
case 39: // right
|
||||
case 68:
|
||||
// d
|
||||
moveRight = true;
|
||||
break;
|
||||
var canJump = false,
|
||||
|
||||
case 32:
|
||||
// space
|
||||
if (canJump === true) player.applyCentralImpulse({ x: 0, y: 300, z: 0 });
|
||||
canJump = false;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
// shift
|
||||
runVelocity = 0.5;
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
function onKeyUp(event) {
|
||||
switch (event.keyCode) {
|
||||
case 38: // up
|
||||
case 87:
|
||||
// w
|
||||
moveForward = false;
|
||||
break;
|
||||
|
||||
case 37: // left
|
||||
case 65:
|
||||
// a
|
||||
moveLeft = false;
|
||||
break;
|
||||
|
||||
case 40: // down
|
||||
case 83:
|
||||
// a
|
||||
moveBackward = false;
|
||||
break;
|
||||
|
||||
case 39: // right
|
||||
case 68:
|
||||
// d
|
||||
// Moves.
|
||||
moveForward = false,
|
||||
moveBackward = false,
|
||||
moveLeft = false,
|
||||
moveRight = false;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
// shift
|
||||
runVelocity = 0.25;
|
||||
break;
|
||||
player.addEventListener('collision', function (otherObject, v, r, contactNormal) {
|
||||
if (contactNormal.y < 0.5) // Use a "good" threshold value between 0 and 1 here!
|
||||
canJump = true;
|
||||
});
|
||||
|
||||
default:
|
||||
function onMouseMove(event) {
|
||||
if (scope.enabled === false) return;
|
||||
|
||||
var movementX = event.movementX || event.mozMovementX || event.getMovementX() || 0,
|
||||
movementY = event.movementY || event.mozMovementY || event.getMovementY() || 0;
|
||||
|
||||
yawObject.rotation.y -= movementX * 0.002;
|
||||
pitchObject.rotation.x -= movementY * 0.002;
|
||||
|
||||
pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));
|
||||
}
|
||||
}
|
||||
|
||||
document.body.addEventListener('mousemove', onMouseMove, false);
|
||||
document.body.addEventListener('keydown', onKeyDown, false);
|
||||
document.body.addEventListener('keyup', onKeyUp, false);
|
||||
function onKeyDown(event) {
|
||||
switch (event.keyCode) {
|
||||
case 38: // up
|
||||
case 87:
|
||||
// w
|
||||
moveForward = true;
|
||||
break;
|
||||
|
||||
_this.enabled = false;
|
||||
case 37: // left
|
||||
case 65:
|
||||
// a
|
||||
moveLeft = true;
|
||||
break;
|
||||
|
||||
_this.getObject = function () {
|
||||
return yawObject;
|
||||
};
|
||||
case 40: // down
|
||||
case 83:
|
||||
// s
|
||||
moveBackward = true;
|
||||
break;
|
||||
|
||||
_this.getDirection = function (targetVec) {
|
||||
targetVec.set(0, 0, -1);
|
||||
quat.multiplyVector3(targetVec);
|
||||
};
|
||||
case 39: // right
|
||||
case 68:
|
||||
// d
|
||||
moveRight = true;
|
||||
break;
|
||||
|
||||
// Moves the camera to the Cannon.js object position
|
||||
// and adds velocity to the object if the run key is down.
|
||||
var inputVelocity = new THREE.Vector3(),
|
||||
euler = new THREE.Euler();
|
||||
case 32:
|
||||
// space
|
||||
if (canJump === true) player.applyCentralImpulse({ x: 0, y: 300, z: 0 });
|
||||
canJump = false;
|
||||
break;
|
||||
|
||||
_this.update = function (delta) {
|
||||
var moveVec = new THREE.Vector3();
|
||||
case 16:
|
||||
// shift
|
||||
runVelocity = 0.5;
|
||||
break;
|
||||
|
||||
if (scope.enabled === false) return;
|
||||
|
||||
delta = delta || 0.5;
|
||||
delta = Math.min(delta, 0.5);
|
||||
|
||||
inputVelocity.set(0, 0, 0);
|
||||
|
||||
var speed = velocityFactor * delta * params.speed * runVelocity;
|
||||
|
||||
if (moveForward) inputVelocity.z = -speed;
|
||||
if (moveBackward) inputVelocity.z = speed;
|
||||
if (moveLeft) inputVelocity.x = -speed;
|
||||
if (moveRight) inputVelocity.x = speed;
|
||||
|
||||
// Convert velocity to world coordinates
|
||||
euler.x = pitchObject.rotation.x;
|
||||
euler.y = yawObject.rotation.y;
|
||||
euler.order = 'XYZ';
|
||||
|
||||
quat.setFromEuler(euler);
|
||||
|
||||
inputVelocity.applyQuaternion(quat);
|
||||
|
||||
player.applyCentralImpulse({ x: inputVelocity.x * 10, y: 0, z: inputVelocity.z * 10 });
|
||||
player.setAngularVelocity({ x: inputVelocity.z * 10, y: 0, z: -inputVelocity.x * 10 });
|
||||
player.setAngularFactor({ x: 0, y: 0, z: 0 });
|
||||
|
||||
yawObject.position.copy(player.position);
|
||||
};
|
||||
}(this.getCamera(), object.getNative(), target);
|
||||
|
||||
this.getScene().add(this.controls.getObject());
|
||||
|
||||
if ('pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document) {
|
||||
(function () {
|
||||
var element = document.body;
|
||||
|
||||
_this.pointerlockchange = function () {
|
||||
if (document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element) {
|
||||
controls.enabled = true;
|
||||
target.block.fadeOut();
|
||||
} else {
|
||||
controls.enabled = false;
|
||||
target.block.fadeIn();
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
function onKeyUp(event) {
|
||||
switch (event.keyCode) {
|
||||
case 38: // up
|
||||
case 87:
|
||||
// w
|
||||
moveForward = false;
|
||||
break;
|
||||
|
||||
case 37: // left
|
||||
case 65:
|
||||
// a
|
||||
moveLeft = false;
|
||||
break;
|
||||
|
||||
case 40: // down
|
||||
case 83:
|
||||
// a
|
||||
moveBackward = false;
|
||||
break;
|
||||
|
||||
case 39: // right
|
||||
case 68:
|
||||
// d
|
||||
moveRight = false;
|
||||
break;
|
||||
|
||||
case 16:
|
||||
// shift
|
||||
runVelocity = 0.25;
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
|
||||
document.body.addEventListener('mousemove', onMouseMove, false);
|
||||
document.body.addEventListener('keydown', onKeyDown, false);
|
||||
document.body.addEventListener('keyup', onKeyUp, false);
|
||||
|
||||
_this.enabled = false;
|
||||
|
||||
_this.getObject = function () {
|
||||
return yawObject;
|
||||
};
|
||||
})();
|
||||
} else console.warn('Your browser does not support the PointerLock WHS.API.');
|
||||
|
||||
document.addEventListener('pointerlockchange', this.pointerlockchange, false);
|
||||
document.addEventListener('mozpointerlockchange', this.pointerlockchange, false);
|
||||
document.addEventListener('webkitpointerlockchange', this.pointerlockchange, false);
|
||||
_this.getDirection = function (targetVec) {
|
||||
targetVec.set(0, 0, -1);
|
||||
quat.multiplyVector3(targetVec);
|
||||
};
|
||||
|
||||
this.pointerlockerror = function () {
|
||||
console.warn('Pointer lock error.');
|
||||
};
|
||||
// Moves the camera to the Cannon.js object position
|
||||
// and adds velocity to the object if the run key is down.
|
||||
var inputVelocity = new THREE.Vector3(),
|
||||
euler = new THREE.Euler();
|
||||
|
||||
document.addEventListener('pointerlockerror', this.pointerlockerror, false);
|
||||
document.addEventListener('mozpointerlockerror', this.pointerlockerror, false);
|
||||
document.addEventListener('webkitpointerlockerror', this.pointerlockerror, false);
|
||||
_this.update = function (delta) {
|
||||
var moveVec = new THREE.Vector3();
|
||||
|
||||
target.block.addEventListener('click', function () {
|
||||
element.requestPointerLock = element.requestPointerLock || element.mozRequestPointerLock || element.webkitRequestPointerLock;
|
||||
if (scope.enabled === false) return;
|
||||
|
||||
element.requestFullscreen = element.requestFullscreen || element.mozRequestFullscreen || element.mozRequestFullScreen || element.webkitRequestFullscreen;
|
||||
delta = delta || 0.5;
|
||||
delta = Math.min(delta, 0.5);
|
||||
|
||||
if (/Firefox/i.test(navigator.userAgent)) {
|
||||
inputVelocity.set(0, 0, 0);
|
||||
|
||||
var speed = velocityFactor * delta * params.speed * runVelocity;
|
||||
|
||||
if (moveForward) inputVelocity.z = -speed;
|
||||
if (moveBackward) inputVelocity.z = speed;
|
||||
if (moveLeft) inputVelocity.x = -speed;
|
||||
if (moveRight) inputVelocity.x = speed;
|
||||
|
||||
// Convert velocity to world coordinates
|
||||
euler.x = pitchObject.rotation.x;
|
||||
euler.y = yawObject.rotation.y;
|
||||
euler.order = 'XYZ';
|
||||
|
||||
quat.setFromEuler(euler);
|
||||
|
||||
inputVelocity.applyQuaternion(quat);
|
||||
|
||||
player.applyCentralImpulse({ x: inputVelocity.x * 10, y: 0, z: inputVelocity.z * 10 });
|
||||
player.setAngularVelocity({ x: inputVelocity.z * 10, y: 0, z: -inputVelocity.x * 10 });
|
||||
player.setAngularFactor({ x: 0, y: 0, z: 0 });
|
||||
|
||||
yawObject.position.copy(player.position);
|
||||
};
|
||||
}(world.getCamera(), object.getNative(), target);
|
||||
|
||||
world.getScene().add(world.controls.getObject());
|
||||
|
||||
if ('pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document) {
|
||||
(function () {
|
||||
var fullscreenchange = function fullscreenchange() {
|
||||
if (document.fullscreenElement === element || document.mozFullscreenElement === element || document.mozFullScreenElement === element) {
|
||||
document.removeEventListener('fullscreenchange', fullscreenchange);
|
||||
document.removeEventListener('mozfullscreenchange', fullscreenchange);
|
||||
var element = document.body;
|
||||
|
||||
element.requestPointerLock();
|
||||
world.pointerlockchange = function () {
|
||||
if (document.pointerLockElement === element || document.mozPointerLockElement === element || document.webkitPointerLockElement === element) {
|
||||
controls.enabled = true;
|
||||
target.block.fadeOut();
|
||||
} else {
|
||||
controls.enabled = false;
|
||||
target.block.fadeIn();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('fullscreenchange', fullscreenchange, false);
|
||||
document.addEventListener('mozfullscreenchange', fullscreenchange, false);
|
||||
|
||||
element.requestFullscreen();
|
||||
})();
|
||||
} else element.requestPointerLock();
|
||||
});
|
||||
} else console.warn('Your browser does not support the PointerLock WHS.API.');
|
||||
|
||||
return controls;
|
||||
document.addEventListener('pointerlockchange', world.pointerlockchange, false);
|
||||
document.addEventListener('mozpointerlockchange', world.pointerlockchange, false);
|
||||
document.addEventListener('webkitpointerlockchange', world.pointerlockchange, false);
|
||||
|
||||
world.pointerlockerror = function () {
|
||||
console.warn('Pointer lock error.');
|
||||
};
|
||||
|
||||
document.addEventListener('pointerlockerror', world.pointerlockerror, false);
|
||||
document.addEventListener('mozpointerlockerror', world.pointerlockerror, false);
|
||||
document.addEventListener('webkitpointerlockerror', world.pointerlockerror, false);
|
||||
|
||||
target.block.addEventListener('click', function () {
|
||||
element.requestPointerLock = element.requestPointerLock || element.mozRequestPointerLock || element.webkitRequestPointerLock;
|
||||
|
||||
element.requestFullscreen = element.requestFullscreen || element.mozRequestFullscreen || element.mozRequestFullScreen || element.webkitRequestFullscreen;
|
||||
|
||||
if (/Firefox/i.test(navigator.userAgent)) {
|
||||
(function () {
|
||||
var fullscreenchange = function fullscreenchange() {
|
||||
if (document.fullscreenElement === element || document.mozFullscreenElement === element || document.mozFullScreenElement === element) {
|
||||
document.removeEventListener('fullscreenchange', fullscreenchange);
|
||||
document.removeEventListener('mozfullscreenchange', fullscreenchange);
|
||||
|
||||
element.requestPointerLock();
|
||||
}
|
||||
};
|
||||
|
||||
document.addEventListener('fullscreenchange', fullscreenchange, false);
|
||||
document.addEventListener('mozfullscreenchange', fullscreenchange, false);
|
||||
|
||||
element.requestFullscreen();
|
||||
})();
|
||||
} else element.requestPointerLock();
|
||||
});
|
||||
|
||||
return controls;
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=firstPersonControls.js.map
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -8,7 +8,7 @@ var _typeof2 = require('babel-runtime/helpers/typeof');
|
||||
|
||||
var _typeof3 = _interopRequireDefault(_typeof2);
|
||||
|
||||
exports.OrbitControls = OrbitControls;
|
||||
exports.orbitControls = orbitControls;
|
||||
|
||||
var _three = require('three');
|
||||
|
||||
@ -22,15 +22,19 @@ function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj;
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
function OrbitControls(object) {
|
||||
var controls = new _threeOrbitControls2.default(this.getCamera().getNative(), this.getRenderer().domElement);
|
||||
var ThreeOrbitControls = (0, _threeOrbitControls2.default)(THREE);
|
||||
|
||||
if (object && object.__whsobject) {
|
||||
var _target = object ? object.mesh.position : new THREE.Vector3(0, 0, 0);
|
||||
function orbitControls(object) {
|
||||
return function (world) {
|
||||
var controls = new ThreeOrbitControls(world.getCamera().getNative(), world.getRenderer().domElement);
|
||||
|
||||
controls.target = _target;
|
||||
} else if ((typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object)) === 'object') controls.target.copy(target);else console.error('Object must be a THREE.JS vector! @OrbitControls');
|
||||
if (object && object.__whsobject) {
|
||||
var _target = object ? object.mesh.position : new THREE.Vector3(0, 0, 0);
|
||||
|
||||
return controls;
|
||||
controls.target = _target;
|
||||
} else if ((typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object)) === 'object') controls.target.copy(target);
|
||||
|
||||
return controls;
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=orbitControls.js.map
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["extras/controls/orbitControls.js"],"names":[],"mappings":";;;;;;;;;;QAGgB,a,GAAA,a;;AAHhB;;IAAY,K;;AACZ;;;;;;;;AAEO,SAAS,aAAT,CAAuB,MAAvB,EAA+B;AACpC,MAAM,WAAW,iCACf,KAAK,SAAL,GAAiB,SAAjB,EADe,EAEf,KAAK,WAAL,GAAmB,UAFJ,CAAjB;;AAKA,MAAI,UAAU,OAAO,WAArB,EAAkC;AAChC,QAAM,UAAS,SAAS,OAAO,IAAP,CAAY,QAArB,GACX,IAAI,MAAM,OAAV,CAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,CADJ;;AAGA,aAAS,MAAT,GAAkB,OAAlB;AACD,GALD,MAKO,IAAI,QAAO,MAAP,uDAAO,MAAP,OAAkB,QAAtB,EACL,SAAS,MAAT,CAAgB,IAAhB,CAAqB,MAArB,EADK,KAGL,QAAQ,KAAR,CAAc,kDAAd;;AAEF,SAAO,QAAP;AACD","file":"orbitControls.js","sourcesContent":["import * as THREE from 'three';\nimport ThreeOrbitControls from 'three-orbit-controls';\n\nexport function OrbitControls(object) {\n const controls = new ThreeOrbitControls(\n this.getCamera().getNative(),\n this.getRenderer().domElement\n );\n\n if (object && object.__whsobject) {\n const target = object ? object.mesh.position\n : new THREE.Vector3(0, 0, 0);\n\n controls.target = target;\n } else if (typeof object === 'object')\n controls.target.copy(target);\n else\n console.error('Object must be a THREE.JS vector! @OrbitControls');\n\n return controls;\n}\n"]}
|
||||
{"version":3,"sources":["extras/controls/orbitControls.js"],"names":[],"mappings":";;;;;;;;;;QAKgB,a,GAAA,a;;AALhB;;IAAY,K;;AACZ;;;;;;;;AAEA,IAAM,qBAAqB,kCAAiB,KAAjB,CAA3B;;AAEO,SAAS,aAAT,CAAuB,MAAvB,EAA+B;AACpC,SAAO,UAAU,KAAV,EAAiB;AACtB,QAAM,WAAW,IAAI,kBAAJ,CACf,MAAM,SAAN,GAAkB,SAAlB,EADe,EAEf,MAAM,WAAN,GAAoB,UAFL,CAAjB;;AAKA,QAAI,UAAU,OAAO,WAArB,EAAkC;AAChC,UAAM,UAAS,SAAS,OAAO,IAAP,CAAY,QAArB,GACX,IAAI,MAAM,OAAV,CAAkB,CAAlB,EAAqB,CAArB,EAAwB,CAAxB,CADJ;;AAGA,eAAS,MAAT,GAAkB,OAAlB;AACD,KALD,MAKO,IAAI,QAAO,MAAP,uDAAO,MAAP,OAAkB,QAAtB,EACL,SAAS,MAAT,CAAgB,IAAhB,CAAqB,MAArB;;AAEF,WAAO,QAAP;AACD,GAfD;AAgBD","file":"orbitControls.js","sourcesContent":["import * as THREE from 'three';\nimport getOrbitControls from 'three-orbit-controls';\n\nconst ThreeOrbitControls = getOrbitControls(THREE);\n\nexport function orbitControls(object) {\n return function (world) {\n const controls = new ThreeOrbitControls(\n world.getCamera().getNative(),\n world.getRenderer().domElement\n );\n\n if (object && object.__whsobject) {\n const target = object ? object.mesh.position\n : new THREE.Vector3(0, 0, 0);\n\n controls.target = target;\n } else if (typeof object === 'object')\n controls.target.copy(target);\n\n return controls;\n };\n}\n"]}
|
||||
10
lib/index.js
10
lib/index.js
@ -96,4 +96,14 @@ _Object$keys(_index7).forEach(function (key) {
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _three = require('three');
|
||||
|
||||
var THREE = _interopRequireWildcard(_three);
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
if (window) {
|
||||
window.THREE = THREE;
|
||||
}
|
||||
//# sourceMappingURL=index.js.map
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","file":"index.js","sourcesContent":["export * from './cameras/index';\r\nexport * from './core/index';\r\nexport * from './extensions/index';\r\nexport * from './extras/index';\r\nexport * from './lights/index';\r\nexport * from './meshes/index';\r\nexport * from './scenes/index';\r\n"]}
|
||||
{"version":3,"sources":["index.js"],"names":[],"mappings":";;;;;;;;;;AAEA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;AACA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AARA;;IAAY,K;;;;AAUZ,IAAI,MAAJ,EAAY;AACV,SAAO,KAAP,GAAe,KAAf;AACD","file":"index.js","sourcesContent":["import * as THREE from 'three';\r\n\r\nexport * from './cameras/index';\r\nexport * from './core/index';\r\nexport * from './extensions/index';\r\nexport * from './extras/index';\r\nexport * from './lights/index';\r\nexport * from './meshes/index';\r\nexport * from './scenes/index';\r\n\r\nif (window) {\r\n window.THREE = THREE;\r\n}\r\n"]}
|
||||
@ -45,8 +45,6 @@ var _Shape2 = require('../core/Shape');
|
||||
|
||||
var _api = require('../extras/api');
|
||||
|
||||
var _loader = require('../utils/loader');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
@ -79,9 +77,9 @@ var ConvexModel = function (_Shape) {
|
||||
Mesh = this.physics ? _physi2.default.ConvexMesh : THREE.Mesh;
|
||||
|
||||
var promise = new _promise2.default(function (resolve) {
|
||||
(0, _loader.loadJson)(params.geometry.path, function (data, materials) {
|
||||
_api.JSONLoader.load(params.geometry.path, function (data, materials) {
|
||||
if (params.geometry.physics) {
|
||||
(0, _loader.loadJson)(params.geometry.physics, function (data2) {
|
||||
_api.JSONLoader.load(params.geometry.physics, function (data2) {
|
||||
var material = void 0;
|
||||
|
||||
if (params.material.useVertexColors) {
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["meshes/ConvexModel.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;AACA;;;;;;IAEM,W;;;AACJ,yBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,qHACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM,EADgB;AAEtB,eAAS;AAFa,KAAxB;;AAKA,UAAK,KAAL,CAAW,MAAX;AACA,wGAAW,MAAX;AATuB;AAUxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,UAAvB,GAAoC,MAAM,IADnD;;AAGA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,8BAAS,OAAO,QAAP,CAAgB,IAAzB,EAA+B,UAAC,IAAD,EAAO,SAAP,EAAqB;AAClD,cAAI,OAAO,QAAP,CAAgB,OAApB,EAA6B;AAC3B,kCAAS,OAAO,QAAP,CAAgB,OAAzB,EAAkC,iBAAS;AACzC,kBAAI,iBAAJ;;AAEA,kBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,2BAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,gCAAc,IADQ;AAEtB,gCAAc,MAAM;AAFE,iBAAxB,CADS,EAKT,SALF;AAMD,eAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,2BAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,eAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,mBAAK,kBAAL;AACA,mBAAK,oBAAL;;AAEA,qBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,EAIf,KAJe,EAKf,OAAO,KALQ,CAAjB;;AAQA;AACD,aA5BD;AA6BD,WA9BD,MA8BO;AACL,gBAAI,iBAAJ;;AAEA,gBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,yBAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,8BAAc,IADQ;AAEtB,8BAAc,MAAM;AAFE,eAAxB,CADS,EAKT,SALF;AAMD,aAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,yBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,aAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,iBAAK,kBAAL;AACA,iBAAK,oBAAL;;AAEA,mBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,CAAjB;;AAMA;AACD;AACF,SA1DD;AA2DD,OA5De,CAAhB;;AA8DA,wGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,WAAJ,CAAgB,KAAK,SAAL,EAAhB,EAAkC,IAAlC,CAAuC,IAAvC,CAAP;AACD;;;;;QAID,W,GAAA,W","file":"ConvexModel.js","sourcesContent":["import * as THREE from 'three';\r\nimport Physijs from '../physics/physi.js';\r\n\r\nimport {Shape} from '../core/Shape';\r\nimport {extend, loadMaterial} from '../extras/api';\r\nimport {loadJson} from '../utils/loader';\r\n\r\nclass ConvexModel extends Shape {\r\n constructor(params = {}) {\r\n super(params, 'model');\r\n\r\n extend(params.geometry, {\r\n path: '',\r\n physics: ''\r\n });\r\n\r\n this.build(params);\r\n super.wrap('wait');\r\n }\r\n\r\n build(params = {}) {\r\n const _scope = this,\r\n Mesh = this.physics ? Physijs.ConvexMesh : THREE.Mesh;\r\n\r\n const promise = new Promise((resolve) => {\r\n loadJson(params.geometry.path, (data, materials) => {\r\n if (params.geometry.physics) {\r\n loadJson(params.geometry.physics, data2 => {\r\n let material;\r\n\r\n if (params.material.useVertexColors) {\r\n material = loadMaterial(\r\n extend(params.material, {\r\n morphTargets: true,\r\n vertexColors: THREE.FaceColors\r\n })\r\n )._material;\r\n } else if (!materials || params.material.useCustomMaterial) {\r\n material = loadMaterial(\r\n params.material\r\n )._material;\r\n } else material = new THREE.MultiMaterial(materials);\r\n\r\n data.computeFaceNormals();\r\n data.computeVertexNormals();\r\n\r\n _scope.setNative(new Mesh(\r\n data,\r\n material,\r\n params.mass,\r\n data2,\r\n params.scale\r\n ));\r\n\r\n resolve();\r\n });\r\n } else {\r\n let material;\r\n\r\n if (params.material.useVertexColors) {\r\n material = loadMaterial(\r\n extend(params.material, {\r\n morphTargets: true,\r\n vertexColors: THREE.FaceColors\r\n })\r\n )._material;\r\n } else if (!materials || params.material.useCustomMaterial) {\r\n material = loadMaterial(\r\n params.material\r\n )._material;\r\n } else material = new THREE.MultiMaterial(materials);\r\n\r\n data.computeFaceNormals();\r\n data.computeVertexNormals();\r\n\r\n _scope.setNative(new Mesh(\r\n data,\r\n material,\r\n params.mass\r\n ));\r\n\r\n resolve();\r\n }\r\n });\r\n });\r\n\r\n super.wait(promise);\r\n\r\n return promise;\r\n }\r\n\r\n clone() {\r\n return new ConvexModel(this.getParams()).copy(this);\r\n }\r\n}\r\n\r\nexport {\r\n ConvexModel\r\n};\r\n"]}
|
||||
{"version":3,"sources":["meshes/ConvexModel.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;;;;;IAEM,W;;;AACJ,yBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,qHACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM,EADgB;AAEtB,eAAS;AAFa,KAAxB;;AAKA,UAAK,KAAL,CAAW,MAAX;AACA,wGAAW,MAAX;AATuB;AAUxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,UAAvB,GAAoC,MAAM,IADnD;;AAGA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,wBAAW,IAAX,CAAgB,OAAO,QAAP,CAAgB,IAAhC,EAAsC,UAAC,IAAD,EAAO,SAAP,EAAqB;AACzD,cAAI,OAAO,QAAP,CAAgB,OAApB,EAA6B;AAC3B,4BAAW,IAAX,CAAgB,OAAO,QAAP,CAAgB,OAAhC,EAAyC,iBAAS;AAChD,kBAAI,iBAAJ;;AAEA,kBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,2BAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,gCAAc,IADQ;AAEtB,gCAAc,MAAM;AAFE,iBAAxB,CADS,EAKT,SALF;AAMD,eAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,2BAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,eAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,mBAAK,kBAAL;AACA,mBAAK,oBAAL;;AAEA,qBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,EAIf,KAJe,EAKf,OAAO,KALQ,CAAjB;;AAQA;AACD,aA5BD;AA6BD,WA9BD,MA8BO;AACL,gBAAI,iBAAJ;;AAEA,gBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,yBAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,8BAAc,IADQ;AAEtB,8BAAc,MAAM;AAFE,eAAxB,CADS,EAKT,SALF;AAMD,aAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,yBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,aAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,iBAAK,kBAAL;AACA,iBAAK,oBAAL;;AAEA,mBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,CAAjB;;AAMA;AACD;AACF,SA1DD;AA2DD,OA5De,CAAhB;;AA8DA,wGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,WAAJ,CAAgB,KAAK,SAAL,EAAhB,EAAkC,IAAlC,CAAuC,IAAvC,CAAP;AACD;;;;;QAID,W,GAAA,W","file":"ConvexModel.js","sourcesContent":["import * as THREE from 'three';\r\nimport Physijs from '../physics/physi.js';\r\n\r\nimport {Shape} from '../core/Shape';\r\nimport {extend, loadMaterial, JSONLoader} from '../extras/api';\r\n\r\nclass ConvexModel extends Shape {\r\n constructor(params = {}) {\r\n super(params, 'model');\r\n\r\n extend(params.geometry, {\r\n path: '',\r\n physics: ''\r\n });\r\n\r\n this.build(params);\r\n super.wrap('wait');\r\n }\r\n\r\n build(params = {}) {\r\n const _scope = this,\r\n Mesh = this.physics ? Physijs.ConvexMesh : THREE.Mesh;\r\n\r\n const promise = new Promise((resolve) => {\r\n JSONLoader.load(params.geometry.path, (data, materials) => {\r\n if (params.geometry.physics) {\r\n JSONLoader.load(params.geometry.physics, data2 => {\r\n let material;\r\n\r\n if (params.material.useVertexColors) {\r\n material = loadMaterial(\r\n extend(params.material, {\r\n morphTargets: true,\r\n vertexColors: THREE.FaceColors\r\n })\r\n )._material;\r\n } else if (!materials || params.material.useCustomMaterial) {\r\n material = loadMaterial(\r\n params.material\r\n )._material;\r\n } else material = new THREE.MultiMaterial(materials);\r\n\r\n data.computeFaceNormals();\r\n data.computeVertexNormals();\r\n\r\n _scope.setNative(new Mesh(\r\n data,\r\n material,\r\n params.mass,\r\n data2,\r\n params.scale\r\n ));\r\n\r\n resolve();\r\n });\r\n } else {\r\n let material;\r\n\r\n if (params.material.useVertexColors) {\r\n material = loadMaterial(\r\n extend(params.material, {\r\n morphTargets: true,\r\n vertexColors: THREE.FaceColors\r\n })\r\n )._material;\r\n } else if (!materials || params.material.useCustomMaterial) {\r\n material = loadMaterial(\r\n params.material\r\n )._material;\r\n } else material = new THREE.MultiMaterial(materials);\r\n\r\n data.computeFaceNormals();\r\n data.computeVertexNormals();\r\n\r\n _scope.setNative(new Mesh(\r\n data,\r\n material,\r\n params.mass\r\n ));\r\n\r\n resolve();\r\n }\r\n });\r\n });\r\n\r\n super.wait(promise);\r\n\r\n return promise;\r\n }\r\n\r\n clone() {\r\n return new ConvexModel(this.getParams()).copy(this);\r\n }\r\n}\r\n\r\nexport {\r\n ConvexModel\r\n};\r\n"]}
|
||||
@ -45,8 +45,6 @@ var _Shape2 = require('../core/Shape');
|
||||
|
||||
var _api = require('../extras/api');
|
||||
|
||||
var _loader = require('../utils/loader');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
@ -81,9 +79,10 @@ var Model = function (_Shape) {
|
||||
Mesh = this.physics ? _physi2.default.ConcaveMesh : THREE.Mesh;
|
||||
|
||||
var promise = new _promise2.default(function (resolve) {
|
||||
(0, _loader.loadJson)(params.geometry.path, function (data, materials) {
|
||||
_api.JSONLoader.load(params.geometry.path, function (data, materials) {
|
||||
if (params.geometry.physics) {
|
||||
(0, _loader.loadJson)(params.geometry.physics, function (data2) {
|
||||
_api.JSONLoader.load(params.geometry.physics, function (data2) {
|
||||
var material = void 0;
|
||||
if (params.material.useVertexColors) {
|
||||
material = (0, _api.loadMaterial)((0, _api.extend)(params.material, {
|
||||
morphTargets: true,
|
||||
@ -102,7 +101,8 @@ var Model = function (_Shape) {
|
||||
});
|
||||
} else {
|
||||
if (params.material.useVertexColors) {
|
||||
material = (0, _api.loadMaterial)((0, _api.extend)(params.material, {
|
||||
var _material = void 0;
|
||||
_material = (0, _api.loadMaterial)((0, _api.extend)(params.material, {
|
||||
morphTargets: true,
|
||||
vertexColors: THREE.FaceColors
|
||||
}))._material;
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["meshes/Model.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;AACA;;;;;;IAEM,K;;;AACJ,mBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,+GACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;;AAEtB,YAAM,EAFgB;AAGtB,eAAS;;AAHa,KAAxB;;AAOA,UAAK,KAAL,CAAW,MAAX;AACA,kGAAW,MAAX;AAXuB;AAYxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,WAAvB,GAAqC,MAAM,IADpD;;AAGA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,8BAAS,OAAO,QAAP,CAAgB,IAAzB,EAA+B,UAAC,IAAD,EAAO,SAAP,EAAqB;AAClD,cAAI,OAAO,QAAP,CAAgB,OAApB,EAA6B;AAC3B,kCAAS,OAAO,QAAP,CAAgB,OAAzB,EAAkC,iBAAS;AACzC,kBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,2BAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,gCAAc,IADQ;AAEtB,gCAAc,MAAM;AAFE,iBAAxB,CADS,EAKT,SALF;AAMD,eAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,2BAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,eAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,mBAAK,kBAAL;AACA,mBAAK,oBAAL;;AAEA,qBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,EAIf,KAJe,EAKf,OAAO,KALQ,CAAjB;;AAQA;AACD,aA1BD;AA2BD,WA5BD,MA4BO;AACL,gBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,yBAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,8BAAc,IADQ;AAEtB,8BAAc,MAAM;AAFE,eAAxB,CADS,EAKT,SALF;AAMD,aAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,yBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,aAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,iBAAK,kBAAL;AACA,iBAAK,oBAAL;;AAEA,mBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,CAAjB;;AAMA;AACD;AACF,SAtDD;AAuDD,OAxDe,CAAhB;;AA0DA,kGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,SAAL,EAAV,EAA4B,KAAK,KAAjC,EAAwC,IAAxC,CAA6C,IAA7C,CAAP;AACD;;;;;QAID,K,GAAA,K","file":"Model.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial} from '../extras/api';\nimport {loadJson} from '../utils/loader';\n\nclass Model extends Shape {\n constructor(params = {}) {\n super(params, 'model');\n\n extend(params.geometry, {\n\n path: '',\n physics: ''\n\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this,\n Mesh = this.physics ? Physijs.ConcaveMesh : THREE.Mesh;\n\n const promise = new Promise((resolve) => {\n loadJson(params.geometry.path, (data, materials) => {\n if (params.geometry.physics) {\n loadJson(params.geometry.physics, data2 => {\n if (params.material.useVertexColors) {\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n _scope.setNative(new Mesh(\n data,\n material,\n params.mass,\n data2,\n params.scale\n ));\n\n resolve();\n });\n } else {\n if (params.material.useVertexColors) {\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n _scope.setNative(new Mesh(\n data,\n material,\n params.mass\n ));\n\n resolve();\n }\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Model(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Model\n};\n"]}
|
||||
{"version":3,"sources":["meshes/Model.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;;;;;IAEM,K;;;AACJ,mBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,+GACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;;AAEtB,YAAM,EAFgB;AAGtB,eAAS;;AAHa,KAAxB;;AAOA,UAAK,KAAL,CAAW,MAAX;AACA,kGAAW,MAAX;AAXuB;AAYxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,WAAvB,GAAqC,MAAM,IADpD;;AAGA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,wBAAW,IAAX,CAAgB,OAAO,QAAP,CAAgB,IAAhC,EAAsC,UAAC,IAAD,EAAO,SAAP,EAAqB;AACzD,cAAI,OAAO,QAAP,CAAgB,OAApB,EAA6B;AAC3B,4BAAW,IAAX,CAAgB,OAAO,QAAP,CAAgB,OAAhC,EAAyC,iBAAS;AAChD,kBAAI,iBAAJ;AACA,kBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,2BAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,gCAAc,IADQ;AAEtB,gCAAc,MAAM;AAFE,iBAAxB,CADS,EAKT,SALF;AAMD,eAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,2BAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,eAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,mBAAK,kBAAL;AACA,mBAAK,oBAAL;;AAEA,qBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,EAIf,KAJe,EAKf,OAAO,KALQ,CAAjB;;AAQA;AACD,aA3BD;AA4BD,WA7BD,MA6BO;AACL,gBAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,kBAAI,kBAAJ;AACA,0BAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,8BAAc,IADQ;AAEtB,8BAAc,MAAM;AAFE,eAAxB,CADS,EAKT,SALF;AAMD,aARD,MAQO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,yBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,aAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,iBAAK,kBAAL;AACA,iBAAK,oBAAL;;AAEA,mBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IADe,EAEf,QAFe,EAGf,OAAO,IAHQ,CAAjB;;AAMA;AACD;AACF,SAxDD;AAyDD,OA1De,CAAhB;;AA4DA,kGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,SAAL,EAAV,EAA4B,KAAK,KAAjC,EAAwC,IAAxC,CAA6C,IAA7C,CAAP;AACD;;;;;QAID,K,GAAA,K","file":"Model.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial, JSONLoader} from '../extras/api';\n\nclass Model extends Shape {\n constructor(params = {}) {\n super(params, 'model');\n\n extend(params.geometry, {\n\n path: '',\n physics: ''\n\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this,\n Mesh = this.physics ? Physijs.ConcaveMesh : THREE.Mesh;\n\n const promise = new Promise((resolve) => {\n JSONLoader.load(params.geometry.path, (data, materials) => {\n if (params.geometry.physics) {\n JSONLoader.load(params.geometry.physics, data2 => {\n let material;\n if (params.material.useVertexColors) {\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n _scope.setNative(new Mesh(\n data,\n material,\n params.mass,\n data2,\n params.scale\n ));\n\n resolve();\n });\n } else {\n if (params.material.useVertexColors) {\n let material;\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n _scope.setNative(new Mesh(\n data,\n material,\n params.mass\n ));\n\n resolve();\n }\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Model(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Model\n};\n"]}
|
||||
@ -45,7 +45,7 @@ var _Shape2 = require('../core/Shape');
|
||||
|
||||
var _api = require('../extras/api');
|
||||
|
||||
var _loader = require('../utils/loader');
|
||||
var _loaders = require('../utils/loaders');
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
@ -77,7 +77,7 @@ var Morph = function (_Shape) {
|
||||
var _scope = this;
|
||||
|
||||
var promise = new _promise2.default(function (resolve) {
|
||||
(0, _loader.loadJson)(params.geometry.path, function (data, materials) {
|
||||
(0, _loaders.loadJson)(params.geometry.path, function (data, materials) {
|
||||
if (params.material.useVertexColors) {
|
||||
material = (0, _api.loadMaterial)((0, _api.extend)(params.material, {
|
||||
morphTargets: true,
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["meshes/Morph.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;AACA;;;;;;IAEM,K;;;AACJ,mBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,+GACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM;AADgB,KAAxB;;AAIA,UAAK,KAAL,CAAW,MAAX;AACA,kGAAW,MAAX;AARuB;AASxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;;AAEA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,8BAAS,OAAO,QAAP,CAAgB,IAAzB,EAA+B,UAAC,IAAD,EAAO,SAAP,EAAqB;AAClD,cAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,uBAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,4BAAc,IADQ;AAEtB,4BAAc,MAAM;AAFE,aAAxB,CADS,EAKT,SALF;AAMD,WAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,uBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,WAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,eAAK,kBAAL;AACA,eAAK,oBAAL;;;AAGA,cAAM,OAAO,IAAI,MAAM,IAAV,CAAe,IAAf,EAAqB,QAArB,CAAb;AACA,eAAK,KAAL,GAAa,OAAO,KAAP,CAAa,KAA1B;AACA,eAAK,KAAL,GAAa,IAAI,MAAM,cAAV,CAAyB,IAAzB,CAAb;;AAEA,eAAK,KAAL,CACG,UADH,CACc,KAAK,UAAL,CAAgB,CAAhB,CADd,EAEG,WAFH,CAEe,OAAO,KAAP,CAAa,QAF5B,EAGG,IAHH;;AAKA,iBAAO,SAAP,CAAiB,IAAjB;;AAEA;AACD,SA9BD;AA+BD,OAhCe,CAAhB;;AAkCA,kGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,SAAL,EAAV,EAA4B,KAAK,KAAjC,EAAwC,IAAxC,CAA6C,IAA7C,CAAP;AACD;;;;;QAID,K,GAAA,K","file":"Morph.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial} from '../extras/api';\nimport {loadJson} from '../utils/loader';\n\nclass Morph extends Shape {\n constructor(params = {}) {\n super(params, 'morph');\n\n extend(params.geometry, {\n path: ''\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this;\n\n const promise = new Promise((resolve) => {\n loadJson(params.geometry.path, (data, materials) => {\n if (params.material.useVertexColors) {\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n // Visualization.\n const mesh = new THREE.Mesh(data, material);\n mesh.speed = params.morph.speed;\n mesh.mixer = new THREE.AnimationMixer(mesh);\n\n mesh.mixer\n .clipAction(data.animations[0])\n .setDuration(params.morph.duration)\n .play();\n\n _scope.setNative(mesh);\n\n resolve();\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Morph(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Morph\n};\n"]}
|
||||
{"version":3,"sources":["meshes/Morph.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;AACA;;;;;;IAEM,K;;;AACJ,mBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,+GACjB,MADiB,EACT,OADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM;AADgB,KAAxB;;AAIA,UAAK,KAAL,CAAW,MAAX;AACA,kGAAW,MAAX;AARuB;AASxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;;AAEA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,+BAAS,OAAO,QAAP,CAAgB,IAAzB,EAA+B,UAAC,IAAD,EAAO,SAAP,EAAqB;AAClD,cAAI,OAAO,QAAP,CAAgB,eAApB,EAAqC;AACnC,uBAAW,uBACT,iBAAO,OAAO,QAAd,EAAwB;AACtB,4BAAc,IADQ;AAEtB,4BAAc,MAAM;AAFE,aAAxB,CADS,EAKT,SALF;AAMD,WAPD,MAOO,IAAI,CAAC,SAAD,IAAc,OAAO,QAAP,CAAgB,iBAAlC,EAAqD;AAC1D,uBAAW,uBACT,OAAO,QADE,EAET,SAFF;AAGD,WAJM,MAIA,WAAW,IAAI,MAAM,aAAV,CAAwB,SAAxB,CAAX;;AAEP,eAAK,kBAAL;AACA,eAAK,oBAAL;;;AAGA,cAAM,OAAO,IAAI,MAAM,IAAV,CAAe,IAAf,EAAqB,QAArB,CAAb;AACA,eAAK,KAAL,GAAa,OAAO,KAAP,CAAa,KAA1B;AACA,eAAK,KAAL,GAAa,IAAI,MAAM,cAAV,CAAyB,IAAzB,CAAb;;AAEA,eAAK,KAAL,CACG,UADH,CACc,KAAK,UAAL,CAAgB,CAAhB,CADd,EAEG,WAFH,CAEe,OAAO,KAAP,CAAa,QAF5B,EAGG,IAHH;;AAKA,iBAAO,SAAP,CAAiB,IAAjB;;AAEA;AACD,SA9BD;AA+BD,OAhCe,CAAhB;;AAkCA,kGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,KAAJ,CAAU,KAAK,SAAL,EAAV,EAA4B,KAAK,KAAjC,EAAwC,IAAxC,CAA6C,IAA7C,CAAP;AACD;;;;;QAID,K,GAAA,K","file":"Morph.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial} from '../extras/api';\nimport {loadJson} from '../utils/loaders';\n\nclass Morph extends Shape {\n constructor(params = {}) {\n super(params, 'morph');\n\n extend(params.geometry, {\n path: ''\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this;\n\n const promise = new Promise((resolve) => {\n loadJson(params.geometry.path, (data, materials) => {\n if (params.material.useVertexColors) {\n material = loadMaterial(\n extend(params.material, {\n morphTargets: true,\n vertexColors: THREE.FaceColors\n })\n )._material;\n } else if (!materials || params.material.useCustomMaterial) {\n material = loadMaterial(\n params.material\n )._material;\n } else material = new THREE.MultiMaterial(materials);\n\n data.computeFaceNormals();\n data.computeVertexNormals();\n\n // Visualization.\n const mesh = new THREE.Mesh(data, material);\n mesh.speed = params.morph.speed;\n mesh.mixer = new THREE.AnimationMixer(mesh);\n\n mesh.mixer\n .clipAction(data.animations[0])\n .setDuration(params.morph.duration)\n .play();\n\n _scope.setNative(mesh);\n\n resolve();\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Morph(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Morph\n};\n"]}
|
||||
@ -87,7 +87,7 @@ var Text = function (_Shape) {
|
||||
material = (0, _get3.default)((0, _getPrototypeOf2.default)(Text.prototype), '_initMaterial', this).call(this, params.material);
|
||||
|
||||
var promise = new _promise2.default(function (resolve) {
|
||||
loadFont(params.geometry.parameters.font, function (font) {
|
||||
_api.FontLoader.load(params.geometry.parameters.font, function (font) {
|
||||
params.geometry.parameters.font = font;
|
||||
|
||||
_scope.setNative(new Mesh(new THREE.TextGeometry(params.geometry.text, params.geometry.parameters), material, params.mass));
|
||||
|
||||
@ -1 +1 @@
|
||||
{"version":3,"sources":["meshes/Text.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;;;;;IAEM,I;;;AACJ,kBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,8GACjB,MADiB,EACT,MADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM,cADgB;;AAGtB,kBAAY;AACV,cAAM,EADI;AAEV,gBAAQ,EAFE;AAGV,uBAAe,EAHL;AAIV,cAAM,IAAI,MAAM,IAAV,EAJI;AAKV,sBAAc,KALJ;AAMV,wBAAgB,EANN;AAOV,mBAAW;AAPD;AAHU,KAAxB;;AAcA,UAAK,KAAL,CAAW,MAAX;AACA,iGAAW,MAAX;AAlBuB;AAmBxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,WAAvB,GAAqC,MAAM,IADpD;UAEE,+GAA+B,OAAO,QAAtC,CAFF;;AAIA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,iBAAS,OAAO,QAAP,CAAgB,UAAhB,CAA2B,IAApC,EAA0C,gBAAQ;AAChD,iBAAO,QAAP,CAAgB,UAAhB,CAA2B,IAA3B,GAAkC,IAAlC;;AAEA,iBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IAAI,MAAM,YAAV,CACE,OAAO,QAAP,CAAgB,IADlB,EAEE,OAAO,QAAP,CAAgB,UAFlB,CADe,EAMf,QANe,EAOf,OAAO,IAPQ,CAAjB;;AAUA;AACD,SAdD;AAeD,OAhBe,CAAhB;;AAkBA,iGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,IAAJ,CAAS,KAAK,SAAL,EAAT,EAA2B,KAAK,KAAhC,EAAuC,IAAvC,CAA4C,IAA5C,CAAP;AACD;;;;;QAID,I,GAAA,I","file":"Text.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial} from '../extras/api';\n\nclass Text extends Shape {\n constructor(params = {}) {\n super(params, 'text');\n\n extend(params.geometry, {\n text: 'Hello World!',\n\n parameters: {\n size: 12,\n height: 50,\n curveSegments: 12,\n font: new THREE.Font(),\n bevelEnabled: false,\n bevelThickness: 10,\n bevelSize: 8\n }\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this,\n Mesh = this.physics ? Physijs.ConcaveMesh : THREE.Mesh,\n material = super._initMaterial(params.material);\n\n const promise = new Promise((resolve) => {\n loadFont(params.geometry.parameters.font, font => {\n params.geometry.parameters.font = font;\n\n _scope.setNative(new Mesh(\n new THREE.TextGeometry(\n params.geometry.text,\n params.geometry.parameters\n ),\n\n material,\n params.mass\n ));\n\n resolve();\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Text(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Text\n};\n"]}
|
||||
{"version":3,"sources":["meshes/Text.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;IAAY,K;;AACZ;;;;AAEA;;AACA;;;;;;IAEM,I;;;AACJ,kBAAyB;AAAA,QAAb,MAAa,yDAAJ,EAAI;AAAA;;AAAA,8GACjB,MADiB,EACT,MADS;;AAGvB,qBAAO,OAAO,QAAd,EAAwB;AACtB,YAAM,cADgB;;AAGtB,kBAAY;AACV,cAAM,EADI;AAEV,gBAAQ,EAFE;AAGV,uBAAe,EAHL;AAIV,cAAM,IAAI,MAAM,IAAV,EAJI;AAKV,sBAAc,KALJ;AAMV,wBAAgB,EANN;AAOV,mBAAW;AAPD;AAHU,KAAxB;;AAcA,UAAK,KAAL,CAAW,MAAX;AACA,iGAAW,MAAX;AAlBuB;AAmBxB;;;;4BAEkB;AAAA,UAAb,MAAa,yDAAJ,EAAI;;AACjB,UAAM,SAAS,IAAf;UACE,OAAO,KAAK,OAAL,GAAe,gBAAQ,WAAvB,GAAqC,MAAM,IADpD;UAEE,+GAA+B,OAAO,QAAtC,CAFF;;AAIA,UAAM,UAAU,sBAAY,UAAC,OAAD,EAAa;AACvC,wBAAW,IAAX,CAAgB,OAAO,QAAP,CAAgB,UAAhB,CAA2B,IAA3C,EAAiD,gBAAQ;AACvD,iBAAO,QAAP,CAAgB,UAAhB,CAA2B,IAA3B,GAAkC,IAAlC;;AAEA,iBAAO,SAAP,CAAiB,IAAI,IAAJ,CACf,IAAI,MAAM,YAAV,CACE,OAAO,QAAP,CAAgB,IADlB,EAEE,OAAO,QAAP,CAAgB,UAFlB,CADe,EAMf,QANe,EAOf,OAAO,IAPQ,CAAjB;;AAUA;AACD,SAdD;AAeD,OAhBe,CAAhB;;AAkBA,iGAAW,OAAX;;AAEA,aAAO,OAAP;AACD;;;4BAEO;AACN,aAAO,IAAI,IAAJ,CAAS,KAAK,SAAL,EAAT,EAA2B,KAAK,KAAhC,EAAuC,IAAvC,CAA4C,IAA5C,CAAP;AACD;;;;;QAID,I,GAAA,I","file":"Text.js","sourcesContent":["import * as THREE from 'three';\nimport Physijs from '../physics/physi.js';\n\nimport {Shape} from '../core/Shape';\nimport {extend, loadMaterial, FontLoader} from '../extras/api';\n\nclass Text extends Shape {\n constructor(params = {}) {\n super(params, 'text');\n\n extend(params.geometry, {\n text: 'Hello World!',\n\n parameters: {\n size: 12,\n height: 50,\n curveSegments: 12,\n font: new THREE.Font(),\n bevelEnabled: false,\n bevelThickness: 10,\n bevelSize: 8\n }\n });\n\n this.build(params);\n super.wrap('wait');\n }\n\n build(params = {}) {\n const _scope = this,\n Mesh = this.physics ? Physijs.ConcaveMesh : THREE.Mesh,\n material = super._initMaterial(params.material);\n\n const promise = new Promise((resolve) => {\n FontLoader.load(params.geometry.parameters.font, font => {\n params.geometry.parameters.font = font;\n\n _scope.setNative(new Mesh(\n new THREE.TextGeometry(\n params.geometry.text,\n params.geometry.parameters\n ),\n\n material,\n params.mass\n ));\n\n resolve();\n });\n });\n\n super.wait(promise);\n\n return promise;\n }\n\n clone() {\n return new Text(this.getParams(), this._type).copy(this);\n }\n}\n\nexport {\n Text\n};\n"]}
|
||||
11
lib/utils/defaults.js
Normal file
11
lib/utils/defaults.js
Normal file
@ -0,0 +1,11 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
var defaults = {
|
||||
debug: true
|
||||
};
|
||||
|
||||
exports.defaults = defaults;
|
||||
//# sourceMappingURL=defaults.js.map
|
||||
1
lib/utils/defaults.js.map
Normal file
1
lib/utils/defaults.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["utils/defaults.js"],"names":[],"mappings":";;;;;AAAA,IAAM,WAAW;AACf,SAAO;AADQ,CAAjB;;QAKE,Q,GAAA,Q","file":"defaults.js","sourcesContent":["const defaults = {\r\n debug: true\r\n};\r\n\r\nexport {\r\n defaults\r\n};\r\n"]}
|
||||
@ -1 +0,0 @@
|
||||
{"version":3,"sources":["utils/loader.js"],"names":[],"mappings":";;;;;;;AAAA;;IAAY,K;;;;AAEZ,IAAM,WAAW,IAAI,MAAM,UAAV,GAAuB,IAAxC;AACA,IAAM,cAAc,IAAI,MAAM,aAAV,GAA0B,IAA9C;AACA,IAAM,WAAW,IAAI,MAAM,UAAV,GAAuB,IAAxC;;QAGE,Q,GAAA,Q;QACA,W,GAAA,W;QACA,Q,GAAA,Q","file":"loader.js","sourcesContent":["import * as THREE from 'three';\r\n\r\nconst loadJson = new THREE.JSONLoader().load;\r\nconst loadTexture = new THREE.TextureLoader().load;\r\nconst loadFont = new THREE.FontLoader().load;\r\n\r\nexport {\r\n loadJson,\r\n loadTexture,\r\n loadFont\r\n};\r\n"]}
|
||||
@ -3,7 +3,7 @@
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.loadFont = exports.loadTexture = exports.loadJson = undefined;
|
||||
exports.FontLoader = exports.TextureLoader = exports.JSONLoader = undefined;
|
||||
|
||||
var _three = require('three');
|
||||
|
||||
@ -11,11 +11,11 @@ var THREE = _interopRequireWildcard(_three);
|
||||
|
||||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
|
||||
|
||||
var loadJson = new THREE.JSONLoader().load;
|
||||
var loadTexture = new THREE.TextureLoader().load;
|
||||
var loadFont = new THREE.FontLoader().load;
|
||||
var JSONLoader = new THREE.JSONLoader();
|
||||
var TextureLoader = new THREE.TextureLoader();
|
||||
var FontLoader = new THREE.FontLoader();
|
||||
|
||||
exports.loadJson = loadJson;
|
||||
exports.loadTexture = loadTexture;
|
||||
exports.loadFont = loadFont;
|
||||
//# sourceMappingURL=loader.js.map
|
||||
exports.JSONLoader = JSONLoader;
|
||||
exports.TextureLoader = TextureLoader;
|
||||
exports.FontLoader = FontLoader;
|
||||
//# sourceMappingURL=loaders.js.map
|
||||
1
lib/utils/loaders.js.map
Normal file
1
lib/utils/loaders.js.map
Normal file
@ -0,0 +1 @@
|
||||
{"version":3,"sources":["utils/loaders.js"],"names":[],"mappings":";;;;;;;AAAA;;IAAY,K;;;;AAEZ,IAAM,aAAa,IAAI,MAAM,UAAV,EAAnB;AACA,IAAM,gBAAgB,IAAI,MAAM,aAAV,EAAtB;AACA,IAAM,aAAa,IAAI,MAAM,UAAV,EAAnB;;QAGE,U,GAAA,U;QACA,a,GAAA,a;QACA,U,GAAA,U","file":"loaders.js","sourcesContent":["import * as THREE from 'three';\r\n\r\nconst JSONLoader = new THREE.JSONLoader();\r\nconst TextureLoader = new THREE.TextureLoader();\r\nconst FontLoader = new THREE.FontLoader();\r\n\r\nexport {\r\n JSONLoader,\r\n TextureLoader,\r\n FontLoader\r\n};\r\n"]}
|
||||
18
package.json
18
package.json
@ -39,17 +39,23 @@
|
||||
"whitestormjs-physijs": "^1.0.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"babel-loader": "^6.2.4",
|
||||
"babel-plugin-transform-es2015-modules-commonjs": "^6.8.0",
|
||||
"babel-plugin-transform-runtime": "^6.9.0",
|
||||
"babel-preset-es2015": "^6.6.0",
|
||||
"babel-preset-es2015-rollup": "^1.1.1",
|
||||
"babel-preset-es2015-webpack": "^6.4.1",
|
||||
"babel-preset-stage-1": "^6.5.0",
|
||||
"babel-register": "^6.8.0",
|
||||
"babelify": "^7.3.0",
|
||||
"browserify": "^13.0.1",
|
||||
"del": "^2.2.0",
|
||||
"gulp": "^3.9.1",
|
||||
"gulp-babel": "^6.1.2",
|
||||
"gulp-browser": "^2.1.9",
|
||||
"gulp-browserify": "^0.5.1",
|
||||
"gulp-cached": "^1.1.0",
|
||||
"gulp-changed": "^1.3.0",
|
||||
"gulp-if": "^2.0.0",
|
||||
"gulp-load-plugins": "^1.2.2",
|
||||
"gulp-rename": "^1.2.2",
|
||||
@ -57,25 +63,25 @@
|
||||
"gulp-sourcemaps": "^2.0.0-alpha",
|
||||
"gulp-swig": "^0.8.0",
|
||||
"gulp-util": "^3.0.7",
|
||||
"gulp-watch": "^4.3.6",
|
||||
"gulp-watch-swig": "^1.0.1",
|
||||
"gulp-webpack": "^1.5.0",
|
||||
"gulp-xo": "^0.11.0",
|
||||
"html-webpack-plugin": "^2.19.0",
|
||||
"jsdoc": "^3.4.0",
|
||||
"minivents": "^2.0.2",
|
||||
"path": "^0.12.7",
|
||||
"rollup": "^0.26.3",
|
||||
"rollup-plugin-commonjs": "^2.2.1",
|
||||
"rollup-plugin-includepaths": "^0.1.5",
|
||||
"rollup-plugin-inject": "^1.4.0",
|
||||
"rollup-plugin-node-resolve": "^1.5.0",
|
||||
"run-sequence": "^1.1.5",
|
||||
"stats.js": "^0.16.0",
|
||||
"stream-browserify": "^2.0.1",
|
||||
"swig": "^1.4.2",
|
||||
"swig-webpack-plugin": "^0.5.1",
|
||||
"three-orbit-controls": "^72.0.0",
|
||||
"through2": "^2.0.1",
|
||||
"vinyl-named": "^1.1.0",
|
||||
"vinyl-transform": "^1.0.0",
|
||||
"webpack": "^2.1.0-beta.7",
|
||||
"webpack-dev-server": "^1.14.1",
|
||||
"webpack-stream": "^3.2.0",
|
||||
"xo": "^0.15.1"
|
||||
},
|
||||
"xo": {
|
||||
|
||||
@ -3,7 +3,12 @@
|
||||
"stage-1"
|
||||
],
|
||||
"plugins": [
|
||||
"transform-runtime"
|
||||
"transform-runtime",
|
||||
["transform-es2015-modules-commonjs", {
|
||||
"allowTopLevelThis": true,
|
||||
"strict": true,
|
||||
"loose": true
|
||||
}]
|
||||
],
|
||||
"env": {
|
||||
"node": {
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import * as THREE from 'three';
|
||||
|
||||
import {Loop} from '../extensions/Loop';
|
||||
import {defaults} from '../utils/defaults';
|
||||
import {WHSObject} from './Object';
|
||||
|
||||
class Camera extends WHSObject {
|
||||
@ -55,7 +56,7 @@ class Camera extends WHSObject {
|
||||
helper: false
|
||||
});
|
||||
|
||||
if (WHS.debug)
|
||||
if (defaults.debug)
|
||||
console.debug(`@WHS.Camera: Camera ${scope._type} found.`, scope);
|
||||
|
||||
return scope;
|
||||
@ -88,7 +89,7 @@ class Camera extends WHSObject {
|
||||
this[tag] = true;
|
||||
});
|
||||
|
||||
if (WHS.debug)
|
||||
if (defaults.debug)
|
||||
console.debug(`@WHS.Camera: Camera ${this._type} is ready.`, this);
|
||||
|
||||
this.emit('ready');
|
||||
@ -117,7 +118,7 @@ class Camera extends WHSObject {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Camera: Camera ${_scope._type} was added to world.`,
|
||||
[_scope, _scope.parent]
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import * as THREE from 'three';
|
||||
|
||||
import {loadMaterial} from '../extras/api';
|
||||
import {defaults} from '../utils/defaults';
|
||||
import {WHSObject} from './Object';
|
||||
|
||||
class Curve extends WHSObject {
|
||||
@ -20,7 +21,6 @@ class Curve extends WHSObject {
|
||||
super.setParams(params);
|
||||
|
||||
const geometry = new THREE.Geometry();
|
||||
|
||||
geometry.vertices = params.geometry.curve.getPoints(params.geometry.points);
|
||||
|
||||
const curve = new THREE.Line(
|
||||
@ -30,12 +30,10 @@ class Curve extends WHSObject {
|
||||
|
||||
this.setNative(curve);
|
||||
|
||||
const scope = Object.assign(this,
|
||||
{
|
||||
_type: 'curve',
|
||||
__path: params.geometry.curve
|
||||
}
|
||||
);
|
||||
const scope = Object.assign(this, {
|
||||
_type: 'curve',
|
||||
__path: params.geometry.curve
|
||||
});
|
||||
|
||||
return scope;
|
||||
}
|
||||
@ -55,7 +53,7 @@ class Curve extends WHSObject {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Curve: Curve ${_scope._type} was added to world.`,
|
||||
[_scope, _scope.parent]
|
||||
@ -110,7 +108,7 @@ class Curve extends WHSObject {
|
||||
|
||||
this.emit('remove');
|
||||
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Curve: Curve ${this._type} was removed from world`,
|
||||
[_scope]
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import * as THREE from 'three';
|
||||
|
||||
import {Loop} from '../extensions/Loop';
|
||||
import {defaults} from '../utils/defaults';
|
||||
import {WHSObject} from './Object';
|
||||
|
||||
class Light extends WHSObject {
|
||||
@ -90,7 +91,7 @@ class Light extends WHSObject {
|
||||
_shadowmap: this.__params.shadowmap
|
||||
});
|
||||
|
||||
if (WHS.debug)
|
||||
if (defaults.debug)
|
||||
console.debug(`@WHS.Light: Light ${scope._type} found.`, scope);
|
||||
|
||||
return scope;
|
||||
@ -128,7 +129,7 @@ class Light extends WHSObject {
|
||||
_scope[tag] = true;
|
||||
});
|
||||
|
||||
if (WHS.debug)
|
||||
if (defaults.debug)
|
||||
console.debug(`@WHS.Light: Light ${_scope._type} + ' is ready.`, _scope);
|
||||
|
||||
_scope.emit('ready');
|
||||
@ -163,7 +164,7 @@ class Light extends WHSObject {
|
||||
console.error(err.message);
|
||||
reject();
|
||||
} finally {
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Camera: Camera ${_scope._type} was added to world.`,
|
||||
[_scope, _scope.parent]
|
||||
|
||||
@ -1,5 +1,4 @@
|
||||
import Events from 'minivents';
|
||||
|
||||
import {extend} from '../extras/api';
|
||||
|
||||
class WHSObject {
|
||||
@ -49,9 +48,9 @@ class WHSObject {
|
||||
add(children) {
|
||||
const _scope = this;
|
||||
|
||||
if (children instanceof WHS.Shape || children instanceof WHS.Light)
|
||||
if (children.addTo)
|
||||
return children.addTo(this);
|
||||
else if (children instanceof WHS.Object) {
|
||||
else if (children instanceof Object) {
|
||||
return new Promise((resolve) => {
|
||||
children.parent = _scope;
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ import * as THREE from 'three';
|
||||
|
||||
import {loadMaterial} from '../extras/api';
|
||||
import {Loop} from '../extensions/Loop';
|
||||
import {defaults} from '../utils/defaults';
|
||||
import {World} from './World';
|
||||
import {WHSObject} from './Object';
|
||||
|
||||
@ -85,7 +86,7 @@ class Shape extends WHSObject {
|
||||
physics: params.physics
|
||||
});
|
||||
|
||||
if (WHS.debug) console.debug(`@WHS.Shape: Shape ${scope._type} found.`, scope);
|
||||
if (defaults.debug) console.debug(`@WHS.Shape: Shape ${scope._type} found.`, scope);
|
||||
|
||||
return scope;
|
||||
}
|
||||
@ -188,7 +189,7 @@ class Shape extends WHSObject {
|
||||
);
|
||||
}
|
||||
|
||||
if (WHS.debug) console.debug(`@WHS.Shape: Shape ${_scope._type} is ready.`, _scope);
|
||||
if (defaults.debug) console.debug(`@WHS.Shape: Shape ${_scope._type} is ready.`, _scope);
|
||||
|
||||
_scope.emit('ready');
|
||||
|
||||
@ -282,7 +283,7 @@ class Shape extends WHSObject {
|
||||
);
|
||||
}
|
||||
|
||||
if (WHS.debug) console.debug(`@WHS.Shape: Shape ${_scope._type} is ready.`, _scope);
|
||||
if (defaults.debug) console.debug(`@WHS.Shape: Shape ${_scope._type} is ready.`, _scope);
|
||||
|
||||
resolve();
|
||||
|
||||
@ -341,7 +342,7 @@ class Shape extends WHSObject {
|
||||
_scope.emit('collide');
|
||||
});
|
||||
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Shape: Shape ${_scope._type} was added to world.`,
|
||||
[_scope, _scope.parent]
|
||||
@ -388,7 +389,7 @@ class Shape extends WHSObject {
|
||||
_scope.emit('ready');
|
||||
});
|
||||
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Shape: Shape ${_scope._type} was added to world.`,
|
||||
[_scope, _scope.parent]
|
||||
@ -448,7 +449,7 @@ class Shape extends WHSObject {
|
||||
|
||||
this.emit('remove');
|
||||
|
||||
if (WHS.debug) {
|
||||
if (defaults.debug) {
|
||||
console.debug(
|
||||
`@WHS.Shape: Shape ${this._type} was removed from world`,
|
||||
[this]
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import * as THREE from 'three';
|
||||
import Stats from 'stats.js';
|
||||
import Physijs from '../physics/physi.js';
|
||||
import Physijs from '../physics/physi.js';
|
||||
|
||||
import {PerspectiveCamera} from '../cameras/PerspectiveCamera';
|
||||
import {Camera} from './Camera';
|
||||
|
||||
7
src/utils/defaults.js
Normal file
7
src/utils/defaults.js
Normal file
@ -0,0 +1,7 @@
|
||||
const defaults = {
|
||||
debug: false
|
||||
};
|
||||
|
||||
export {
|
||||
defaults
|
||||
};
|
||||
@ -1,6 +1,5 @@
|
||||
import {join} from 'path';
|
||||
import webpack from 'webpack';
|
||||
import fs from 'fs';
|
||||
|
||||
process.env.BABEL_ENV = 'browser';
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user