Roll src/third_party/WebKit eac3800:0237a66 (svn 202606:202607)
[chromium-blink-merge.git] / native_client_sdk / src / gonacl_appengine / static / bullet / world.js
bloba07465efc5b8ac60abb2d071f7fb3660ca9ab13e
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 function verifyWorldDescription(description) {
6 var shapes = description['shapes'];
7 var bodies = description['bodies'];
8 //var constraints = description['constraints'];
10 var i;
11 var r;
12 for (i = 0; i < shapes.length; i++) {
13 r = verifyShapeDescription(shapes[i]);
14 if (r == false) {
15 return false;
19 for (i = 0; i < bodies.length; i++) {
20 r = verifyBodyDescription(bodies[i], shapes);
21 if (r == false) {
22 return false;
26 return true;
29 function verifyShapeExists(name, shapes) {
30 var i;
31 for (i = 0; i < shapes.length; i++) {
32 if (shapes[i].name == name) {
33 return true;
36 return false;
39 function verifyBodyDescription(body, shapes) {
40 var shapeName = body['shape'];
41 var mass = body['mass'];
42 var friction = body['friction'];
43 var transform = body['transform'];
44 if (shapeName == undefined) {
45 console.log('Body needs a shapename.');
46 return false;
48 if (mass == undefined) {
49 console.log('Body needs a mass.');
50 return false;
52 if (friction == undefined) {
53 console.log('Body needs a friction.');
54 return false;
56 if (transform == undefined) {
57 console.log('Body needs a transform.');
58 return false;
60 if (transform[0] == undefined) {
61 console.log('Body needs a transform array.');
62 return false;
64 return verifyShapeExists(shapeName, shapes);
67 function verifyShapeDescription(shape) {
68 if (shape['name'] == undefined) {
69 console.log('Shape needs a name.');
70 return false;
73 var type = shape['type'];
75 if (type != "cube" &&
76 type != "sphere" &&
77 type != "cylinder" &&
78 type != "convex") {
79 console.log('Shape type - ' + type + ' not supported.');
80 return false;
83 if (type == "cube") {
84 return verifyCubeDescription(shape);
87 if (type == "sphere") {
88 return verifySphereDescription(shape);
91 if (type == "cylinder") {
92 return verifyCylinderDescription(shape);
95 if (type == "convex") {
96 return verifyConvexDescription(shape);
99 return false;
102 function verifyCubeDescription(shape) {
103 if (shape['wx'] == undefined) {
104 return false;
106 if (shape['wy'] == undefined) {
107 return false;
109 if (shape['wz'] == undefined) {
110 return false;
112 return true;
115 function verifySphereDescription(shape) {
116 if (shape['radius'] == undefined) {
117 return false;
119 return true;
122 function verifyCylinderDescription(shape) {
123 if (shape['radius'] == undefined) {
124 return false;
126 if (shape['height'] == undefined) {
127 return false;
129 return true;
132 function verifyConvexDescription(shape) {
133 if (shape['points'] == undefined) {
134 return false;
136 if (shape['points'][0] == undefined) {
137 return false;
139 return true;