UNPKG

ami.js

Version:

<p align="center"> <img src="https://cloud.githubusercontent.com/assets/214063/23213764/78ade038-f90c-11e6-8208-4fcade5f3832.png" width="60%"> </p>

108 lines (99 loc) 2.79 kB
/** * Validate basic structures. * * @example * //Returns true * VJS.Core.Validators.matrix4(new THREE.Matrix4()); * * //Returns false * VJS.Core.Validators.matrix4(new THREE.Vector3()); * * @module core/validators */ export default class Validators { /** * Validates a matrix as a THREEJS.Matrix4 * link * @param {Object} objectToTest - The object to be tested. * @return {boolean} True if valid Matrix4, false if NOT. */ static matrix4(objectToTest) { if (!(objectToTest !== null && typeof objectToTest !== 'undefined' && objectToTest.hasOwnProperty('elements') && objectToTest.elements.length === 16 && typeof objectToTest.identity === 'function'&& typeof objectToTest.copy === 'function' && typeof objectToTest.determinant === 'function')) { return false; } return true; } /** * Validates a vector as a THREEJS.Vector3 * @param {Object} objectToTest - The object to be tested. * @return {boolean} True if valid Vector3, false if NOT. */ static vector3(objectToTest) { if (!(objectToTest !== null && typeof objectToTest !== 'undefined' && objectToTest.hasOwnProperty('x') && objectToTest.hasOwnProperty('y') && objectToTest.hasOwnProperty('z') && !objectToTest.hasOwnProperty('w'))) { return false; } return true; } /** * Validates a box. * * @example * // a box is defined as * let box = { * center: THREE.Vector3, * halfDimensions: THREE.Vector3 * } * * @param {Object} objectToTest - The object to be tested. * @return {boolean} True if valid box, false if NOT. */ static box(objectToTest) { if (!(objectToTest !== null && typeof objectToTest !== 'undefined' && objectToTest.hasOwnProperty('center') && this.vector3(objectToTest.center) && objectToTest.hasOwnProperty('halfDimensions') && this.vector3(objectToTest.halfDimensions) && objectToTest.halfDimensions.x >= 0 && objectToTest.halfDimensions.y >= 0 && objectToTest.halfDimensions.z >= 0)) { return false; } return true; } /** * Validates a ray. * * @example * // a ray is defined as * let ray = { * postion: THREE.Vector3, * direction: THREE.Vector3 * } * * @param {Object} objectToTest - The object to be tested. * @return {boolean} True if valid ray, false if NOT. */ static ray(objectToTest) { if (!(objectToTest !== null && typeof objectToTest !== 'undefined' && objectToTest.hasOwnProperty('position') && this.vector3(objectToTest.position) && objectToTest.hasOwnProperty('direction') && this.vector3(objectToTest.direction))) { return false; } return true; } }