{"version":3,"sources":["jsdelivr-header.js","/npm/css3drenderer@0.0.0/CSS3DRenderer.js"],"names":[],"mappings":"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","file":"/npm/css3drenderer@0.0.0/CSS3DRenderer.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/css3drenderer@0.0.0/CSS3DRenderer.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/**\r\n * Based on http://www.emagix.net/academic/mscs-project/item/camera-sync-with-css3-and-webgl-threejs\r\n * @author mrdoob / http://mrdoob.com/\r\n */\r\n\r\nvar THREE = require('three') \r\n\r\nmodule.exports = THREE\r\n\r\nTHREE.CSS3DObject = function ( element ) {\r\n\r\n\tTHREE.Object3D.call( this );\r\n\r\n\tthis.element = element;\r\n\tthis.element.style.position = \"absolute\";\r\n\tthis.element.style.WebkitTransformStyle = 'preserve-3d';\r\n\tthis.element.style.MozTransformStyle = 'preserve-3d';\r\n\tthis.element.style.oTransformStyle = 'preserve-3d';\r\n\tthis.element.style.transformStyle = 'preserve-3d';\r\n\r\n};\r\n\r\nTHREE.CSS3DObject.prototype = Object.create( THREE.Object3D.prototype );\r\n\r\nTHREE.CSS3DSprite = function ( element ) {\r\n\r\n\tTHREE.CSS3DObject.call( this, element );\r\n\r\n};\r\n\r\nTHREE.CSS3DSprite.prototype = Object.create( THREE.CSS3DObject.prototype );\r\n\r\n//\r\n\r\nTHREE.CSS3DRenderer = function () {\r\n\r\n\tconsole.log( 'THREE.CSS3DRenderer', THREE.REVISION );\r\n\r\n\tvar _width, _height;\r\n\tvar _widthHalf, _heightHalf;\r\n\r\n\tvar matrix = new THREE.Matrix4();\r\n\r\n\tvar domElement = document.createElement( 'div' );\r\n\tdomElement.style.overflow = 'hidden';\r\n\r\n\tdomElement.style.WebkitTransformStyle = 'preserve-3d';\r\n\tdomElement.style.WebkitPerspectiveOrigin = '50% 50%';\r\n\r\n\tdomElement.style.MozTransformStyle = 'preserve-3d';\r\n\tdomElement.style.MozPerspectiveOrigin = '50% 50%';\r\n\r\n\tdomElement.style.oTransformStyle = 'preserve-3d';\r\n\tdomElement.style.oPerspectiveOrigin = '50% 50%';\r\n\r\n\tdomElement.style.transformStyle = 'preserve-3d';\r\n\tdomElement.style.perspectiveOrigin = '50% 50%';\r\n\r\n\tthis.domElement = domElement;\r\n\r\n\tvar cameraElement = document.createElement( 'div' );\r\n\r\n\tcameraElement.style.WebkitTransformStyle = 'preserve-3d';\r\n\tcameraElement.style.MozTransformStyle = 'preserve-3d';\r\n\tcameraElement.style.oTransformStyle = 'preserve-3d';\r\n\tcameraElement.style.transformStyle = 'preserve-3d';\r\n\r\n\tdomElement.appendChild( cameraElement );\r\n\r\n\tthis.cameraElement = cameraElement;\r\n\r\n\tthis.setSize = function ( width, height ) {\r\n\r\n\t\t_width = width;\r\n\t\t_height = height;\r\n\r\n\t\t_widthHalf = _width / 2;\r\n\t\t_heightHalf = _height / 2;\r\n\r\n\t\tdomElement.style.width = width + 'px';\r\n\t\tdomElement.style.height = height + 'px';\r\n\r\n\t\tcameraElement.style.width = width + 'px';\r\n\t\tcameraElement.style.height = height + 'px';\r\n\r\n\t};\r\n\r\n\tvar epsilon = function ( value ) {\r\n\r\n\t\treturn Math.abs( value ) < 0.000001 ? 0 : value;\r\n\r\n        };\r\n\r\n\tvar getCameraCSSMatrix = function ( matrix ) {\r\n\r\n\t\tvar elements = matrix.elements;\r\n\r\n\t\treturn 'matrix3d(' +\r\n\t\t\tepsilon( elements[ 0 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 1 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 2 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 3 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 4 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 5 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 6 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 7 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 8 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 9 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 10 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 11 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 12 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 13 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 14 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 15 ] ) +\r\n\t\t')';\r\n\r\n\t};\r\n\r\n\tvar getObjectCSSMatrix = function ( matrix ) {\r\n\r\n\t\tvar elements = matrix.elements;\r\n\r\n\t\treturn 'translate3d(-50%,-50%,0) matrix3d(' +\r\n\t\t\tepsilon( elements[ 0 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 1 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 2 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 3 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 4 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 5 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 6 ] ) + ',' +\r\n\t\t\tepsilon( - elements[ 7 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 8 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 9 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 10 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 11 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 12 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 13 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 14 ] ) + ',' +\r\n\t\t\tepsilon( elements[ 15 ] ) +\r\n\t\t')';\r\n\r\n\t};\r\n\r\n\tvar renderObject = function ( object, camera ) {\r\n\r\n\t\tif ( object instanceof THREE.CSS3DObject ) {\r\n\r\n\t\t\tif ( object instanceof THREE.CSS3DSprite ) {\r\n\r\n\t\t\t\t// http://swiftcoder.wordpress.com/2008/11/25/constructing-a-billboard-matrix/\r\n\r\n\t\t\t\tmatrix.copy( camera.matrixWorldInverse );\r\n\t\t\t\tmatrix.transpose();\r\n\t\t\t\tmatrix.copyPosition( object.matrixWorld );\r\n\t\t\t\tmatrix.scale( object.scale );\r\n\r\n\t\t\t\tmatrix.elements[ 3 ] = 0;\r\n\t\t\t\tmatrix.elements[ 7 ] = 0;\r\n\t\t\t\tmatrix.elements[ 11 ] = 0;\r\n\t\t\t\tmatrix.elements[ 15 ] = 1;\r\n\r\n\t\t\t\tstyle = getObjectCSSMatrix( matrix );\r\n\r\n\t\t\t} else {\r\n\r\n\t\t\t\tstyle = getObjectCSSMatrix( object.matrixWorld );\r\n\r\n\t\t\t}\r\n\r\n\t\t\tvar element = object.element;\r\n\r\n\t\t\telement.style.WebkitTransform = style;\r\n\t\t\telement.style.MozTransform = style;\r\n\t\t\telement.style.oTransform = style;\r\n\t\t\telement.style.transform = style;\r\n\r\n\t\t\tif ( element.parentNode !== cameraElement ) {\r\n\r\n\t\t\t\tcameraElement.appendChild( element );\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\r\n\t\tfor ( var i = 0, l = object.children.length; i < l; i ++ ) {\r\n\r\n\t\t\trenderObject( object.children[ i ], camera );\r\n\r\n\t\t}\r\n\r\n\t};\r\n\r\n\tthis.render = function ( scene, camera ) {\r\n\r\n\t\tvar fov = 0.5 / Math.tan( THREE.Math.degToRad( camera.fov * 0.5 ) ) * _height;\r\n\r\n\t\tdomElement.style.WebkitPerspective = fov + \"px\";\r\n\t\tdomElement.style.MozPerspective = fov + \"px\";\r\n\t\tdomElement.style.oPerspective = fov + \"px\";\r\n\t\tdomElement.style.perspective = fov + \"px\";\r\n\r\n\t\tscene.updateMatrixWorld();\r\n\r\n\t\tif ( camera.parent === undefined ) camera.updateMatrixWorld();\r\n\r\n\t\tcamera.matrixWorldInverse.getInverse( camera.matrixWorld );\r\n\r\n\t\tvar style = \"translate3d(0,0,\" + fov + \"px)\" + getCameraCSSMatrix( camera.matrixWorldInverse ) +\r\n\t\t\t\" translate3d(\" + _widthHalf + \"px,\" + _heightHalf + \"px, 0)\";\r\n\r\n\t\tcameraElement.style.WebkitTransform = style;\r\n\t\tcameraElement.style.MozTransform = style;\r\n\t\tcameraElement.style.oTransform = style;\r\n\t\tcameraElement.style.transform = style;\r\n\r\n\t\trenderObject( scene, camera );\r\n\r\n\t};\r\n\r\n};\r\n"]}