update( delta ) {

			const manager = this.manager;
			const mesh = this.mesh; // rigid bodies and constrains are for
			// mesh's world scale (1, 1, 1).
			// Convert to (1, 1, 1) if it isn't.

			let isNonDefaultScale = false;
			const position = manager.allocThreeVector3();
			const quaternion = manager.allocThreeQuaternion();
			const scale = manager.allocThreeVector3();
			mesh.matrixWorld.decompose( position, quaternion, scale );

			if ( scale.x !== 1 || scale.y !== 1 || scale.z !== 1 ) {

				isNonDefaultScale = true;

			}

			let parent;

			if ( isNonDefaultScale ) {

				parent = mesh.parent;
				if ( parent !== null ) mesh.parent = null;
				scale.copy( this.mesh.scale );
				mesh.scale.set( 1, 1, 1 );
				mesh.updateMatrixWorld( true );

			} // calculate physics and update bones


			this._updateRigidBodies();

			this._stepSimulation( delta );

			this._updateBones(); // restore mesh if converted above


			if ( isNonDefaultScale ) {

				if ( parent !== null ) mesh.parent = parent;
				mesh.scale.copy( scale );

			}

			manager.freeThreeVector3( scale );
			manager.freeThreeQuaternion( quaternion );
			manager.freeThreeVector3( position );
			return this;

		}
Advances Physics calculation and updates bones.

@param {Number} delta - time in second
@return {MMDPhysics}