1 | const Vector3D = require('./math/Vector3')
|
2 | const Vector2D = require('./math/Vector2')
|
3 |
|
4 |
|
5 |
|
6 | const parseOption = function (options, optionname, defaultvalue) {
|
7 | var result = defaultvalue
|
8 | if (options && optionname in options) {
|
9 | result = options[optionname]
|
10 | }
|
11 | return result
|
12 | }
|
13 |
|
14 |
|
15 |
|
16 | const parseOptionAs3DVector = function (options, optionname, defaultvalue) {
|
17 | var result = parseOption(options, optionname, defaultvalue)
|
18 | result = new Vector3D(result)
|
19 | return result
|
20 | }
|
21 |
|
22 | const parseOptionAs3DVectorList = function (options, optionname, defaultvalue) {
|
23 | var result = parseOption(options, optionname, defaultvalue)
|
24 | return result.map(function (res) {
|
25 | return new Vector3D(res)
|
26 | })
|
27 | }
|
28 |
|
29 |
|
30 |
|
31 | const parseOptionAs2DVector = function (options, optionname, defaultvalue) {
|
32 | var result = parseOption(options, optionname, defaultvalue)
|
33 | result = new Vector2D(result)
|
34 | return result
|
35 | }
|
36 |
|
37 | const parseOptionAsFloat = function (options, optionname, defaultvalue) {
|
38 | var result = parseOption(options, optionname, defaultvalue)
|
39 | if (typeof (result) === 'string') {
|
40 | result = Number(result)
|
41 | }
|
42 | if (isNaN(result) || typeof (result) !== 'number') {
|
43 | throw new Error('Parameter ' + optionname + ' should be a number')
|
44 | }
|
45 | return result
|
46 | }
|
47 |
|
48 | const parseOptionAsInt = function (options, optionname, defaultvalue) {
|
49 | var result = parseOption(options, optionname, defaultvalue)
|
50 | result = Number(Math.floor(result))
|
51 | if (isNaN(result)) {
|
52 | throw new Error('Parameter ' + optionname + ' should be a number')
|
53 | }
|
54 | return result
|
55 | }
|
56 |
|
57 | const parseOptionAsBool = function (options, optionname, defaultvalue) {
|
58 | var result = parseOption(options, optionname, defaultvalue)
|
59 | if (typeof (result) === 'string') {
|
60 | if (result === 'true') result = true
|
61 | else if (result === 'false') result = false
|
62 | else if (result === 0) result = false
|
63 | }
|
64 | result = !!result
|
65 | return result
|
66 | }
|
67 |
|
68 | module.exports = {
|
69 | parseOption,
|
70 | parseOptionAsInt,
|
71 | parseOptionAsFloat,
|
72 | parseOptionAsBool,
|
73 | parseOptionAs3DVector,
|
74 | parseOptionAs2DVector,
|
75 | parseOptionAs3DVectorList
|
76 | }
|