Skip to content

Commit cd194e5

Browse files
committed
Update to BabylonJS 3.2 and use named exports instead of 'import * as ...'
1 parent 3bda1b3 commit cd194e5

File tree

2 files changed

+25
-24
lines changed

2 files changed

+25
-24
lines changed

babylonjs-site/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"homepage": "https://brianzinn.github.io/create-react-app-typescript-babylonjs",
55
"private": true,
66
"dependencies": {
7-
"babylonjs": "3.1.0-alpha3.4",
8-
"babylonjs-gui": "3.1.0-alpha3.4",
7+
"babylonjs": "3.2.0",
8+
"babylonjs-gui": "3.2.0",
99
"bootstrap": "^3.3.7",
1010
"cannon": "^0.6.2",
1111
"gh-pages": "^1.0.0",

babylonjs-site/src/containers/home/index.tsx

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
import * as React from 'react';
22
import { RouteComponentProps } from 'react-router-dom';
33
import { Panel, Well } from 'react-bootstrap';
4-
import * as BABYLON from 'babylonjs';
5-
import * as GUI from 'babylonjs-gui'
4+
import { Scene as BabylonScene, Vector3, HemisphericLight, DirectionalLight, CannonJSPlugin, ArcRotateCamera, MeshBuilder, ShadowGenerator,
5+
StandardMaterial, PhysicsImpostor, Mesh, Color3 } from 'babylonjs';
6+
import { AdvancedDynamicTexture, Button } from 'babylonjs-gui'
67

78
import { Scene as ReactBabylonJsScene, SceneEventArgs } from 'react-babylonjs';
89

@@ -11,37 +12,37 @@ window.CANNON = CANNON
1112

1213
export default class Home extends React.Component<RouteComponentProps<{}>, {}> {
1314

14-
private scene: BABYLON.Scene;
15+
private scene: BabylonScene;
1516

1617
onSceneMount = (e: SceneEventArgs) => {
1718
const { canvas, scene, engine } = e;
1819

1920
this.scene = scene;
2021

21-
const gravityVector = new BABYLON.Vector3(0, -9.81, 0);
22+
const gravityVector = new Vector3(0, -9.81, 0);
2223

2324
// update /Views/Shared/_Layout.cshtml to include JS for engine of choice.
2425
//this.scene.enablePhysics(gravityVector, new OimoJSPlugin())
25-
this.scene.enablePhysics(gravityVector, new BABYLON.CannonJSPlugin())
26+
this.scene.enablePhysics(gravityVector, new CannonJSPlugin())
2627

27-
let light = new BABYLON.HemisphericLight('hemi', new BABYLON.Vector3(0, -1, 0), scene);
28+
let light = new HemisphericLight('hemi', new Vector3(0, -1, 0), scene);
2829
light.intensity = 0.8;
2930

30-
let shadowLight = new BABYLON.DirectionalLight('dir01', new BABYLON.Vector3(1, -0.75, 1), scene);
31-
shadowLight.position = new BABYLON.Vector3(-40, 30, -40);
31+
let shadowLight = new DirectionalLight('dir01', new Vector3(1, -0.75, 1), scene);
32+
shadowLight.position = new Vector3(-40, 30, -40);
3233
shadowLight.intensity = 0.4;
3334
shadowLight.shadowMinZ = 1;
3435
shadowLight.shadowMaxZ = 2500;
3536

36-
var camera = new BABYLON.ArcRotateCamera('Camera', Math.PI / -2, Math.PI / 4, 16, BABYLON.Vector3.Zero(), scene);
37+
var camera = new ArcRotateCamera('Camera', Math.PI / -2, Math.PI / 4, 16, Vector3.Zero(), scene);
3738
// camera.lowerAlphaLimit = -0.0001;
3839
// camera.upperAlphaLimit = 0.0001;
3940
camera.lowerRadiusLimit = 8; // zoom right into logo
4041
camera.upperRadiusLimit = 20;
4142
camera.upperBetaLimit = Math.PI / 2;
4243
camera.attachControl(canvas);
4344

44-
let shadowGenerator = new BABYLON.ShadowGenerator(1024 /* size of shadow map */, shadowLight);
45+
let shadowGenerator: ShadowGenerator = new ShadowGenerator(1024 /* size of shadow map */, shadowLight);
4546
shadowGenerator.bias = 0.001;
4647
shadowGenerator.depthScale = 2500;
4748

@@ -50,10 +51,10 @@ export default class Home extends React.Component<RouteComponentProps<{}>, {}> {
5051
shadowGenerator.forceBackFacesOnly = true;
5152
shadowGenerator.depthScale = 100;
5253

53-
var floor = BABYLON.MeshBuilder.CreateBox('ground', { width: 10, height: 1, depth: 10 }, scene);
54+
var floor = MeshBuilder.CreateBox('ground', { width: 10, height: 1, depth: 10 }, scene);
5455

55-
var darkMaterial = new BABYLON.StandardMaterial('Grey', scene);
56-
darkMaterial.diffuseColor = BABYLON.Color3.FromInts(255, 255, 255); // Color3.FromInts(200, 200, 200)
56+
var darkMaterial = new StandardMaterial('Grey', scene);
57+
darkMaterial.diffuseColor = Color3.FromInts(255, 255, 255); // Color3.FromInts(200, 200, 200)
5758
floor.material = darkMaterial;
5859
floor.receiveShadows = true;
5960

@@ -62,32 +63,32 @@ export default class Home extends React.Component<RouteComponentProps<{}>, {}> {
6263
scene.registerBeforeRender(() => {
6364
shadowLight.position.x = Math.cos(camera.alpha + radiansFromCameraForShadows) * 40;
6465
shadowLight.position.z = Math.sin(camera.alpha + radiansFromCameraForShadows) * 40;
65-
shadowLight.setDirectionToTarget(BABYLON.Vector3.Zero());
66+
shadowLight.setDirectionToTarget(Vector3.Zero());
6667
});
6768

68-
var sphere = BABYLON.Mesh.CreateSphere('sphere', 10, 2, scene, false);
69+
var sphere = Mesh.CreateSphere('sphere', 10, 2, scene, false);
6970
sphere.position.y = 5
7071

71-
shadowGenerator.getShadowMap().renderList.push(sphere);
72+
shadowGenerator.getShadowMap()!.renderList!.push(sphere);
7273

73-
sphere.physicsImpostor = new BABYLON.PhysicsImpostor(sphere, BABYLON.PhysicsImpostor.SphereImpostor, { mass: 1, restitution: 0.9 }, scene);
74-
floor.physicsImpostor = new BABYLON.PhysicsImpostor(floor, BABYLON.PhysicsImpostor.BoxImpostor, { mass: 0, restitution: 0.9 }, scene);
74+
sphere.physicsImpostor = new PhysicsImpostor(sphere, PhysicsImpostor.SphereImpostor, { mass: 1, restitution: 0.9 }, scene);
75+
floor.physicsImpostor = new PhysicsImpostor(floor, PhysicsImpostor.BoxImpostor, { mass: 0, restitution: 0.9 }, scene);
7576

7677
// GUI
77-
var plane = BABYLON.MeshBuilder.CreatePlane("plane", {size: 2}, scene);
78+
var plane = MeshBuilder.CreatePlane("plane", {size: 2}, scene);
7879
plane.parent = sphere;
7980
plane.position.y = 2;
8081

81-
var advancedTexture = GUI.AdvancedDynamicTexture.CreateForMesh(plane);
82+
var advancedTexture = AdvancedDynamicTexture.CreateForMesh(plane);
8283

83-
var button1 = GUI.Button.CreateSimpleButton("but1", "Click Me");
84+
var button1 = Button.CreateSimpleButton("but1", "Click Me");
8485
button1.width = 1;
8586
button1.height = 0.4;
8687
button1.color = "white";
8788
button1.fontSize = 200;
8889
button1.background = "green";
8990
button1.onPointerUpObservable.add(function() {
90-
sphere.physicsImpostor.applyImpulse(new BABYLON.Vector3(0, 10, 0), sphere.getAbsolutePosition());
91+
sphere.physicsImpostor!.applyImpulse(new Vector3(0, 10, 0), sphere.getAbsolutePosition());
9192
});
9293
advancedTexture.addControl(button1);
9394

0 commit comments

Comments
 (0)