1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- /**
- * @author simonThiele / https://github.com/simonThiele
- */
- module( "InstancedBufferGeometry" );
- function createClonableMock() {
- return {
- callCount: 0,
- clone: function() {
- this.callCount++;
- return this;
- }
- }
- }
- test( "copy", function() {
- var instanceMock1 = {};
- var instanceMock2 = {};
- var indexMock = createClonableMock();
- var attributeMock1 = {};
- var attributeMock2 = {};
- var instance = new THREE.InstancedBufferGeometry();
- instance.addGroup( 0, 10, instanceMock1 );
- instance.addGroup( 10, 5, instanceMock2 );
- instance.setIndex( indexMock );
- instance.addAttribute( 'attributeMock1', attributeMock1 );
- instance.addAttribute( 'attributeMock2', attributeMock2 );
- var copiedInstance = instance.copy( instance );
- ok( copiedInstance instanceof THREE.InstancedBufferGeometry, "the clone has the correct type" );
- ok( copiedInstance.index === indexMock, "index was copied" );
- ok( copiedInstance.index.callCount === 1, "index.clone was called once" );
- ok( copiedInstance.attributes['attributeMock1'] instanceof THREE.BufferAttribute, "attribute was created" );
- // the given attribute mock was passed to the array property of the created buffer attribute
- ok( copiedInstance.attributes['attributeMock1'].array === attributeMock1, "attribute was copied" );
- ok( copiedInstance.attributes['attributeMock2'].array === attributeMock2, "attribute was copied" );
- ok( copiedInstance.groups[0].start === 0, "group was copied" );
- ok( copiedInstance.groups[0].count === 10, "group was copied" );
- ok( copiedInstance.groups[0].instances === instanceMock1, "group was copied" );
- ok( copiedInstance.groups[1].start === 10, "group was copied" );
- ok( copiedInstance.groups[1].count === 5, "group was copied" );
- ok( copiedInstance.groups[1].instances === instanceMock2, "group was copied" );
- });
|