| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 |
- import { ObjectLoader } from '../../../src/loaders/ObjectLoader.js';
- export default QUnit.module( 'JSON4 Format', () => {
- QUnit.module( 'Cameras', () => {
- QUnit.test( 'PerspectiveCamera - fov, aspect, near, far', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'cam-1',
- type: 'PerspectiveCamera',
- fov: 75,
- aspect: 1.5,
- near: 0.1,
- far: 1000,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 5, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const camera = loader.parse( json );
- assert.ok( camera.isPerspectiveCamera, 'Is PerspectiveCamera' );
- assert.strictEqual( camera.fov, 75, 'FOV is 75' );
- assert.strictEqual( camera.aspect, 1.5, 'Aspect is 1.5' );
- assert.strictEqual( camera.near, 0.1, 'Near is 0.1' );
- assert.strictEqual( camera.far, 1000, 'Far is 1000' );
- } );
- QUnit.test( 'PerspectiveCamera - zoom', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'cam-1',
- type: 'PerspectiveCamera',
- fov: 50,
- aspect: 1,
- near: 0.1,
- far: 100,
- zoom: 2,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const camera = loader.parse( json );
- assert.strictEqual( camera.zoom, 2, 'Zoom is 2' );
- } );
- QUnit.test( 'PerspectiveCamera - focus, filmGauge, filmOffset', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'cam-1',
- type: 'PerspectiveCamera',
- fov: 50,
- aspect: 1,
- near: 0.1,
- far: 100,
- focus: 15,
- filmGauge: 35,
- filmOffset: 5,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const camera = loader.parse( json );
- assert.strictEqual( camera.focus, 15, 'Focus is 15' );
- assert.strictEqual( camera.filmGauge, 35, 'FilmGauge is 35' );
- assert.strictEqual( camera.filmOffset, 5, 'FilmOffset is 5' );
- } );
- QUnit.test( 'OrthographicCamera - left, right, top, bottom, near, far', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'cam-1',
- type: 'OrthographicCamera',
- left: - 10,
- right: 10,
- top: 10,
- bottom: - 10,
- near: 0.1,
- far: 100,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 10, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const camera = loader.parse( json );
- assert.ok( camera.isOrthographicCamera, 'Is OrthographicCamera' );
- assert.strictEqual( camera.left, - 10, 'Left is -10' );
- assert.strictEqual( camera.right, 10, 'Right is 10' );
- assert.strictEqual( camera.top, 10, 'Top is 10' );
- assert.strictEqual( camera.bottom, - 10, 'Bottom is -10' );
- assert.strictEqual( camera.near, 0.1, 'Near is 0.1' );
- assert.strictEqual( camera.far, 100, 'Far is 100' );
- } );
- QUnit.test( 'OrthographicCamera - zoom', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'cam-1',
- type: 'OrthographicCamera',
- left: - 5,
- right: 5,
- top: 5,
- bottom: - 5,
- near: 1,
- far: 50,
- zoom: 0.5,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const camera = loader.parse( json );
- assert.strictEqual( camera.zoom, 0.5, 'Zoom is 0.5' );
- } );
- QUnit.test( 'Camera in scene hierarchy', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- object: {
- uuid: 'scene-1',
- type: 'Scene',
- children: [
- {
- uuid: 'cam-1',
- type: 'PerspectiveCamera',
- name: 'MainCamera',
- fov: 60,
- aspect: 16 / 9,
- near: 0.5,
- far: 500,
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 2, 10, 1 ],
- layers: 1
- }
- ]
- }
- };
- const loader = new ObjectLoader();
- const scene = loader.parse( json );
- const camera = scene.children[ 0 ];
- assert.ok( scene.isScene, 'Root is Scene' );
- assert.ok( camera.isPerspectiveCamera, 'Child is PerspectiveCamera' );
- assert.strictEqual( camera.name, 'MainCamera', 'Camera name' );
- assert.strictEqual( camera.position.z, 10, 'Camera position.z' );
- } );
- } );
- } );
|