From e046f5279a3862f145140bf82a19db64f021bcdf Mon Sep 17 00:00:00 2001 From: Hai Nguyen Date: Fri, 30 Sep 2016 22:45:40 -0400 Subject: [PATCH] color by residue (#492) --- js/src/widget_ngl.js | 868 +++++++++++++++++--------------- nglview/static/index.js | 965 ++++++++++++++++++------------------ nglview/static/index.js.map | 2 +- nglview/widget.py | 5 + 4 files changed, 962 insertions(+), 878 deletions(-) diff --git a/js/src/widget_ngl.js b/js/src/widget_ngl.js index 37d83548..81b6c856 100644 --- a/js/src/widget_ngl.js +++ b/js/src/widget_ngl.js @@ -3,203 +3,206 @@ var NGL = require('./ngl'); var NGLView = widgets.DOMWidgetView.extend({ - render: function(){ + render: function() { // init representations handling - this.model.on( "change:_init_representations", this.representationsChanged, this ); + this.model.on("change:_init_representations", this.representationsChanged, this); // init structure loading - this.model.on( "change:_init_structures_sync", this.structureChanged, this ); + this.model.on("change:_init_structures_sync", this.structureChanged, this); // init setting of frame - this.model.on( "change:frame", this.frameChanged, this ); + this.model.on("change:frame", this.frameChanged, this); // init setting of frame - this.model.on( "change:count", this.countChanged, this ); + this.model.on("change:count", this.countChanged, this); // init _parameters handling - this.model.on( "change:_parameters", this.parametersChanged, this ); + this.model.on("change:_parameters", this.parametersChanged, this); // init orientation handling - this.model.on( "change:orientation", this.orientationChanged, this ); + this.model.on("change:orientation", this.orientationChanged, this); // for player - this.delay = 100; + this.delay = 100; this.sync_frame = false; this.sync_camera = false; // get message from Python - this.model.on( "msg:custom", function (msg) { - this.on_msg( msg ); + this.model.on("msg:custom", function(msg) { + this.on_msg(msg); }, this); - if (this.model.comm){ + if (this.model.comm) { // for embeding in website - this.model.comm.on_msg( function( msg ){ + this.model.comm.on_msg(function(msg) { var buffers = msg.buffers; var content = msg.content.data.content; - if( buffers.length && content ){ + if (buffers.length && content) { content.buffers = buffers; } - this.model._handle_comm_msg.call( this.model, msg ); - }.bind( this ) ); + this.model._handle_comm_msg.call(this.model, msg); + }.bind(this)); } // init NGL stage NGL.useWorker = false; - this.stage = new NGL.Stage( undefined, { + this.stage = new NGL.Stage(undefined, { backgroundColor: "white" }); this.structureComponent = undefined; - this.$container = $( this.stage.viewer.container ); - this.$el.append( this.$container ); - this.$container.resizable( { - resize: function( event, ui ){ - this.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( this ) - } ); - this.displayed.then( function(){ + this.$container = $(this.stage.viewer.container); + this.$el.append(this.$container); + this.$container.resizable({ + resize: function(event, ui) { + this.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(this) + }); + this.displayed.then(function() { var width = this.$el.parent().width() + "px"; var height = "300px"; - this.setSize( width, height ); + this.setSize(width, height); this.$container.resizable( "option", "maxWidth", this.$el.parent().width() ); this.requestUpdateStageParameters(); - }.bind( this ) ); + }.bind(this)); - this.stage.viewer.controls.addEventListener( "change", function() { - if( this.sync_camera ){ - this.model.set('camera_str', JSON.stringify( this.stage.viewer.camera ) ); - this.model.set('orientation', this.stage.viewer.getOrientation() ); + this.stage.viewer.controls.addEventListener("change", function() { + if (this.sync_camera) { + this.model.set('camera_str', JSON.stringify(this.stage.viewer.camera)); + this.model.set('orientation', this.stage.viewer.getOrientation()); this.touch(); } - }.bind( this) ); + }.bind(this)); // init toggle fullscreen - $( this.stage.viewer.container ).dblclick( function(){ + $(this.stage.viewer.container).dblclick(function() { this.stage.toggleFullscreen(); - }.bind( this ) ); + }.bind(this)); // init model data this.structureChanged(); // init picking handling - this.$pickingInfo = $( "
" ) - .css( "position", "absolute" ) - .css( "top", "5%" ) - .css( "left", "3%" ) - .css( "background-color", "white" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) - .appendTo( this.$container ); + this.$pickingInfo = $("
") + .css("position", "absolute") + .css("top", "5%") + .css("left", "3%") + .css("background-color", "white") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") + .appendTo(this.$container); $inputNotebookCommand = $(''); var that = this; - $inputNotebookCommand.keypress(function(e){ + $inputNotebookCommand.keypress(function(e) { var command = $("#input_notebook_command").val(); - if (e.which == 13){ + if (e.which == 13) { $("#input_notebook_command").val("") Jupyter.notebook.kernel.execute(command); } }); - this.$notebook_text= $( "
" ) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) + this.$notebook_text = $("
") + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") .append($inputNotebookCommand) .appendTo(this.$container); this.$notebook_text.hide(); - this.stage.signals.clicked.add( function( pd ){ + this.stage.signals.clicked.add(function(pd) { var pd2 = {}; - if( pd.atom ) pd2.atom = pd.atom.toObject(); - if( pd.bond ) pd2.bond = pd.bond.toObject(); - if( pd.instance ) pd2.instance = pd.instance; - this.model.set( "picked", pd2 ); + if (pd.atom) pd2.atom = pd.atom.toObject(); + if (pd.bond) pd2.bond = pd.bond.toObject(); + if (pd.instance) pd2.instance = pd.instance; + this.model.set("picked", pd2); this.model.save(); var pickingText = ""; - if( pd.atom ){ + if (pd.atom) { pickingText = "Atom: " + pd.atom.qualifiedName(); - }else if( pd.bond ){ + } else if (pd.bond) { pickingText = "Bond: " + pd.bond.atom1.qualifiedName() + " - " + pd.bond.atom2.qualifiedName(); } - this.$pickingInfo.text( pickingText ); - }, this ); + this.$pickingInfo.text(pickingText); + }, this); this.initPlayer(); var container = this.stage.viewer.container; var that = this; - container.addEventListener( 'dragover', function( e ){ + container.addEventListener('dragover', function(e) { e.stopPropagation(); e.preventDefault(); e.dataTransfer.dropEffect = 'copy'; - }, false ); - - container.addEventListener( 'drop', function( e ){ + }, false); + + container.addEventListener('drop', function(e) { e.stopPropagation(); e.preventDefault(); var file = e.dataTransfer.files[0]; - that.stage.loadFile( file ).then( that.makeDefaultRepr ); + that.stage.loadFile(file).then(that.makeDefaultRepr); - var numDroppedFiles = that.model.get( "_n_dragged_files" ); - that.model.set("_n_dragged_files", numDroppedFiles + 1 ); + var numDroppedFiles = that.model.get("_n_dragged_files"); + that.model.set("_n_dragged_files", numDroppedFiles + 1); that.touch(); - }, false ); + }, false); var that = this; - this.stage.signals.componentAdded.add( function(){ + this.stage.signals.componentAdded.add(function() { var len = this.stage.compList.length; this.model.set("n_components", len); this.touch(); - var comp = this.stage.compList[len-1]; - comp.signals.representationRemoved.add(function(){ + var comp = this.stage.compList[len - 1]; + comp.signals.representationRemoved.add(function() { that.requestReprsInfo(); }); - comp.signals.representationAdded.add(function(){ + comp.signals.representationAdded.add(function() { that.requestReprsInfo(); }); }, this); - this.stage.signals.componentRemoved.add( function(){ + this.stage.signals.componentRemoved.add(function() { this.model.set("n_components", this.stage.compList.length); this.touch(); }, this); // for callbacks from Python // must be after initializing NGL.Stage - this.model.send({'type': 'request_loaded', 'data': true}) + this.model.send({ + 'type': 'request_loaded', + 'data': true + }) var state_params = this.stage.getParameters(); this.model.set('_original_stage_parameters', state_params); this.touch(); }, - setSelector: function(selector_id){ + setSelector: function(selector_id) { // id is uuid that will be set from Python var selector = "
"; console.log('selector', selector); - this.$ngl_selector = $(selector) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) - .appendTo(this.$container); - }, - - setIPythonLikeCell: function(){ + this.$ngl_selector = $(selector) + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") + .appendTo(this.$container); + }, + + setIPythonLikeCell: function() { var cell = Jupyter.notebook.insert_cell_at_bottom(); var handler = function(event) { var selected_cell = Jupyter.notebook.get_selected_cell(); - if (selected_cell.cell_id === cell.cell_id){ + if (selected_cell.cell_id === cell.cell_id) { selected_cell.execute(); selected_cell.set_text(''); } @@ -212,90 +215,99 @@ var NGLView = widgets.DOMWidgetView.extend({ handler: handler }; - Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action); + Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action); }, - hideNotebookCommandBox: function(){ + hideNotebookCommandBox: function() { this.$notebook_text.hide(); }, - showNotebookCommandBox: function(){ + showNotebookCommandBox: function() { this.$notebook_text.show(); }, - requestFrame: function(){ - this.send({'type': 'request_frame', 'data': 'frame'}); + requestFrame: function() { + this.send({ + 'type': 'request_frame', + 'data': 'frame' + }); }, - requestUpdateStageParameters: function(){ + requestUpdateStageParameters: function() { var updated_params = this.stage.getParameters(); this.model.set('_full_stage_parameters', updated_params); this.touch(); }, - requestReprParameters: function( component_index, repr_index ){ - var comp = this.stage.compList[ component_index ]; - var repr = comp.reprList[ repr_index ]; + requestReprParameters: function(component_index, repr_index) { + var comp = this.stage.compList[component_index]; + var repr = comp.reprList[repr_index]; var msg = repr.repr.getParameters(); - if (msg){ + if (msg) { msg['name'] = repr.name; - this.send({'type': 'repr_parameters', 'data': msg}); + this.send({ + 'type': 'repr_parameters', + 'data': msg + }); } }, - requestReprsInfo: function(){ + requestReprsInfo: function() { var n_components = this.stage.compList.length; var msg = {}; - for (var i=0; i < n_components; i++) { + for (var i = 0; i < n_components; i++) { var comp = this.stage.compList[i]; msg['c' + i] = {}; var msgi = msg['c' + i]; - for (var j=0; j < comp.reprList.length; j++){ + for (var j = 0; j < comp.reprList.length; j++) { var repr = comp.reprList[j]; msgi[j] = {}; msgi[j]['name'] = repr.name; msgi[j]['parameters'] = repr.repr.getParameters(); } } - this.send({'type': 'all_reprs_info', 'data': msg}); + this.send({ + 'type': 'all_reprs_info', + 'data': msg + }); }, - setDraggable: function( params ){ - if (params){ + setDraggable: function(params) { + if (params) { this.$container.draggable(params); - }else{ + } else { this.$container.draggable(); } }, - setDelay: function( delay ){ + setDelay: function(delay) { this.delay = delay; }, - setSyncFrame: function(){ + setSyncFrame: function() { this.sync_frame = true; }, - setUnSyncFrame: function(){ + setUnSyncFrame: function() { this.sync_frame = false; }, - setSyncCamera: function(){ + setSyncCamera: function() { this.sync_camera = true; }, - setUnSyncCamera: function(){ + setUnSyncCamera: function() { this.sync_camera = false; }, - makeDefaultRepr: function( o ){ - var reprDefList = this.model.get( "_init_representations" ); - reprDefList.forEach( function( reprDef ){ - o.addRepresentation( reprDef.type, reprDef.params ); + makeDefaultRepr: function(o) { + var reprDefList = this.model.get("_init_representations"); + reprDefList.forEach(function(reprDef) { + o.addRepresentation(reprDef.type, reprDef.params); }); - - if( this.stage.compList.length < 2 ){ + + if (this.stage.compList.length < 2) { o.centerView(); } }, @@ -303,206 +315,227 @@ var NGLView = widgets.DOMWidgetView.extend({ initPlayer: function() { // init player - if( this.model.get( "count" ) ){ - var play = function(){ - this.$playerButton.text( "pause" ); - this.playerInterval = setInterval( function(){ - var frame = this.model.get( "frame" ) + 1; - var count = this.model.get( "count" ); - if( frame >= count ) frame = 0; - - if ( this.sync_frame ) { - this.model.set( "frame", frame ); + if (this.model.get("count")) { + var play = function() { + this.$playerButton.text("pause"); + this.playerInterval = setInterval(function() { + var frame = this.model.get("frame") + 1; + var count = this.model.get("count"); + if (frame >= count) frame = 0; + + if (this.sync_frame) { + this.model.set("frame", frame); this.model.save(); - }else{ + } else { this.requestFrame(); } - }.bind( this ), this.delay); - }.bind( this ); - var pause = function(){ - this.$playerButton.text( "play" ); - if( this.playerInterval !== undefined ){ - clearInterval( this.playerInterval ); + }.bind(this), this.delay); + }.bind(this); + var pause = function() { + this.$playerButton.text("play"); + if (this.playerInterval !== undefined) { + clearInterval(this.playerInterval); } - }.bind( this ); - this.$playerButton = $( "" ) - .css( "float", "left" ) - .css( "width", "55px" ) - .css( "opacity", "0.7" ) - .click( function( event ){ - if( this.$playerButton.text() === "play" ){ + }.bind(this); + this.$playerButton = $("") + .css("float", "left") + .css("width", "55px") + .css("opacity", "0.7") + .click(function(event) { + if (this.$playerButton.text() === "play") { play(); - }else if( this.$playerButton.text() === "pause" ){ + } else if (this.$playerButton.text() === "pause") { pause(); } - }.bind( this ) ); - this.$playerSlider = $( "
" ) - .css( "margin-left", "70px" ) - .css( "position", "relative" ) - .css( "bottom", "-7px" ) - .slider( { + }.bind(this)); + this.$playerSlider = $("
") + .css("margin-left", "70px") + .css("position", "relative") + .css("bottom", "-7px") + .slider({ min: 0, - max: this.model.get( "count" ) - 1, - slide: function( event, ui ){ + max: this.model.get("count") - 1, + slide: function(event, ui) { pause(); - this.model.set( "frame", ui.value ); + this.model.set("frame", ui.value); this.model.save(); - }.bind( this ) - } ); - this.$player = $( "
" ) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "width", "94%" ) - .css( "margin-left", "3%" ) - .css( "opacity", "0.7" ) - .append( this.$playerButton ) - .append( this.$playerSlider ) - .appendTo( this.$container ); - this.model.on( "change:frame", function(){ - this.$playerSlider.slider( "value", this.model.get( "frame" ) ); - }, this ); - - if( this.model.get("count") < 2 ) { this.$player.hide() }; + }.bind(this) + }); + this.$player = $("
") + .css("position", "absolute") + .css("bottom", "5%") + .css("width", "94%") + .css("margin-left", "3%") + .css("opacity", "0.7") + .append(this.$playerButton) + .append(this.$playerSlider) + .appendTo(this.$container); + this.model.on("change:frame", function() { + this.$playerSlider.slider("value", this.model.get("frame")); + }, this); + + if (this.model.get("count") < 2) { + this.$player.hide() + }; } }, countChanged: function() { - var count = this.model.get( "count" ); - this.$playerSlider.slider( { max: count - 1} ); - if( this.model.get("count") > 1 ) { this.$player.show() }; + var count = this.model.get("count"); + this.$playerSlider.slider({ + max: count - 1 + }); + if (this.model.get("count") > 1) { + this.$player.show() + }; }, - representationsChanged: function(){ - var representations = this.model.get( "_init_representations" ); + representationsChanged: function() { + var representations = this.model.get("_init_representations"); - for (var i = 0; i < this.stage.compList.length; i++ ){ - component = this.stage.compList[ i ]; - if( representations && component ){ + for (var i = 0; i < this.stage.compList.length; i++) { + component = this.stage.compList[i]; + if (representations && component) { component.clearRepresentations(); - representations.forEach( function( repr ){ - component.addRepresentation( repr.type, repr.params ); - } ); + representations.forEach(function(repr) { + component.addRepresentation(repr.type, repr.params); + }); } } }, - setVisibilityForRepr: function(component_index, repr_index, value){ - // value = True/False - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[repr_index]; - - if (repr) { - repr.setVisibility(value); - } + setVisibilityForRepr: function(component_index, repr_index, value) { + // value = True/False + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + + if (repr) { + repr.setVisibility(value); + } }, - removeRepresentation: function(component_index, repr_index){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[repr_index] + removeRepresentation: function(component_index, repr_index) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index] - if (repr) { - component.removeRepresentation(repr); - repr.dispose(); - } + if (repr) { + component.removeRepresentation(repr); + repr.dispose(); + } }, - removeRepresentationsByName: function( repr_name, component_index ){ - var component = this.stage.compList[ component_index ]; + removeRepresentationsByName: function(repr_name, component_index) { + var component = this.stage.compList[component_index]; - if (component){ - component.reprList.forEach( function(repr) { - if( repr.name == repr_name ){ - component.removeRepresentation( repr ); - repr.dispose(); - } - }) - } + if (component) { + component.reprList.forEach(function(repr) { + if (repr.name == repr_name) { + component.removeRepresentation(repr); + repr.dispose(); + } + }) + } }, - updateRepresentationForComponent: function( repr_index, component_index, params ){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[ repr_index ]; - if (repr) { - repr.setParameters( params ); - } + updateRepresentationForComponent: function(repr_index, component_index, params) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + if (repr) { + repr.setParameters(params); + } }, - updateRepresentationsByName: function(repr_name, component_index, params){ - var component = this.stage.compList[ component_index ]; + updateRepresentationsByName: function(repr_name, component_index, params) { + var component = this.stage.compList[component_index]; - if (component){ - component.reprList.forEach( function(repr) { - if( repr.name == repr_name ){ - repr.setParameters(params); - } - }) - } + if (component) { + component.reprList.forEach(function(repr) { + if (repr.name == repr_name) { + repr.setParameters(params); + } + }) + } }, - setRepresentation: function(name, params, component_index, repr_index){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[ repr_index ]; + setRepresentation: function(name, params, component_index, repr_index) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + + if (repr) { + params['useWorker'] = false; + var new_repr = NGL.makeRepresentation(name, component.structure, + this.stage.viewer, params); + if (new_repr) { + repr.setRepresentation(new_repr); + repr.name = name; + component.reprList[repr_index] = repr; + this.requestReprsInfo(); + } + } + }, - if (repr){ - params['useWorker'] = false; - var new_repr = NGL.makeRepresentation(name, component.structure, - this.stage.viewer, params); - if (new_repr) { - repr.setRepresentation(new_repr); - repr.name = name; - component.reprList[repr_index] = repr; - this.requestReprsInfo(); - } - } + setColorByResidue: function(colors, component_index, repr_index){ + var repr = this.stage.compList[component_index].reprList[repr_index]; + var schemeId = NGL.ColorMakerRegistry.addScheme(function(params){ + this.atomColor = function(atom){ + var color = colors[atom.residueIndex]; + return color + }; + }); + repr.setColor(schemeId); }, - addShape: function(name, shapes){ + addShape: function(name, shapes) { // shapes: list of tuple // e.g: [('sphere', ...), ('cone', ...)] var shape = new NGL.Shape(name); - var shape_dict = {'sphere': shape.addSphere, - 'ellipsoid': shape.addEllipsoid, - 'cylinder': shape.addCylinder, - 'cone': shape.addCone, - 'mesh': shape.addMesh, - 'arrow': shape.addArrow}; - for (var i=0; i < shapes.length; i++){ + var shape_dict = { + 'sphere': shape.addSphere, + 'ellipsoid': shape.addEllipsoid, + 'cylinder': shape.addCylinder, + 'cone': shape.addCone, + 'mesh': shape.addMesh, + 'arrow': shape.addArrow + }; + for (var i = 0; i < shapes.length; i++) { var shapes_i = shapes[i] - var shape_type = shapes_i[0]; + var shape_type = shapes_i[0]; var params = shapes_i.slice(1, shapes_i.length); // e.g params = ('sphere', [ 0, 0, 9 ], [ 1, 0, 0 ], 1.5) var func = shape_dict[shape_type]; func.apply(this, params); } - var shapeComp = this.stage.addComponentFromObject(shape); - shapeComp.addRepresentation("buffer"); - }, - - structureChanged: function(){ - if ( !this.model.get( "loaded" ) ) { - var structureList = this.model.get( "_init_structures_sync" ); - for ( var i = 0; i < Object.keys(structureList).length; i++ ){ - var structure = structureList[ i ]; - if( structure.data && structure.ext ){ - var blob = new Blob( [ structure.data ], { type: "text/plain" } ); + var shapeComp = this.stage.addComponentFromObject(shape); + shapeComp.addRepresentation("buffer"); + }, + + structureChanged: function() { + if (!this.model.get("loaded")) { + var structureList = this.model.get("_init_structures_sync"); + for (var i = 0; i < Object.keys(structureList).length; i++) { + var structure = structureList[i]; + if (structure.data && structure.ext) { + var blob = new Blob([structure.data], { + type: "text/plain" + }); var params = structure.params || {}; params.ext = structure.ext; params.defaultRepresentation = false; - this.stage.loadFile( blob, params ).then( function( component ){ + this.stage.loadFile(blob, params).then(function(component) { component.centerView(); // this.structureComponent = component; this.representationsChanged(); // for small peptide - if (component.structure){ + if (component.structure) { var structure = component.structure; - if( structure.biomolDict.BU1 ){ + if (structure.biomolDict.BU1) { var assembly = structure.biomolDict.BU1; - atomCount = assembly.getAtomCount( structure ); + atomCount = assembly.getAtomCount(structure); instanceCount = assembly.getInstanceCount(); - }else{ - atomCount = structure.getModelProxy( 0 ).atomCount; + } else { + atomCount = structure.getModelProxy(0).atomCount; } if (atomCount < 50) { @@ -510,18 +543,18 @@ var NGLView = widgets.DOMWidgetView.extend({ component.addRepresentation('licorice'); } } - }.bind( this ) ); + }.bind(this)); } } - // only use _init_structures_sync before Widget is loaded. + // only use _init_structures_sync before Widget is loaded. } }, - superpose: function(cindex0, cindex1, align, sele0, sele1){ - // superpose two components with given params - var component0 = this.stage.compList[cindex0]; - var component1 = this.stage.compList[cindex1]; - component1.superpose(component0, align, sele0, sele1); + superpose: function(cindex0, cindex1, align, sele0, sele1) { + // superpose two components with given params + var component0 = this.stage.compList[cindex0]; + var component1 = this.stage.compList[cindex1]; + component1.superpose(component0, align, sele0, sele1); }, decode_base64: function(base64) { @@ -565,126 +598,151 @@ var NGLView = widgets.DOMWidgetView.extend({ return arraybuffer; }, - updateCoordinates: function( coordinates, model ) { + updateCoordinates: function(coordinates, model) { // coordinates must be ArrayBuffer (use this.decode_base64) - var component = this.stage.compList[ model ]; - if( coordinates && component ){ - var coords = new Float32Array( coordinates ); - component.structure.updatePosition( coords ); - component.updateRepresentations( { "position": true } ); + var component = this.stage.compList[model]; + if (coordinates && component) { + var coords = new Float32Array(coordinates); + component.structure.updatePosition(coords); + component.updateRepresentations({ + "position": true + }); } }, - handleResize: function(){ - this.$container.resizable( { - resize: function( event, ui ){ - this.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( this ) + handleResize: function() { + this.$container.resizable({ + resize: function(event, ui) { + this.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(this) }) }, - setSize: function( width, height ){ + setSize: function(width, height) { this.stage.viewer.container.style.width = width; this.stage.viewer.container.style.height = height; this.stage.handleResize(); }, - openNotebookCommandDialog: function(){ + openNotebookCommandDialog: function() { var that = this; - dialog = this.$notebook_text.dialog({ + dialog = this.$notebook_text.dialog({ draggable: true, resizable: true, modal: false, - show: { effect: "blind", duration: 150 }, - close: function (event, ui) { + show: { + effect: "blind", + duration: 150 + }, + close: function(event, ui) { that.$container.append(that.$notebook_text); that.$notebook_text.dialog('destroy'); }, }); - dialog.css({overflow: 'hidden'}); + dialog.css({ + overflow: 'hidden' + }); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); Jupyter.keyboard_manager.register_events(dialog); }, - setDialog: function(){ + setDialog: function() { var $nb_container = Jupyter.notebook.container; var that = this; - dialog = this.$container.dialog({ + dialog = this.$container.dialog({ title: "NGLView", draggable: true, resizable: true, modal: false, - width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50, + width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50, height: 'auto', - position: {my: 'right', at: 'right', of: window}, - show: { effect: "blind", duration: 150 }, - close: function (event, ui) { + position: { + my: 'right', + at: 'right', + of: window + }, + show: { + effect: "blind", + duration: 150 + }, + close: function(event, ui) { that.$el.append(that.$container); that.$container.dialog('destroy'); that.handleResize(); }, - resize: function( event, ui ){ + resize: function(event, ui) { that.stage.handleResize(); - that.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( that ), + that.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(that), + }); + dialog.css({ + overflow: 'hidden' }); - dialog.css({overflow: 'hidden'}); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); }, - resizeNotebook: function(width){ + resizeNotebook: function(width) { var $nb_container = Jupyter.notebook.container; $nb_container.width(width); - if (this.$container.dialog){ - this.$container.dialog({width: $nb_container.offset().left}); + if (this.$container.dialog) { + this.$container.dialog({ + width: $nb_container.offset().left + }); } }, - parametersChanged: function(){ - var _parameters = this.model.get( "_parameters" ); - this.stage.setParameters( _parameters ); + parametersChanged: function() { + var _parameters = this.model.get("_parameters"); + this.stage.setParameters(_parameters); // do not set _full_stage_parameters here // or parameters will be never updated (not sure why) // use observe in python side var updated_params = this.stage.getParameters(); - this.send({'type': 'stage_parameters', 'data': updated_params}) + this.send({ + 'type': 'stage_parameters', + 'data': updated_params + }) }, - orientationChanged: function(){ - var orientation = this.model.get( "orientation" ); - this.stage.viewer.setOrientation( orientation ); + orientationChanged: function() { + var orientation = this.model.get("orientation"); + this.stage.viewer.setOrientation(orientation); }, - _downloadImage: function( filename, params ) { - this.stage.makeImage( params ).then( function( blob ) { - NGL.download( blob, filename ); + _downloadImage: function(filename, params) { + this.stage.makeImage(params).then(function(blob) { + NGL.download(blob, filename); }) }, - _exportImage: function( params ) { - this.stage.makeImage( params ).then( function( blob ) { - var reader = new FileReader(); - var arr_str; - reader.onload = function() { - arr_str = reader.result.replace("data:image/png;base64,", ""); - this.model.set( "_image_data", arr_str ); - this.touch(); - }.bind( this ); - reader.readAsDataURL( blob ); - }.bind( this )); + _exportImage: function(params) { + this.stage.makeImage(params).then(function(blob) { + var reader = new FileReader(); + var arr_str; + reader.onload = function() { + arr_str = reader.result.replace("data:image/png;base64,", ""); + this.model.set("_image_data", arr_str); + this.touch(); + }.bind(this); + reader.readAsDataURL(blob); + }.bind(this)); }, - cleanOutput: function(){ + cleanOutput: function() { var cells = Jupyter.notebook.get_cells(); - - for (var i = 0; i < cells.length; i++){ + + for (var i = 0; i < cells.length; i++) { var cell = cells[i]; if (cell.output_area.outputs.length > 0) { var out = cell.output_area.outputs[0]; @@ -695,187 +753,199 @@ var NGLView = widgets.DOMWidgetView.extend({ } }, - on_msg: function(msg){ + on_msg: function(msg) { // TODO: re-organize - if( msg.type == 'call_method' ){ + if (msg.type == 'call_method') { var new_args = msg.args.slice(); - new_args.push( msg.kwargs ); + new_args.push(msg.kwargs); - switch( msg.target ) { + switch (msg.target) { case 'Stage': var stage_func = this.stage[msg.methodName]; var stage = this.stage; - if ( msg.methodName == 'screenshot' ){ - NGL.screenshot( this.stage.viewer, msg.kwargs ); - }else if( msg.methodName == 'removeComponent' ) { + if (msg.methodName == 'screenshot') { + NGL.screenshot(this.stage.viewer, msg.kwargs); + } else if (msg.methodName == 'removeComponent') { var index = msg.args[0]; - var component = this.stage.compList[ index ]; - this.stage.removeComponent( component ); - }else{ - if( msg.methodName == 'loadFile' ) { + var component = this.stage.compList[index]; + this.stage.removeComponent(component); + } else { + if (msg.methodName == 'loadFile') { // args = [{'type': ..., 'data': ...}] - var args0 = msg.args[ 0 ]; - if( args0.type == 'blob' ) { - var blob; - if( args0.binary ){ - var decoded_data = this.decode_base64( args0.data ); - blob = new Blob( [ decoded_data ], { type: "application/octet-binary" }); - }else{ - blob = new Blob( [ args0.data ], { type: "text/plain" } ); + var args0 = msg.args[0]; + if (args0.type == 'blob') { + var blob; + if (args0.binary) { + var decoded_data = this.decode_base64(args0.data); + blob = new Blob([decoded_data], { + type: "application/octet-binary" + }); + } else { + blob = new Blob([args0.data], { + type: "text/plain" + }); } - this.stage.loadFile( blob, msg.kwargs ); - }else{ - this.stage.loadFile( msg.args[0].data, msg.kwargs ); + this.stage.loadFile(blob, msg.kwargs); + } else { + this.stage.loadFile(msg.args[0].data, msg.kwargs); } - }else{ - stage_func.apply( stage, new_args ); + } else { + stage_func.apply(stage, new_args); } } break; case 'Viewer': var viewer = this.stage.viewer; var func = this.stage.viewer[msg.methodName]; - func.apply( viewer, new_args ); + func.apply(viewer, new_args); break; case 'compList': var index = msg['component_index']; var component = this.stage.compList[index]; var func = component[msg.methodName]; - func.apply( component, new_args ); + func.apply(component, new_args); break; case 'StructureComponent': var component = this.structureComponent; var func = component[msg.methodName]; - func.apply( component, new_args ); + func.apply(component, new_args); break; case 'Widget': - var func = this[ msg.methodName ]; - if (func){ - func.apply( this, new_args ); - }else{ + var func = this[msg.methodName]; + if (func) { + func.apply(this, new_args); + } else { console.log('can not create func for ' + msg.methodName); } break; case 'Representation': var component_index = msg['component_index']; var repr_index = msg['repr_index']; - var component = this.stage.compList[ component_index ]; + var component = this.stage.compList[component_index]; var repr = component.reprList[repr_index]; - var func = repr[ msg.methodName ]; - if (repr && func){ - func.apply( repr, new_args ); + var func = repr[msg.methodName]; + if (repr && func) { + func.apply(repr, new_args); } break; default: + console.log('there is no method for ' + msg.target); break; } - }else if( msg.type == 'base64_single' ){ + } else if (msg.type == 'base64_single') { // TODO: remove time var time0 = Date.now(); var coordinatesDict = msg.data; - var keys = Object.keys( coordinatesDict ); + var keys = Object.keys(coordinatesDict); - for ( var i = 0; i < keys.length ; i++ ){ - var traj_index = keys[ i ]; - var coordinates = this.decode_base64( coordinatesDict[ traj_index ] ); - if( coordinates.byteLength > 0 ){ - this.updateCoordinates( coordinates, traj_index ); + for (var i = 0; i < keys.length; i++) { + var traj_index = keys[i]; + var coordinates = this.decode_base64(coordinatesDict[traj_index]); + if (coordinates.byteLength > 0) { + this.updateCoordinates(coordinates, traj_index); } } var time1 = Date.now(); - }else if( msg.type == 'binary_single' ){ + } else if (msg.type == 'binary_single') { // TODO: remove time var time0 = Date.now(); var coordinateMeta = msg.data; - var keys = Object.keys( coordinateMeta ); + var keys = Object.keys(coordinateMeta); - for ( var i = 0; i < keys.length ; i++ ){ - var traj_index = keys[ i ]; - var coordinates = new Float32Array( msg.buffers[ i ].buffer ); - if( coordinates.byteLength > 0 ){ - this.updateCoordinates( coordinates, traj_index ); + for (var i = 0; i < keys.length; i++) { + var traj_index = keys[i]; + var coordinates = new Float32Array(msg.buffers[i].buffer); + if (coordinates.byteLength > 0) { + this.updateCoordinates(coordinates, traj_index); } } var time1 = Date.now(); - }else if( msg.type == 'get') { - if( msg.data == 'camera' ) { - this.send( JSON.stringify( this.stage.viewer.camera ) ); - }else if( msg.data == 'parameters' ){ - this.send( JSON.stringify( this.stage.parameters )); - }else{ - for ( var i = 0; i < this.stage.compList.length; i++ ) { - console.log( this.stage.compList[ i ] ); + } else if (msg.type == 'get') { + if (msg.data == 'camera') { + this.send(JSON.stringify(this.stage.viewer.camera)); + } else if (msg.data == 'parameters') { + this.send(JSON.stringify(this.stage.parameters)); + } else { + for (var i = 0; i < this.stage.compList.length; i++) { + console.log(this.stage.compList[i]); } } } -}, + }, }); var NGLBox = widgets.BoxView.extend({ - initialize: function(parameters){ + initialize: function(parameters) { widgets.BoxView.prototype.initialize.call(this, parameters); this.$dialog = undefined; }, - render: function(){ + render: function() { this.model.on('change:_dialog', this.dialogCommandChanged, this); this.model.on('change:_ngl_command', this.commandChanged, this); widgets.BoxView.prototype.render.call(this); }, - dialogCommandChanged: function(){ + dialogCommandChanged: function() { var _dialog = this.model.get('_dialog'); - if (_dialog == 'on'){ + if (_dialog == 'on') { this.setDialog(); } }, - merge: function(){ + merge: function() { // TODO: rename and add doc console.log('calling merge'); var v0 = this.children_views.views[0]; var v1 = this.children_views.views[1]; - - v0.then(function(v00){ - v1.then(function(v11){ + + v0.then(function(v00) { + v1.then(function(v11) { v11.$el.appendTo(v00.$container) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") }); }); }, - - commandChanged: function(){ + + commandChanged: function() { var cm = this.model.get('_ngl_command'); - if (cm == 'merge'){ + if (cm == 'merge') { this.merge(); - }else{ + } else { console.log("place holder"); } }, - setDialog: function(){ + setDialog: function() { //var $node = $(this.$el.parent()[0]); var $node = $(this.$el); $node.addClass('jupyter-widgets'); $node.addClass('widget-container'); $node.addClass('widget-box'); var that = this; - dialog = $node.dialog({ + dialog = $node.dialog({ draggable: true, resizable: true, modal: false, height: 'auto', - show: { effect: "blind", duration: 150 }, + show: { + effect: "blind", + duration: 150 + }, + }); + dialog.css({ + overflow: 'hidden' }); - dialog.css({overflow: 'hidden'}); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); }, }); diff --git a/nglview/static/index.js b/nglview/static/index.js index 41524b04..6211c1de 100644 --- a/nglview/static/index.js +++ b/nglview/static/index.js @@ -85,203 +85,206 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return var NGLView = widgets.DOMWidgetView.extend({ - render: function(){ + render: function() { // init representations handling - this.model.on( "change:_init_representations", this.representationsChanged, this ); + this.model.on("change:_init_representations", this.representationsChanged, this); // init structure loading - this.model.on( "change:_init_structures_sync", this.structureChanged, this ); + this.model.on("change:_init_structures_sync", this.structureChanged, this); // init setting of frame - this.model.on( "change:frame", this.frameChanged, this ); + this.model.on("change:frame", this.frameChanged, this); // init setting of frame - this.model.on( "change:count", this.countChanged, this ); + this.model.on("change:count", this.countChanged, this); // init _parameters handling - this.model.on( "change:_parameters", this.parametersChanged, this ); + this.model.on("change:_parameters", this.parametersChanged, this); // init orientation handling - this.model.on( "change:orientation", this.orientationChanged, this ); + this.model.on("change:orientation", this.orientationChanged, this); // for player - this.delay = 100; + this.delay = 100; this.sync_frame = false; this.sync_camera = false; // get message from Python - this.model.on( "msg:custom", function (msg) { - this.on_msg( msg ); + this.model.on("msg:custom", function(msg) { + this.on_msg(msg); }, this); - if (this.model.comm){ + if (this.model.comm) { // for embeding in website - this.model.comm.on_msg( function( msg ){ + this.model.comm.on_msg(function(msg) { var buffers = msg.buffers; var content = msg.content.data.content; - if( buffers.length && content ){ + if (buffers.length && content) { content.buffers = buffers; } - this.model._handle_comm_msg.call( this.model, msg ); - }.bind( this ) ); + this.model._handle_comm_msg.call(this.model, msg); + }.bind(this)); } // init NGL stage NGL.useWorker = false; - this.stage = new NGL.Stage( undefined, { + this.stage = new NGL.Stage(undefined, { backgroundColor: "white" }); this.structureComponent = undefined; - this.$container = $( this.stage.viewer.container ); - this.$el.append( this.$container ); - this.$container.resizable( { - resize: function( event, ui ){ - this.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( this ) - } ); - this.displayed.then( function(){ + this.$container = $(this.stage.viewer.container); + this.$el.append(this.$container); + this.$container.resizable({ + resize: function(event, ui) { + this.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(this) + }); + this.displayed.then(function() { var width = this.$el.parent().width() + "px"; var height = "300px"; - this.setSize( width, height ); + this.setSize(width, height); this.$container.resizable( "option", "maxWidth", this.$el.parent().width() ); this.requestUpdateStageParameters(); - }.bind( this ) ); + }.bind(this)); - this.stage.viewer.controls.addEventListener( "change", function() { - if( this.sync_camera ){ - this.model.set('camera_str', JSON.stringify( this.stage.viewer.camera ) ); - this.model.set('orientation', this.stage.viewer.getOrientation() ); + this.stage.viewer.controls.addEventListener("change", function() { + if (this.sync_camera) { + this.model.set('camera_str', JSON.stringify(this.stage.viewer.camera)); + this.model.set('orientation', this.stage.viewer.getOrientation()); this.touch(); } - }.bind( this) ); + }.bind(this)); // init toggle fullscreen - $( this.stage.viewer.container ).dblclick( function(){ + $(this.stage.viewer.container).dblclick(function() { this.stage.toggleFullscreen(); - }.bind( this ) ); + }.bind(this)); // init model data this.structureChanged(); // init picking handling - this.$pickingInfo = $( "
" ) - .css( "position", "absolute" ) - .css( "top", "5%" ) - .css( "left", "3%" ) - .css( "background-color", "white" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) - .appendTo( this.$container ); + this.$pickingInfo = $("
") + .css("position", "absolute") + .css("top", "5%") + .css("left", "3%") + .css("background-color", "white") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") + .appendTo(this.$container); $inputNotebookCommand = $(''); var that = this; - $inputNotebookCommand.keypress(function(e){ + $inputNotebookCommand.keypress(function(e) { var command = $("#input_notebook_command").val(); - if (e.which == 13){ + if (e.which == 13) { $("#input_notebook_command").val("") Jupyter.notebook.kernel.execute(command); } }); - this.$notebook_text= $( "
" ) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) + this.$notebook_text = $("
") + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") .append($inputNotebookCommand) .appendTo(this.$container); this.$notebook_text.hide(); - this.stage.signals.clicked.add( function( pd ){ + this.stage.signals.clicked.add(function(pd) { var pd2 = {}; - if( pd.atom ) pd2.atom = pd.atom.toObject(); - if( pd.bond ) pd2.bond = pd.bond.toObject(); - if( pd.instance ) pd2.instance = pd.instance; - this.model.set( "picked", pd2 ); + if (pd.atom) pd2.atom = pd.atom.toObject(); + if (pd.bond) pd2.bond = pd.bond.toObject(); + if (pd.instance) pd2.instance = pd.instance; + this.model.set("picked", pd2); this.model.save(); var pickingText = ""; - if( pd.atom ){ + if (pd.atom) { pickingText = "Atom: " + pd.atom.qualifiedName(); - }else if( pd.bond ){ + } else if (pd.bond) { pickingText = "Bond: " + pd.bond.atom1.qualifiedName() + " - " + pd.bond.atom2.qualifiedName(); } - this.$pickingInfo.text( pickingText ); - }, this ); + this.$pickingInfo.text(pickingText); + }, this); this.initPlayer(); var container = this.stage.viewer.container; var that = this; - container.addEventListener( 'dragover', function( e ){ + container.addEventListener('dragover', function(e) { e.stopPropagation(); e.preventDefault(); e.dataTransfer.dropEffect = 'copy'; - }, false ); - - container.addEventListener( 'drop', function( e ){ + }, false); + + container.addEventListener('drop', function(e) { e.stopPropagation(); e.preventDefault(); var file = e.dataTransfer.files[0]; - that.stage.loadFile( file ).then( that.makeDefaultRepr ); + that.stage.loadFile(file).then(that.makeDefaultRepr); - var numDroppedFiles = that.model.get( "_n_dragged_files" ); - that.model.set("_n_dragged_files", numDroppedFiles + 1 ); + var numDroppedFiles = that.model.get("_n_dragged_files"); + that.model.set("_n_dragged_files", numDroppedFiles + 1); that.touch(); - }, false ); + }, false); var that = this; - this.stage.signals.componentAdded.add( function(){ + this.stage.signals.componentAdded.add(function() { var len = this.stage.compList.length; this.model.set("n_components", len); this.touch(); - var comp = this.stage.compList[len-1]; - comp.signals.representationRemoved.add(function(){ + var comp = this.stage.compList[len - 1]; + comp.signals.representationRemoved.add(function() { that.requestReprsInfo(); }); - comp.signals.representationAdded.add(function(){ + comp.signals.representationAdded.add(function() { that.requestReprsInfo(); }); }, this); - this.stage.signals.componentRemoved.add( function(){ + this.stage.signals.componentRemoved.add(function() { this.model.set("n_components", this.stage.compList.length); this.touch(); }, this); // for callbacks from Python // must be after initializing NGL.Stage - this.model.send({'type': 'request_loaded', 'data': true}) + this.model.send({ + 'type': 'request_loaded', + 'data': true + }) var state_params = this.stage.getParameters(); this.model.set('_original_stage_parameters', state_params); this.touch(); }, - setSelector: function(selector_id){ + setSelector: function(selector_id) { // id is uuid that will be set from Python var selector = "
"; console.log('selector', selector); - this.$ngl_selector = $(selector) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) - .css( "opacity", "0.7" ) - .appendTo(this.$container); - }, + this.$ngl_selector = $(selector) + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") + .css("opacity", "0.7") + .appendTo(this.$container); + }, - setIPythonLikeCell: function(){ + setIPythonLikeCell: function() { var cell = Jupyter.notebook.insert_cell_at_bottom(); var handler = function(event) { var selected_cell = Jupyter.notebook.get_selected_cell(); - if (selected_cell.cell_id === cell.cell_id){ + if (selected_cell.cell_id === cell.cell_id) { selected_cell.execute(); selected_cell.set_text(''); } @@ -294,90 +297,99 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return handler: handler }; - Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action); + Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action); }, - hideNotebookCommandBox: function(){ + hideNotebookCommandBox: function() { this.$notebook_text.hide(); }, - showNotebookCommandBox: function(){ + showNotebookCommandBox: function() { this.$notebook_text.show(); }, - requestFrame: function(){ - this.send({'type': 'request_frame', 'data': 'frame'}); + requestFrame: function() { + this.send({ + 'type': 'request_frame', + 'data': 'frame' + }); }, - requestUpdateStageParameters: function(){ + requestUpdateStageParameters: function() { var updated_params = this.stage.getParameters(); this.model.set('_full_stage_parameters', updated_params); this.touch(); }, - requestReprParameters: function( component_index, repr_index ){ - var comp = this.stage.compList[ component_index ]; - var repr = comp.reprList[ repr_index ]; + requestReprParameters: function(component_index, repr_index) { + var comp = this.stage.compList[component_index]; + var repr = comp.reprList[repr_index]; var msg = repr.repr.getParameters(); - if (msg){ + if (msg) { msg['name'] = repr.name; - this.send({'type': 'repr_parameters', 'data': msg}); + this.send({ + 'type': 'repr_parameters', + 'data': msg + }); } }, - requestReprsInfo: function(){ + requestReprsInfo: function() { var n_components = this.stage.compList.length; var msg = {}; - for (var i=0; i < n_components; i++) { + for (var i = 0; i < n_components; i++) { var comp = this.stage.compList[i]; msg['c' + i] = {}; var msgi = msg['c' + i]; - for (var j=0; j < comp.reprList.length; j++){ + for (var j = 0; j < comp.reprList.length; j++) { var repr = comp.reprList[j]; msgi[j] = {}; msgi[j]['name'] = repr.name; msgi[j]['parameters'] = repr.repr.getParameters(); } } - this.send({'type': 'all_reprs_info', 'data': msg}); + this.send({ + 'type': 'all_reprs_info', + 'data': msg + }); }, - setDraggable: function( params ){ - if (params){ + setDraggable: function(params) { + if (params) { this.$container.draggable(params); - }else{ + } else { this.$container.draggable(); } }, - setDelay: function( delay ){ + setDelay: function(delay) { this.delay = delay; }, - setSyncFrame: function(){ + setSyncFrame: function() { this.sync_frame = true; }, - setUnSyncFrame: function(){ + setUnSyncFrame: function() { this.sync_frame = false; }, - setSyncCamera: function(){ + setSyncCamera: function() { this.sync_camera = true; }, - setUnSyncCamera: function(){ + setUnSyncCamera: function() { this.sync_camera = false; }, - makeDefaultRepr: function( o ){ - var reprDefList = this.model.get( "_init_representations" ); - reprDefList.forEach( function( reprDef ){ - o.addRepresentation( reprDef.type, reprDef.params ); + makeDefaultRepr: function(o) { + var reprDefList = this.model.get("_init_representations"); + reprDefList.forEach(function(reprDef) { + o.addRepresentation(reprDef.type, reprDef.params); }); - - if( this.stage.compList.length < 2 ){ + + if (this.stage.compList.length < 2) { o.centerView(); } }, @@ -385,206 +397,227 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return initPlayer: function() { // init player - if( this.model.get( "count" ) ){ - var play = function(){ - this.$playerButton.text( "pause" ); - this.playerInterval = setInterval( function(){ - var frame = this.model.get( "frame" ) + 1; - var count = this.model.get( "count" ); - if( frame >= count ) frame = 0; - - if ( this.sync_frame ) { - this.model.set( "frame", frame ); + if (this.model.get("count")) { + var play = function() { + this.$playerButton.text("pause"); + this.playerInterval = setInterval(function() { + var frame = this.model.get("frame") + 1; + var count = this.model.get("count"); + if (frame >= count) frame = 0; + + if (this.sync_frame) { + this.model.set("frame", frame); this.model.save(); - }else{ + } else { this.requestFrame(); } - }.bind( this ), this.delay); - }.bind( this ); - var pause = function(){ - this.$playerButton.text( "play" ); - if( this.playerInterval !== undefined ){ - clearInterval( this.playerInterval ); + }.bind(this), this.delay); + }.bind(this); + var pause = function() { + this.$playerButton.text("play"); + if (this.playerInterval !== undefined) { + clearInterval(this.playerInterval); } - }.bind( this ); - this.$playerButton = $( "" ) - .css( "float", "left" ) - .css( "width", "55px" ) - .css( "opacity", "0.7" ) - .click( function( event ){ - if( this.$playerButton.text() === "play" ){ + }.bind(this); + this.$playerButton = $("") + .css("float", "left") + .css("width", "55px") + .css("opacity", "0.7") + .click(function(event) { + if (this.$playerButton.text() === "play") { play(); - }else if( this.$playerButton.text() === "pause" ){ + } else if (this.$playerButton.text() === "pause") { pause(); } - }.bind( this ) ); - this.$playerSlider = $( "
" ) - .css( "margin-left", "70px" ) - .css( "position", "relative" ) - .css( "bottom", "-7px" ) - .slider( { + }.bind(this)); + this.$playerSlider = $("
") + .css("margin-left", "70px") + .css("position", "relative") + .css("bottom", "-7px") + .slider({ min: 0, - max: this.model.get( "count" ) - 1, - slide: function( event, ui ){ + max: this.model.get("count") - 1, + slide: function(event, ui) { pause(); - this.model.set( "frame", ui.value ); + this.model.set("frame", ui.value); this.model.save(); - }.bind( this ) - } ); - this.$player = $( "
" ) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "width", "94%" ) - .css( "margin-left", "3%" ) - .css( "opacity", "0.7" ) - .append( this.$playerButton ) - .append( this.$playerSlider ) - .appendTo( this.$container ); - this.model.on( "change:frame", function(){ - this.$playerSlider.slider( "value", this.model.get( "frame" ) ); - }, this ); - - if( this.model.get("count") < 2 ) { this.$player.hide() }; + }.bind(this) + }); + this.$player = $("
") + .css("position", "absolute") + .css("bottom", "5%") + .css("width", "94%") + .css("margin-left", "3%") + .css("opacity", "0.7") + .append(this.$playerButton) + .append(this.$playerSlider) + .appendTo(this.$container); + this.model.on("change:frame", function() { + this.$playerSlider.slider("value", this.model.get("frame")); + }, this); + + if (this.model.get("count") < 2) { + this.$player.hide() + }; } }, countChanged: function() { - var count = this.model.get( "count" ); - this.$playerSlider.slider( { max: count - 1} ); - if( this.model.get("count") > 1 ) { this.$player.show() }; + var count = this.model.get("count"); + this.$playerSlider.slider({ + max: count - 1 + }); + if (this.model.get("count") > 1) { + this.$player.show() + }; }, - representationsChanged: function(){ - var representations = this.model.get( "_init_representations" ); + representationsChanged: function() { + var representations = this.model.get("_init_representations"); - for (var i = 0; i < this.stage.compList.length; i++ ){ - component = this.stage.compList[ i ]; - if( representations && component ){ + for (var i = 0; i < this.stage.compList.length; i++) { + component = this.stage.compList[i]; + if (representations && component) { component.clearRepresentations(); - representations.forEach( function( repr ){ - component.addRepresentation( repr.type, repr.params ); - } ); + representations.forEach(function(repr) { + component.addRepresentation(repr.type, repr.params); + }); } } }, - setVisibilityForRepr: function(component_index, repr_index, value){ - // value = True/False - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[repr_index]; - - if (repr) { - repr.setVisibility(value); - } + setVisibilityForRepr: function(component_index, repr_index, value) { + // value = True/False + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + + if (repr) { + repr.setVisibility(value); + } }, - removeRepresentation: function(component_index, repr_index){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[repr_index] + removeRepresentation: function(component_index, repr_index) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index] - if (repr) { - component.removeRepresentation(repr); - repr.dispose(); - } + if (repr) { + component.removeRepresentation(repr); + repr.dispose(); + } }, - removeRepresentationsByName: function( repr_name, component_index ){ - var component = this.stage.compList[ component_index ]; - - if (component){ - component.reprList.forEach( function(repr) { - if( repr.name == repr_name ){ - component.removeRepresentation( repr ); - repr.dispose(); - } - }) - } + removeRepresentationsByName: function(repr_name, component_index) { + var component = this.stage.compList[component_index]; + + if (component) { + component.reprList.forEach(function(repr) { + if (repr.name == repr_name) { + component.removeRepresentation(repr); + repr.dispose(); + } + }) + } }, - updateRepresentationForComponent: function( repr_index, component_index, params ){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[ repr_index ]; - if (repr) { - repr.setParameters( params ); - } + updateRepresentationForComponent: function(repr_index, component_index, params) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + if (repr) { + repr.setParameters(params); + } }, - updateRepresentationsByName: function(repr_name, component_index, params){ - var component = this.stage.compList[ component_index ]; + updateRepresentationsByName: function(repr_name, component_index, params) { + var component = this.stage.compList[component_index]; - if (component){ - component.reprList.forEach( function(repr) { - if( repr.name == repr_name ){ - repr.setParameters(params); - } - }) - } + if (component) { + component.reprList.forEach(function(repr) { + if (repr.name == repr_name) { + repr.setParameters(params); + } + }) + } + }, + + setRepresentation: function(name, params, component_index, repr_index) { + var component = this.stage.compList[component_index]; + var repr = component.reprList[repr_index]; + + if (repr) { + params['useWorker'] = false; + var new_repr = NGL.makeRepresentation(name, component.structure, + this.stage.viewer, params); + if (new_repr) { + repr.setRepresentation(new_repr); + repr.name = name; + component.reprList[repr_index] = repr; + this.requestReprsInfo(); + } + } }, - setRepresentation: function(name, params, component_index, repr_index){ - var component = this.stage.compList[ component_index ]; - var repr = component.reprList[ repr_index ]; - - if (repr){ - params['useWorker'] = false; - var new_repr = NGL.makeRepresentation(name, component.structure, - this.stage.viewer, params); - if (new_repr) { - repr.setRepresentation(new_repr); - repr.name = name; - component.reprList[repr_index] = repr; - this.requestReprsInfo(); - } - } + setColorByResidue: function(colors, component_index, repr_index){ + var repr = this.stage.compList[component_index].reprList[repr_index]; + var schemeId = NGL.ColorMakerRegistry.addScheme(function(params){ + this.atomColor = function(atom){ + var color = colors[atom.residueIndex]; + return color + }; + }); + repr.setColor(schemeId); }, - addShape: function(name, shapes){ + addShape: function(name, shapes) { // shapes: list of tuple // e.g: [('sphere', ...), ('cone', ...)] var shape = new NGL.Shape(name); - var shape_dict = {'sphere': shape.addSphere, - 'ellipsoid': shape.addEllipsoid, - 'cylinder': shape.addCylinder, - 'cone': shape.addCone, - 'mesh': shape.addMesh, - 'arrow': shape.addArrow}; - for (var i=0; i < shapes.length; i++){ + var shape_dict = { + 'sphere': shape.addSphere, + 'ellipsoid': shape.addEllipsoid, + 'cylinder': shape.addCylinder, + 'cone': shape.addCone, + 'mesh': shape.addMesh, + 'arrow': shape.addArrow + }; + for (var i = 0; i < shapes.length; i++) { var shapes_i = shapes[i] - var shape_type = shapes_i[0]; + var shape_type = shapes_i[0]; var params = shapes_i.slice(1, shapes_i.length); // e.g params = ('sphere', [ 0, 0, 9 ], [ 1, 0, 0 ], 1.5) var func = shape_dict[shape_type]; func.apply(this, params); } - var shapeComp = this.stage.addComponentFromObject(shape); - shapeComp.addRepresentation("buffer"); + var shapeComp = this.stage.addComponentFromObject(shape); + shapeComp.addRepresentation("buffer"); }, - structureChanged: function(){ - if ( !this.model.get( "loaded" ) ) { - var structureList = this.model.get( "_init_structures_sync" ); - for ( var i = 0; i < Object.keys(structureList).length; i++ ){ - var structure = structureList[ i ]; - if( structure.data && structure.ext ){ - var blob = new Blob( [ structure.data ], { type: "text/plain" } ); + structureChanged: function() { + if (!this.model.get("loaded")) { + var structureList = this.model.get("_init_structures_sync"); + for (var i = 0; i < Object.keys(structureList).length; i++) { + var structure = structureList[i]; + if (structure.data && structure.ext) { + var blob = new Blob([structure.data], { + type: "text/plain" + }); var params = structure.params || {}; params.ext = structure.ext; params.defaultRepresentation = false; - this.stage.loadFile( blob, params ).then( function( component ){ + this.stage.loadFile(blob, params).then(function(component) { component.centerView(); // this.structureComponent = component; this.representationsChanged(); // for small peptide - if (component.structure){ + if (component.structure) { var structure = component.structure; - if( structure.biomolDict.BU1 ){ + if (structure.biomolDict.BU1) { var assembly = structure.biomolDict.BU1; - atomCount = assembly.getAtomCount( structure ); + atomCount = assembly.getAtomCount(structure); instanceCount = assembly.getInstanceCount(); - }else{ - atomCount = structure.getModelProxy( 0 ).atomCount; + } else { + atomCount = structure.getModelProxy(0).atomCount; } if (atomCount < 50) { @@ -592,18 +625,18 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return component.addRepresentation('licorice'); } } - }.bind( this ) ); + }.bind(this)); } } - // only use _init_structures_sync before Widget is loaded. + // only use _init_structures_sync before Widget is loaded. } }, - superpose: function(cindex0, cindex1, align, sele0, sele1){ - // superpose two components with given params - var component0 = this.stage.compList[cindex0]; - var component1 = this.stage.compList[cindex1]; - component1.superpose(component0, align, sele0, sele1); + superpose: function(cindex0, cindex1, align, sele0, sele1) { + // superpose two components with given params + var component0 = this.stage.compList[cindex0]; + var component1 = this.stage.compList[cindex1]; + component1.superpose(component0, align, sele0, sele1); }, decode_base64: function(base64) { @@ -647,126 +680,151 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return return arraybuffer; }, - updateCoordinates: function( coordinates, model ) { + updateCoordinates: function(coordinates, model) { // coordinates must be ArrayBuffer (use this.decode_base64) - var component = this.stage.compList[ model ]; - if( coordinates && component ){ - var coords = new Float32Array( coordinates ); - component.structure.updatePosition( coords ); - component.updateRepresentations( { "position": true } ); + var component = this.stage.compList[model]; + if (coordinates && component) { + var coords = new Float32Array(coordinates); + component.structure.updatePosition(coords); + component.updateRepresentations({ + "position": true + }); } }, - handleResize: function(){ - this.$container.resizable( { - resize: function( event, ui ){ - this.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( this ) + handleResize: function() { + this.$container.resizable({ + resize: function(event, ui) { + this.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(this) }) }, - setSize: function( width, height ){ + setSize: function(width, height) { this.stage.viewer.container.style.width = width; this.stage.viewer.container.style.height = height; this.stage.handleResize(); }, - openNotebookCommandDialog: function(){ + openNotebookCommandDialog: function() { var that = this; - dialog = this.$notebook_text.dialog({ + dialog = this.$notebook_text.dialog({ draggable: true, resizable: true, modal: false, - show: { effect: "blind", duration: 150 }, - close: function (event, ui) { + show: { + effect: "blind", + duration: 150 + }, + close: function(event, ui) { that.$container.append(that.$notebook_text); that.$notebook_text.dialog('destroy'); }, }); - dialog.css({overflow: 'hidden'}); + dialog.css({ + overflow: 'hidden' + }); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); Jupyter.keyboard_manager.register_events(dialog); }, - setDialog: function(){ + setDialog: function() { var $nb_container = Jupyter.notebook.container; var that = this; - dialog = this.$container.dialog({ + dialog = this.$container.dialog({ title: "NGLView", draggable: true, resizable: true, modal: false, - width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50, + width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50, height: 'auto', - position: {my: 'right', at: 'right', of: window}, - show: { effect: "blind", duration: 150 }, - close: function (event, ui) { + position: { + my: 'right', + at: 'right', + of: window + }, + show: { + effect: "blind", + duration: 150 + }, + close: function(event, ui) { that.$el.append(that.$container); that.$container.dialog('destroy'); that.handleResize(); }, - resize: function( event, ui ){ + resize: function(event, ui) { that.stage.handleResize(); - that.setSize( ui.size.width + "px", ui.size.height + "px" ); - }.bind( that ), + that.setSize(ui.size.width + "px", ui.size.height + "px"); + }.bind(that), + }); + dialog.css({ + overflow: 'hidden' }); - dialog.css({overflow: 'hidden'}); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); }, - resizeNotebook: function(width){ + resizeNotebook: function(width) { var $nb_container = Jupyter.notebook.container; $nb_container.width(width); - if (this.$container.dialog){ - this.$container.dialog({width: $nb_container.offset().left}); + if (this.$container.dialog) { + this.$container.dialog({ + width: $nb_container.offset().left + }); } }, - parametersChanged: function(){ - var _parameters = this.model.get( "_parameters" ); - this.stage.setParameters( _parameters ); + parametersChanged: function() { + var _parameters = this.model.get("_parameters"); + this.stage.setParameters(_parameters); // do not set _full_stage_parameters here // or parameters will be never updated (not sure why) // use observe in python side var updated_params = this.stage.getParameters(); - this.send({'type': 'stage_parameters', 'data': updated_params}) + this.send({ + 'type': 'stage_parameters', + 'data': updated_params + }) }, - orientationChanged: function(){ - var orientation = this.model.get( "orientation" ); - this.stage.viewer.setOrientation( orientation ); + orientationChanged: function() { + var orientation = this.model.get("orientation"); + this.stage.viewer.setOrientation(orientation); }, - _downloadImage: function( filename, params ) { - this.stage.makeImage( params ).then( function( blob ) { - NGL.download( blob, filename ); + _downloadImage: function(filename, params) { + this.stage.makeImage(params).then(function(blob) { + NGL.download(blob, filename); }) }, - _exportImage: function( params ) { - this.stage.makeImage( params ).then( function( blob ) { - var reader = new FileReader(); - var arr_str; - reader.onload = function() { - arr_str = reader.result.replace("data:image/png;base64,", ""); - this.model.set( "_image_data", arr_str ); - this.touch(); - }.bind( this ); - reader.readAsDataURL( blob ); - }.bind( this )); + _exportImage: function(params) { + this.stage.makeImage(params).then(function(blob) { + var reader = new FileReader(); + var arr_str; + reader.onload = function() { + arr_str = reader.result.replace("data:image/png;base64,", ""); + this.model.set("_image_data", arr_str); + this.touch(); + }.bind(this); + reader.readAsDataURL(blob); + }.bind(this)); }, - cleanOutput: function(){ + cleanOutput: function() { var cells = Jupyter.notebook.get_cells(); - - for (var i = 0; i < cells.length; i++){ + + for (var i = 0; i < cells.length; i++) { var cell = cells[i]; if (cell.output_area.outputs.length > 0) { var out = cell.output_area.outputs[0]; @@ -777,187 +835,199 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return } }, - on_msg: function(msg){ + on_msg: function(msg) { // TODO: re-organize - if( msg.type == 'call_method' ){ + if (msg.type == 'call_method') { var new_args = msg.args.slice(); - new_args.push( msg.kwargs ); + new_args.push(msg.kwargs); - switch( msg.target ) { + switch (msg.target) { case 'Stage': var stage_func = this.stage[msg.methodName]; var stage = this.stage; - if ( msg.methodName == 'screenshot' ){ - NGL.screenshot( this.stage.viewer, msg.kwargs ); - }else if( msg.methodName == 'removeComponent' ) { + if (msg.methodName == 'screenshot') { + NGL.screenshot(this.stage.viewer, msg.kwargs); + } else if (msg.methodName == 'removeComponent') { var index = msg.args[0]; - var component = this.stage.compList[ index ]; - this.stage.removeComponent( component ); - }else{ - if( msg.methodName == 'loadFile' ) { + var component = this.stage.compList[index]; + this.stage.removeComponent(component); + } else { + if (msg.methodName == 'loadFile') { // args = [{'type': ..., 'data': ...}] - var args0 = msg.args[ 0 ]; - if( args0.type == 'blob' ) { - var blob; - if( args0.binary ){ - var decoded_data = this.decode_base64( args0.data ); - blob = new Blob( [ decoded_data ], { type: "application/octet-binary" }); - }else{ - blob = new Blob( [ args0.data ], { type: "text/plain" } ); + var args0 = msg.args[0]; + if (args0.type == 'blob') { + var blob; + if (args0.binary) { + var decoded_data = this.decode_base64(args0.data); + blob = new Blob([decoded_data], { + type: "application/octet-binary" + }); + } else { + blob = new Blob([args0.data], { + type: "text/plain" + }); } - this.stage.loadFile( blob, msg.kwargs ); - }else{ - this.stage.loadFile( msg.args[0].data, msg.kwargs ); + this.stage.loadFile(blob, msg.kwargs); + } else { + this.stage.loadFile(msg.args[0].data, msg.kwargs); } - }else{ - stage_func.apply( stage, new_args ); + } else { + stage_func.apply(stage, new_args); } } break; case 'Viewer': var viewer = this.stage.viewer; var func = this.stage.viewer[msg.methodName]; - func.apply( viewer, new_args ); + func.apply(viewer, new_args); break; case 'compList': var index = msg['component_index']; var component = this.stage.compList[index]; var func = component[msg.methodName]; - func.apply( component, new_args ); + func.apply(component, new_args); break; case 'StructureComponent': var component = this.structureComponent; var func = component[msg.methodName]; - func.apply( component, new_args ); + func.apply(component, new_args); break; case 'Widget': - var func = this[ msg.methodName ]; - if (func){ - func.apply( this, new_args ); - }else{ - console.log('can not create func for ' + msg.methodName); - } + var func = this[msg.methodName]; + if (func) { + func.apply(this, new_args); + } else { + console.log('can not create func for ' + msg.methodName); + } break; case 'Representation': var component_index = msg['component_index']; var repr_index = msg['repr_index']; - var component = this.stage.compList[ component_index ]; + var component = this.stage.compList[component_index]; var repr = component.reprList[repr_index]; - var func = repr[ msg.methodName ]; - if (repr && func){ - func.apply( repr, new_args ); + var func = repr[msg.methodName]; + if (repr && func) { + func.apply(repr, new_args); } break; default: + console.log('there is no method for ' + msg.target); break; } - }else if( msg.type == 'base64_single' ){ + } else if (msg.type == 'base64_single') { // TODO: remove time var time0 = Date.now(); var coordinatesDict = msg.data; - var keys = Object.keys( coordinatesDict ); + var keys = Object.keys(coordinatesDict); - for ( var i = 0; i < keys.length ; i++ ){ - var traj_index = keys[ i ]; - var coordinates = this.decode_base64( coordinatesDict[ traj_index ] ); - if( coordinates.byteLength > 0 ){ - this.updateCoordinates( coordinates, traj_index ); + for (var i = 0; i < keys.length; i++) { + var traj_index = keys[i]; + var coordinates = this.decode_base64(coordinatesDict[traj_index]); + if (coordinates.byteLength > 0) { + this.updateCoordinates(coordinates, traj_index); } } var time1 = Date.now(); - }else if( msg.type == 'binary_single' ){ + } else if (msg.type == 'binary_single') { // TODO: remove time var time0 = Date.now(); var coordinateMeta = msg.data; - var keys = Object.keys( coordinateMeta ); + var keys = Object.keys(coordinateMeta); - for ( var i = 0; i < keys.length ; i++ ){ - var traj_index = keys[ i ]; - var coordinates = new Float32Array( msg.buffers[ i ].buffer ); - if( coordinates.byteLength > 0 ){ - this.updateCoordinates( coordinates, traj_index ); + for (var i = 0; i < keys.length; i++) { + var traj_index = keys[i]; + var coordinates = new Float32Array(msg.buffers[i].buffer); + if (coordinates.byteLength > 0) { + this.updateCoordinates(coordinates, traj_index); } } var time1 = Date.now(); - }else if( msg.type == 'get') { - if( msg.data == 'camera' ) { - this.send( JSON.stringify( this.stage.viewer.camera ) ); - }else if( msg.data == 'parameters' ){ - this.send( JSON.stringify( this.stage.parameters )); - }else{ - for ( var i = 0; i < this.stage.compList.length; i++ ) { - console.log( this.stage.compList[ i ] ); + } else if (msg.type == 'get') { + if (msg.data == 'camera') { + this.send(JSON.stringify(this.stage.viewer.camera)); + } else if (msg.data == 'parameters') { + this.send(JSON.stringify(this.stage.parameters)); + } else { + for (var i = 0; i < this.stage.compList.length; i++) { + console.log(this.stage.compList[i]); } } } - }, + }, }); var NGLBox = widgets.BoxView.extend({ - initialize: function(parameters){ + initialize: function(parameters) { widgets.BoxView.prototype.initialize.call(this, parameters); this.$dialog = undefined; }, - render: function(){ + render: function() { this.model.on('change:_dialog', this.dialogCommandChanged, this); this.model.on('change:_ngl_command', this.commandChanged, this); widgets.BoxView.prototype.render.call(this); }, - dialogCommandChanged: function(){ + dialogCommandChanged: function() { var _dialog = this.model.get('_dialog'); - if (_dialog == 'on'){ + if (_dialog == 'on') { this.setDialog(); } }, - merge: function(){ + merge: function() { // TODO: rename and add doc console.log('calling merge'); var v0 = this.children_views.views[0]; var v1 = this.children_views.views[1]; - - v0.then(function(v00){ - v1.then(function(v11){ + + v0.then(function(v00) { + v1.then(function(v11) { v11.$el.appendTo(v00.$container) - .css( "position", "absolute" ) - .css( "bottom", "5%" ) - .css( "left", "3%" ) - .css( "padding", "2px 5px 2px 5px" ) + .css("position", "absolute") + .css("bottom", "5%") + .css("left", "3%") + .css("padding", "2px 5px 2px 5px") }); }); }, - - commandChanged: function(){ + + commandChanged: function() { var cm = this.model.get('_ngl_command'); - if (cm == 'merge'){ + if (cm == 'merge') { this.merge(); - }else{ + } else { console.log("place holder"); } }, - setDialog: function(){ + setDialog: function() { //var $node = $(this.$el.parent()[0]); var $node = $(this.$el); $node.addClass('jupyter-widgets'); $node.addClass('widget-container'); $node.addClass('widget-box'); var that = this; - dialog = $node.dialog({ + dialog = $node.dialog({ draggable: true, resizable: true, modal: false, height: 'auto', - show: { effect: "blind", duration: 150 }, + show: { + effect: "blind", + duration: 150 + }, + }); + dialog.css({ + overflow: 'hidden' }); - dialog.css({overflow: 'hidden'}); dialog.prev('.ui-dialog-titlebar') - .css({'background': 'transparent', - 'border': 'none'}); + .css({ + 'background': 'transparent', + 'border': 'none' + }); }, }); @@ -1096,6 +1166,7 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return /***/ function(module, exports) { // shim for using process in browser + var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it @@ -1106,84 +1177,22 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return var cachedSetTimeout; var cachedClearTimeout; - function defaultSetTimout() { - throw new Error('setTimeout has not been defined'); - } - function defaultClearTimeout () { - throw new Error('clearTimeout has not been defined'); - } (function () { - try { - if (typeof setTimeout === 'function') { - cachedSetTimeout = setTimeout; - } else { - cachedSetTimeout = defaultSetTimout; - } - } catch (e) { - cachedSetTimeout = defaultSetTimout; + try { + cachedSetTimeout = setTimeout; + } catch (e) { + cachedSetTimeout = function () { + throw new Error('setTimeout is not defined'); } - try { - if (typeof clearTimeout === 'function') { - cachedClearTimeout = clearTimeout; - } else { - cachedClearTimeout = defaultClearTimeout; - } - } catch (e) { - cachedClearTimeout = defaultClearTimeout; + } + try { + cachedClearTimeout = clearTimeout; + } catch (e) { + cachedClearTimeout = function () { + throw new Error('clearTimeout is not defined'); } + } } ()) - function runTimeout(fun) { - if (cachedSetTimeout === setTimeout) { - //normal enviroments in sane situations - return setTimeout(fun, 0); - } - // if setTimeout wasn't available but was latter defined - if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { - cachedSetTimeout = setTimeout; - return setTimeout(fun, 0); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedSetTimeout(fun, 0); - } catch(e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedSetTimeout.call(null, fun, 0); - } catch(e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error - return cachedSetTimeout.call(this, fun, 0); - } - } - - - } - function runClearTimeout(marker) { - if (cachedClearTimeout === clearTimeout) { - //normal enviroments in sane situations - return clearTimeout(marker); - } - // if clearTimeout wasn't available but was latter defined - if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { - cachedClearTimeout = clearTimeout; - return clearTimeout(marker); - } - try { - // when when somebody has screwed with setTimeout but no I.E. maddness - return cachedClearTimeout(marker); - } catch (e){ - try { - // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally - return cachedClearTimeout.call(null, marker); - } catch (e){ - // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. - // Some versions of I.E. have different rules for clearTimeout vs setTimeout - return cachedClearTimeout.call(this, marker); - } - } - - - - } var queue = []; var draining = false; var currentQueue; @@ -1208,7 +1217,7 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return if (draining) { return; } - var timeout = runTimeout(cleanUpNextTick); + var timeout = cachedSetTimeout(cleanUpNextTick); draining = true; var len = queue.length; @@ -1225,7 +1234,7 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return } currentQueue = null; draining = false; - runClearTimeout(timeout); + cachedClearTimeout(timeout); } process.nextTick = function (fun) { @@ -1237,7 +1246,7 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return } queue.push(new Item(fun, args)); if (queue.length === 1 && !draining) { - runTimeout(drainQueue); + cachedSetTimeout(drainQueue, 0); } }; @@ -1314,4 +1323,4 @@ define(["jupyter-js-widgets"], function(__WEBPACK_EXTERNAL_MODULE_2__) { return /***/ } /******/ ])});; -//# sourceMappingURL=index.js.map +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/nglview/static/index.js.map b/nglview/static/index.js.map index 54870a53..ccdf87df 100644 --- a/nglview/static/index.js.map +++ b/nglview/static/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap 343282dbc007748079ba","webpack:///./src/index.js","webpack:///./src/widget_ngl.js","webpack:///external \"jupyter-js-widgets\"","webpack:///./src/ngl.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./package.json"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0B;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA,0BAAyB,uCAAuC;AAChE;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;;AAEF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+E;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA,oBAAmB,yCAAyC;AAC5D,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAuB,uCAAuC;AAC9D;AACA,MAAK;;AAEL;AACA;AACA;;AAEA,sBAAqB,kBAAkB;AACvC;AACA;AACA;AACA,0BAAyB,0BAA0B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,sCAAsC;AACzD,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb,gDAA+C;AAC/C;AACA,MAAK;;AAEL;AACA;AACA,qCAAoC,gBAAgB;AACpD,4CAA2C;AAC3C,MAAK;;AAEL;AACA;;AAEA,wBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA,mB;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,2BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,sBAAqB,mBAAmB;AACxC;AACA,0C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,6BAA4B,uCAAuC;AACnE;AACA;AACA,+DAA8D,qBAAqB;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAmB,SAAS;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA8C,mBAAmB;AACjE;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,oBAAmB,iCAAiC;AACpD;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,qBAAoB,mBAAmB;AACvC;AACA,qBAAoB;AACpB,sCAAqC;AACrC;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,qCAAqC;AAC5D,oBAAmB,iCAAiC;AACpD;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,qBAAoB,mBAAmB;AACvC;AACA,qBAAoB;AACpB,sCAAqC;AACrC,MAAK;;AAEL;AACA;AACA;;AAEA;AACA,qCAAoC,mCAAmC;AACvE;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAmB,mDAAmD;AACtE,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,kEAAiE;AACjE;AACA;AACA,eAAc;AACd;AACA,UAAS;AACT,MAAK;;AAEL;;AAEA;;AAEA,wBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA,yCAAwC,yBAAyB;AACjE;AACA;AACA,0C;AACA;AACA;AACA,yEAAwE,mCAAmC;AAC3G,kCAAiC;AACjC,uEAAsE,qBAAqB;AAC3F;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA,6BAA4B,kBAAkB;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA,6BAA4B,k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;;;;AC3B3mD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,G;;;;;;;AC3EA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,G","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 343282dbc007748079ba\n **/","// Entry point for the notebook bundle containing custom model definitions.\n//\n// Setup notebook base URL\n//\n// Some static assets may be required by the custom widget javascript. The base\n// url for the notebook is not known at build time and is therefore computed\n// dynamically.\n__webpack_public_path__ = document.querySelector('body').getAttribute('data-base-url') + 'nbextensions/nglview/';\n\n// Export widget models and views, and the npm package version number.\n\nmodule.exports = {};\n\nvar loadedModules = [\n require(\"./widget_ngl.js\"),\n //require(\"./ngl.js\"),\n]\n\nfor (var i in loadedModules) {\n if (loadedModules.hasOwnProperty(i)) {\n var loadedModule = loadedModules[i];\n for (var target_name in loadedModule) {\n if (loadedModule.hasOwnProperty(target_name)) {\n module.exports[target_name] = loadedModule[target_name];\n }\n }\n }\n}\n\nmodule.exports['version'] = require('../package.json').version;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/index.js\n ** module id = 0\n ** module chunks = 0\n **/","var widgets = require(\"jupyter-js-widgets\");\nvar NGL = require('./ngl');\n\nvar NGLView = widgets.DOMWidgetView.extend({\n\n render: function(){\n\n // init representations handling\n this.model.on( \"change:_init_representations\", this.representationsChanged, this );\n\n // init structure loading\n this.model.on( \"change:_init_structures_sync\", this.structureChanged, this );\n\n // init setting of frame\n this.model.on( \"change:frame\", this.frameChanged, this );\n\n // init setting of frame\n this.model.on( \"change:count\", this.countChanged, this );\n\n // init _parameters handling\n this.model.on( \"change:_parameters\", this.parametersChanged, this );\n\n // init orientation handling\n this.model.on( \"change:orientation\", this.orientationChanged, this );\n\n // for player\n this.delay = 100; \n this.sync_frame = false;\n this.sync_camera = false;\n\n // get message from Python\n this.model.on( \"msg:custom\", function (msg) {\n this.on_msg( msg );\n }, this);\n\n if (this.model.comm){\n // for embeding in website\n this.model.comm.on_msg( function( msg ){\n var buffers = msg.buffers;\n var content = msg.content.data.content;\n if( buffers.length && content ){\n content.buffers = buffers;\n }\n this.model._handle_comm_msg.call( this.model, msg );\n }.bind( this ) );\n }\n\n // init NGL stage\n NGL.useWorker = false;\n this.stage = new NGL.Stage( undefined, {\n backgroundColor: \"white\"\n });\n this.structureComponent = undefined;\n this.$container = $( this.stage.viewer.container );\n this.$el.append( this.$container );\n this.$container.resizable( {\n resize: function( event, ui ){\n this.setSize( ui.size.width + \"px\", ui.size.height + \"px\" );\n }.bind( this )\n } );\n this.displayed.then( function(){\n var width = this.$el.parent().width() + \"px\";\n var height = \"300px\";\n\n this.setSize( width, height );\n this.$container.resizable(\n \"option\", \"maxWidth\", this.$el.parent().width()\n );\n this.requestUpdateStageParameters();\n }.bind( this ) );\n\n this.stage.viewer.controls.addEventListener( \"change\", function() {\n if( this.sync_camera ){\n this.model.set('camera_str', JSON.stringify( this.stage.viewer.camera ) );\n this.model.set('orientation', this.stage.viewer.getOrientation() );\n this.touch();\n }\n }.bind( this) );\n\n // init toggle fullscreen\n $( this.stage.viewer.container ).dblclick( function(){\n this.stage.toggleFullscreen();\n }.bind( this ) );\n\n // init model data\n this.structureChanged();\n\n // init picking handling\n this.$pickingInfo = $( \"
\" )\n .css( \"position\", \"absolute\" )\n .css( \"top\", \"5%\" )\n .css( \"left\", \"3%\" )\n .css( \"background-color\", \"white\" )\n .css( \"padding\", \"2px 5px 2px 5px\" )\n .css( \"opacity\", \"0.7\" )\n .appendTo( this.$container );\n\n $inputNotebookCommand = $('');\n var that = this;\n\n $inputNotebookCommand.keypress(function(e){\n var command = $(\"#input_notebook_command\").val();\n if (e.which == 13){\n $(\"#input_notebook_command\").val(\"\")\n Jupyter.notebook.kernel.execute(command);\n }\n });\n\n this.$notebook_text= $( \"
\" )\n .css( \"position\", \"absolute\" )\n .css( \"bottom\", \"5%\" )\n .css( \"left\", \"3%\" )\n .css( \"padding\", \"2px 5px 2px 5px\" )\n .css( \"opacity\", \"0.7\" )\n .append($inputNotebookCommand)\n .appendTo(this.$container);\n this.$notebook_text.hide();\n\n this.stage.signals.clicked.add( function( pd ){\n var pd2 = {};\n if( pd.atom ) pd2.atom = pd.atom.toObject();\n if( pd.bond ) pd2.bond = pd.bond.toObject();\n if( pd.instance ) pd2.instance = pd.instance;\n this.model.set( \"picked\", pd2 );\n this.model.save();\n var pickingText = \"\";\n if( pd.atom ){\n pickingText = \"Atom: \" + pd.atom.qualifiedName();\n }else if( pd.bond ){\n pickingText = \"Bond: \" + pd.bond.atom1.qualifiedName() + \" - \" + pd.bond.atom2.qualifiedName();\n }\n this.$pickingInfo.text( pickingText );\n }, this );\n\n this.initPlayer();\n\n var container = this.stage.viewer.container;\n var that = this;\n container.addEventListener( 'dragover', function( e ){\n e.stopPropagation();\n e.preventDefault();\n e.dataTransfer.dropEffect = 'copy';\n }, false );\n \n container.addEventListener( 'drop', function( e ){\n e.stopPropagation();\n e.preventDefault();\n var file = e.dataTransfer.files[0];\n\n that.stage.loadFile( file ).then( that.makeDefaultRepr );\n\n var numDroppedFiles = that.model.get( \"_n_dragged_files\" );\n that.model.set(\"_n_dragged_files\", numDroppedFiles + 1 );\n that.touch();\n }, false );\n\n var that = this;\n this.stage.signals.componentAdded.add( function(){\n var len = this.stage.compList.length;\n this.model.set(\"n_components\", len);\n this.touch();\n var comp = this.stage.compList[len-1];\n comp.signals.representationRemoved.add(function(){\n that.requestReprsInfo();\n });\n comp.signals.representationAdded.add(function(){\n that.requestReprsInfo();\n });\n }, this);\n\n this.stage.signals.componentRemoved.add( function(){\n this.model.set(\"n_components\", this.stage.compList.length);\n this.touch();\n }, this);\n\n // for callbacks from Python\n // must be after initializing NGL.Stage\n this.model.send({'type': 'request_loaded', 'data': true})\n var state_params = this.stage.getParameters();\n this.model.set('_original_stage_parameters', state_params);\n this.touch();\n },\n\n\tsetSelector: function(selector_id){\n // id is uuid that will be set from Python\n var selector = \"
\";\n console.log('selector', selector);\n\t this.$ngl_selector = $(selector)\n\t .css( \"position\", \"absolute\" )\n\t .css( \"bottom\", \"5%\" )\n\t .css( \"left\", \"3%\" )\n\t .css( \"padding\", \"2px 5px 2px 5px\" )\n\t .css( \"opacity\", \"0.7\" )\n\t .appendTo(this.$container);\n\t},\n\n setIPythonLikeCell: function(){\n var cell = Jupyter.notebook.insert_cell_at_bottom();\n\n var handler = function(event) {\n var selected_cell = Jupyter.notebook.get_selected_cell();\n if (selected_cell.cell_id === cell.cell_id){\n selected_cell.execute();\n selected_cell.set_text('');\n }\n return false;\n };\n\n var action = {\n help: 'run cell',\n help_index: 'zz',\n handler: handler\n };\n\n Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action); \n },\n\n hideNotebookCommandBox: function(){\n this.$notebook_text.hide();\n },\n\n showNotebookCommandBox: function(){\n this.$notebook_text.show();\n },\n\n requestFrame: function(){\n this.send({'type': 'request_frame', 'data': 'frame'});\n },\n\n requestUpdateStageParameters: function(){\n var updated_params = this.stage.getParameters();\n this.model.set('_full_stage_parameters', updated_params);\n this.touch();\n },\n\n requestReprParameters: function( component_index, repr_index ){\n var comp = this.stage.compList[ component_index ];\n var repr = comp.reprList[ repr_index ];\n var msg = repr.repr.getParameters();\n\n if (msg){\n msg['name'] = repr.name;\n this.send({'type': 'repr_parameters', 'data': msg});\n }\n },\n\n requestReprsInfo: function(){\n var n_components = this.stage.compList.length;\n var msg = {};\n\n for (var i=0; i < n_components; i++) {\n var comp = this.stage.compList[i];\n msg['c' + i] = {};\n var msgi = msg['c' + i];\n for (var j=0; j < comp.reprList.length; j++){\n var repr = comp.reprList[j];\n msgi[j] = {};\n msgi[j]['name'] = repr.name;\n msgi[j]['parameters'] = repr.repr.getParameters();\n }\n }\n this.send({'type': 'all_reprs_info', 'data': msg});\n },\n\n setDraggable: function( params ){\n if (params){\n this.$container.draggable(params);\n }else{\n this.$container.draggable();\n }\n },\n setDelay: function( delay ){\n this.delay = delay;\n },\n\n setSyncFrame: function(){\n this.sync_frame = true;\n },\n\n setUnSyncFrame: function(){\n this.sync_frame = false;\n },\n\n setSyncCamera: function(){\n this.sync_camera = true;\n },\n\n setUnSyncCamera: function(){\n this.sync_camera = false;\n },\n\n makeDefaultRepr: function( o ){\n var reprDefList = this.model.get( \"_init_representations\" );\n reprDefList.forEach( function( reprDef ){\n o.addRepresentation( reprDef.type, reprDef.params );\n });\n \n if( this.stage.compList.length < 2 ){\n o.centerView();\n }\n },\n\n\n initPlayer: function() {\n // init player\n if( this.model.get( \"count\" ) ){\n var play = function(){\n this.$playerButton.text( \"pause\" );\n this.playerInterval = setInterval( function(){\n var frame = this.model.get( \"frame\" ) + 1;\n var count = this.model.get( \"count\" );\n if( frame >= count ) frame = 0;\n\n if ( this.sync_frame ) {\n this.model.set( \"frame\", frame );\n this.model.save();\n }else{\n this.requestFrame();\n }\n }.bind( this ), this.delay);\n }.bind( this );\n var pause = function(){\n this.$playerButton.text( \"play\" );\n if( this.playerInterval !== undefined ){\n clearInterval( this.playerInterval );\n }\n }.bind( this );\n this.$playerButton = $( \"\" )\n .css( \"float\", \"left\" )\n .css( \"width\", \"55px\" )\n .css( \"opacity\", \"0.7\" )\n .click( function( event ){\n if( this.$playerButton.text() === \"play\" ){\n play();\n }else if( this.$playerButton.text() === \"pause\" ){\n pause();\n }\n }.bind( this ) );\n this.$playerSlider = $( \"
\" )\n .css( \"margin-left\", \"70px\" )\n .css( \"position\", \"relative\" )\n .css( \"bottom\", \"-7px\" )\n .slider( {\n min: 0,\n max: this.model.get( \"count\" ) - 1,\n slide: function( event, ui ){\n pause();\n this.model.set( \"frame\", ui.value );\n this.model.save();\n }.bind( this )\n } );\n this.$player = $( \"
\" )\n .css( \"position\", \"absolute\" )\n .css( \"bottom\", \"5%\" )\n .css( \"width\", \"94%\" )\n .css( \"margin-left\", \"3%\" )\n .css( \"opacity\", \"0.7\" )\n .append( this.$playerButton )\n .append( this.$playerSlider )\n .appendTo( this.$container );\n this.model.on( \"change:frame\", function(){\n this.$playerSlider.slider( \"value\", this.model.get( \"frame\" ) );\n }, this );\n \n if( this.model.get(\"count\") < 2 ) { this.$player.hide() };\n }\n },\n\n countChanged: function() {\n var count = this.model.get( \"count\" );\n this.$playerSlider.slider( { max: count - 1} );\n if( this.model.get(\"count\") > 1 ) { this.$player.show() };\n },\n\n representationsChanged: function(){\n var representations = this.model.get( \"_init_representations\" );\n\n for (var i = 0; i < this.stage.compList.length; i++ ){\n component = this.stage.compList[ i ];\n if( representations && component ){\n component.clearRepresentations();\n representations.forEach( function( repr ){\n component.addRepresentation( repr.type, repr.params );\n } );\n }\n }\n },\n\n setVisibilityForRepr: function(component_index, repr_index, value){\n // value = True/False\n var component = this.stage.compList[ component_index ];\n var repr = component.reprList[repr_index];\n \n if (repr) { \n repr.setVisibility(value);\n }\n },\n\n removeRepresentation: function(component_index, repr_index){\n var component = this.stage.compList[ component_index ];\n var repr = component.reprList[repr_index]\n\n if (repr) {\n component.removeRepresentation(repr);\n repr.dispose();\n }\n },\n\n removeRepresentationsByName: function( repr_name, component_index ){\n var component = this.stage.compList[ component_index ];\n\n if (component){\n component.reprList.forEach( function(repr) {\n if( repr.name == repr_name ){\n component.removeRepresentation( repr );\n repr.dispose();\n }\n })\n }\n },\n\n updateRepresentationForComponent: function( repr_index, component_index, params ){\n var component = this.stage.compList[ component_index ];\n var repr = component.reprList[ repr_index ];\n if (repr) {\n repr.setParameters( params );\n }\n },\n\n updateRepresentationsByName: function(repr_name, component_index, params){\n var component = this.stage.compList[ component_index ];\n\n if (component){\n component.reprList.forEach( function(repr) {\n if( repr.name == repr_name ){\n repr.setParameters(params);\n }\n })\n }\n },\n\n setRepresentation: function(name, params, component_index, repr_index){\n var component = this.stage.compList[ component_index ];\n var repr = component.reprList[ repr_index ];\n\n if (repr){\n params['useWorker'] = false;\n var new_repr = NGL.makeRepresentation(name, component.structure,\n this.stage.viewer, params);\n if (new_repr) {\n repr.setRepresentation(new_repr);\n repr.name = name;\n component.reprList[repr_index] = repr;\n this.requestReprsInfo();\n }\n }\n },\n\n addShape: function(name, shapes){\n // shapes: list of tuple\n // e.g: [('sphere', ...), ('cone', ...)]\n var shape = new NGL.Shape(name);\n var shape_dict = {'sphere': shape.addSphere,\n 'ellipsoid': shape.addEllipsoid,\n 'cylinder': shape.addCylinder,\n 'cone': shape.addCone,\n 'mesh': shape.addMesh,\n 'arrow': shape.addArrow};\n for (var i=0; i < shapes.length; i++){\n var shapes_i = shapes[i]\n var shape_type = shapes_i[0]; \n var params = shapes_i.slice(1, shapes_i.length);\n // e.g params = ('sphere', [ 0, 0, 9 ], [ 1, 0, 0 ], 1.5)\n\n var func = shape_dict[shape_type];\n func.apply(this, params);\n }\n var shapeComp = this.stage.addComponentFromObject(shape);\n shapeComp.addRepresentation(\"buffer\");\n },\n\n structureChanged: function(){\n if ( !this.model.get( \"loaded\" ) ) {\n var structureList = this.model.get( \"_init_structures_sync\" );\n for ( var i = 0; i < Object.keys(structureList).length; i++ ){\n var structure = structureList[ i ];\n if( structure.data && structure.ext ){\n var blob = new Blob( [ structure.data ], { type: \"text/plain\" } );\n var params = structure.params || {};\n params.ext = structure.ext;\n params.defaultRepresentation = false;\n this.stage.loadFile( blob, params ).then( function( component ){\n component.centerView();\n // this.structureComponent = component;\n this.representationsChanged();\n\n // for small peptide\n if (component.structure){\n var structure = component.structure;\n if( structure.biomolDict.BU1 ){\n var assembly = structure.biomolDict.BU1;\n atomCount = assembly.getAtomCount( structure );\n instanceCount = assembly.getInstanceCount();\n }else{\n atomCount = structure.getModelProxy( 0 ).atomCount;\n }\n\n if (atomCount < 50) {\n // why 50? arbitrary number\n component.addRepresentation('licorice');\n }\n }\n }.bind( this ) );\n }\n }\n // only use _init_structures_sync before Widget is loaded.\n }\n },\n\n superpose: function(cindex0, cindex1, align, sele0, sele1){\n // superpose two components with given params\n var component0 = this.stage.compList[cindex0];\n var component1 = this.stage.compList[cindex1];\n component1.superpose(component0, align, sele0, sele1);\n },\n\n decode_base64: function(base64) {\n // lightly adapted from Niklas\n\n /*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n var chars =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var bufferLength = base64.length * 0.75,\n len = base64.length,\n i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i + 1]);\n encoded3 = chars.indexOf(base64[i + 2]);\n encoded4 = chars.indexOf(base64[i + 3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n },\n\n updateCoordinates: function( coordinates, model ) {\n // coordinates must be ArrayBuffer (use this.decode_base64)\n var component = this.stage.compList[ model ];\n if( coordinates && component ){\n var coords = new Float32Array( coordinates );\n component.structure.updatePosition( coords );\n component.updateRepresentations( { \"position\": true } );\n }\n },\n\n handleResize: function(){\n this.$container.resizable( {\n resize: function( event, ui ){\n this.setSize( ui.size.width + \"px\", ui.size.height + \"px\" );\n }.bind( this )\n })\n },\n\n setSize: function( width, height ){\n this.stage.viewer.container.style.width = width;\n this.stage.viewer.container.style.height = height;\n this.stage.handleResize();\n },\n\n openNotebookCommandDialog: function(){\n var that = this;\n dialog = this.$notebook_text.dialog({\n draggable: true,\n resizable: true,\n modal: false,\n show: { effect: \"blind\", duration: 150 },\n close: function (event, ui) {\n that.$container.append(that.$notebook_text);\n that.$notebook_text.dialog('destroy');\n },\n });\n dialog.css({overflow: 'hidden'});\n dialog.prev('.ui-dialog-titlebar')\n .css({'background': 'transparent',\n 'border': 'none'});\n Jupyter.keyboard_manager.register_events(dialog);\n },\n\n setDialog: function(){\n var $nb_container = Jupyter.notebook.container;\n var that = this;\n dialog = this.$container.dialog({\n title: \"NGLView\",\n draggable: true,\n resizable: true,\n modal: false,\n\t width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50,\n height: 'auto',\n position: {my: 'right', at: 'right', of: window},\n show: { effect: \"blind\", duration: 150 },\n close: function (event, ui) {\n that.$el.append(that.$container);\n that.$container.dialog('destroy');\n that.handleResize();\n },\n resize: function( event, ui ){\n that.stage.handleResize();\n that.setSize( ui.size.width + \"px\", ui.size.height + \"px\" );\n }.bind( that ),\n });\n dialog.css({overflow: 'hidden'});\n dialog.prev('.ui-dialog-titlebar')\n .css({'background': 'transparent',\n 'border': 'none'});\n },\n\n resizeNotebook: function(width){\n var $nb_container = Jupyter.notebook.container;\n $nb_container.width(width);\n\n if (this.$container.dialog){\n this.$container.dialog({width: $nb_container.offset().left});\n }\n },\n\n parametersChanged: function(){\n var _parameters = this.model.get( \"_parameters\" );\n this.stage.setParameters( _parameters );\n\n // do not set _full_stage_parameters here\n // or parameters will be never updated (not sure why) \n // use observe in python side\n var updated_params = this.stage.getParameters();\n this.send({'type': 'stage_parameters', 'data': updated_params})\n },\n\n orientationChanged: function(){\n var orientation = this.model.get( \"orientation\" );\n this.stage.viewer.setOrientation( orientation );\n },\n\n _downloadImage: function( filename, params ) {\n this.stage.makeImage( params ).then( function( blob ) {\n NGL.download( blob, filename );\n })\n },\n\n _exportImage: function( params ) {\n this.stage.makeImage( params ).then( function( blob ) {\n var reader = new FileReader();\n var arr_str;\n reader.onload = function() {\n arr_str = reader.result.replace(\"data:image/png;base64,\", \"\");\n this.model.set( \"_image_data\", arr_str );\n this.touch();\n }.bind( this );\n reader.readAsDataURL( blob );\n }.bind( this ));\n },\n\n cleanOutput: function(){\n\n var cells = Jupyter.notebook.get_cells();\n \n for (var i = 0; i < cells.length; i++){\n var cell = cells[i];\n if (cell.output_area.outputs.length > 0) {\n var out = cell.output_area.outputs[0];\n if (out.output_type == 'display_data') {\n cell.clear_output();\n }\n }\n }\n },\n\n on_msg: function(msg){\n // TODO: re-organize\n if( msg.type == 'call_method' ){\n var new_args = msg.args.slice();\n new_args.push( msg.kwargs );\n\n switch( msg.target ) {\n case 'Stage':\n var stage_func = this.stage[msg.methodName];\n var stage = this.stage;\n if ( msg.methodName == 'screenshot' ){\n NGL.screenshot( this.stage.viewer, msg.kwargs );\n }else if( msg.methodName == 'removeComponent' ) {\n var index = msg.args[0];\n var component = this.stage.compList[ index ];\n this.stage.removeComponent( component );\n }else{\n if( msg.methodName == 'loadFile' ) {\n // args = [{'type': ..., 'data': ...}]\n var args0 = msg.args[ 0 ];\n if( args0.type == 'blob' ) {\n var blob; \n if( args0.binary ){\n var decoded_data = this.decode_base64( args0.data );\n blob = new Blob( [ decoded_data ], { type: \"application/octet-binary\" });\n }else{\n blob = new Blob( [ args0.data ], { type: \"text/plain\" } );\n }\n this.stage.loadFile( blob, msg.kwargs );\n }else{\n this.stage.loadFile( msg.args[0].data, msg.kwargs );\n }\n }else{\n stage_func.apply( stage, new_args );\n }\n }\n break;\n case 'Viewer':\n var viewer = this.stage.viewer;\n var func = this.stage.viewer[msg.methodName];\n func.apply( viewer, new_args );\n break;\n case 'compList':\n var index = msg['component_index'];\n var component = this.stage.compList[index];\n var func = component[msg.methodName];\n func.apply( component, new_args );\n break;\n case 'StructureComponent':\n var component = this.structureComponent;\n var func = component[msg.methodName];\n func.apply( component, new_args );\n break;\n case 'Widget':\n var func = this[ msg.methodName ];\n func.apply( this, new_args );\n break;\n case 'Representation':\n var component_index = msg['component_index'];\n var repr_index = msg['repr_index'];\n var component = this.stage.compList[ component_index ];\n var repr = component.reprList[repr_index];\n var func = repr[ msg.methodName ];\n if (repr && func){\n func.apply( repr, new_args );\n }\n break;\n default:\n break;\n }\n }else if( msg.type == 'base64_single' ){\n // TODO: remove time\n var time0 = Date.now();\n\n var coordinatesDict = msg.data;\n var keys = Object.keys( coordinatesDict );\n\n for ( var i = 0; i < keys.length ; i++ ){\n var traj_index = keys[ i ];\n var coordinates = this.decode_base64( coordinatesDict[ traj_index ] );\n if( coordinates.byteLength > 0 ){\n this.updateCoordinates( coordinates, traj_index );\n }\n }\n var time1 = Date.now();\n }else if( msg.type == 'binary_single' ){\n // TODO: remove time\n var time0 = Date.now();\n\n var coordinateMeta = msg.data;\n var keys = Object.keys( coordinateMeta );\n\n for ( var i = 0; i < keys.length ; i++ ){\n var traj_index = keys[ i ];\n var coordinates = new Float32Array( msg.buffers[ i ].buffer );\n if( coordinates.byteLength > 0 ){\n this.updateCoordinates( coordinates, traj_index );\n }\n }\n var time1 = Date.now();\n }else if( msg.type == 'get') {\n if( msg.data == 'camera' ) {\n this.send( JSON.stringify( this.stage.viewer.camera ) );\n }else if( msg.data == 'parameters' ){\n this.send( JSON.stringify( this.stage.parameters ));\n }else{\n for ( var i = 0; i < this.stage.compList.length; i++ ) {\n console.log( this.stage.compList[ i ] );\n }\n }\n }\n},\n});\n\nvar NGLBox = widgets.BoxView.extend({\n initialize: function(parameters){\n widgets.BoxView.prototype.initialize.call(this, parameters);\n this.$dialog = undefined;\n },\n\n render: function(){\n this.model.on('change:_dialog', this.dialogCommandChanged, this);\n this.model.on('change:_ngl_command', this.commandChanged, this);\n widgets.BoxView.prototype.render.call(this);\n },\n\n dialogCommandChanged: function(){\n var _dialog = this.model.get('_dialog');\n if (_dialog == 'on'){\n this.setDialog();\n }\n },\n\n merge: function(){\n // TODO: rename and add doc\n console.log('calling merge');\n var v0 = this.children_views.views[0];\n var v1 = this.children_views.views[1];\n \n v0.then(function(v00){\n v1.then(function(v11){\n v11.$el.appendTo(v00.$container)\n .css( \"position\", \"absolute\" )\n .css( \"bottom\", \"5%\" )\n .css( \"left\", \"3%\" )\n .css( \"padding\", \"2px 5px 2px 5px\" )\n });\n });\n },\n \n commandChanged: function(){\n var cm = this.model.get('_ngl_command');\n if (cm == 'merge'){\n this.merge();\n }else{\n console.log(\"place holder\");\n }\n },\n\n setDialog: function(){\n //var $node = $(this.$el.parent()[0]);\n var $node = $(this.$el);\n $node.addClass('jupyter-widgets');\n $node.addClass('widget-container');\n $node.addClass('widget-box');\n var that = this;\n dialog = $node.dialog({\n draggable: true,\n resizable: true,\n modal: false,\n height: 'auto',\n show: { effect: \"blind\", duration: 150 },\n });\n dialog.css({overflow: 'hidden'});\n dialog.prev('.ui-dialog-titlebar')\n .css({'background': 'transparent',\n 'border': 'none'});\n },\n});\n\nmodule.exports = {\n 'NGLView': NGLView,\n 'NGL': NGL,\n 'NGLBox': NGLBox\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/widget_ngl.js\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"jupyter-js-widgets\"\n ** module id = 2\n ** module chunks = 0\n **/","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e(t.NGL=t.NGL||{})}(this,function(t){\"use strict\";function e(){}function i(t,e){return function(){t.apply(e,arguments)}}function n(t){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof t)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],u(t,this)}function r(t,e){for(;3===t._state;)t=t._value;return 0===t._state?void t._deferreds.push(e):(t._handled=!0,void Eu(function(){var i=1===t._state?e.onFulfilled:e.onRejected;if(null===i)return void(1===t._state?o:a)(e.promise,t._value);var n;try{n=i(t._value)}catch(t){return void a(e.promise,t)}o(e.promise,n)}))}function o(t,e){try{if(e===t)throw new TypeError(\"A promise cannot be resolved with itself.\");if(e&&(\"object\"==typeof e||\"function\"==typeof e)){var r=e.then;if(e instanceof n)return t._state=3,t._value=e,void s(t);if(\"function\"==typeof r)return void u(i(r,e),t)}t._state=1,t._value=e,s(t)}catch(e){a(t,e)}}function a(t,e){t._state=2,t._value=e,s(t)}function s(t){2===t._state&&0===t._deferreds.length&&Eu(function(){t._handled||Cu(t._value)});for(var e=0,i=t._deferreds.length;e>>16&65535|0,a=0;0!==i;){a=i>2e3?2e3:i,i-=a;do r=r+e[n++]|0,o=o+r|0;while(--a);r%=65521,o%=65521}return r|o<<16|0}function m(){for(var t,e=[],i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e}function g(t,e,i,n){var r=Lu,o=n+i;t^=-1;for(var a=n;a>>8^r[255&(t^e[a])];return t^-1}function v(t,e){var i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v,y,b,x,_,w,S,A,M,P;i=t.state,n=t.next_in,M=t.input,r=n+(t.avail_in-5),o=t.next_out,P=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),c=i.dmax,u=i.wsize,h=i.whave,l=i.wnext,d=i.window,f=i.hold,p=i.bits,m=i.lencode,g=i.distcode,v=(1<>>24,f>>>=x,p-=x,x=b>>>16&255,0===x)P[o++]=65535&b;else{if(!(16&x)){if(0===(64&x)){b=m[(65535&b)+(f&(1<>>=x,p-=x),p<15&&(f+=M[n++]<>>24,f>>>=x,p-=x,x=b>>>16&255,!(16&x)){if(0===(64&x)){b=g[(65535&b)+(f&(1<c){t.msg=\"invalid distance too far back\",i.mode=Ou;break t}if(f>>>=x,p-=x,x=o-a,w>x){if(x=w-x,x>h&&i.sane){t.msg=\"invalid distance too far back\",i.mode=Ou;break t}if(S=0,A=d,0===l){if(S+=u-x,x<_){_-=x;do P[o++]=d[S++];while(--x);S=o-w,A=P}}else if(l2;)P[o++]=A[S++],P[o++]=A[S++],P[o++]=A[S++],_-=3;_&&(P[o++]=A[S++],_>1&&(P[o++]=A[S++]))}else{S=o-w;do P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],_-=3;while(_>2);_&&(P[o++]=P[S++],_>1&&(P[o++]=P[S++]))}break}}break}}while(n>3,n-=_,p-=_<<3,f&=(1<=1&&0===I[_];_--);if(w>_&&(w=_),0===_)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(x=1;x<_&&0===I[x];x++);for(w0&&(t===Fu||1!==_))return-1;for(L[1]=0,y=1;yDu||t===Bu&&P>Nu)return 1;for(var k=0;;){k++,p=y-A,a[b]f?(m=O[R+a[b]],g=C[T+a[b]]):(m=96,g=0),c=1<>A)+u]=p<<24|m<<16|g|0;while(0!==u);for(c=1<>=1;if(0!==c?(E&=c-1,E+=c):E=0,b++,0===--I[y]){if(y===_)break;y=e[i+a[b]]}if(y>w&&(E&l)!==h){for(0===A&&(A=w),d+=x,S=y-A,M=1<Du||t===Bu&&P>Nu)return 1;h=E&l,r[h]=w<<24|S<<16|d-o|0}}return 0!==E&&(r[d+E]=y-A<<24|64<<16|0),s.bits=w,0}function b(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function x(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=rh,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Nh),e.distcode=e.distdyn=new Int32Array(Fh),e.sane=1,e.back=-1,Zu):Ju}function w(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,_(t)):Ju}function S(t,e){var i,n;return t&&t.state?(n=t.state,e<0?(i=0,e=-e):(i=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?Ju:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,w(t))):Ju}function A(t,e){var i,n;return t?(n=new x,t.state=n,n.window=null,i=S(t,e),i!==Zu&&(t.state=null),i):Ju}function M(t){if(zh){var e;for(Tu=new Int32Array(512),Iu=new Int32Array(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(Hu,t.lens,0,288,Tu,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(Wu,t.lens,0,32,Iu,0,t.work,{bits:5}),zh=!1}t.lencode=Tu,t.lenbits=9,t.distcode=Iu,t.distbits=5}function P(t,e,i,n){var r,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(d(o.window,e,i-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),d(o.window,e,i-n,r,o.wnext),n-=r,n?(d(o.window,e,i-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,i.check=g(i.check,D,2,0),u=0,h=0,i.mode=oh;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",i.mode=Rh;break}if((15&u)!==nh){t.msg=\"unknown compression method\",i.mode=Rh;break}if(u>>>=4,h-=4,I=(15&u)+8,0===i.wbits)i.wbits=I;else if(I>i.wbits){t.msg=\"invalid window size\",i.mode=Rh;break}i.dmax=1<>8&1),512&i.flags&&(D[0]=255&u,D[1]=u>>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0,i.mode=ah;case ah:for(;h<32;){if(0===s)break t;s--,u+=n[o++]<>>8&255,D[2]=u>>>16&255,D[3]=u>>>24&255,i.check=g(i.check,D,4,0)),u=0,h=0,i.mode=sh;case sh:for(;h<16;){if(0===s)break t;s--,u+=n[o++]<>8),512&i.flags&&(D[0]=255&u,D[1]=u>>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0,i.mode=ch;case ch:if(1024&i.flags){for(;h<16;){if(0===s)break t;s--,u+=n[o++]<>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0}else i.head&&(i.head.extra=null);i.mode=uh;case uh:if(1024&i.flags&&(m=i.length,m>s&&(m=s),m&&(i.head&&(I=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),d(i.head.extra,n,o,m,I)),512&i.flags&&(i.check=g(i.check,n,m,o)),s-=m,o+=m,i.length-=m),i.length))break t;i.length=0,i.mode=hh;case hh:if(2048&i.flags){if(0===s)break t;m=0;do I=n[o+m++],i.head&&I&&i.length<65536&&(i.head.name+=String.fromCharCode(I));while(I&&m>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=mh;break;case fh:for(;h<32;){if(0===s)break t;s--,u+=n[o++]<>>=7&h,h-=7&h,i.mode=Ih;break}for(;h<3;){if(0===s)break t;s--,u+=n[o++]<>>=1,h-=1,3&u){case 0:i.mode=vh;break;case 1:if(M(i),i.mode=Sh,e===Yu){u>>>=2,h-=2;break t}break;case 2:i.mode=xh;break;case 3:t.msg=\"invalid block type\",i.mode=Rh}u>>>=2,h-=2;break;case vh:for(u>>>=7&h,h-=7&h;h<32;){if(0===s)break t;s--,u+=n[o++]<>>16^65535)){t.msg=\"invalid stored block lengths\",i.mode=Rh;break}if(i.length=65535&u,u=0,h=0,i.mode=yh,e===Yu)break t;case yh:i.mode=bh;case bh:if(m=i.length){if(m>s&&(m=s),m>c&&(m=c),0===m)break t;d(r,n,o,m,a),s-=m,o+=m,c-=m,a+=m,i.length-=m;break}i.mode=mh;break;case xh:for(;h<14;){if(0===s)break t;s--,u+=n[o++]<>>=5,h-=5,i.ndist=(31&u)+1,u>>>=5,h-=5,i.ncode=(15&u)+4,u>>>=4,h-=4,i.nlen>286||i.ndist>30){t.msg=\"too many length or distance symbols\",i.mode=Rh;break}i.have=0,i.mode=_h;case _h:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[N[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,O={bits:i.lenbits},L=y(Gu,i.lens,0,19,i.lencode,0,i.work,O),i.lenbits=O.bits,L){t.msg=\"invalid code lengths set\",i.mode=Rh;break}i.have=0,i.mode=wh;case wh:for(;i.have>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=w,h-=w,i.lens[i.have++]=A;else{if(16===A){for(R=w+2;h>>=w,h-=w,0===i.have){t.msg=\"invalid bit length repeat\",i.mode=Rh;break}I=i.lens[i.have-1],m=3+(3&u),u>>>=2,h-=2}else if(17===A){for(R=w+3;h>>=w,h-=w,I=0,m=3+(7&u),u>>>=3,h-=3}else{for(R=w+7;h>>=w,h-=w,I=0,m=11+(127&u),u>>>=7,h-=7}if(i.have+m>i.nlen+i.ndist){t.msg=\"invalid bit length repeat\",i.mode=Rh;break}for(;m--;)i.lens[i.have++]=I}}if(i.mode===Rh)break;if(0===i.lens[256]){t.msg=\"invalid code -- missing end-of-block\",i.mode=Rh;break}if(i.lenbits=9,O={bits:i.lenbits},L=y(Hu,i.lens,0,i.nlen,i.lencode,0,i.work,O),i.lenbits=O.bits,L){t.msg=\"invalid literal/lengths set\",i.mode=Rh;break}if(i.distbits=6,i.distcode=i.distdyn,O={bits:i.distbits},L=y(Wu,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,O),i.distbits=O.bits,L){t.msg=\"invalid distances set\",i.mode=Rh;break}if(i.mode=Sh,e===Yu)break t;case Sh:i.mode=Ah;case Ah:if(s>=6&&c>=258){t.next_out=a,t.avail_out=c,t.next_in=o,t.avail_in=s,i.hold=u,i.bits=h,v(t,f),a=t.next_out,r=t.output,c=t.avail_out,o=t.next_in,n=t.input,s=t.avail_in,u=i.hold,h=i.bits,i.mode===mh&&(i.back=-1);break}for(i.back=0;k=i.lencode[u&(1<>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>E)],w=k>>>24,S=k>>>16&255,A=65535&k,!(E+w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=E,h-=E,i.back+=E}if(u>>>=w,h-=w,i.back+=w,i.length=A,0===S){i.mode=Th;break}if(32&S){i.back=-1,i.mode=mh;break}if(64&S){t.msg=\"invalid literal/length code\",i.mode=Rh;break}i.extra=15&S,i.mode=Mh;case Mh:if(i.extra){for(R=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=Ph;case Ph:for(;k=i.distcode[u&(1<>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>E)],w=k>>>24,S=k>>>16&255,A=65535&k,!(E+w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=E,h-=E,i.back+=E}if(u>>>=w,h-=w,i.back+=w,64&S){t.msg=\"invalid distance code\",i.mode=Rh;break}i.offset=A,i.extra=15&S,i.mode=Eh;case Eh:if(i.extra){for(R=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg=\"invalid distance too far back\",i.mode=Rh;break}i.mode=Ch;case Ch:if(0===c)break t;if(m=f-c,i.offset>m){if(m=i.offset-m,m>i.whave&&i.sane){t.msg=\"invalid distance too far back\",i.mode=Rh;break}m>i.wnext?(m-=i.wnext,x=i.wsize-m):x=i.wnext-m,m>i.length&&(m=i.length),_=i.window}else _=r,x=a-i.offset,m=i.length;m>c&&(m=c),c-=m,i.length-=m;do r[a++]=_[x++];while(--m);0===i.length&&(i.mode=Ah);break;case Th:if(0===c)break t;r[a++]=i.length,c--,i.mode=Ah;break;case Ih:if(i.wrap){for(;h<32;){if(0===s)break t;s--,u|=n[o++]<>>6,e[o++]=128|63&i):i<65536?(e[o++]=224|i>>>12,e[o++]=128|i>>>6&63,e[o++]=128|63&i):(e[o++]=240|i>>>18,e[o++]=128|i>>>12&63,e[o++]=128|i>>>6&63,e[o++]=128|63&i);return e}function O(t,e){if(e<65537&&(t.subarray&&Uh||!t.subarray&&Bh))return String.fromCharCode.apply(null,l(t,e));for(var i=\"\",n=0;n4)s[n++]=65533,i+=o-1;else{for(r&=2===o?31:3===o?15:7;o>1&&i1?s[n++]=65533:r<65536?s[n++]=r:(r-=65536,s[n++]=55296|r>>10&1023,s[n++]=56320|1023&r)}return O(s,n)}function D(t,e){var i;for(e=e||t.length,e>t.length&&(e=t.length),i=e-1;i>=0&&128===(192&t[i]);)i--;return i<0?e:0===i?e:i+jh[t[i]]>e?i:e}function N(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}function F(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}function z(t){if(!(this instanceof z))return new z(t);this.options=h({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new N,this.strm.avail_out=0;var i=A(this.strm,e.windowBits);if(i!==Wh)throw new Error(Zh[i]);this.header=new F,T(this.strm,this.header)}function B(t,e){var i=new z(e);if(i.push(t,!0),i.err)throw i.msg;return i.result}function U(t){if(\"undefined\"!=typeof window){var e=new RegExp(t+\"=([^&#=]*)\"),i=e.exec(window.location.search);return i?decodeURIComponent(i[1]):void 0}}function j(t){return!!t&&(\"string\"!=typeof t||/^1|true|t|yes|y$/i.test(t))}function $(t,e){return void 0!==t?t:e}function V(){if(\"undefined\"==typeof window)return!1;var t=window.navigator.userAgent;return/Arora/i.test(t)?\"Arora\":/Opera|OPR/.test(t)?\"Opera\":/Chrome/i.test(t)?\"Chrome\":/Epiphany/i.test(t)?\"Epiphany\":/Firefox/i.test(t)?\"Firefox\":/Mobile(\\/.*)? Safari/i.test(t)?\"Mobile Safari\":/MSIE/i.test(t)?\"Internet Explorer\":/Midori/i.test(t)?\"Midori\":!!/Safari/i.test(t)&&\"Safari\"}function G(t){var e=window.location,i=e.pathname,n=i.substring(0,i.lastIndexOf(\"/\")+1);return e.origin+n+t}function H(t){if(\"object\"!=typeof t)return t;var e=Array.isArray(t)?[]:{};for(var i in t)e[i]=H(t[i]);return e}function W(t,e){function i(t){var e=window.open(t,\"_blank\");e||(window.location.href=t)}function n(t){i(o?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"))}if(t){e=e||\"download\";var r=\"Safari\"===V(),o=/CriOS\\/[\\d]+/.test(window.navigator.userAgent),a=document.createElement(\"a\");if(\"undefined\"!=typeof navigator&&navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(t,e);else if((r||o)&&window.FileReader)if(t instanceof Blob){var s=new FileReader;s.onloadend=function(){n(s.result)},s.readAsDataURL(t)}else n(t);else t instanceof Blob&&(t=URL.createObjectURL(t)),\"download\"in a?(a.style.display=\"hidden\",document.body.appendChild(a),a.href=t,a.download=e,a.target=\"_blank\",a.click(),document.body.removeChild(a)):i(t),t instanceof Blob&&URL.revokeObjectURL(t)}}function X(t){var e,i,n,r=[\"gz\"];e=\"undefined\"!=typeof File&&t instanceof File||\"undefined\"!=typeof Blob&&t instanceof Blob?t.name||\"\":t;var o=e.lastIndexOf(\"?\");e=e.substring(0,o===-1?e.length:o);var a=e.replace(/^.*[\\\\\\/]/,\"\"),s=a.substring(0,a.lastIndexOf(\".\")),c=a.split(\".\"),u=c.length>1?c.pop().toLowerCase():\"\",h=e.match(/^(.+):\\/\\/(.+)$/);h&&(n=h[1].toLowerCase(),e=h[2]);var l=e.substring(0,e.lastIndexOf(\"/\")+1);if(r.indexOf(u)!==-1){i=u;var d=e.length-u.length-1;u=e.substr(0,d).split(\".\").pop().toLowerCase();var f=s.length-u.length-1;s=s.substr(0,f)}else i=!1;return{path:e,name:a,ext:u,base:s,dir:l,compressed:i,protocol:n,src:t}}function q(t,e,i){var n,r,o,a=null,s=0;i||(i={});var c=function(){s=i.leading===!1?0:Date.now(),a=null,o=t.apply(n,r),a||(n=r=null)};return function(){var u=Date.now();s||i.leading!==!1||(s=u);var h=e-(u-s);return n=this,r=arguments,h<=0||h>e?(a&&(clearTimeout(a),a=null),s=u,o=t.apply(n,r),a||(n=r=null)):a||i.trailing===!1||(a=setTimeout(c,h)),o}}function Y(t){return t.sort().filter(function(t,e,i){return 0===e||t!==i[e-1]})}function Z(t){var e=28672;if(t.length>e){for(var i=[],n=0;n0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}function lt(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==n?n:1}function dt(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}function ft(t,e){function i(){var t=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),e=new Uint16Array([0,1,2,0,2,3]);o=l.createBuffer(),a=l.createBuffer(),l.bindBuffer(l.ARRAY_BUFFER,o),l.bufferData(l.ARRAY_BUFFER,t,l.STATIC_DRAW),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,a),l.bufferData(l.ELEMENT_ARRAY_BUFFER,e,l.STATIC_DRAW),s=n(),c={position:l.getAttribLocation(s,\"position\"),uv:l.getAttribLocation(s,\"uv\")},u={uvOffset:l.getUniformLocation(s,\"uvOffset\"),uvScale:l.getUniformLocation(s,\"uvScale\"),rotation:l.getUniformLocation(s,\"rotation\"),scale:l.getUniformLocation(s,\"scale\"),color:l.getUniformLocation(s,\"color\"),map:l.getUniformLocation(s,\"map\"),opacity:l.getUniformLocation(s,\"opacity\"),modelViewMatrix:l.getUniformLocation(s,\"modelViewMatrix\"),projectionMatrix:l.getUniformLocation(s,\"projectionMatrix\"),fogType:l.getUniformLocation(s,\"fogType\"),fogDensity:l.getUniformLocation(s,\"fogDensity\"),fogNear:l.getUniformLocation(s,\"fogNear\"),fogFar:l.getUniformLocation(s,\"fogFar\"),fogColor:l.getUniformLocation(s,\"fogColor\"),alphaTest:l.getUniformLocation(s,\"alphaTest\")};var i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");i.width=8,i.height=8;var r=i.getContext(\"2d\");r.fillStyle=\"white\",r.fillRect(0,0,8,8),h=new ct(i),h.needsUpdate=!0}function n(){var e=l.createProgram(),i=l.createShader(l.VERTEX_SHADER),n=l.createShader(l.FRAGMENT_SHADER);return l.shaderSource(i,[\"precision \"+t.getPrecision()+\" float;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform float rotation;\",\"uniform vec2 scale;\",\"uniform vec2 uvOffset;\",\"uniform vec2 uvScale;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"void main() {\",\"vUV = uvOffset + uv * uvScale;\",\"vec2 alignedPosition = position * scale;\",\"vec2 rotatedPosition;\",\"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\",\"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\",\"vec4 finalPosition;\",\"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\",\"finalPosition.xy += rotatedPosition;\",\"finalPosition = projectionMatrix * finalPosition;\",\"gl_Position = finalPosition;\",\"}\"].join(\"\\n\")),l.shaderSource(n,[\"precision \"+t.getPrecision()+\" float;\",\"uniform vec3 color;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform int fogType;\",\"uniform vec3 fogColor;\",\"uniform float fogDensity;\",\"uniform float fogNear;\",\"uniform float fogFar;\",\"uniform float alphaTest;\",\"varying vec2 vUV;\",\"void main() {\",\"vec4 texture = texture2D( map, vUV );\",\"if ( texture.a < alphaTest ) discard;\",\"gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\",\"if ( fogType > 0 ) {\",\"float depth = gl_FragCoord.z / gl_FragCoord.w;\",\"float fogFactor = 0.0;\",\"if ( fogType == 1 ) {\",\"fogFactor = smoothstep( fogNear, fogFar, depth );\",\"} else {\",\"const float LOG2 = 1.442695;\",\"fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\",\"fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\",\"}\",\"gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\",\"}\",\"}\"].join(\"\\n\")),l.compileShader(i),l.compileShader(n),l.attachShader(e,i),l.attachShader(e,n),l.linkProgram(e),e}function r(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:e.id-t.id}var o,a,s,c,u,h,l=t.context,d=t.state,f=new dt,p=new lt,m=new dt;this.render=function(n,g){if(0!==e.length){void 0===s&&i(),l.useProgram(s),d.initAttributes(),d.enableAttribute(c.position),d.enableAttribute(c.uv),d.disableUnusedAttributes(),d.disable(l.CULL_FACE),d.enable(l.BLEND),l.bindBuffer(l.ARRAY_BUFFER,o),l.vertexAttribPointer(c.position,2,l.FLOAT,!1,16,0),l.vertexAttribPointer(c.uv,2,l.FLOAT,!1,16,8),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,a),l.uniformMatrix4fv(u.projectionMatrix,!1,g.projectionMatrix.elements),d.activeTexture(l.TEXTURE0),l.uniform1i(u.map,0);var v=0,y=0,b=n.fog;b?(l.uniform3f(u.fogColor,b.color.r,b.color.g,b.color.b),b&&b.isFog?(l.uniform1f(u.fogNear,b.near),l.uniform1f(u.fogFar,b.far),l.uniform1i(u.fogType,1),v=1,y=1):b&&b.isFogExp2&&(l.uniform1f(u.fogDensity,b.density),l.uniform1i(u.fogType,2),v=2,y=2)):(l.uniform1i(u.fogType,0),v=0,y=0);for(var x=0,_=e.length;x<_;x++){var w=e[x];w.modelViewMatrix.multiplyMatrices(g.matrixWorldInverse,w.matrixWorld),w.z=-w.modelViewMatrix.elements[14]}e.sort(r);for(var S=[],x=0,_=e.length;x<_;x++){var w=e[x],A=w.material;if(A.visible!==!1){l.uniform1f(u.alphaTest,A.alphaTest),l.uniformMatrix4fv(u.modelViewMatrix,!1,w.modelViewMatrix.elements),w.matrixWorld.decompose(f,p,m),S[0]=m.x,S[1]=m.y;var M=0;n.fog&&A.fog&&(M=y),v!==M&&(l.uniform1i(u.fogType,M),v=M),null!==A.map?(l.uniform2f(u.uvOffset,A.map.offset.x,A.map.offset.y),l.uniform2f(u.uvScale,A.map.repeat.x,A.map.repeat.y)):(l.uniform2f(u.uvOffset,0,0),l.uniform2f(u.uvScale,1,1)),l.uniform1f(u.opacity,A.opacity),l.uniform3f(u.color,A.color.r,A.color.g,A.color.b),l.uniform1f(u.rotation,A.rotation),l.uniform2fv(u.scale,S),d.setBlending(A.blending,A.blendEquation,A.blendSrc,A.blendDst),d.setDepthTest(A.depthTest),d.setDepthWrite(A.depthWrite),A.map?t.setTexture2D(A.map,0):t.setTexture2D(h,0),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0)}}d.enable(l.CULL_FACE),t.resetGLState()}}}function pt(t,e){this.min=void 0!==t?t:new st(+(1/0),+(1/0)),this.max=void 0!==e?e:new st(-(1/0),-(1/0))}function mt(t,e){function i(){var t=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),e=new Uint16Array([0,1,2,0,2,3]);r=d.createBuffer(),o=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,r),d.bufferData(d.ARRAY_BUFFER,t,d.STATIC_DRAW),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,o),d.bufferData(d.ELEMENT_ARRAY_BUFFER,e,d.STATIC_DRAW),h=d.createTexture(),l=d.createTexture(),f.bindTexture(d.TEXTURE_2D,h),d.texImage2D(d.TEXTURE_2D,0,d.RGB,16,16,0,d.RGB,d.UNSIGNED_BYTE,null),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.NEAREST),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.NEAREST),f.bindTexture(d.TEXTURE_2D,l),d.texImage2D(d.TEXTURE_2D,0,d.RGBA,16,16,0,d.RGBA,d.UNSIGNED_BYTE,null),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.NEAREST),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.NEAREST),a={vertexShader:[\"uniform lowp int renderType;\",\"uniform vec3 screenPosition;\",\"uniform vec2 scale;\",\"uniform float rotation;\",\"uniform sampler2D occlusionMap;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"varying float vVisibility;\",\"void main() {\",\"vUV = uv;\",\"vec2 pos = position;\",\"if ( renderType == 2 ) {\",\"vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\",\"vVisibility = visibility.r / 9.0;\",\"vVisibility *= 1.0 - visibility.g / 9.0;\",\"vVisibility *= visibility.b / 9.0;\",\"vVisibility *= 1.0 - visibility.a / 9.0;\",\"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\",\"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\",\"}\",\"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\",\"}\"].join(\"\\n\"),fragmentShader:[\"uniform lowp int renderType;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform vec3 color;\",\"varying vec2 vUV;\",\"varying float vVisibility;\",\"void main() {\",\"if ( renderType == 0 ) {\",\"gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\",\"} else if ( renderType == 1 ) {\",\"gl_FragColor = texture2D( map, vUV );\",\"} else {\",\"vec4 texture = texture2D( map, vUV );\",\"texture.a *= opacity * vVisibility;\",\"gl_FragColor = texture;\",\"gl_FragColor.rgb *= color;\",\"}\",\"}\"].join(\"\\n\")\n},s=n(a),c={vertex:d.getAttribLocation(s,\"position\"),uv:d.getAttribLocation(s,\"uv\")},u={renderType:d.getUniformLocation(s,\"renderType\"),map:d.getUniformLocation(s,\"map\"),occlusionMap:d.getUniformLocation(s,\"occlusionMap\"),opacity:d.getUniformLocation(s,\"opacity\"),color:d.getUniformLocation(s,\"color\"),scale:d.getUniformLocation(s,\"scale\"),rotation:d.getUniformLocation(s,\"rotation\"),screenPosition:d.getUniformLocation(s,\"screenPosition\")}}function n(e){var i=d.createProgram(),n=d.createShader(d.FRAGMENT_SHADER),r=d.createShader(d.VERTEX_SHADER),o=\"precision \"+t.getPrecision()+\" float;\\n\";return d.shaderSource(n,o+e.fragmentShader),d.shaderSource(r,o+e.vertexShader),d.compileShader(n),d.compileShader(r),d.attachShader(i,n),d.attachShader(i,r),d.linkProgram(i),i}var r,o,a,s,c,u,h,l,d=t.context,f=t.state;this.render=function(n,a,p){if(0!==e.length){var m=new dt,g=p.w/p.z,v=.5*p.z,y=.5*p.w,b=16/p.w,x=new st(b*g,b),_=new dt(1,1,0),w=new st(1,1),S=new pt;S.min.set(0,0),S.max.set(p.z-16,p.w-16),void 0===s&&i(),d.useProgram(s),f.initAttributes(),f.enableAttribute(c.vertex),f.enableAttribute(c.uv),f.disableUnusedAttributes(),d.uniform1i(u.occlusionMap,0),d.uniform1i(u.map,1),d.bindBuffer(d.ARRAY_BUFFER,r),d.vertexAttribPointer(c.vertex,2,d.FLOAT,!1,16,0),d.vertexAttribPointer(c.uv,2,d.FLOAT,!1,16,8),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,o),f.disable(d.CULL_FACE),f.setDepthWrite(!1);for(var A=0,M=e.length;A.001&&T.scale>.001&&(_.x=T.x,_.y=T.y,_.z=T.z,b=T.size*T.scale/p.w,x.x=b*g,x.y=b,d.uniform3f(u.screenPosition,_.x,_.y,_.z),d.uniform2f(u.scale,x.x,x.y),d.uniform1f(u.rotation,T.rotation),d.uniform1f(u.opacity,T.opacity),d.uniform3f(u.color,T.color.r,T.color.g,T.color.b),f.setBlending(T.blending,T.blendEquation,T.blendSrc,T.blendDst),t.setTexture2D(T.texture,1),d.drawElements(d.TRIANGLES,6,d.UNSIGNED_SHORT,0))}}}f.enable(d.CULL_FACE),f.enable(d.DEPTH_TEST),f.setDepthWrite(!0),t.resetGLState()}}}function gt(t,e,i,n,r,o,a,s,c,u){t=void 0!==t?t:[],e=void 0!==e?e:Jl,ct.call(this,t,e,i,n,r,o,a,s,c,u),this.flipY=!1}function vt(){this.seq=[],this.map={}}function yt(t,e,i){var n=t[0];if(n<=0||n>0)return t;var r=e*i,o=mf[r];if(void 0===o&&(o=new Float32Array(r),mf[r]=o),0!==e){n.toArray(o,0);for(var a=1,s=0;a!==e;++a)s+=i,t[a].toArray(o,s)}return o}function bt(t,e){var i=gf[e];void 0===i&&(i=new Int32Array(e),gf[e]=i);for(var n=0;n!==e;++n)i[n]=t.allocTextureUnit();return i}function xt(t,e){t.uniform1f(this.addr,e)}function _t(t,e){t.uniform1i(this.addr,e)}function wt(t,e){void 0===e.x?t.uniform2fv(this.addr,e):t.uniform2f(this.addr,e.x,e.y)}function St(t,e){void 0!==e.x?t.uniform3f(this.addr,e.x,e.y,e.z):void 0!==e.r?t.uniform3f(this.addr,e.r,e.g,e.b):t.uniform3fv(this.addr,e)}function At(t,e){void 0===e.x?t.uniform4fv(this.addr,e):t.uniform4f(this.addr,e.x,e.y,e.z,e.w)}function Mt(t,e){t.uniformMatrix2fv(this.addr,!1,e.elements||e)}function Pt(t,e){t.uniformMatrix3fv(this.addr,!1,e.elements||e)}function Et(t,e){t.uniformMatrix4fv(this.addr,!1,e.elements||e)}function Ct(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTexture2D(e||ff,n)}function Tt(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTextureCube(e||pf,n)}function It(t,e){t.uniform2iv(this.addr,e)}function Lt(t,e){t.uniform3iv(this.addr,e)}function Ot(t,e){t.uniform4iv(this.addr,e)}function Rt(t){switch(t){case 5126:return xt;case 35664:return wt;case 35665:return St;case 35666:return At;case 35674:return Mt;case 35675:return Pt;case 35676:return Et;case 35678:return Ct;case 35680:return Tt;case 5124:case 35670:return _t;case 35667:case 35671:return It;case 35668:case 35672:return Lt;case 35669:case 35673:return Ot}}function kt(t,e){t.uniform1fv(this.addr,e)}function Dt(t,e){t.uniform1iv(this.addr,e)}function Nt(t,e){t.uniform2fv(this.addr,yt(e,this.size,2))}function Ft(t,e){t.uniform3fv(this.addr,yt(e,this.size,3))}function zt(t,e){t.uniform4fv(this.addr,yt(e,this.size,4))}function Bt(t,e){t.uniformMatrix2fv(this.addr,!1,yt(e,this.size,4))}function Ut(t,e){t.uniformMatrix3fv(this.addr,!1,yt(e,this.size,9))}function jt(t,e){t.uniformMatrix4fv(this.addr,!1,yt(e,this.size,16))}function $t(t,e,i){var n=e.length,r=bt(i,n);t.uniform1iv(this.addr,r);for(var o=0;o!==n;++o)i.setTexture2D(e[o]||ff,r[o])}function Vt(t,e,i){var n=e.length,r=bt(i,n);t.uniform1iv(this.addr,r);for(var o=0;o!==n;++o)i.setTextureCube(e[o]||pf,r[o])}function Gt(t){switch(t){case 5126:return kt;case 35664:return Nt;case 35665:return Ft;case 35666:return zt;case 35674:return Bt;case 35675:return Ut;case 35676:return jt;case 35678:return $t;case 35680:return Vt;case 5124:case 35670:return Dt;case 35667:case 35671:return It;case 35668:case 35672:return Lt;case 35669:case 35673:return Ot}}function Ht(t,e,i){this.id=t,this.addr=i,this.setValue=Rt(e.type)}function Wt(t,e,i){this.id=t,this.addr=i,this.size=e.size,this.setValue=Gt(e.type)}function Xt(t){this.id=t,vt.call(this)}function qt(t,e){t.seq.push(e),t.map[e.id]=e}function Yt(t,e,i){var n=t.name,r=n.length;for(vf.lastIndex=0;;){var o=vf.exec(n),a=vf.lastIndex,s=o[1],c=\"]\"===o[2],u=o[3];if(c&&(s=0|s),void 0===u||\"[\"===u&&a+2===r){qt(i,void 0===u?new Ht(s,t,e):new Wt(s,t,e));break}var h=i.map,l=h[s];void 0===l&&(l=new Xt(s),qt(i,l)),i=l}}function Zt(t,e,i){vt.call(this),this.renderer=i;for(var n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),r=0;r!==n;++r){var o=t.getActiveUniform(e,r),a=o.name,s=t.getUniformLocation(e,a);Yt(o,s,this)}}function Kt(t,e,i,n,r,o,a){function s(t,e){if(t.width>e||t.height>e){var i=e/Math.max(t.width,t.height),n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");n.width=Math.floor(t.width*i),n.height=Math.floor(t.height*i);var r=n.getContext(\"2d\");return r.drawImage(t,0,0,t.width,t.height,0,0,n.width,n.height),console.warn(\"THREE.WebGLRenderer: image is too big (\"+t.width+\"x\"+t.height+\"). Resized to \"+n.width+\"x\"+n.height,t),n}return t}function c(t){return lf.isPowerOfTwo(t.width)&&lf.isPowerOfTwo(t.height)}function u(t){if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement){var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=lf.nearestPowerOfTwo(t.width),e.height=lf.nearestPowerOfTwo(t.height);var i=e.getContext(\"2d\");return i.drawImage(t,0,0,e.width,e.height),console.warn(\"THREE.WebGLRenderer: image is not power of two (\"+t.width+\"x\"+t.height+\"). Resized to \"+e.width+\"x\"+e.height,t),e}return t}function h(t){return t.wrapS!==sd||t.wrapT!==sd||t.minFilter!==ud&&t.minFilter!==dd}function l(e){return e===ud||e===hd||e===ld?t.NEAREST:t.LINEAR}function d(t){var e=t.target;e.removeEventListener(\"dispose\",d),p(e),E.textures--}function f(t){var e=t.target;e.removeEventListener(\"dispose\",f),m(e),E.textures--}function p(e){var i=n.get(e);if(e.image&&i.__image__webglTextureCube)t.deleteTexture(i.__image__webglTextureCube);else{if(void 0===i.__webglInit)return;t.deleteTexture(i.__webglTexture)}n.delete(e)}function m(e){var i=n.get(e),r=n.get(e.texture);if(e){if(void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e&&e.isWebGLRenderTargetCube)for(var o=0;o<6;o++)t.deleteFramebuffer(i.__webglFramebuffer[o]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[o]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer);n.delete(e.texture),n.delete(e)}}function g(e,r){var o=n.get(e);if(e.version>0&&o.__version!==e.version){var a=e.image;if(void 0===a)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\",e);else{if(a.complete!==!1)return void x(o,e,r);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\",e)}}i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_2D,o.__webglTexture)}function v(e,a){var u=n.get(e);if(6===e.image.length)if(e.version>0&&u.__version!==e.version){u.__image__webglTextureCube||(e.addEventListener(\"dispose\",d),u.__image__webglTextureCube=t.createTexture(),E.textures++),i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_CUBE_MAP,u.__image__webglTextureCube),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e.flipY);for(var h=e&&e.isCompressedTexture,l=e.image[0]&&e.image[0].isDataTexture,f=[],p=0;p<6;p++)h||l?f[p]=l?e.image[p].image:e.image[p]:f[p]=s(e.image[p],r.maxCubemapSize);var m=f[0],g=c(m),v=o(e.format),y=o(e.type);b(t.TEXTURE_CUBE_MAP,e,g);for(var p=0;p<6;p++)if(h)for(var x,_=f[p].mipmaps,w=0,S=_.length;w-1?i.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,w,v,x.width,x.height,0,x.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,w,v,x.width,x.height,0,v,y,x.data);else l?i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,v,f[p].width,f[p].height,0,v,y,f[p].data):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,v,v,y,f[p]);e.generateMipmaps&&g&&t.generateMipmap(t.TEXTURE_CUBE_MAP),u.__version=e.version,e.onUpdate&&e.onUpdate(e)}else i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_CUBE_MAP,u.__image__webglTextureCube)}function y(e,r){i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_CUBE_MAP,n.get(e).__webglTexture)}function b(i,a,s){var c;if(s?(t.texParameteri(i,t.TEXTURE_WRAP_S,o(a.wrapS)),t.texParameteri(i,t.TEXTURE_WRAP_T,o(a.wrapT)),t.texParameteri(i,t.TEXTURE_MAG_FILTER,o(a.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,o(a.minFilter))):(t.texParameteri(i,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(i,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),a.wrapS===sd&&a.wrapT===sd||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\",a),t.texParameteri(i,t.TEXTURE_MAG_FILTER,l(a.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,l(a.minFilter)),a.minFilter!==ud&&a.minFilter!==dd&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\",a)),c=e.get(\"EXT_texture_filter_anisotropic\")){if(a.type===_d&&null===e.get(\"OES_texture_float_linear\"))return;if(a.type===wd&&null===e.get(\"OES_texture_half_float_linear\"))return;(a.anisotropy>1||n.get(a).__currentAnisotropy)&&(t.texParameterf(i,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),n.get(a).__currentAnisotropy=a.anisotropy)}}function x(e,n,a){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",d),e.__webglTexture=t.createTexture(),E.textures++),i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_2D,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,n.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,n.unpackAlignment);var l=s(n.image,r.maxTextureSize);h(n)&&c(l)===!1&&(l=u(l));var f=c(l),p=o(n.format),m=o(n.type);b(t.TEXTURE_2D,n,f);var g,v=n.mipmaps;if(n&&n.isDepthTexture){var y=t.DEPTH_COMPONENT;if(n.type===_d){if(!C)throw new Error(\"Float Depth Texture only supported in WebGL2.0\");y=t.DEPTH_COMPONENT32F}else C&&(y=t.DEPTH_COMPONENT16);n.format===Rd&&(y=t.DEPTH_STENCIL),i.texImage2D(t.TEXTURE_2D,0,y,l.width,l.height,0,p,m,null)}else if(n&&n.isDataTexture)if(v.length>0&&f){for(var x=0,_=v.length;x<_;x++)g=v[x],i.texImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,p,m,g.data);n.generateMipmaps=!1}else i.texImage2D(t.TEXTURE_2D,0,p,l.width,l.height,0,p,m,l.data);else if(n&&n.isCompressedTexture)for(var x=0,_=v.length;x<_;x++)g=v[x],n.format!==Td&&n.format!==Cd?i.getCompressedTextureFormats().indexOf(p)>-1?i.compressedTexImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,g.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):i.texImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,p,m,g.data);else if(v.length>0&&f){for(var x=0,_=v.length;x<_;x++)g=v[x],i.texImage2D(t.TEXTURE_2D,x,p,p,m,g);n.generateMipmaps=!1}else i.texImage2D(t.TEXTURE_2D,0,p,p,m,l);n.generateMipmaps&&f&&t.generateMipmap(t.TEXTURE_2D),e.__version=n.version,n.onUpdate&&n.onUpdate(n)}function _(e,r,a,s){var c=o(r.texture.format),u=o(r.texture.type);i.texImage2D(s,0,c,r.width,r.height,0,c,u,null),t.bindFramebuffer(t.FRAMEBUFFER,e),t.framebufferTexture2D(t.FRAMEBUFFER,a,s,n.get(r.texture).__webglTexture,0),t.bindFramebuffer(t.FRAMEBUFFER,null)}function w(e,i){t.bindRenderbuffer(t.RENDERBUFFER,e),i.depthBuffer&&!i.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,i.width,i.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)):i.depthBuffer&&i.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,i.width,i.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)):t.renderbufferStorage(t.RENDERBUFFER,t.RGBA4,i.width,i.height),t.bindRenderbuffer(t.RENDERBUFFER,null)}function S(e,i){var r=i&&i.isWebGLRenderTargetCube;if(r)throw new Error(\"Depth Texture with cube render targets is not supported!\");if(t.bindFramebuffer(t.FRAMEBUFFER,e),!i.depthTexture||!i.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");n.get(i.depthTexture).__webglTexture&&i.depthTexture.image.width===i.width&&i.depthTexture.image.height===i.height||(i.depthTexture.image.width=i.width,i.depthTexture.image.height=i.height,i.depthTexture.needsUpdate=!0),g(i.depthTexture,0);var o=n.get(i.depthTexture).__webglTexture;if(i.depthTexture.format===Od)t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,o,0);else{if(i.depthTexture.format!==Rd)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,o,0)}}function A(e){var i=n.get(e),r=e&&e.isWebGLRenderTargetCube;if(e.depthTexture){if(r)throw new Error(\"target.depthTexture not supported in Cube render targets\");S(i.__webglFramebuffer,e)}else if(r){i.__webglDepthbuffer=[];for(var o=0;o<6;o++)t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer[o]),i.__webglDepthbuffer[o]=t.createRenderbuffer(),w(i.__webglDepthbuffer[o],e)}else t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),w(i.__webglDepthbuffer,e);t.bindFramebuffer(t.FRAMEBUFFER,null)}function M(e){var r=n.get(e),o=n.get(e.texture);e.addEventListener(\"dispose\",f),o.__webglTexture=t.createTexture(),E.textures++;var a=e&&e.isWebGLRenderTargetCube,s=c(e);if(a){r.__webglFramebuffer=[];for(var u=0;u<6;u++)r.__webglFramebuffer[u]=t.createFramebuffer()}else r.__webglFramebuffer=t.createFramebuffer();if(a){i.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture),b(t.TEXTURE_CUBE_MAP,e.texture,s);for(var u=0;u<6;u++)_(r.__webglFramebuffer[u],e,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+u);e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_CUBE_MAP),i.bindTexture(t.TEXTURE_CUBE_MAP,null)}else i.bindTexture(t.TEXTURE_2D,o.__webglTexture),b(t.TEXTURE_2D,e.texture,s),_(r.__webglFramebuffer,e,t.COLOR_ATTACHMENT0,t.TEXTURE_2D),e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_2D),i.bindTexture(t.TEXTURE_2D,null);e.depthBuffer&&A(e)}function P(e){var r=e.texture;if(r.generateMipmaps&&c(e)&&r.minFilter!==ud&&r.minFilter!==dd){var o=e&&e.isWebGLRenderTargetCube?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,a=n.get(r).__webglTexture;i.bindTexture(o,a),t.generateMipmap(o),i.bindTexture(o,null)}}var E=a.memory,C=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext;this.setTexture2D=g,this.setTextureCube=v,this.setTextureCubeDynamic=y,this.setupRenderTarget=M,this.updateRenderTargetMipmap=P}function Qt(t,e,i,n){this.x=t||0,this.y=e||0,this.z=i||0,this.w=void 0!==n?n:1}function Jt(t,e,i){function n(){var e=!1,i=new Qt,n=null,r=new Qt;return{setMask:function(i){n===i||e||(t.colorMask(i,i,i,i),n=i)},setLocked:function(t){e=t},setClear:function(e,n,o,a){i.set(e,n,o,a),r.equals(i)===!1&&(t.clearColor(e,n,o,a),r.copy(i))},reset:function(){e=!1,n=null,r.set(0,0,0,1)}}}function r(){var e=!1,i=null,n=null,r=null;return{setTest:function(e){e?d(t.DEPTH_TEST):f(t.DEPTH_TEST)},setMask:function(n){i===n||e||(t.depthMask(n),i=n)},setFunc:function(e){if(n!==e){if(e)switch(e){case Nl:t.depthFunc(t.NEVER);break;case Fl:t.depthFunc(t.ALWAYS);break;case zl:t.depthFunc(t.LESS);break;case Bl:t.depthFunc(t.LEQUAL);break;case Ul:t.depthFunc(t.EQUAL);break;case jl:t.depthFunc(t.GEQUAL);break;case $l:t.depthFunc(t.GREATER);break;case Vl:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}else t.depthFunc(t.LEQUAL);n=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,i=null,n=null,r=null}}}function o(){var e=!1,i=null,n=null,r=null,o=null,a=null,s=null,c=null,u=null;return{setTest:function(e){e?d(t.STENCIL_TEST):f(t.STENCIL_TEST)},setMask:function(n){i===n||e||(t.stencilMask(n),i=n)},setFunc:function(e,i,a){n===e&&r===i&&o===a||(t.stencilFunc(e,i,a),n=e,r=i,o=a)},setOp:function(e,i,n){a===e&&s===i&&c===n||(t.stencilOp(e,i,n),a=e,s=i,c=n)},setLocked:function(t){e=t},setClear:function(e){u!==e&&(t.clearStencil(e),u=e)},reset:function(){e=!1,i=null,n=null,r=null,o=null,a=null,s=null,c=null,u=null}}}function a(e,i,n){var r=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(var a=0;a0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}function ue(t,e){this.normal=void 0!==t?t:new dt(1,0,0),this.constant=void 0!==e?e:0}function he(t,e,i,n,r,o){this.planes=[void 0!==t?t:new ue,void 0!==e?e:new ue,void 0!==i?i:new ue,void 0!==n?n:new ue,void 0!==r?r:new ue,void 0!==o?o:new ue]}function le(t,e,i,n){function r(e,i,n,r){var o=e.geometry,a=null,s=b,c=e.customDepthMaterial;if(n&&(s=x,c=e.customDistanceMaterial),c)a=c;else{var u=!1;i.morphTargets&&(o&&o.isBufferGeometry?u=o.morphAttributes&&o.morphAttributes.position&&o.morphAttributes.position.length>0:o&&o.isGeometry&&(u=o.morphTargets&&o.morphTargets.length>0));var h=e.isSkinnedMesh&&i.skinning,l=0;u&&(l|=g),h&&(l|=v),a=s[l]}if(t.localClippingEnabled&&i.clipShadows===!0&&0!==i.clippingPlanes.length){var d=a.uuid,f=i.uuid,p=_[d];void 0===p&&(p={},_[d]=p);var m=p[f];void 0===m&&(m=a.clone(),p[f]=m),a=m}a.visible=i.visible,a.wireframe=i.wireframe;var y=i.side;return R.renderSingleSided&&y==cl&&(y=al),R.renderReverseSided&&(y===al?y=sl:y===sl&&(y=al)),a.side=y,a.clipShadows=i.clipShadows,a.clippingPlanes=i.clippingPlanes,a.wireframeLinewidth=i.wireframeLinewidth,a.linewidth=i.linewidth,n&&void 0!==a.uniforms.lightPos&&a.uniforms.lightPos.value.copy(r),a}function o(t,e,i){if(t.visible!==!1){var n=0!==(t.layers.mask&e.layers.mask);if(n&&(t.isMesh||t.isLine||t.isPoints)&&t.castShadow&&(t.frustumCulled===!1||c.intersectsObject(t)===!0)){var r=t.material;r.visible===!0&&(t.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,t.matrixWorld),m.push(t))}for(var a=t.children,s=0,u=a.length;s\");return Ae(i)}var i=/#include +<([\\w\\d.]+)>/g;return t.replace(i,e)}function Me(t){function e(t,e,i,n){for(var r=\"\",o=parseInt(e);o0?t.gammaFactor:1,g=be(o,n,t.extensions),v=xe(a),y=r.createProgram();i.isRawShaderMaterial?(f=[v,\"\\n\"].filter(we).join(\"\\n\"),p=[g,v,\"\\n\"].filter(we).join(\"\\n\")):(f=[\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+m,\"#define MAX_BONES \"+n.maxBones,n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+l:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&n.flatShading===!1?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+u:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_COLOR\",\" attribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\" attribute vec3 morphTarget0;\",\" attribute vec3 morphTarget1;\",\" attribute vec3 morphTarget2;\",\" attribute vec3 morphTarget3;\",\" #ifdef USE_MORPHNORMALS\",\" attribute vec3 morphNormal0;\",\" attribute vec3 morphNormal1;\",\" attribute vec3 morphNormal2;\",\" attribute vec3 morphNormal3;\",\" #else\",\" attribute vec3 morphTarget4;\",\" attribute vec3 morphTarget5;\",\" attribute vec3 morphTarget6;\",\" attribute vec3 morphTarget7;\",\" #endif\",\"#endif\",\"#ifdef USE_SKINNING\",\" attribute vec4 skinIndex;\",\" attribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(we).join(\"\\n\"),p=[g,\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest:\"\",\"#define GAMMA_FACTOR \"+m,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+l:\"\",n.envMap?\"#define \"+d:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+u:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",n.envMap&&t.extensions.get(\"EXT_shader_texture_lod\")?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",n.toneMapping!==Xl?\"#define TONE_MAPPING\":\"\",n.toneMapping!==Xl?vm.tonemapping_pars_fragment:\"\",n.toneMapping!==Xl?ye(\"toneMapping\",n.toneMapping):\"\",n.outputEncoding||n.mapEncoding||n.envMapEncoding||n.emissiveMapEncoding?vm.encodings_pars_fragment:\"\",n.mapEncoding?ge(\"mapTexelToLinear\",n.mapEncoding):\"\",n.envMapEncoding?ge(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMapEncoding?ge(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.outputEncoding?ve(\"linearToOutputTexel\",n.outputEncoding):\"\",n.depthPacking?\"#define DEPTH_PACKING \"+i.depthPacking:\"\",\"\\n\"].filter(we).join(\"\\n\")),s=Ae(s,n),s=Se(s,n),c=Ae(c,n),c=Se(c,n),i.isShaderMaterial||(s=Me(s),c=Me(c));var b=f+s,x=p+c,_=fe(r,r.VERTEX_SHADER,b),w=fe(r,r.FRAGMENT_SHADER,x);r.attachShader(y,_),r.attachShader(y,w),void 0!==i.index0AttributeName?r.bindAttribLocation(y,0,i.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(y,0,\"position\"),r.linkProgram(y);var S=r.getProgramInfoLog(y),A=r.getShaderInfoLog(_),M=r.getShaderInfoLog(w),P=!0,E=!0;r.getProgramParameter(y,r.LINK_STATUS)===!1?(P=!1,console.error(\"THREE.WebGLProgram: shader error: \",r.getError(),\"gl.VALIDATE_STATUS\",r.getProgramParameter(y,r.VALIDATE_STATUS),\"gl.getProgramInfoLog\",S,A,M)):\"\"!==S?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",S):\"\"!==A&&\"\"!==M||(E=!1),E&&(this.diagnostics={runnable:P,material:i,programLog:S,vertexShader:{log:A,prefix:f},fragmentShader:{log:M,prefix:p}}),r.deleteShader(_),r.deleteShader(w);var C;this.getUniforms=function(){return void 0===C&&(C=new Zt(r,y,t)),C};var T;return this.getAttributes=function(){return void 0===T&&(T=_e(r,y)),T},this.destroy=function(){r.deleteProgram(y),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn(\"THREE.WebGLProgram: .uniforms is now .getUniforms().\"),this.getUniforms()}},attributes:{get:function(){return console.warn(\"THREE.WebGLProgram: .attributes is now .getAttributes().\"),this.getAttributes()}}}),this.id=_m++,this.code=e,this.usedTimes=1,this.program=y,this.vertexShader=_,this.fragmentShader=w,this}function Ee(t,e){function i(t){if(e.floatVertexTextures&&t&&t.skeleton&&t.skeleton.useVertexTexture)return 1024;var i=e.maxVertexUniforms,n=Math.floor((i-20)/4),r=n;return void 0!==t&&t&&t.isSkinnedMesh&&(r=Math.min(t.skeleton.bones.length,r),r0,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:r.side===cl,flipSided:r.side===sl,depthPacking:void 0!==r.depthPacking&&r.depthPacking};return p},this.getProgramCode=function(t,e){var i=[];if(e.shaderID?i.push(e.shaderID):(i.push(t.fragmentShader),i.push(t.vertexShader)),void 0!==t.defines)for(var n in t.defines)i.push(n),i.push(t.defines[n]);for(var r=0;r65535?Uint32Array:Uint16Array,y=new Ce(new v(o),1);return r(y,t.ELEMENT_ARRAY_BUFFER),n.wireframe=y,y}function u(t,e,i){if(e>i){var n=e;e=i,i=n}var r=t[e];return void 0===r?(t[e]=[i],!0):r.indexOf(i)===-1&&(r.push(i),!0)}var h=new je(t,e,i);return{getAttributeBuffer:s,getWireframeAttribute:c,update:n}}function Ve(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var i;switch(e.type){case\"DirectionalLight\":i={direction:new dt,color:new re,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"SpotLight\":i={position:new dt,direction:new dt,color:new re,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"PointLight\":i={position:new dt,color:new re,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"HemisphereLight\":i={direction:new dt,skyColor:new re,groundColor:new re}}return t[e.id]=i,i}}}function Ge(t,e,i){function n(){if(void 0!==o)return o;var i=e.get(\"EXT_texture_filter_anisotropic\");return o=null!==i?t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}var o,a=void 0!==i.precision?i.precision:\"highp\",s=r(a);s!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",s,\"instead.\"),a=s);var c=i.logarithmicDepthBuffer===!0&&!!e.get(\"EXT_frag_depth\"),u=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),h=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),l=t.getParameter(t.MAX_TEXTURE_SIZE),d=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),f=t.getParameter(t.MAX_VERTEX_ATTRIBS),p=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),m=t.getParameter(t.MAX_VARYING_VECTORS),g=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=h>0,y=!!e.get(\"OES_texture_float\"),b=v&&y;return{getMaxAnisotropy:n,getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:u,maxVertexTextures:h,maxTextureSize:l,maxCubemapSize:d,maxAttributes:f,maxVertexUniforms:p,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:b}}function He(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var n;switch(i){case\"WEBGL_depth_texture\":n=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":n=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":n=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":n=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case\"WEBGL_compressed_texture_etc1\":n=t.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:n=t.getExtension(i)}return null===n&&console.warn(\"THREE.WebGLRenderer: \"+i+\" extension not supported.\"),e[i]=n,n}}}function We(t,e,i){function n(t){s=t}function r(i){i.array instanceof Uint32Array&&e.get(\"OES_element_index_uint\")?(c=t.UNSIGNED_INT,u=4):(c=t.UNSIGNED_SHORT,u=2)}function o(e,n){t.drawElements(s,n,c,e*u),i.calls++,i.vertices+=n,s===t.TRIANGLES&&(i.faces+=n/3)}function a(n,r,o){var a=e.get(\"ANGLE_instanced_arrays\");return null===a?void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\"):(a.drawElementsInstancedANGLE(s,o,c,r*u,n.maxInstancedCount),i.calls++,i.vertices+=o*n.maxInstancedCount,void(s===t.TRIANGLES&&(i.faces+=n.maxInstancedCount*o/3)))}var s,c,u;return{setMode:n,setIndex:r,render:o,renderInstances:a}}function Xe(){function t(){u.value!==n&&(u.value=n,u.needsUpdate=r>0),i.numPlanes=r}function e(t,e,n,r){var o=null!==t?t.length:0,a=null;if(0!==o){if(a=u.value,r!==!0||null===a){var h=n+4*o,l=e.matrixWorldInverse;c.getNormalMatrix(l),(null===a||a.length0?1:-1,p[g]=I.x,p[g+1]=I.y,p[g+2]=I.z,m[v]=R/c,m[v+1]=1-L/h,g+=3,v+=2,C+=1}for(L=0;L65535?Uint32Array:Uint16Array)(l),f=new Float32Array(3*h),p=new Float32Array(3*h),m=new Float32Array(2*h),g=0,v=0,y=0,b=0,x=0;c(\"z\",\"y\",\"x\",-1,-1,i,e,t,o,r,0),c(\"z\",\"y\",\"x\",1,-1,i,e,-t,o,r,1),c(\"x\",\"z\",\"y\",1,1,t,i,e,n,o,2),c(\"x\",\"z\",\"y\",1,-1,t,i,-e,n,o,3),c(\"x\",\"y\",\"z\",1,-1,t,e,i,n,r,4),c(\"x\",\"y\",\"z\",-1,-1,t,e,-i,n,r,5),this.setIndex(new Ce(d,1)),this.addAttribute(\"position\",new Ce(f,3)),this.addAttribute(\"normal\",new Ce(p,3)),this.addAttribute(\"uv\",new Ce(m,2))}function Ze(t,e){this.origin=void 0!==t?t:new dt,this.direction=void 0!==e?e:new dt}function Ke(t,e){this.start=void 0!==t?t:new dt,this.end=void 0!==e?e:new dt}function Qe(t,e,i){this.a=void 0!==t?t:new dt,this.b=void 0!==e?e:new dt,this.c=void 0!==i?i:new dt}function Je(t){ee.call(this),this.type=\"MeshBasicMaterial\",this.color=new re(16777215),this.map=null,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Gl,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.skinning=!1,this.morphTargets=!1,this.lights=!1,this.setValues(t)}function ti(t,e){De.call(this),this.type=\"Mesh\",this.geometry=void 0!==t?t:new Ue,this.material=void 0!==e?e:new Je({color:16777215*Math.random()}),this.drawMode=Qd,this.updateMorphTargets()}function ei(t,e,i,n){Ue.call(this),this.type=\"PlaneBufferGeometry\",this.parameters={width:t,height:e,widthSegments:i,heightSegments:n};for(var r=t/2,o=e/2,a=Math.floor(i)||1,s=Math.floor(n)||1,c=a+1,u=s+1,h=t/a,l=e/s,d=new Float32Array(c*u*3),f=new Float32Array(c*u*3),p=new Float32Array(c*u*2),m=0,g=0,v=0;v65535?Uint32Array:Uint16Array)(a*s*6),v=0;v=0){var h=o[c];if(void 0!==h){var l=It.FLOAT,d=h.array,f=h.normalized;d instanceof Float32Array?l=It.FLOAT:d instanceof Float64Array?console.warn(\"Unsupported data buffer format: Float64Array\"):d instanceof Uint16Array?l=It.UNSIGNED_SHORT:d instanceof Int16Array?l=It.SHORT:d instanceof Uint32Array?l=It.UNSIGNED_INT:d instanceof Int32Array?l=It.INT:d instanceof Int8Array?l=It.BYTE:d instanceof Uint8Array&&(l=It.UNSIGNED_BYTE);var p=h.itemSize,m=Ft.getAttributeBuffer(h);if(h&&h.isInterleavedBufferAttribute){var g=h.data,v=g.stride,y=h.offset;g&&g.isInstancedInterleavedBuffer?(kt.enableAttributeAndDivisor(u,g.meshPerAttribute,r),void 0===i.maxInstancedCount&&(i.maxInstancedCount=g.meshPerAttribute*g.count)):kt.enableAttribute(u),It.bindBuffer(It.ARRAY_BUFFER,m),It.vertexAttribPointer(u,p,l,f,v*g.array.BYTES_PER_ELEMENT,(n*v+y)*g.array.BYTES_PER_ELEMENT)}else h&&h.isInstancedBufferAttribute?(kt.enableAttributeAndDivisor(u,h.meshPerAttribute,r),void 0===i.maxInstancedCount&&(i.maxInstancedCount=h.meshPerAttribute*h.count)):kt.enableAttribute(u),It.bindBuffer(It.ARRAY_BUFFER,m),It.vertexAttribPointer(u,p,l,f,0,n*p*h.array.BYTES_PER_ELEMENT)}else if(void 0!==s){var b=s[c];if(void 0!==b)switch(b.length){case 2:It.vertexAttrib2fv(u,b);break;case 3:It.vertexAttrib3fv(u,b);break;case 4:It.vertexAttrib4fv(u,b);break;default:It.vertexAttrib1fv(u,b)}}}}kt.disableUnusedAttributes()}function h(t,e){return Math.abs(e[0])-Math.abs(t[0])}function l(t,e){return t.object.renderOrder!==e.object.renderOrder?t.object.renderOrder-e.object.renderOrder:t.material.program&&e.material.program&&t.material.program!==e.material.program?t.material.program.id-e.material.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function d(t,e){return t.object.renderOrder!==e.object.renderOrder?t.object.renderOrder-e.object.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function f(t,e,i,n,r){var o,a;i.transparent?(o=X,a=++q):(o=H,a=++W);var s=o[a];void 0!==s?(s.id=t.id,s.object=t,s.geometry=e,s.material=i,s.z=Et.z,s.group=r):(s={id:t.id,object:t,geometry:e,material:i,z:Et.z,group:r},o.push(s))}function p(t){var e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),Mt.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),g(Mt)}function m(t){return Mt.center.set(0,0,0),Mt.radius=.7071067811865476,Mt.applyMatrix4(t.matrixWorld),g(Mt)}function g(t){if(!_t.intersectsSphere(t))return!1;var e=wt.numPlanes;if(0===e)return!0;var i=Q.clippingPlanes,n=t.center,r=-t.radius,o=0;do if(i[o].distanceToPoint(n)=0&&t.numSupportedMorphTargets++;\n}if(t.morphNormals){t.numSupportedMorphNormals=0;for(var d=0;d=0&&t.numSupportedMorphNormals++}var f=n.__webglShader.uniforms;!t.isShaderMaterial&&!t.isRawShaderMaterial|t.clipping===!0&&(n.numClippingPlanes=wt.numPlanes,f.clippingPlanes=wt.uniform),n.fog=e,n.lightsHash=Ct.hash,t.lights&&(f.ambientLightColor.value=Ct.ambient,f.directionalLights.value=Ct.directional,f.spotLights.value=Ct.spot,f.pointLights.value=Ct.point,f.hemisphereLights.value=Ct.hemi,f.directionalShadowMap.value=Ct.directionalShadowMap,f.directionalShadowMatrix.value=Ct.directionalShadowMatrix,f.spotShadowMap.value=Ct.spotShadowMap,f.spotShadowMatrix.value=Ct.spotShadowMatrix,f.pointShadowMap.value=Ct.pointShadowMap,f.pointShadowMatrix.value=Ct.pointShadowMatrix);var p=n.program.getUniforms(),m=Zt.seqWithValue(p.seq,f);n.uniformsList=m,n.dynamicUniforms=Zt.splitDynamic(m,f)}function x(t){t.side===cl?kt.disable(It.CULL_FACE):kt.enable(It.CULL_FACE),kt.setFlipSided(t.side===sl),t.transparent===!0?kt.setBlending(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha):kt.setBlending(pl),kt.setDepthFunc(t.depthFunc),kt.setDepthTest(t.depthTest),kt.setDepthWrite(t.depthWrite),kt.setColorWrite(t.colorWrite),kt.setPolygonOffset(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)}function _(t,e,i,n){ct=0;var r=Dt.get(i);if(St&&(At||t!==rt)){var o=t===rt&&i.id===it;wt.setState(i.clippingPlanes,i.clipShadows,t,r,o)}i.needsUpdate===!1&&(void 0===r.program?i.needsUpdate=!0:i.fog&&r.fog!==e?i.needsUpdate=!0:i.lights&&r.lightsHash!==Ct.hash?i.needsUpdate=!0:void 0!==r.numClippingPlanes&&r.numClippingPlanes!==wt.numPlanes&&(i.needsUpdate=!0)),i.needsUpdate&&(b(i,e,n),i.needsUpdate=!1);var a=!1,s=!1,c=!1,u=r.program,h=u.getUniforms(),l=r.__webglShader.uniforms;if(u.id!==J&&(It.useProgram(u.program),J=u.id,a=!0,s=!0,c=!0),i.id!==it&&(it=i.id,s=!0),a||t!==rt){if(h.set(It,t,\"projectionMatrix\"),Rt.logarithmicDepthBuffer&&h.setValue(It,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),t!==rt&&(rt=t,s=!0,c=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.envMap){var d=h.map.cameraPosition;void 0!==d&&d.setValue(It,Et.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.skinning)&&h.setValue(It,\"viewMatrix\",t.matrixWorldInverse),h.set(It,Q,\"toneMappingExposure\"),h.set(It,Q,\"toneMappingWhitePoint\")}if(i.skinning){h.setOptional(It,n,\"bindMatrix\"),h.setOptional(It,n,\"bindMatrixInverse\");var f=n.skeleton;f&&(Rt.floatVertexTextures&&f.useVertexTexture?(h.set(It,f,\"boneTexture\"),h.set(It,f,\"boneTextureWidth\"),h.set(It,f,\"boneTextureHeight\")):h.setOptional(It,f,\"boneMatrices\"))}s&&(i.lights&&L(l,c),e&&i.fog&&P(l,e),(i.isMeshBasicMaterial||i.isMeshLambertMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.isMeshDepthMaterial)&&w(l,i),i.isLineBasicMaterial?S(l,i):i.isLineDashedMaterial?(S(l,i),A(l,i)):i.isPointsMaterial?M(l,i):i.isMeshLambertMaterial?E(l,i):i.isMeshPhongMaterial?C(l,i):i.isMeshPhysicalMaterial?I(l,i):i.isMeshStandardMaterial?T(l,i):i.isMeshDepthMaterial?i.displacementMap&&(l.displacementMap.value=i.displacementMap,l.displacementScale.value=i.displacementScale,l.displacementBias.value=i.displacementBias):i.isMeshNormalMaterial&&(l.opacity.value=i.opacity),Zt.upload(It,r.uniformsList,l,Q)),h.set(It,n,\"modelViewMatrix\"),h.set(It,n,\"normalMatrix\"),h.setValue(It,\"modelMatrix\",n.matrixWorld);var p=r.dynamicUniforms;return null!==p&&(Zt.evalDynamic(p,l,n,t),Zt.upload(It,p,l,Q)),u}function w(t,e){t.opacity.value=e.opacity,t.diffuse.value=e.color,e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),t.map.value=e.map,t.specularMap.value=e.specularMap,t.alphaMap.value=e.alphaMap,e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity);var i;if(e.map?i=e.map:e.specularMap?i=e.specularMap:e.displacementMap?i=e.displacementMap:e.normalMap?i=e.normalMap:e.bumpMap?i=e.bumpMap:e.roughnessMap?i=e.roughnessMap:e.metalnessMap?i=e.metalnessMap:e.alphaMap?i=e.alphaMap:e.emissiveMap&&(i=e.emissiveMap),void 0!==i){i.isWebGLRenderTarget&&(i=i.texture);var n=i.offset,r=i.repeat;t.offsetRepeat.value.set(n.x,n.y,r.x,r.y)}t.envMap.value=e.envMap,t.flipEnvMap.value=e.envMap&&e.envMap.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio}function S(t,e){t.diffuse.value=e.color,t.opacity.value=e.opacity}function A(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function M(t,e){if(t.diffuse.value=e.color,t.opacity.value=e.opacity,t.size.value=e.size*vt,t.scale.value=.5*N.clientHeight,t.map.value=e.map,null!==e.map){var i=e.map.offset,n=e.map.repeat;t.offsetRepeat.value.set(i.x,i.y,n.x,n.y)}}function P(t,e){t.fogColor.value=e.color,e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}function E(t,e){e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}function C(t,e){t.specular.value=e.specular,t.shininess.value=Math.max(e.shininess,1e-4),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function T(t,e){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function I(t,e){t.clearCoat.value=e.clearCoat,t.clearCoatRoughness.value=e.clearCoatRoughness,T(t,e)}function L(t,e){t.ambientLightColor.needsUpdate=e,t.directionalLights.needsUpdate=e,t.pointLights.needsUpdate=e,t.spotLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e}function O(t){for(var e=0,i=0,n=t.length;i=Rt.maxTextures&&console.warn(\"WebGLRenderer: trying to use \"+t+\" texture units while this GPU supports only \"+Rt.maxTextures),ct+=1,t}function D(t){var e;if(t===ad)return It.REPEAT;if(t===sd)return It.CLAMP_TO_EDGE;if(t===cd)return It.MIRRORED_REPEAT;if(t===ud)return It.NEAREST;if(t===hd)return It.NEAREST_MIPMAP_NEAREST;if(t===ld)return It.NEAREST_MIPMAP_LINEAR;if(t===dd)return It.LINEAR;if(t===fd)return It.LINEAR_MIPMAP_NEAREST;if(t===pd)return It.LINEAR_MIPMAP_LINEAR;if(t===md)return It.UNSIGNED_BYTE;if(t===Sd)return It.UNSIGNED_SHORT_4_4_4_4;if(t===Ad)return It.UNSIGNED_SHORT_5_5_5_1;if(t===Md)return It.UNSIGNED_SHORT_5_6_5;if(t===gd)return It.BYTE;if(t===vd)return It.SHORT;if(t===yd)return It.UNSIGNED_SHORT;if(t===bd)return It.INT;if(t===xd)return It.UNSIGNED_INT;if(t===_d)return It.FLOAT;if(e=Ot.get(\"OES_texture_half_float\"),null!==e&&t===wd)return e.HALF_FLOAT_OES;if(t===Ed)return It.ALPHA;if(t===Cd)return It.RGB;if(t===Td)return It.RGBA;if(t===Id)return It.LUMINANCE;if(t===Ld)return It.LUMINANCE_ALPHA;if(t===Od)return It.DEPTH_COMPONENT;if(t===Rd)return It.DEPTH_STENCIL;if(t===xl)return It.FUNC_ADD;if(t===_l)return It.FUNC_SUBTRACT;if(t===wl)return It.FUNC_REVERSE_SUBTRACT;if(t===Ml)return It.ZERO;if(t===Pl)return It.ONE;if(t===El)return It.SRC_COLOR;if(t===Cl)return It.ONE_MINUS_SRC_COLOR;if(t===Tl)return It.SRC_ALPHA;if(t===Il)return It.ONE_MINUS_SRC_ALPHA;if(t===Ll)return It.DST_ALPHA;if(t===Ol)return It.ONE_MINUS_DST_ALPHA;if(t===Rl)return It.DST_COLOR;if(t===kl)return It.ONE_MINUS_DST_COLOR;if(t===Dl)return It.SRC_ALPHA_SATURATE;if(e=Ot.get(\"WEBGL_compressed_texture_s3tc\"),null!==e){if(t===kd)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===Dd)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===Nd)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===Fd)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(e=Ot.get(\"WEBGL_compressed_texture_pvrtc\"),null!==e){if(t===zd)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===Bd)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===Ud)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===jd)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(e=Ot.get(\"WEBGL_compressed_texture_etc1\"),null!==e&&t===$d)return e.COMPRESSED_RGB_ETC1_WEBGL;if(e=Ot.get(\"EXT_blend_minmax\"),null!==e){if(t===Sl)return e.MIN_EXT;if(t===Al)return e.MAX_EXT}return e=Ot.get(\"WEBGL_depth_texture\"),null!==e&&t===Pd?e.UNSIGNED_INT_24_8_WEBGL:0}console.log(\"THREE.WebGLRenderer\",Jh),t=t||{};var N=void 0!==t.canvas?t.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),F=void 0!==t.context?t.context:null,z=void 0!==t.alpha&&t.alpha,B=void 0===t.depth||t.depth,U=void 0===t.stencil||t.stencil,j=void 0!==t.antialias&&t.antialias,$=void 0===t.premultipliedAlpha||t.premultipliedAlpha,V=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,G=[],H=[],W=-1,X=[],q=-1,Y=new Float32Array(8),Z=[],K=[];this.domElement=N,this.context=null,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.gammaInput=!1,this.gammaOutput=!1,this.physicallyCorrectLights=!1,this.toneMapping=ql,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var Q=this,J=null,tt=null,et=null,it=-1,nt=\"\",rt=null,ot=new Qt,at=null,st=new Qt,ct=0,ut=new re(0),lt=0,pt=N.width,gt=N.height,vt=1,yt=new Qt(0,0,pt,gt),bt=!1,xt=new Qt(0,0,pt,gt),_t=new he,wt=new Xe,St=!1,At=!1,Mt=new se,Pt=new ht,Et=new dt,Ct={hash:\"\",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},Tt={calls:0,vertices:0,faces:0,points:0};this.info={render:Tt,memory:{geometries:0,textures:0},programs:null};var It;try{var Lt={alpha:z,depth:B,stencil:U,antialias:j,premultipliedAlpha:$,preserveDrawingBuffer:V};if(It=F||N.getContext(\"webgl\",Lt)||N.getContext(\"experimental-webgl\",Lt),null===It)throw null!==N.getContext(\"webgl\")?\"Error creating WebGL context with your selected attributes.\":\"Error creating WebGL context.\";void 0===It.getShaderPrecisionFormat&&(It.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),N.addEventListener(\"webglcontextlost\",o,!1)}catch(t){console.error(\"THREE.WebGLRenderer: \"+t)}var Ot=new He(It);Ot.get(\"WEBGL_depth_texture\"),Ot.get(\"OES_texture_float\"),Ot.get(\"OES_texture_float_linear\"),Ot.get(\"OES_texture_half_float\"),Ot.get(\"OES_texture_half_float_linear\"),Ot.get(\"OES_standard_derivatives\"),Ot.get(\"ANGLE_instanced_arrays\"),Ot.get(\"OES_element_index_uint\")&&(Ue.MaxIndex=4294967296);var Rt=new Ge(It,Ot,t),kt=new Jt(It,Ot,D),Dt=new pe,Nt=new Kt(It,Ot,kt,Dt,Rt,D,this.info),Ft=new $e(It,Dt,this.info),zt=new Ee(this,Rt),Bt=new Ve;this.info.programs=zt.programs;var Ut=new qe(It,Ot,Tt),jt=new We(It,Ot,Tt),$t=new ri(-1,1,1,-1,0,1),Vt=new ni,Gt=new ti(new ei(2,2),new Je({depthTest:!1,depthWrite:!1,fog:!1})),Ht=xm.cube,Wt=new ti(new Ye(5,5,5),new ne({uniforms:Ht.uniforms,vertexShader:Ht.vertexShader,fragmentShader:Ht.fragmentShader,side:sl,depthTest:!1,depthWrite:!1,fog:!1}));n(),this.context=It,this.capabilities=Rt,this.extensions=Ot,this.properties=Dt,this.state=kt;var Xt=new le(this,Ct,Ft,Rt);this.shadowMap=Xt;var qt=new ft(this,Z),Yt=new mt(this,K);this.getContext=function(){return It},this.getContextAttributes=function(){return It.getContextAttributes()},this.forceContextLoss=function(){Ot.get(\"WEBGL_lose_context\").loseContext()},this.getMaxAnisotropy=function(){return Rt.getMaxAnisotropy()},this.getPrecision=function(){return Rt.precision},this.getPixelRatio=function(){return vt},this.setPixelRatio=function(t){void 0!==t&&(vt=t,this.setSize(xt.z,xt.w,!1))},this.getSize=function(){return{width:pt,height:gt}},this.setSize=function(t,e,i){pt=t,gt=e,N.width=t*vt,N.height=e*vt,i!==!1&&(N.style.width=t+\"px\",N.style.height=e+\"px\"),this.setViewport(0,0,t,e)},this.setViewport=function(t,e,i,n){kt.viewport(xt.set(t,e,i,n))},this.setScissor=function(t,e,i,n){kt.scissor(yt.set(t,e,i,n))},this.setScissorTest=function(t){kt.setScissorTest(bt=t)},this.getClearColor=function(){return ut},this.setClearColor=function(t,e){ut.set(t),lt=void 0!==e?e:1,i(ut.r,ut.g,ut.b,lt)},this.getClearAlpha=function(){return lt},this.setClearAlpha=function(t){lt=t,i(ut.r,ut.g,ut.b,lt)},this.clear=function(t,e,i){var n=0;(void 0===t||t)&&(n|=It.COLOR_BUFFER_BIT),(void 0===e||e)&&(n|=It.DEPTH_BUFFER_BIT),(void 0===i||i)&&(n|=It.STENCIL_BUFFER_BIT),It.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(t,e,i,n){this.setRenderTarget(t),this.clear(e,i,n)},this.resetGLState=r,this.dispose=function(){X=[],q=-1,H=[],W=-1,N.removeEventListener(\"webglcontextlost\",o,!1)},this.renderBufferImmediate=function(t,e,i){kt.initAttributes();var n=Dt.get(t);t.hasPositions&&!n.position&&(n.position=It.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=It.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=It.createBuffer()),t.hasColors&&!n.color&&(n.color=It.createBuffer());var r=e.getAttributes();if(t.hasPositions&&(It.bindBuffer(It.ARRAY_BUFFER,n.position),It.bufferData(It.ARRAY_BUFFER,t.positionArray,It.DYNAMIC_DRAW),kt.enableAttribute(r.position),It.vertexAttribPointer(r.position,3,It.FLOAT,!1,0,0)),t.hasNormals){if(It.bindBuffer(It.ARRAY_BUFFER,n.normal),!i.isMeshPhongMaterial&&!i.isMeshStandardMaterial&&i.shading===ul)for(var o=0,a=3*t.count;o8&&(f.length=8);for(var v=n.morphAttributes,p=0,m=f.length;p0&&w.renderInstances(n,T,L):w.render(T,L)},this.render=function(t,e,n,r){if((e&&e.isCamera)===!1)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");var o=t.fog;nt=\"\",it=-1,rt=null,t.autoUpdate===!0&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),e.matrixWorldInverse.getInverse(e.matrixWorld),Pt.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),_t.setFromMatrix(Pt),G.length=0,W=-1,q=-1,Z.length=0,K.length=0,At=this.localClippingEnabled,St=wt.init(this.clippingPlanes,At,e),v(t,e),H.length=W+1,X.length=q+1,Q.sortObjects===!0&&(H.sort(l),X.sort(d)),St&&wt.beginShadows(),O(G),Xt.render(t,e),R(G,e),St&&wt.endShadows(),Tt.calls=0,Tt.vertices=0,Tt.faces=0,Tt.points=0,void 0===n&&(n=null),this.setRenderTarget(n);var a=t.background;if(null===a?i(ut.r,ut.g,ut.b,lt):a&&a.isColor&&(i(a.r,a.g,a.b,1),r=!0),(this.autoClear||r)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil),a&&a.isCubeTexture?(Vt.projectionMatrix.copy(e.projectionMatrix),Vt.matrixWorld.extractRotation(e.matrixWorld),Vt.matrixWorldInverse.getInverse(Vt.matrixWorld),Wt.material.uniforms.tCube.value=a,Wt.modelViewMatrix.multiplyMatrices(Vt.matrixWorldInverse,Wt.matrixWorld),Ft.update(Wt),Q.renderBufferDirect(Vt,null,Wt.geometry,Wt.material,Wt,null)):a&&a.isTexture&&(Gt.material.map=a,Ft.update(Gt),Q.renderBufferDirect($t,null,Gt.geometry,Gt.material,Gt,null)),t.overrideMaterial){var s=t.overrideMaterial;y(H,e,o,s),y(X,e,o,s)}else kt.setBlending(pl),y(H,e,o),y(X,e,o);qt.render(t,e),Yt.render(t,e,st),n&&Nt.updateRenderTargetMipmap(n),kt.setDepthTest(!0),kt.setDepthWrite(!0),kt.setColorWrite(!0)},this.setFaceCulling=function(t,e){kt.setCullFace(t),kt.setFlipSided(e===nl)},this.allocTextureUnit=k,this.setTexture2D=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTarget&&(t||(console.warn(\"THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead.\"),t=!0),e=e.texture),Nt.setTexture2D(e,i)}}(),this.setTexture=function(){var t=!1;return function(e,i){t||(console.warn(\"THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead.\"),t=!0),Nt.setTexture2D(e,i)}}(),this.setTextureCube=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTargetCube&&(t||(console.warn(\"THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),t=!0),e=e.texture),e&&e.isCubeTexture||Array.isArray(e.image)&&6===e.image.length?Nt.setTextureCube(e,i):Nt.setTextureCubeDynamic(e,i)}}(),this.getCurrentRenderTarget=function(){return tt},this.setRenderTarget=function(t){tt=t,t&&void 0===Dt.get(t).__webglFramebuffer&&Nt.setupRenderTarget(t);var e,i=t&&t.isWebGLRenderTargetCube;if(t){var n=Dt.get(t);e=i?n.__webglFramebuffer[t.activeCubeFace]:n.__webglFramebuffer,ot.copy(t.scissor),at=t.scissorTest,st.copy(t.viewport)}else e=null,ot.copy(yt).multiplyScalar(vt),at=bt,st.copy(xt).multiplyScalar(vt);if(et!==e&&(It.bindFramebuffer(It.FRAMEBUFFER,e),et=e),kt.scissor(ot),kt.setScissorTest(at),kt.viewport(st),i){var r=Dt.get(t.texture);It.framebufferTexture2D(It.FRAMEBUFFER,It.COLOR_ATTACHMENT0,It.TEXTURE_CUBE_MAP_POSITIVE_X+t.activeCubeFace,r.__webglTexture,t.activeMipMapLevel)}},this.readRenderTargetPixels=function(t,e,i,n,r,o){if((t&&t.isWebGLRenderTarget)===!1)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");var a=Dt.get(t).__webglFramebuffer;if(a){var s=!1;a!==et&&(It.bindFramebuffer(It.FRAMEBUFFER,a),s=!0);try{var c=t.texture,u=c.format,h=c.type;if(u!==Td&&D(u)!==It.getParameter(It.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");if(!(h===md||D(h)===It.getParameter(It.IMPLEMENTATION_COLOR_READ_TYPE)||h===_d&&(Ot.get(\"OES_texture_float\")||Ot.get(\"WEBGL_color_buffer_float\"))||h===wd&&Ot.get(\"EXT_color_buffer_half_float\")))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");It.checkFramebufferStatus(It.FRAMEBUFFER)===It.FRAMEBUFFER_COMPLETE?e>=0&&e<=t.width-n&&i>=0&&i<=t.height-r&&It.readPixels(e,i,n,r,D(u),D(h),o):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{s&&It.bindFramebuffer(It.FRAMEBUFFER,et)}}}}function ai(t,e){this.name=\"\",this.color=new re(t),this.density=void 0!==e?e:25e-5}function si(t,e,i){this.name=\"\",this.color=new re(t),this.near=void 0!==e?e:1,this.far=void 0!==i?i:1e3}function ci(){De.call(this),this.type=\"Scene\",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function ui(t,e,i,n,r){De.call(this),this.lensFlares=[],this.positionScreen=new dt,this.customUpdateCallback=void 0,void 0!==t&&this.add(t,e,i,n,r)}function hi(t){ee.call(this),this.type=\"SpriteMaterial\",this.color=new re(16777215),this.map=null,this.rotation=0,this.fog=!1,this.lights=!1,this.setValues(t)}function li(t){De.call(this),this.type=\"Sprite\",this.material=void 0!==t?t:new hi}function di(){De.call(this),this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function fi(t,e,i,n,r,o,a,s,c,u,h,l){ct.call(this,null,o,a,s,c,u,n,r,h,l),this.image={data:t,width:e,height:i},this.magFilter=void 0!==c?c:ud,this.minFilter=void 0!==u?u:ud,this.flipY=!1,this.generateMipmaps=!1}function pi(t,e,i){if(this.useVertexTexture=void 0===i||i,this.identityMatrix=new ht,t=t||[],this.bones=t.slice(0),this.useVertexTexture){var n=Math.sqrt(4*this.bones.length);n=lf.nextPowerOfTwo(Math.ceil(n)),n=Math.max(n,4),this.boneTextureWidth=n,this.boneTextureHeight=n,this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new fi(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,Td,_d)}else this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else{console.warn(\"THREE.Skeleton bonInverses is the wrong length.\"),this.boneInverses=[];for(var r=0,o=this.bones.length;r0)&&S.push(A,M,E),(m!==i-1||s65535?Ie:Te)(S,1)),this.addAttribute(\"position\",u),this.addAttribute(\"normal\",h),this.addAttribute(\"uv\",l),this.boundingSphere=new se(new dt,t)}function Fn(t,e,i,n,r,o,a){Fe.call(this),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:r,thetaStart:o,thetaLength:a},this.fromBufferGeometry(new Nn(t,e,i,n,r,o,a))}function zn(t,e){De.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.colors=[new re,new re];var i=new Fn(e,4,2);i.rotateX(-Math.PI/2);for(var n=0,r=8;n0&&f++,e>0&&f++);var p=c(),m=u(),g=new Ce(new(m>65535?Uint32Array:Uint16Array)(m),1),v=new Ce(new Float32Array(3*p),3),y=new Ce(new Float32Array(3*p),3),b=new Ce(new Float32Array(2*p),2),x=0,_=0,w=[],S=i/2,A=0;h(),o===!1&&(t>0&&l(!0),e>0&&l(!1)),this.setIndex(g),this.addAttribute(\"position\",v),this.addAttribute(\"normal\",y),this.addAttribute(\"uv\",b)}function Gn(t,e,i,n,r,o){De.call(this),void 0===n&&(n=16776960),void 0===i&&(i=1),void 0===r&&(r=.2*i),void 0===o&&(o=.2*r),this.position.copy(e),this.line=new yi(Om,new vi({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new ti(Rm,new Je({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,r,o)}function Hn(t,e,i,n){function r(t){var e=t.normalize().clone();e.index=h.vertices.push(e)-1;var i=s(t)/2/Math.PI+.5,n=c(t)/Math.PI+.5;return e.uv=new st(i,1-n),e}function o(t,e,i){var n=new Oe(t.index,e.index,i.index,[t.clone(),e.clone(),i.clone()]);h.faces.push(n),b.copy(t).add(e).add(i).divideScalar(3);var r=s(b);h.faceVertexUvs[0].push([u(t.uv,t,r),u(e.uv,e,r),u(i.uv,i,r)])}function a(t,e){for(var i=Math.pow(2,e),n=r(h.vertices[t.a]),a=r(h.vertices[t.b]),s=r(h.vertices[t.c]),c=[],u=0;u<=i;u++){c[u]=[];for(var l=r(n.clone().lerp(s,u/i)),d=r(a.clone().lerp(s,u/i)),f=i-u,p=0;p<=f;p++)0===p&&u===i?c[u][p]=l:c[u][p]=r(l.clone().lerp(d,p/f))}for(var u=0;u.9&&M<.1&&(_<.2&&(x[0].x+=1),w<.2&&(x[1].x+=1),S<.2&&(x[2].x+=1))}for(var l=0,d=this.vertices.length;l=0&&e<=7&&hy[t]?hy[t][e]:Array(e+1).join(t)}function zr(t,e){function i(){f=[],r(),o(),a()}function n(t,e){return void 0!==t?t:e}function r(){f.push(Dr(\"TITEL %-74s\",t.name))}function o(){d.forEach(function(t){f.push(Dr(\"REMARK %-73s\",t))}),t.trajectory&&(f.push(Dr(\"REMARK %-73s\",\"Trajectory '\"+t.trajectory.name+\"'\")),f.push(Dr(\"REMARK %-73s\",\"Frame \"+t.trajectory.frame)))}function a(){var e=1,i=1;t.eachModel(function(t){f.push(Dr(\"MODEL %-74d\",i++)),t.eachAtom(function(t){var i=t.hetero?m:p,r=l?e:t.serial,o=t.atomname;1===o.length&&(o=\" \"+o),f.push(Dr(i,r,o,t.resname,n(t.chainname,\" \"),t.resno,t.x,t.y,t.z,n(t.occurence,1),n(t.bfactor,0),n(t.segid,\"\"),n(t.element,\"\"))),e+=1}),f.push(Dr(\"%-80s\",\"ENDMDL\")),i+=1}),f.push(Dr(\"%-80s\",\"END\"))}function s(){return i(),f.join(\"\\n\")}function c(){return new Blob([s()],{type:\"text/plain\"})}function u(t,e){t=t||\"structure\",e=e||\"pdb\";var i=t+\".\"+e,n=c();W(n,i)}var h=Object.assign({},e),l=void 0===h.renumberSerial||h.renumberSerial,d=h.remarks||[];Array.isArray(d)||(d=[d]);var f,p=\"ATOM %5d %-4s %3s %1s%4d %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s\",m=\"HETATM%5d %-4s %3s %1s%4d %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s\";this.getString=s,this.getBlob=c,this.download=u}function Br(){this.count=0,this.signals={countChanged:new Kn}}function Ur(){this.signals={updated:new Kn},this.begin(),this.maxDuration=-(1/0),this.minDuration=1/0,this.avgDuration=14,this.lastDuration=1/0,this.prevFpsTime=0,this.lastFps=1/0,this.lastFrames=1,this.frames=0,this.count=0}function jr(t,e){function i(t){d.enabled!==!1&&(v=g,g===f.NONE&&(t.keyCode!==d.keys[f.ROTATE]||d.noRotate?t.keyCode!==d.keys[f.ZOOM]||d.noZoom?t.keyCode!==d.keys[f.PAN]||d.noPan||(g=f.PAN):g=f.ZOOM:g=f.ROTATE))}function n(){d.enabled!==!1&&(g=v)}function r(t){d.enabled!==!1&&(g===f.NONE&&(g=t.button),g!==f.ROTATE||d.noRotate?g!==f.ZOOM||d.noZoom?g!==f.PAN||d.noPan||(E.copy(O(t.pageX,t.pageY)),C.copy(E)):(S.copy(O(t.pageX,t.pageY)),A.copy(S)):(x.copy(R(t.pageX,t.pageY)),b.copy(x)),document.addEventListener(\"mousemove\",o,!1),document.addEventListener(\"mouseup\",a,!1),d.dispatchEvent(I))}function o(t){d.enabled!==!1&&(g!==f.ROTATE||d.noRotate?g!==f.ZOOM||d.noZoom?g!==f.PAN||d.noPan||C.copy(O(t.pageX,t.pageY)):A.copy(O(t.pageX,t.pageY)):(b.copy(x),x.copy(R(t.pageX,t.pageY))))}function a(){d.enabled!==!1&&(g=f.NONE,document.removeEventListener(\"mousemove\",o),document.removeEventListener(\"mouseup\",a),d.dispatchEvent(L))}function s(t){if(d.enabled!==!1){var e=0;e=t.wheelDelta?t.wheelDelta/40:t.detail?-t.detail/3:3*-t.deltaY,S.y+=.01*e,d.dispatchEvent(I),d.dispatchEvent(L)}}function c(t){if(d.enabled!==!1){switch(t.touches.length){case 1:g=f.TOUCH_ROTATE,x.copy(R(t.touches[0].pageX,t.touches[0].pageY)),b.copy(x);break;default:g=f.TOUCH_ZOOM_PAN;var e=t.touches[0].pageX-t.touches[1].pageX,i=t.touches[0].pageY-t.touches[1].pageY;P=M=Math.sqrt(e*e+i*i);var n=(t.touches[0].pageX+t.touches[1].pageX)/2,r=(t.touches[0].pageY+t.touches[1].pageY)/2;E.copy(O(n,r)),C.copy(E)}d.dispatchEvent(I)}}function u(t){if(d.enabled!==!1)switch(t.touches.length){case 1:b.copy(x),x.copy(R(t.touches[0].pageX,t.touches[0].pageY));break;default:var e=t.touches[0].pageX-t.touches[1].pageX,i=t.touches[0].pageY-t.touches[1].pageY;P=Math.sqrt(e*e+i*i);var n=(t.touches[0].pageX+t.touches[1].pageX)/2,r=(t.touches[0].pageY+t.touches[1].pageY)/2;C.copy(O(n,r))}}function h(t){if(d.enabled!==!1){switch(t.touches.length){case 0:g=f.NONE;break;case 1:g=f.TOUCH_ROTATE,x.copy(R(t.touches[0].pageX,t.touches[0].pageY)),b.copy(x)}d.dispatchEvent(L)}}function l(t){t.preventDefault()}var d=this,f={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=t,this.domElement=void 0!==e?e:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new dt;var p=1e-6,m=new dt,g=f.NONE,v=f.NONE,y=new dt,b=new st,x=new st,_=new dt,w=0,S=new st,A=new st,M=0,P=0,E=new st,C=new st;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var T={type:\"change\"},I={type:\"start\"},L={type:\"end\"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var t=this.domElement.getBoundingClientRect(),e=this.domElement.ownerDocument.documentElement;this.screen.left=t.left+window.pageXOffset-e.clientLeft,this.screen.top=t.top+window.pageYOffset-e.clientTop,this.screen.width=t.width,this.screen.height=t.height}},this.handleEvent=function(t){\"function\"==typeof this[t.type]&&this[t.type](t)};var O=function(){var t=new st;return function(e,i){return t.set((e-d.screen.left)/d.screen.width,(i-d.screen.top)/d.screen.height),t}}(),R=function(){var t=new st;return function(e,i){return t.set((e-.5*d.screen.width-d.screen.left)/(.5*d.screen.width),(d.screen.height+2*(d.screen.top-i))/d.screen.width),t}}();this.rotateCamera=function(){var t,e=new dt,i=new lt,n=new dt,r=new dt,o=new dt,a=new dt;return function(){a.set(x.x-b.x,x.y-b.y,0),t=a.length(),t?(y.copy(d.object.position).sub(d.target),n.copy(y).normalize(),r.copy(d.object.up).normalize(),o.crossVectors(r,n).normalize(),r.setLength(x.y-b.y),o.setLength(x.x-b.x),a.copy(r.add(o)),e.crossVectors(a,y).normalize(),t*=d.rotateSpeed,i.setFromAxisAngle(e,t),y.applyQuaternion(i),d.object.up.applyQuaternion(i),_.copy(e),w=t):!d.staticMoving&&w&&(w*=Math.sqrt(1-d.dynamicDampingFactor),y.copy(d.object.position).sub(d.target),i.setFromAxisAngle(_,w),y.applyQuaternion(i),d.object.up.applyQuaternion(i)),b.copy(x)}}(),this.zoomCamera=function(){var t;g===f.TOUCH_ZOOM_PAN?(t=M/P,M=P,y.multiplyScalar(t),void 0===d.object.fov&&(d.object.zoom*=t)):(t=1+(A.y-S.y)*d.zoomSpeed,1!==t&&t>0&&(y.multiplyScalar(t),void 0===d.object.fov&&(d.object.zoom/=t),d.staticMoving?S.copy(A):S.y+=(A.y-S.y)*this.dynamicDampingFactor))},this.panCamera=function(){var t=new st,e=new dt,i=new dt;return function(){if(t.copy(C).sub(E),t.lengthSq()){if(void 0===d.object.fov){var n=(d.object.right-d.object.left)/d.object.zoom,r=(d.object.top-d.object.bottom)/d.object.zoom;t.x*=n,t.y*=r}else t.multiplyScalar(y.length()*d.panSpeed);i.copy(y).cross(d.object.up).setLength(t.x),i.add(e.copy(d.object.up).setLength(t.y)),d.object.position.add(i),d.target.add(i),d.staticMoving?E.copy(C):E.add(t.subVectors(C,E).multiplyScalar(d.dynamicDampingFactor))}}}(),this.checkDistances=function(){d.noZoom&&d.noPan||(y.lengthSq()>d.maxDistance*d.maxDistance&&(d.object.position.addVectors(d.target,y.setLength(d.maxDistance)),S.copy(A)),y.lengthSq()p&&(d.dispatchEvent(T),m.copy(d.object.position))},this.reset=function(){g=f.NONE,v=f.NONE,d.target.copy(d.target0),d.object.position.copy(d.position0),d.object.up.copy(d.up0),y.subVectors(d.object.position,d.target),d.object.lookAt(d.target),d.dispatchEvent(T),m.copy(d.object.position)},this.dispose=function(){this.domElement.removeEventListener(\"contextmenu\",l,!1),this.domElement.removeEventListener(\"mousedown\",r,!1),this.domElement.removeEventListener(\"mousewheel\",s,!1),this.domElement.removeEventListener(\"wheel\",s,!1),this.domElement.removeEventListener(\"MozMousePixelScroll\",s,!1),this.domElement.removeEventListener(\"touchstart\",c,!1),this.domElement.removeEventListener(\"touchend\",h,!1),this.domElement.removeEventListener(\"touchmove\",u,!1),document.removeEventListener(\"mousemove\",o,!1),document.removeEventListener(\"mouseup\",a,!1),window.removeEventListener(\"keydown\",i,!1),window.removeEventListener(\"keyup\",n,!1)},this.domElement.addEventListener(\"contextmenu\",l,!1),this.domElement.addEventListener(\"mousedown\",r,!1),this.domElement.addEventListener(\"mousewheel\",s,!1),this.domElement.addEventListener(\"wheel\",s,!1),this.domElement.addEventListener(\"MozMousePixelScroll\",s,!1),this.domElement.addEventListener(\"touchstart\",c,!1),this.domElement.addEventListener(\"touchend\",h,!1),this.domElement.addEventListener(\"touchmove\",u,!1),window.addEventListener(\"keydown\",i,!1),window.addEventListener(\"keyup\",n,!1),this.handleResize(),this.update()}function $r(t){if(void 0===t)return\"\";var e=[];for(var i in t){var n=t[i];n!==!1&&e.push(\"#define \"+i+\" \"+n)}return e.join(\"\\n\")+\"\\n\"}function Vr(t,e){e=e||{};var i=t+\"|\";for(var n in e)i+=n+\":\"+e[n];if(!Fy[i]){var r=$r(e),o=Dy[\"shader/\"+t];if(!o)throw\"empty shader, '\"+t+\"'\";o=o.replace(Ny,function(t,e){var i=\"shader/chunk/\"+e+\".glsl\",n=Dy[i]||vm[e];return n?n:\"\"}),Fy[i]=r+o}return Fy[i]}function Gr(t,e,i,n){function r(e){var n=e%u,r=Math.floor(e/u),o=n*m,a=r*g;i.camera.setViewOffset(m*u,g*u,o,a,m,g),i.render(),h?v.drawImage(t.domElement,Math.floor(o/2),Math.floor(a/2),Math.ceil(m/2),Math.ceil(g/2)):v.drawImage(t.domElement,Math.floor(o),Math.floor(a),Math.ceil(m),Math.ceil(g)),\"function\"==typeof l&&l(e+1,f,!1)}function o(){i.setSampling(y),i.camera.view=null,\"function\"==typeof d&&d(f+1,f,!1)}function a(){for(var t=0;t<=f;++t)t===f?o():r(t)}function s(){function t(){e===f?o():r(e),e+=1}for(var e=0,i=0;i<=f;++i)setTimeout(t,0,i)}var c=n||{},u=void 0!==c.factor?c.factor:2,h=void 0!==c.antialias&&c.antialias,l=c.onProgress,d=c.onFinish;h&&(u*=2);var f=u*u,p=document.createElement(\"canvas\"),m=i.width,g=i.height;h?(p.width=m*u/2,p.height=g*u/2):(p.width=m*u,p.height=g*u);var v=p.getContext(\"2d\"),y=i.sampleLevel;i.setSampling(-1),this.render=a,this.renderAsync=s,this.canvas=p}function Hr(t,e,i,n,r){i=i||1,n=n||0;var o,a,s,c=r?r.length:t.length/i,u=0,h=0;if(r)for(a=0;ae?1:t=u&&e(t[o],l)>0;)t[o+1]=t[o],--o;t[o+1]=l}if(c===-1)break;h=s[c--],u=s[c--]}else{var f=u+h>>1;for(o=u+1,a=h,r(f,o),e(t[u],t[h])>0&&r(u,h),e(t[o],t[h])>0&&r(o,h),e(t[u],t[o])>0&&r(u,o),l=t[o];;){do o++;while(e(t[o],l)<0);do a--;while(e(t[a],l)>0);if(a=a-u?(s[++c]=o,s[++c]=h,h=a-1):(s[++c]=u,s[++c]=a-1,u=o)}return t}function Jr(t,e,i,n,r){var o,a,s,c,u=t.height,h=t.width,l=t.getContext(\"2d\"),d=l.getImageData(0,0,h,u).data;for(s=!1,a=0;a=0;a--){for(o=h-1;o>=0;o--)if(c=4*(a*h+o),d[c]!==e||d[c+1]!==i||d[c+2]!==n||d[c+3]!==r){s=!0;break}if(s)break;\n}var m=a;for(s=!1,o=h-1;o>=0;o--){for(a=u-1;a>=0;a--)if(c=4*(a*h+o),d[c]!==e||d[c+1]!==i||d[c+2]!==n||d[c+3]!==r){s=!0;break}if(s)break}var g=o,v=document.createElement(\"canvas\");v.width=g-p,v.height=m-f;var y=v.getContext(\"2d\");return y.drawImage(t,p,f,v.width,v.height,0,0,v.width,v.height),v}function to(t,e){function i(e){var i=s;c&&(i*=2),e&&(i=1/i),t.scene.traverse(function(t){var e=t.material;e&&e.linewidth&&(e.linewidth*=i),e&&e.uniforms&&e.uniforms.size&&void 0===e.uniforms.size.__seen&&(e.uniforms.size.value*=i,e.uniforms.size.__seen=!0)}),t.scene.traverse(function(t){var e=t.material;e&&e.uniforms&&e.uniforms.size&&delete e.uniforms.size.__seen})}function n(t){if(a){var e=f,i=0|(u?0:255*e.r),n=0|(u?0:255*e.g),r=0|(u?0:255*e.b),o=0|(u?0:255);return Jr(t,i,n,r,o)}return t}function r(t,e,i){\"function\"==typeof o.onProgress&&o.onProgress(t,e,i)}var o=e||{},a=void 0!==o.trim&&o.trim,s=void 0!==o.factor?o.factor:1,c=void 0!==o.antialias&&o.antialias,u=void 0!==o.transparent&&o.transparent,h=t.renderer,l=t.camera,d=h.getClearAlpha(),f=h.getClearColor();return new Promise(function(e){function o(o,s){var c=n(a.canvas);c.toBlob(function(n){h.setClearAlpha(d),i(!0),t.requestRender(),r(s,s,!0),e(n)},\"image/png\")}var a=new Gr(h,l,t,{factor:s,antialias:c,onProgress:r,onFinish:o});h.setClearAlpha(u?0:1),i(),a.renderAsync()})}function eo(t,e){var i;t.traverseVisible(function(t){if(t instanceof _i&&t.sortParticles){var n=t.geometry.attributes,r=n.position.count;if(0!==r){Uy.multiplyMatrices(e.matrixWorldInverse,t.matrixWorld),jy.multiplyMatrices(e.projectionMatrix,Uy);var o,a,s,c;for(t.userData.sortData?(o=t.userData.sortData,s=o.__zArray,a=o.__sortArray,c=o.__cmpFn):(s=new Float32Array(r),a=new Uint32Array(r),c=function(t,e){var i=s[t],n=s[e];return i>n?1:i500&&!Z&&Y<3&&Y!==-1){var i=Y;Y=3,q=!0,F(),Z=!0,Y=i,t.Debug&&ty.log(\"rendered still frame\")}var n=J;n.spinAxis&&n.spinAngle&&(It(n.spinAxis,n.spinAngle*tt.lastDuration/16),C()),requestAnimationFrame(E)}function C(){q||(performance.now()-tt.startTime>22&&(tt.begin(),Z=!1),q=!0,requestAnimationFrame(function(){F(),tt.update()}))}function T(){var t=J;K=Ct.copy(nt.position).sub(St.target).length(),K||(nt.position.set(0,0,t.cameraZ),K=Math.abs(t.cameraZ)),Q=Math.max(10,.5*Et),Q+=Mt.center(Ct).length(),(Q===1/0||Q===-(1/0)||isNaN(Q))&&(Q=50);var e=(50-t.clipNear)/50,i=-(50-t.clipFar)/50;nt.near=Math.max(.1,t.clipDist,K-Q*e),nt.far=Math.max(1,K+Q*i);var n=(50-t.fogNear)/50,r=-(50-t.fogFar)/50,o=rt.fog;o.color.set(t.fogColor),o.near=Math.max(.1,K-Q*n),o.far=Math.max(1,K+Q*r)}function I(){T();var t=Jn(et.fov),e=(nt.near+nt.far)/2,i=2*Math.tan(t/2)*e;it.zoom=H/i}function L(){nt.updateMatrix(),nt.updateMatrixWorld(!0),nt.matrixWorldInverse.getInverse(nt.matrixWorld),nt.updateProjectionMatrix(),io(rt,nt,pt,K,Q),eo(rt,nt)}function O(t,e,i,n){ct.visible=t,ut.visible=e,ht.visible=i,ft.visible=n}function R(){Ct.copy(nt.position).sub(St.target).setLength(10*Et),ot.position.copy(nt.position).add(Ct),ot.color.set(J.lightColor),ot.intensity=J.lightIntensity,at.color.set(J.ambientColor),at.intensity=J.ambientIntensity}function k(){pt.clearTarget(gt),O(!1,!0,!1,!1),pt.render(rt,nt,gt),M(),pt.setRenderTarget(null)}function D(e){e?pt.clearTarget(e):pt.clear(),O(!1,!1,!0,!1),pt.render(rt,nt,e),e?pt.clearTarget(e,!1,!0,!1):pt.clearDepth(),M(),O(!0,!1,!1,t.Debug),pt.render(rt,nt,e),M()}function N(){var t=Gy[Math.max(0,Math.min(Y,5))],e=1/t.length,i=1/32;bt.tForeground.value=vt.texture;for(var n=vt.width,r=vt.height,o=0;o0?N():D(),X=!1,void(q=!1))}function z(){ty.log(\"scene cleared\"),rt.remove(st),o(),pt.clear()}function B(t,e){if(void 0===e?Mt.isEmpty()||Ot(Mt.center()):Ot(e),t){var i;if(t===!0){var n=Pt,r=Math.max(n.x,n.y,n.z),o=Math.min(n.x,n.y,n.z);i=r+Math.sqrt(o)}else i=t;var a=Jn(et.fov),s=G/H,c=Hr&&(r=u),h>o&&(o=h),l>a&&(a=l)}return[lo([e,i,n]),lo([r,o,a])]}function co(t,e){for(var i=0,n=e.length;ie?(e/=t,t*Math.sqrt(1+e*e)):e>0?(t/=e,e*Math.sqrt(1+t*t)):0}function ko(t,e,i,n,r,o,a,s){for(var c=2*Zy,u=Ky,h=0,l=0,d=0,f=0,p=Math.max(o,30),m=0,g=0,v=0,y=0,b=0,x=0,_=0,w=0,S=0,A=0,M=0,P=0,E=0,C=0,T=0,I=0,L=0,O=4660,R=0,k=0,D=0,N=new Float64Array(a<<3);h>16&32767&256)?k:-k,t[h*e+d]=R;for(f=0;f<2;f++)for(l=0;ls&&(s=e);var a=o-r;if(0===a)return-1;var u=4*l;if(l+=1,1===a)return h[u]=r,h[u+1]=-1,h[u+2]=-1,h[u+3]=n,u;var f=r+Math.floor(a/2);d=e%3;for(var p,m,g,v,y,b=r,x=o-1;x>b;){for(g=b+x>>1,v=t[3*c[g]+d],m=c[g],c[g]=c[x],c[x]=m,y=b,p=b;pr&&s.pop()}var d,f,p=n(u)%3,m=3*c[h[u]],g=[t[m+0],t[m+1],t[m+2]],v=e(i,g),y=h[u+1],b=h[u+2];if(b===-1&&y===-1)return void((s.size()t[3*c[h[e]]+r])throw\"left child is > parent!\";n+=o(a,i+1)}if(s!==-1){if(t[3*c[h[s]]+r]0&&(e=\":\"+Y(t).join(\" OR :\")),new Qn(e)}function oa(t){this.name=t||\"\",this.partList=[]}function aa(t,e){this.matrixList=t||[],this.chainList=e||[]}function sa(e){function i(t,e){return n.index=t,r.index=e,n.modelindexr.modelindex?1:n.chainnamer.chainname?1:n.resnor.resno?1:0}t.Debug&&ty.time(\"reorderAtoms\");var n=e.getAtomProxy(),r=e.getAtomProxy();e.atomStore.sort(i),t.Debug&&ty.timeEnd(\"reorderAtoms\")}function ca(e){t.Debug&&ty.time(\"assignSecondaryStructure\");var i=[];e.eachModel(function(t){t.eachChain(function(t){i.push(t.chainname)})});var n=i.slice().sort(),r=[];n.forEach(function(t){r.push(i.indexOf(t))});var o=e.helices||[];o=o.filter(function(t){return Qh(n,t[0])>=0}),o.sort(function(t,e){var i=t[0],o=e[0],a=t[1],s=e[1];if(i===o)return a===s?0:a=0}),s.sort(function(t,e){var i=t[0],o=e[0];if(i===o)return 0;var a=Qh(n,i),s=Qh(n,o);return r[a]=r;)e=Math.floor(e/r),o+=n[e%r],i+=1;return i>=5&&ty.warn(\"chainname overflow\"),o},h=e.getAtomProxy(),l=e.getAtomProxy(),d=0,f=0,p=0,m=0,g=[];1===s.count?g.push({mIndex:0,chainname:\"A\",rStart:0,rCount:1}):e.eachResidueN(2,function(t,e){var i=!1,n=t.backboneType,r=e.backboneType,o=Vm;m=t.index,t.modelIndex!==e.modelIndex?i=!0:t.moleculeType!==e.moleculeType?i=!0:n!==o&&n===r&&(h.index=t.backboneEndAtomIndex,l.index=e.backboneStartAtomIndex,h.connectedTo(l)||(i=!0)),i||e.index!==s.count-1||(i=!0,m=e.index),i&&(g.push({mIndex:f,chainname:u(d),rStart:p,rCount:m-p+1}),d+=1,t.modelIndex!==e.modelIndex&&(d=0,f+=1),e.index===s.count-1&&g.push({mIndex:f,chainname:u(d),rStart:s.count-1,rCount:1}),p=e.index,m=e.index)}),a.count=0,g.forEach(function(t){c(t.mIndex,t.chainname,t.rStart,t.rCount)});var v=0;e.eachModel(function(t){o.chainOffset[t.index]=v,o.chainCount[t.index]-=1,v+=o.chainCount[t.index]})}t.Debug&&ty.timeEnd(\"calculateChainnames\")}function ha(e){t.Debug&&ty.time(\"calculateBonds\"),fa(e),pa(e),t.Debug&&ty.timeEnd(\"calculateBonds\")}function la(e){var i=e.structure,n=i.getAtomProxy(),r=i.getAtomProxy(),o=e.atomCount,a=e.atomOffset,s=a+o,c=s-1;if(o>500)return void(t.Debug&&ty.warn(\"more than 500 atoms, skip residue for auto-bonding\",e.qualifiedName()));var u,h,l=[],d=[],f=[];if(o>50){var p=new ia(e,!0),m=e.isCg()?1.2:2.3;for(u=a;u500)return void ty.warn(\"more than 500 atoms, skip residue for auto-bonding\",t.qualifiedName());for(var l=t.getBonds(),d=l.atomIndices1,f=l.atomIndices2,p=l.bondOrders,m=d.length,g=0;g1&&(c.x-=1),s.x<0&&(c.x+=1),s.y>1&&(c.y-=1),s.y<0&&(c.y+=1),s.z>1&&(c.z-=1),s.z<0&&(c.z+=1),t&&c.add(t),u.setPosition(c),u.multiplyMatrices(n.fracToCart,u),u.multiply(n.cartToFrac),e.push(u)}),e}t.Debug&&ty.time(\"buildUnitcellAssembly\");var n=e.unitcell,r=e.center.clone().applyMatrix4(n.cartToFrac),o=na(n.spacegroup),a=new dt,s=new dt,c=new dt;r.x>1&&(a.x-=1),r.x<0&&(a.x+=1),r.y>1&&(a.y-=1),r.y<0&&(a.y+=1),r.z>1&&(a.z-=1),r.z<0&&(a.z+=1);var u,h=new oa(\"UNITCELL\"),l=i();if(e.biomolDict.NCS){u=[new ht].concat(e.biomolDict.NCS.partList[0].matrixList);var d=[];l.forEach(function(t){u.forEach(function(e){d.push(t.clone().multiply(e))})}),h.addPart(d)}else h.addPart(l);var f=new dt,p=new oa(\"SUPERCELL\"),m=Array.prototype.concat.call(i(),i(f.set(1,1,1)),i(f.set(-1,-1,-1)),i(f.set(1,0,0)),i(f.set(1,1,0)),i(f.set(1,0,1)),i(f.set(0,1,0)),i(f.set(0,1,1)),i(f.set(0,0,1)),i(f.set(-1,0,0)),i(f.set(-1,-1,0)),i(f.set(-1,0,-1)),i(f.set(0,-1,0)),i(f.set(0,-1,-1)),i(f.set(0,0,-1)),i(f.set(1,-1,-1)),i(f.set(1,1,-1)),i(f.set(1,-1,1)),i(f.set(-1,1,1)),i(f.set(-1,-1,1)),i(f.set(-1,1,-1)),i(f.set(0,1,-1)),i(f.set(0,-1,1)),i(f.set(1,0,-1)),i(f.set(-1,0,1)),i(f.set(1,-1,0)),i(f.set(-1,1,0)));if(e.biomolDict.NCS){var g=[];m.forEach(function(t){u.forEach(function(e){g.push(t.clone().multiply(e))})}),p.addPart(g)}else p.addPart(m);e.biomolDict.UNITCELL=h,e.biomolDict.SUPERCELL=p,t.Debug&&ty.timeEnd(\"buildUnitcellAssembly\")}function ga(t){var e=t.bondHash,i=e.countArray,n=e.offsetArray,r=e.indexArray,o=t.getBondProxy();t.eachResidue(function(t){var e=t.residueType;if(void 0===e.bonds){var a=t.atomOffset,s=[],c=[],u=[],h={};t.eachAtom(function(t){for(var e=t.index,l=n[e],d=i[e],f=0,p=d;fg){var v=g;g=m,m=v}var y=m+\"|\"+g;void 0===h[y]&&(h[y]=!0,s.push(m-a),c.push(g-a),u.push(o.bondOrder))}}),e.bonds={atomIndices1:s,atomIndices2:c,bondOrders:u}}})}function va(t,e,i){this.structure=t,i=i||eb(e),this.atomname=e,this.element=i,this.vdw=ng[i],this.covalent=og[i]}function ya(t){function e(t,e){return t+\"|\"+e}function i(i,n){n=n||eb(i);var a=e(i,n),s=r[a];if(void 0===s){var c=new va(t,i,n);s=o.length,r[a]=s,o.push(c)}return s}function n(t){return o[t]}var r={},o=[];this.add=i,this.get=n,this.list=o,this.dict=r,this.toJSON=function(){var t={metadata:{version:.1,type:\"AtomMap\",generator:\"AtomMapExporter\"},idDict:r,typeList:o.map(function(t){return t.toJSON()})};return t},this.fromJSON=function(e){r=e.idDict,o=e.typeList.map(function(e){return new va(t,e.atomname,e.element)}),this.list=o,this.dict=r}}function ba(t,e,i,n,r,o){this.structure=t,this.resname=e,this.atomTypeIdList=i,this.hetero=n?1:0,this.chemCompType=r,this.bonds=o,this.rings=void 0,this.atomCount=i.length,this.moleculeType=this.getMoleculeType(),this.backboneType=this.getBackboneType(0),this.backboneEndType=this.getBackboneType(-1),this.backboneStartType=this.getBackboneType(1),this.backboneIndexList=this.getBackboneIndexList();var a=yg[this.backboneType],s=yg[this.backboneStartType],c=yg[this.backboneEndType],u=this.getAtomIndexByName(a.trace);this.traceAtomIndex=void 0!==u?u:-1;var h=this.getAtomIndexByName(a.direction1);this.direction1AtomIndex=void 0!==h?h:-1;var l=this.getAtomIndexByName(a.direction2);this.direction2AtomIndex=void 0!==l?l:-1;var d=this.getAtomIndexByName(s.backboneStart);this.backboneStartAtomIndex=void 0!==d?d:-1;var f=this.getAtomIndexByName(c.backboneEnd);this.backboneEndAtomIndex=void 0!==f?f:-1;var p;p=fg.indexOf(e)!==-1?this.getAtomIndexByName(\"N1\"):this.getAtomIndexByName(\"N3\"),this.rungEndAtomIndex=void 0!==p?p:-1,this.bondReferenceAtomIndices=[]}function xa(t){function e(t,e,i,n){return t+\"|\"+e.join(\",\")+\"|\"+(i?1:0)+\"|\"+(n?n:\"\")}function i(i,n,a,s,c){i=i.toUpperCase();var u=e(i,n,a,s),h=r[u];if(void 0===h){var l=new ba(t,i,n,a,s,c);h=o.length,r[u]=h,o.push(l)}return h}function n(t){return o[t]}var r={},o=[];this.add=i,this.get=n,this.list=o,this.dict=r}function _a(t,e){this.structure=t,this.bondStore=t.bondStore,this.index=e,this._v12=new dt,this._v13=new dt,this._ap1=this.structure.getAtomProxy(),this._ap2=this.structure.getAtomProxy(),this._ap3=this.structure.getAtomProxy()}function wa(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueMap=t.residueMap,this.atomMap=t.atomMap,this.bondHash=t.bondHash,this.index=e}function Sa(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueMap=t.residueMap,this.atomMap=t.atomMap,this.index=e}function Aa(t,e,i){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueIndexStart=e,this.residueIndexEnd=i,this.residueCount=i-e+1;var n=this.structure.getResidueProxy(this.residueIndexStart),r=this.structure.getResidueProxy(this.residueIndexEnd);this.isPrevConnected=void 0!==n.getPreviousConnectedResidue();var o=r.getNextConnectedResidue();this.isNextConnected=void 0!==o,this.isNextNextConnected=this.isNextConnected&&void 0!==o.getNextConnectedResidue(),this.isCyclic=r.connectedTo(n),this.__residueProxy=this.structure.getResidueProxy()}function Ma(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.index=e}function Pa(t,e){this.structure=t,this.modelStore=t.modelStore,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.index=e}function Ea(t,e){this.signals={refreshed:new Kn},this.name=t,this.path=e,this.title=\"\",this.id=\"\",this.atomSetCache={},this.atomSetDict={},this.biomolDict={},this.helices=[],this.sheets=[],this.unitcell=void 0,this.frames=[],this.boxes=[],this.bondStore=new Xo(0),this.backboneBondStore=new Xo(0),this.rungBondStore=new Xo(0),this.atomStore=new qo(0),this.residueStore=new Yo(0),this.chainStore=new Zo(0),this.modelStore=new Ko(0),this.atomMap=new ya(this),this.residueMap=new xa(this),this.bondHash=new Ho(this.bondStore,this.atomStore.count),this.atomSet=this.getAtomSet(),this.bondSet=this.getBondSet(),this.center=new dt,this.boundingBox=new ae,ey.addObject(this),this._bp=this.getBondProxy(),this._ap=this.getAtomProxy(),this._rp=this.getResidueProxy(),this._cp=this.getChainProxy()}function Ca(t,e,i){this.name=t,this.path=e,this.info={},this.center=new dt,this.boundingBox=new ae,i instanceof Fe||i instanceof Ue||i instanceof wi?this.fromGeometry(i):i&&this.set(i.position,i.index,i.normal,i.color,i.atomindex)}function Ta(e){var i=0,n=0,r={},o={},a=URL.createObjectURL(ny.get(e)),s=new window.Worker(a);ny.activeWorkerCount+=1,s.onmessage=function(n){i-=1;var a=n.data.__postId;t.Debug&&ty.timeEnd(\"Worker.postMessage \"+e+\" #\"+a),r[a]&&r[a].call(s,n),delete r[a],delete o[a]},s.onerror=function(t){if(i-=1,t.data){var n=t.data.__postId;o[n]?o[n].call(s,t):ty.error(\"Worker.onerror\",n,e,t),delete r[n],delete o[n]}else ty.error(\"Worker.onerror\",e,t)},this.name=e,this.post=function(a,c,u,h){r[n]=u,o[n]=h,a=a||{},a.__name=e,a.__postId=n,a.__debug=t.Debug,t.Debug&&ty.time(\"Worker.postMessage \"+e+\" #\"+n);try{s.postMessage(a,c)}catch(t){ty.error(\"worker.post:\",t),s.postMessage(a)}return i+=1,n+=1,this},this.terminate=function(){s?(s.terminate(),URL.revokeObjectURL(a),ny.activeWorkerCount-=1):ty.log(\"no worker to terminate\")},Object.defineProperties(this,{postCount:{get:function(){return n}},pending:{get:function(){return i}}})}function Ia(t,e){e=Math.min(8,e||2);var i=[],n=0;this.name=t,this.maxCount=e,this.post=function(t,e,i,n){var r=this.getNextWorker();return r.post(t,e,i,n),this},this.terminate=function(){i.forEach(function(t){t.terminate()})},this.getNextWorker=function(){for(var r,o=1/0,a=0;a=n){r=new Ta(t),i.push(r),n+=1;break}var s=i[a];if(0===s.pending){o=s.pending,r=s;break}s.pending=g){L=m,C=!0;break}if(C)break}if(C)break}for(C=!1,p=o;p=g){I=p,C=!0;break}if(C)break}if(C)break}for(C=!1,d=r;d=g){T=d,C=!0;break}if(C)break}if(C)break}for(C=!1,m=u;m>=a;--m){for(p=c;p>=o;--p){for(d=s;d>=r;--d)if(l=e*i*m+e*p+d,t[l]>=g){k=m,C=!0;break}if(C)break}if(C)break}for(C=!1,p=c;p>=o;--p){for(m=k;m>=a;--m){for(d=s;d>=r;--d)if(l=e*i*m+e*p+d,t[l]>=g){R=p,C=!0;break}if(C)break}if(C)break}for(C=!1,d=s;d>=r;--d){for(p=R;p>=o;--p){for(m=k;m>=a;--m)if(l=e*i*m+e*p+d,t[l]>=g){O=d,C=!0;break}if(C)break}if(C)break}for(v?(r=Math.max(0,T-1),o=Math.max(0,I-1),a=Math.max(0,L-1),s=Math.min(e-1,O+1),c=Math.min(i-1,R+1),u=Math.min(n-1,k+1)):(r=Math.max(1,T-1),o=Math.max(1,I-1),a=Math.max(1,L-1),s=Math.min(e-2,O+1),c=Math.min(i-2,R+1),u=Math.min(n-2,k+1)),m=a;m65535?Uint32Array:Uint16Array;return{position:new Float32Array(w),normal:v?void 0:new Float32Array(S),index:new a(A),atomindex:r?new Int32Array(M):void 0}}}function ka(t,e,i,n){i=i||1,n=n||!0;var r,o=t.length/3,a=e.length/3;n&&(r=new Float32Array(3*o));var s,c=new Float32Array(3*o),u=20,h=new Array(u);for(s=0;s65535?Uint32Array:Uint16Array,a=new o(3*r),s=0;s65535?Uint32Array:Uint16Array;this.meshIndex=new u(c*o*3),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,a),this.initNormals=!0,this.setAttributes({position:t,color:e,pickingColor:i}),this.initNormals=!1}function qa(t,e,i,n,r){var o=r||{},a=$(o.sphereDetail,1);this.geo=new Wn(1,a),this._radius=i,Xa.call(this,t,e,n,o)}function Ya(t){this.size=this.count,this.attributeSize=this.count*this.mappingSize;var e=this.count*this.mappingIndicesSize,i=this.attributeSize>65535?Uint32Array:Uint16Array;this.index=new i(e),this.makeIndex(),$a.call(this,null,null,this.index,null,t),this.addAttributes({mapping:{type:this.mappingType,value:null}})}function Za(t){this.mapping=new Float32Array([-1,1,-1,-1,1,1,1,-1]),this.mappingIndices=new Uint16Array([0,1,2,1,3,2]),this.mappingIndicesSize=6,this.mappingType=\"v2\",this.mappingSize=4,this.mappingItemSize=2,Ya.call(this,t)}function Ka(t,e,i,n,r){this.impostor=!0,this.count=t.length/3,this.vertexShader=\"SphereImpostor.vert\",this.fragmentShader=\"SphereImpostor.frag\",Za.call(this,r),this.addUniforms({projectionMatrixInverse:{value:new ht},ortho:{value:0}}),this.addAttributes({radius:{type:\"f\",value:null}}),this.setAttributes({position:t,color:e,radius:i}),n&&(this.addAttributes({pickingColor:{type:\"c\",value:null}}),this.setAttributes({pickingColor:n}),this.pickable=!0),this.makeMapping();\n}function Qa(t,e,i,n,r){var o=r||{};return!Jv||o.disableImpostor?new qa(t,e,i,n,r):new Ka(t,e,i,n,r)}function Ja(t,e,i,n,r,o,a){var s=a||{},c=$(s.sphereDetail,2);this.updateNormals=!0,this.geo=new Wn(1,c),this._radius=i,this._majorAxis=n,this._minorAxis=r,Xa.call(this,t,e,o,s)}function ts(t,e,i,n,r,o,a){return new Ja(t,e,i,n,r,o,a)}function es(t,e,i,n,r,o,a,s){var c=s||{},u=$(c.radialSegments,10),h=$(c.openEnded,!0);this.updateNormals=!0;var l=(new ht).makeRotationX(Math.PI/2);this.geo=new Vn(1,1,1,u,1,h),this.geo.applyMatrix(l);var d=t.length,f=r.length;this._position=new Float32Array(2*d),this._color=new Float32Array(2*d),this._pickingColor=new Float32Array(2*d),this._from=new Float32Array(2*d),this._to=new Float32Array(2*d),this._radius=new Float32Array(2*f),this.__center=new Float32Array(d),Xa.call(this,this._position,this._color,this._pickingColor,c),this.setAttributes({position1:t,position2:e,color:i,color2:n,radius:r,pickingColor:o,pickingColor2:a})}function is(t){this.mapping=new Float32Array([-1,1,-1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1]),this.mappingIndices=new Uint16Array([0,1,2,1,4,2,2,4,3,4,5,3]),this.mappingIndicesSize=12,this.mappingType=\"v3\",this.mappingSize=6,this.mappingItemSize=3,Ya.call(this,t)}function ns(t,e,i,n,r,o,a,s){var c=s||{};this.openEnded=$(c.openEnded,!1),this.impostor=!0,this.count=t.length/3,this.vertexShader=\"CylinderImpostor.vert\",this.fragmentShader=\"CylinderImpostor.frag\",is.call(this,c);var u=new Rn(new ht).onUpdate(function(t){this.value.getInverse(t.modelViewMatrix)});this.addUniforms({modelViewMatrixInverse:u,ortho:{value:0}}),this.addAttributes({position1:{type:\"v3\",value:null},position2:{type:\"v3\",value:null},color2:{type:\"c\",value:null},radius:{type:\"f\",value:null}}),this.setAttributes({position1:t,position2:e,color:i,color2:n,radius:r}),o&&(this.addAttributes({pickingColor:{type:\"c\",value:null},pickingColor2:{type:\"c\",value:null}}),this.setAttributes({pickingColor:o,pickingColor2:a}),this.pickable=!0),this.makeMapping()}function rs(t,e,i,n,r,o,a,s){var c=s||{};return!Jv||c.disableImpostor?new es(t,e,i,n,r,o,a,s):new ns(t,e,i,n,r,o,a,s)}function os(t,e,i,n,r,o){var a=o||{},s=$(a.radialSegments,60),c=$(a.openEnded,!1);this.updateNormals=!0;var u=(new ht).makeRotationX(-Math.PI/2);this.geo=new qn(1,1,s,1,c),this.geo.applyMatrix(u);var h=t.length,l=n.length;this._position=new Float32Array(h),this._from=new Float32Array(h),this._to=new Float32Array(h),this._radius=new Float32Array(l),Xa.call(this,this._position,i,r,a),this.setAttributes({position1:t,position2:e,color:i,radius:n,pickingColor:r})}function as(t,e,i,n,r,o){return new os(t,e,i,n,r,o)}function ss(t,e,i,n,r,o){function a(t){var e,i,n={};if(t.radius){for(e=0,i=f.length;e65535?Uint32Array:Uint16Array;i=new r(i)}Array.isArray(n)&&(n=new Float32Array(n));var o=new Va(t,e,i,n);y.push(o)}function o(t,e,n){i(t,b),i(e,x),_.push(n)}function a(t,e,n,r,o){i(t,w),i(e,S),A.push(n),i(r,M),i(o,P)}function s(t,e,n,r){i(t,E),i(e,C),i(n,T),I.push(r)}function c(t,e,n,r){i(t,L),i(e,O),i(n,R),k.push(r)}function u(t,e,n,r){i(t,D),i(e,N),i(n,F),z.push(r)}function h(){var t=[];if(b.length){var e=new Qa(new Float32Array(b),new Float32Array(x),new Float32Array(_),void 0,{sphereDetail:p,disableImpostor:g});t.push(e)}if(w.length){var i=new ts(new Float32Array(w),new Float32Array(S),new Float32Array(A),new Float32Array(M),new Float32Array(P),void 0,{sphereDetail:p,disableImpostor:g});t.push(i)}if(E.length){var n=new rs(new Float32Array(E),new Float32Array(C),new Float32Array(T),new Float32Array(T),new Float32Array(I),void 0,void 0,{radialSegments:m,disableImpostor:g,openEnded:v});t.push(n)}if(L.length){var r=new as(new Float32Array(L),new Float32Array(O),new Float32Array(R),new Float32Array(k),void 0,{radialSegments:m,disableImpostor:g,openEnded:v});t.push(r)}if(D.length){var o=new ss(new Float32Array(D),new Float32Array(N),new Float32Array(F),new Float32Array(z),void 0,{aspectRatio:f,radialSegments:m,disableImpostor:g,openEnded:v});t.push(o)}return y.concat(t)}function l(){y.forEach(function(t){t.dispose()}),y.length=0,b.length=0,x.length=0,_.length=0,w.length=0,S.length=0,A.length=0,M.length=0,P.length=0,E.length=0,C.length=0,T.length=0,I.length=0,L.length=0,O.length=0,R.length=0,k.length=0,D.length=0,N.length=0,F.length=0,z.length=0}this.name=$(t,\"shape\");var d=e||{},f=$(d.aspectRatio,1.5),p=$(d.sphereDetail,2),m=$(d.radialSegments,50),g=$(d.disableImpostor,!1),v=$(d.openEnded,!1),y=[],b=[],x=[],_=[],w=[],S=[],A=[],M=[],P=[],E=[],C=[],T=[],I=[],L=[],O=[],R=[],k=[],D=[],N=[],F=[],z=[];this.addBuffer=n,this.addMesh=r,this.addSphere=o,this.addEllipsoid=a,this.addCylinder=s,this.addCone=c,this.addArrow=u,this.getBufferList=h,this.dispose=l}function us(t,e,i){this.viewer=e,this.tasks=new Br,this.queue=new za(this.make.bind(this)),this.bufferList=[],this.init(i)}function hs(t,e,i){Array.isArray(t)||(t=[t]),us.call(this,t,e,i),this.buffer=t,this.build()}function ls(){Va.apply(this,arguments)}function ds(t){this.size=t.size,this.side=t.side,this.wireframe=t.wireframe,this.visible=t.visible,this.geometry=t.geometry,this.pickable=t.pickable,this.background=t.background,this.group=new wi,this.wireframeGroup=new wi,this.pickingGroup=new wi;var e=[],i=[],n=t,r=new t.constructor;n.makeMaterial(),r.makeMaterial(),r.geometry=t.geometry,r.wireframeGeometry=t.wireframeGeometry,r.size=t.size,r.attributeSize=t.attributeSize,r.pickable=t.pickable,r.setParameters(t.getParameters()),r.updateShader(),n.setParameters({side:\"front\"}),r.setParameters({side:\"back\",opacity:r.opacity}),this.getMesh=function(t){var o,a;return t?(a=r.getPickingMesh(),o=n.getPickingMesh()):(a=r.getMesh(),o=n.getMesh()),e.push(o),i.push(a),this.setParameters({side:this.side}),(new wi).add(a,o)},this.getWireframeMesh=function(){return t.getWireframeMesh()},this.getPickingMesh=function(){return this.getMesh(!0)},this.setAttributes=function(e){t.setAttributes(e)},this.setParameters=function(t){t=Object.assign({},t),\"front\"===t.side?(e.forEach(function(t){t.visible=!0}),i.forEach(function(t){t.visible=!1})):\"back\"===t.side?(e.forEach(function(t){t.visible=!1}),i.forEach(function(t){t.visible=!0})):\"double\"===t.side&&(e.forEach(function(t){t.visible=!0}),i.forEach(function(t){t.visible=!0})),void 0!==t.side&&(this.side=t.side),delete t.side,n.setParameters(t),void 0!==t.wireframe&&(this.wireframe=t.wireframe,this.setVisibility(this.visible)),delete t.wireframe,r.setParameters(t)},this.setVisibility=$a.prototype.setVisibility,this.dispose=function(){n.dispose(),r.dispose()}}function fs(t,e,i){us.call(this,t,e,i),t instanceof Fa?(this.surface=void 0,this.volume=t):(this.surface=t,this.volume=void 0),this.boxCenter=new dt,this.__boxCenter=new dt,this.box=new ae,this.__box=new ae,this.setBox=function(){var t=new dt;return function(){var i=e.controls.target,n=e.rotationGroup.position;t.copy(n).negate().add(i),t.equals(this.boxCenter)||this.setParameters({boxCenter:t})}.bind(this)}.bind(this)(),this.viewer.signals.orientationChanged.add(this.setBox),this.build()}function ps(t){function e(t,e,i){return Math.min(Math.max(t,e),i)}function i(t,e,i,n){var r=i-t,o=n-e;return Math.sqrt(r*r+o*o)}function n(t,i,n){return n=e((n-t)/(i-t),0,1),n*n*(3-2*n)}for(var r=Object.assign({},t),o=$(r.width,256),a=$(r.height,256),s=[o/2,a/2],c=Math.min(o/2,a/2),u=$(r.delta,1/(c+1))*c,h=0,l=0,d=new Uint8Array(o*a*4),f=0,p=d.length;f1&&(l=1),r(e,i,n,o,h,p),r(e,i,n,o,l,m),m.sub(p).normalize(),m.toArray(a,g)}}function s(e,i,n,r,o){for(var a,s=i.next(),c=i.next(),u=i.next(),h=i.size,l=h-1,d=r||0,f=0;f65535?Uint32Array:Uint16Array;this.meshIndex=new f(d),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,c),this.setAttributes({position:t,normal:e,binormal:i,tangent:n,color:r,size:o,pickingColor:a})}function qs(t,e,i){vs.call(this,t,e,i)}function Ys(t,e){this.sview1=t,this.sview2=e,this.kdtree2=new ia(e)}function Zs(t,e,i){e=e||3.5,i=i||40;for(var n=new Qn(\"( ARG and ( .NE or .NH1 or .NH2 ) ) or ( ASP and .ND2 ) or ( GLN and .NE2 ) or ( HIS and ( .ND1 or .NE2 ) ) or ( LYS and .NZ ) or ( SER and .OG ) or ( THR and .OG1 ) or ( TRP and .NE1 ) or ( TYR and .OH ) or ( PROTEIN and .N )\"),r=new Qn(\"( ASN and .OD1 ) or ( ASP and ( OD1 or .OD2 ) ) or ( GLN and .OE1 ) or ( GLU and ( .OE1 or .OE2 ) ) or ( HIS and ( .ND1 or .NE2 ) ) or ( SER and .OG ) or ( THR and .OG1 ) or ( TYR and .OH ) or ( PROTEIN and .O )\"),o=t.getView(n),a=t.getView(r),s=new Ys(o,a),c=s.within(e),u=c.bondStore,h=t.getAtomProxy(),l=t.getAtomProxy(),d=t.getAtomProxy(),f=t.getAtomProxy(),p=t.getResidueProxy(),m=t.getResidueProxy(),g=new dt,v=new dt,y=function(t,e,n,r){var o,a;t.atomname===n?(o=t,a=e):(o=e,a=t),p.index=o.residueIndex;var s=p.getAtomIndexByName(r);return g.subVectors(s,o),v.subVectors(s,a),tr(g.angleTo(v))i&&c.bondSet.flip_unsafe(b)}else(\"OH\"===h.atomname&&\"TYR\"===h.resname||\"OH\"===l.atomname&&\"TYR\"===l.resname)&&(y(h,l,\"OH\",\"CZ\")||c.bondSet.flip_unsafe(b));return{atomSet:c.atomSet,bondSet:c.bondSet,bondStore:c.bondStore}}function Ks(t,e,i){e=e||3.5,i=i||40;for(var n=new Qn(\"( PROTEIN and .N )\"),r=new Qn(\"( PROTEIN and .O )\"),o=t.getView(n),a=t.getView(r),s=new Ys(o,a),c=s.within(e),u=c.bondStore,h=t.getAtomProxy(),l=t.getAtomProxy(),d=t.getAtomProxy(),f=t.getAtomProxy(),p=t.getResidueProxy(),m=t.getResidueProxy(),g=new dt,v=new dt,y=0,b=u.count;yi&&c.bondSet.flip_unsafe(y)))}}return{atomSet:c.atomSet,bondSet:c.bondSet,bondStore:c.bondStore}}function Qs(t,e,i){vs.call(this,t,e,i)}function Js(t){var e=Object.assign({},t);if(this.font=$(e.font,[\"sans-serif\"]),this.size=$(e.size,36),this.style=$(e.style,\"normal\"),this.variant=$(e.variant,\"normal\"),this.weight=$(e.weight,\"normal\"),this.outline=$(e.outline,0),this.width=$(e.width,1024),this.height=$(e.height,1024),this.gamma=1,\"undefined\"!=typeof navigator){var i=navigator.userAgent;i.match(/Chrome/)&&i.match(/OS X/)&&(this.gamma=.5)}this.mapped={},this.scratchW=0,this.scratchH=0,this.currentX=0,this.currentY=0,this.build(),this.populate(),this.texture=new Ai(this.canvas2),this.texture.flipY=!1,this.texture.needsUpdate=!0}function tc(t,e,i,n,r){var o=r||{};o.forceTransparent=!0,this.fontFamily=$(o.fontFamily,\"sans-serif\"),this.fontStyle=$(o.fontStyle,\"normal\"),this.fontWeight=$(o.fontWeight,\"bold\"),this.fontSize=$(o.fontSize,48),this.sdf=$(o.sdf,\"Chrome\"===Kv),this.xOffset=$(o.xOffset,0),this.yOffset=$(o.yOffset,0),this.zOffset=$(o.zOffset,.5),this.attachment=$(o.attachment,\"bottom-left\"),this.showBorder=$(o.showBorder,!1),this.borderColor=$(o.borderColor,\"lightgrey\"),this.borderWidth=$(o.borderWidth,.15),this.showBackground=$(o.showBackground,!1),this.backgroundColor=$(o.backgroundColor,\"lightgrey\"),this.backgroundMargin=$(o.backgroundMargin,.5),this.backgroundOpacity=$(o.backgroundOpacity,1);for(var a=t.length/3,s=0,c=0;ca?u[h]=-1:(o=Math.sqrt(a-r),u[h]=Math.floor(o)),++h;w[l]=c,_[l]=u}}function o(i){var n,r,o,a,s,c,u,h,l,d,f,m,b,S,P,C,T,I,L=3*i,R=i;n=Math.floor(.5+p*(t[L]+x[0])),r=Math.floor(.5+p*(t[L+1]+x[1])),o=Math.floor(.5+p*(t[L+2]+x[2]));var k,D=e[R],N=_[D],F=0,z=v*y,B=w[D];for(d=0;d=g||S>=v||P>=y)){var U=b*z+S*y+P;if(A)if(M[U]&O){if(M[U]&O){var j=E[U];j!==L&&(a=n+u-Math.floor(.5+p*(t[j]+x[0])),s=r+h-Math.floor(.5+p*(t[j+1]+x[1])),c=o+l-Math.floor(.5+p*(t[j+2]+x[2])),u*u+h*h+l*l=g||f>=v||m>=y)){var z=d*F+f*y+m;if(M[z]&R){if(A){var B=E[z];a=Math.floor(.5+p*(t[B]+x[0])),s=Math.floor(.5+p*(t[B+1]+x[1])),c=Math.floor(.5+p*(t[B+2]+x[2])),u*u+h*h+l*l-1&&a-1&&c-1&&s0);var b,x=m*m,_=new Uint16Array(3);for(t=0;t=x)||(M[r]|=k,A&&M[r]&R&&(o.toArray(t,e,i,_),b=_[0]*a+_[1]*y+_[2],E[r]=E[b])));console.timeEnd(\"EDTSurface fastdistancemap\")}function l(t,e,i,n){console.log(\"positin\",i/3);var r,o,a,s,c,u,h,l,d,f,p,m,b=new Uint16Array(3),x=0;if(0===i)return x;var _=-1,w=-1,S=-1,A=v*y;for(h=0,d=i;h-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f65535?Uint32Array:Uint16Array;this.meshIndex=new l(h),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,s),this.vertexShader=\"Ribbon.vert\",this.fragmentShader=\"Mesh.frag\",this.geometry.addAttribute(\"dir\",new Ce(new Float32Array(h),3)),this.geometry.addAttribute(\"size\",new Ce(new Float32Array(u),1)),this.setAttributes({position:t,normal:e,dir:i,color:n,size:r,pickingColor:o})}function _c(t,e,i){vs.call(this,t,e,i),this.defaultScale.sstruc*=3}function wc(t,e,i){this.helixbundleList=[],vs.call(this,t,e,i)}function Sc(t,e,i){qs.call(this,t,e,i)}function Ac(t,e,i){vs.call(this,t,e,i)}function Mc(t,e,i){var n=i||{};this.size=t.length/3,this.vertexShader=\"Line.vert\",this.fragmentShader=\"Line.frag\",this.line=!0;var r=this.size,o=r-1;this.attributeSize=2*o,this.linePosition=new Float32Array(3*o*2),this.lineColor=new Float32Array(3*o*2),$a.call(this,this.linePosition,this.lineColor,void 0,void 0,n),this.setAttributes({position:t,color:e})}function Pc(t,e,i){vs.call(this,t,e,i)}function Ec(t,e,i){qs.call(this,t,e,i)}function Cc(t,e,i){vs.call(this,t,e,i)}function Tc(t,e){var i=e||{};this.streamer=t,this.name=$(i.name,\"\"),this.path=$(i.path,\"\")}function Ic(t){function e(t){for(var e=l.atomCount[t],r=l.atomOffset[t],o=new Array(e),a=0;a0&&e(g-1),l.growIfFull(),l.resno[g]=x,void 0!==w&&(l.sstruc[g]=w.charCodeAt(0)),void 0!==S&&(l.inscode[g]=S.charCodeAt(0)),l.atomOffset[g]=m,l.atomCount[g]=0,l.count+=1,l.chainIndex[g]=v,d.residueCount[v]+=1),h.count+=1,h.residueIndex[m]=g,l.atomCount[g]+=1,r=t,o=p,a=b,s=x,c=S,u=_},this.finalize=function(){i=a,n=u,g>-1&&e(g)}}function Lc(t,e){var i=e||{};this.firstModelOnly=$(i.firstModelOnly,!1),this.asTrajectory=$(i.asTrajectory,!1),this.cAlphaOnly=$(i.cAlphaOnly,!1),this.reorderAtoms=$(i.reorderAtoms,!1),this.dontAutoBond=$(i.dontAutoBond,!1),this.autoBondBetween=$(i.autoBondBetween,!1),this.doAutoSS=$(i.doAutoSS,!0),Tc.call(this,t,i),this.structure=new Ea(this.name,this.path),this.structureBuilder=new Ic(this.structure)}function Oc(t,e,i,n,r,o,a,s){this.a=t||1,this.b=e||1,this.c=i||1,this.alpha=n||90,this.beta=r||90,this.gamma=o||90,this.spacegroup=a||\"P 1\";var c=Jn(this.alpha),u=Jn(this.beta),h=Jn(this.gamma),l=Math.cos(c),d=Math.cos(u),f=Math.cos(h),p=Math.sin(u),m=Math.sin(h);if(this.volume=this.a*this.b*this.c*Math.sqrt(1-l*l-d*d-f*f+2*l*d*f),void 0===s){var g=this.a*this.b*m/this.volume,v=(d*f-l)/(p*m);this.fracToCart=(new ht).set(this.a,0,0,0,this.b*f,this.b*m,0,0,this.c*d,-this.c*p*v,1/g,0,0,0,0,1).transpose(),this.cartToFrac=(new ht).getInverse(this.fracToCart)}else this.cartToFrac=s,this.fracToCart=(new ht).getInverse(this.cartToFrac)}function Rc(t,e){var i=e||{};i.doAutoSS=$(i.doAutoSS,!0),Lc.call(this,t,i)}function kc(t,e){Lc.call(this,t,e)}function Dc(t,e){Lc.call(this,t,e)}function Nc(t,e){Lc.call(this,t,e)}function Fc(t,e){var i=e||{};i.dontAutoBond=$(i.dontAutoBond,!0),Lc.call(this,t,i)}function zc(t,e){var i=e||{};i.dontAutoBond=$(i.dontAutoBond,!0),Lc.call(this,t,i)}function Bc(t,e,i){return e?new t(e.buffer,e.byteOffset,e.byteLength/(i||1)):void 0}function Uc(t){return Bc(DataView,t)}function jc(t){return Bc(Uint8Array,t)}function $c(t){return Bc(Int8Array,t)}function Vc(t){return Bc(Int32Array,t,4)}function Gc(t){return Bc(Float32Array,t,4)}function Hc(t,e){var i=t.length/2;e||(e=new Int16Array(i));for(var n=0,r=0;no&&++s;e=new Int32Array(s)}for(i=0,n=0;in){for(var r=[],o=0;o>a),s=Math.max(0,e-n-u>>a),p=Math.max(0,i-n-h>>a),m=Math.min(l,t+n-c>>a),b=Math.min(d,e+n-u>>a),_=Math.min(f,i+n-h>>a),w=[],S=o;S<=m;++S)for(var A=s;A<=b;++A)for(var M=p;M<=_;++M){var E=(S*d+A)*f+M,T=x[E];if(T>0)for(var L=T-1,O=C[L],R=P[L],k=O+R,D=O;D>a)+1,d=(s.max.y-u>>a)+1,f=(s.max.z-h>>a)+1,p=l*d*f,m=e.count,g=e.x,v=e.y,y=e.z,b=0,x=new Uint32Array(p),_=new Int32Array(m);for(r=0;r>a,S=v[r]-u>>a,A=y[r]-h>>a,M=(w*d+S)*f+A;1===(x[M]+=1)&&(b+=1),_[r]=M}var P=new Uint16Array(b);for(r=0,o=0;r0&&(x[r]=o+1,P[o]=E,o+=1)}var C=new Uint32Array(b);for(r=1;r0){var O=L-1;I[C[O]+T[O]]=r,T[O]+=1}}t.Debug&&ty.timeEnd(\"SpatialHash init\"),this.within=n}var Pu=setTimeout,Eu=\"function\"==typeof setImmediate&&setImmediate||function(t){Pu(t,0)},Cu=function(t){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",t)};n.prototype.catch=function(t){return this.then(null,t)},n.prototype.then=function(t,i){var n=new this.constructor(e);return r(this,new c(t,i,n)),n},n.all=function(t){var e=Array.prototype.slice.call(t);return new n(function(t,i){function n(o,a){try{if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var s=a.then;if(\"function\"==typeof s)return void s.call(a,function(t){n(o,t)},i)}e[o]=a,0===--r&&t(e)}catch(t){i(t)}}if(0===e.length)return t([]);for(var r=e.length,o=0;o=252?6:$h>=248?5:$h>=240?4:$h>=224?3:$h>=192?2:1;jh[254]=jh[254]=1;var Vh=0,Gh=2,Hh=4,Wh=0,Xh=1,qh=2,Yh=-5,Zh={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},Kh=Object.prototype.toString;z.prototype.push=function(t,e){var i,n,r,o,a,s,c=this.strm,u=this.options.chunkSize,h=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:e===!0?Hh:Vh,\"string\"==typeof t?c.input=R(t):\"[object ArrayBuffer]\"===Kh.call(t)?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;do{if(0===c.avail_out&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),i=E(c,Vh),i===qh&&h&&(s=\"string\"==typeof h?L(h):\"[object ArrayBuffer]\"===Kh.call(h)?new Uint8Array(h):h,i=I(this.strm,s)),i===Yh&&f===!0&&(i=Wh,f=!1),i!==Xh&&i!==Wh)return this.onEnd(i),this.ended=!0,!1;c.next_out&&(0!==c.avail_out&&i!==Xh&&(0!==c.avail_in||n!==Hh&&n!==Gh)||(\"string\"===this.options.to?(r=D(c.output,c.next_out),o=c.next_out-r,a=k(c.output,r),c.next_out=o,c.avail_out=u-o,o&&d(c.output,c.output,r,o,0),this.onData(a)):this.onData(l(c.output,c.next_out)))),0===c.avail_in&&0===c.avail_out&&(f=!0)}while((c.avail_in>0||0===c.avail_out)&&i!==Xh);return i===Xh&&(n=Hh),n===Hh?(i=C(this.strm),this.onEnd(i),this.ended=!0,i===Wh):n!==Gh||(this.onEnd(Wh),c.avail_out=0,!0)},z.prototype.onData=function(t){this.chunks.push(t)},z.prototype.onEnd=function(t){t===Wh&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=f(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Qh=function(){function t(t,e){return te?1:0}return function(e,i,n){var r=0,o=e.length-1;for(n||(n=t);r<=o;){var a=r+o>>1,s=n(i,e[a]);if(s>0)r=a+1;else{if(!(s<0))return a;o=a-1}}return-r-1}}();tt.prototype={constructor:tt,nextGid:1,objectList:[],rangeList:[],getBaseObject:function(t){return\"StructureView\"===t.type&&(t=t.getStructure()),t},addObject:function(t){return t=this.getBaseObject(t),this.objectList.push(t),this.rangeList.push(this.allocateGidRange(t)),this},removeObject:function(t){t=this.getBaseObject(t);var e=this.objectList.indexOf(t);return e!==-1&&(this.objectList.splice(e,1),this.rangeList.splice(e,1),0===this.objectList.length&&(this.nextGid=1)),this},updateObject:function(t,e){t=this.getBaseObject(t);var i=this.objectList.indexOf(t);if(i!==-1){var n=this.rangeList[i];if(n[1]===this.nextGid){var r=this.getGidCount(t);this.nextGid+=r-(n[1]-n[0]),n[1]=this.nextGid}else this.rangeList[i]=this.allocateGidRange(t)}else e||ty.warn(\"GidPool.updateObject: object not found.\");return this},getGidCount:function(t){t=this.getBaseObject(t);var e=0;return\"Structure\"===t.type?e=t.atomStore.count+t.bondStore.count+t.backboneBondStore.count+t.rungBondStore.count:\"Volume\"===t.type?e=t.__data.length:ty.warn(\"GidPool.getGidCount: unknown object type\"),e},allocateGidRange:function(t){t=this.getBaseObject(t);var e=this.nextGid;return this.nextGid+=this.getGidCount(t),this.nextGid>Math.pow(2,24)&&ty.error(\"GidPool.allocateGidRange: GidPool overflown\"),[e,this.nextGid]},getNextGid:function(){return this.nextGid++},getGid:function(t,e){t=this.getBaseObject(t),e=e||0;var i=0,n=this.objectList.indexOf(t);if(n!==-1){var r=this.rangeList[n],o=r[0];i=o+e}else ty.warn(\"GidPool.getGid: object not found.\");return i},getByGid:function(t){var e;return this.objectList.forEach(function(i,n){var r=this.rangeList[n];if(!(t=r[1])){var o=t-r[0];\"Structure\"===i.type?o<=i.atomStore.count?e=i.getAtomProxy(o):o<=i.atomStore.count+i.bondStore.count?(o-=i.atomStore.count,e=i.getBondProxy(o)):o<=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count?(o-=i.atomStore.count+i.bondStore.count,e=i.getBondProxy(o),e.bondStore=i.backboneBondStore):o<=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count+i.rungBondStore.count?(o-=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count,e=i.getBondProxy(o),e.bondStore=i.rungBondStore):ty.warn(\"GidPool.getByGid: invalid Structure gid\",t):\"Volume\"===i.type?e={volume:i,index:o,value:i.data[o],x:i.dataPosition[3*o],y:i.dataPosition[3*o+1],z:i.dataPosition[3*o+2]}:ty.warn(\"GidPool.getByGid: unknown object type for gid\",t)}},this),e}},void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,\"name\",{get:function(){return this.toString().match(/^\\s*function\\s*(\\S*)\\s*\\(/)[1]}}),void 0===Object.assign&&!function(){Object.assign=function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i>=4,i[r]=e[19===r?3&t|8:t]);return i.join(\"\")}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,r){return n+(t-e)*(r-n)/(i-e)},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*(3-2*t))},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*t*(t*(6*t-15)+10))},random16:function(){return console.warn(\"THREE.Math.random16() has been deprecated. Use Math.random() instead.\"),Math.random()},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*lf.DEG2RAD},radToDeg:function(t){return t*lf.RAD2DEG},isPowerOfTwo:function(t){return 0===(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t}};st.prototype={constructor:st,isVector2:!0,get width(){return this.x},set width(t){this.x=t},get height(){return this.y},set height(t){this.y=t},set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t):(this.x=0,this.y=0),this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t,e;return function(i,n){return void 0===t&&(t=new st,e=new st),t.set(i,i),e.set(n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,i))/i)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length())},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromAttribute:function(t,e,i){return void 0===i&&(i=0),e=e*t.itemSize+i,this.x=t.array[e],this.y=t.array[e+1],this},rotateAround:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=this.x-t.x,o=this.y-t.y;return this.x=r*i-o*n+t.x,this.y=r*n+o*i+t.y,this}},ct.DEFAULT_IMAGE=void 0,ct.DEFAULT_MAPPING=Ql,ct.prototype={constructor:ct,isTexture:!0,set needsUpdate(t){t===!0&&this.version++},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){function e(t){var e;return void 0!==t.toDataURL?e=t:(e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),e.width=t.width,e.height=t.height,e.getContext(\"2d\").drawImage(t,0,0,t.width,t.height)),e.width>2048||e.height>2048?e.toDataURL(\"image/jpeg\",.6):e.toDataURL(\"image/png\")}if(void 0!==t.textures[this.uuid])return t.textures[this.uuid];var i={metadata:{version:4.4,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var n=this.image;void 0===n.uuid&&(n.uuid=lf.generateUUID()),void 0===t.images[n.uuid]&&(t.images[n.uuid]={uuid:n.uuid,url:e(n)}),i.image=n.uuid}return t.textures[this.uuid]=i,i},dispose:function(){this.dispatchEvent({type:\"dispose\"})},transformUv:function(t){if(this.mapping===Ql){if(t.multiply(this.repeat),t.add(this.offset),t.x<0||t.x>1)switch(this.wrapS){case ad:t.x=t.x-Math.floor(t.x);break;case sd:t.x=t.x<0?0:1;break;case cd:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case ad:t.y=t.y-Math.floor(t.y);break;case sd:t.y=t.y<0?0:1;break;case cd:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}this.flipY&&(t.y=1-t.y)}}},Object.assign(ct.prototype,at.prototype);var df=0;ht.prototype={constructor:ht,isMatrix4:!0,\nset:function(t,e,i,n,r,o,a,s,c,u,h,l,d,f,p,m){var g=this.elements;return g[0]=t,g[4]=e,g[8]=i,g[12]=n,g[1]=r,g[5]=o,g[9]=a,g[13]=s,g[2]=c,g[6]=u,g[10]=h,g[14]=l,g[3]=d,g[7]=f,g[11]=p,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new ht).fromArray(this.elements)},copy:function(t){return this.elements.set(t.elements),this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t;return function(e){void 0===t&&(t=new dt);var i=this.elements,n=e.elements,r=1/t.setFromMatrixColumn(e,0).length(),o=1/t.setFromMatrixColumn(e,1).length(),a=1/t.setFromMatrixColumn(e,2).length();return i[0]=n[0]*r,i[1]=n[1]*r,i[2]=n[2]*r,i[4]=n[4]*o,i[5]=n[5]*o,i[6]=n[6]*o,i[8]=n[8]*a,i[9]=n[9]*a,i[10]=n[10]*a,this}}(),makeRotationFromEuler:function(t){(t&&t.isEuler)===!1&&console.error(\"THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var e=this.elements,i=t.x,n=t.y,r=t.z,o=Math.cos(i),a=Math.sin(i),s=Math.cos(n),c=Math.sin(n),u=Math.cos(r),h=Math.sin(r);if(\"XYZ\"===t.order){var l=o*u,d=o*h,f=a*u,p=a*h;e[0]=s*u,e[4]=-s*h,e[8]=c,e[1]=d+f*c,e[5]=l-p*c,e[9]=-a*s,e[2]=p-l*c,e[6]=f+d*c,e[10]=o*s}else if(\"YXZ\"===t.order){var m=s*u,g=s*h,v=c*u,y=c*h;e[0]=m+y*a,e[4]=v*a-g,e[8]=o*c,e[1]=o*h,e[5]=o*u,e[9]=-a,e[2]=g*a-v,e[6]=y+m*a,e[10]=o*s}else if(\"ZXY\"===t.order){var m=s*u,g=s*h,v=c*u,y=c*h;e[0]=m-y*a,e[4]=-o*h,e[8]=v+g*a,e[1]=g+v*a,e[5]=o*u,e[9]=y-m*a,e[2]=-o*c,e[6]=a,e[10]=o*s}else if(\"ZYX\"===t.order){var l=o*u,d=o*h,f=a*u,p=a*h;e[0]=s*u,e[4]=f*c-d,e[8]=l*c+p,e[1]=s*h,e[5]=p*c+l,e[9]=d*c-f,e[2]=-c,e[6]=a*s,e[10]=o*s}else if(\"YZX\"===t.order){var b=o*s,x=o*c,_=a*s,w=a*c;e[0]=s*u,e[4]=w-b*h,e[8]=_*h+x,e[1]=h,e[5]=o*u,e[9]=-a*u,e[2]=-c*u,e[6]=x*h+_,e[10]=b-w*h}else if(\"XZY\"===t.order){var b=o*s,x=o*c,_=a*s,w=a*c;e[0]=s*u,e[4]=-h,e[8]=c*u,e[1]=b*h+w,e[5]=o*u,e[9]=x*h-_,e[2]=_*h-x,e[6]=a*u,e[10]=w*h+b}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){var e=this.elements,i=t.x,n=t.y,r=t.z,o=t.w,a=i+i,s=n+n,c=r+r,u=i*a,h=i*s,l=i*c,d=n*s,f=n*c,p=r*c,m=o*a,g=o*s,v=o*c;return e[0]=1-(d+p),e[4]=h-v,e[8]=l+g,e[1]=h+v,e[5]=1-(u+p),e[9]=f-m,e[2]=l-g,e[6]=f+m,e[10]=1-(u+d),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},lookAt:function(){var t,e,i;return function(n,r,o){void 0===t&&(t=new dt,e=new dt,i=new dt);var a=this.elements;return i.subVectors(n,r).normalize(),0===i.lengthSq()&&(i.z=1),t.crossVectors(o,i).normalize(),0===t.lengthSq()&&(i.z+=1e-4,t.crossVectors(o,i).normalize()),e.crossVectors(i,t),a[0]=t.x,a[4]=e.x,a[8]=i.x,a[1]=t.y,a[5]=e.y,a[9]=i.y,a[2]=t.z,a[6]=e.z,a[10]=i.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,o=i[0],a=i[4],s=i[8],c=i[12],u=i[1],h=i[5],l=i[9],d=i[13],f=i[2],p=i[6],m=i[10],g=i[14],v=i[3],y=i[7],b=i[11],x=i[15],_=n[0],w=n[4],S=n[8],A=n[12],M=n[1],P=n[5],E=n[9],C=n[13],T=n[2],I=n[6],L=n[10],O=n[14],R=n[3],k=n[7],D=n[11],N=n[15];return r[0]=o*_+a*M+s*T+c*R,r[4]=o*w+a*P+s*I+c*k,r[8]=o*S+a*E+s*L+c*D,r[12]=o*A+a*C+s*O+c*N,r[1]=u*_+h*M+l*T+d*R,r[5]=u*w+h*P+l*I+d*k,r[9]=u*S+h*E+l*L+d*D,r[13]=u*A+h*C+l*O+d*N,r[2]=f*_+p*M+m*T+g*R,r[6]=f*w+p*P+m*I+g*k,r[10]=f*S+p*E+m*L+g*D,r[14]=f*A+p*C+m*O+g*N,r[3]=v*_+y*M+b*T+x*R,r[7]=v*w+y*P+b*I+x*k,r[11]=v*S+y*E+b*L+x*D,r[15]=v*A+y*C+b*O+x*N,this},multiplyToArray:function(t,e,i){var n=this.elements;return this.multiplyMatrices(t,e),i[0]=n[0],i[1]=n[1],i[2]=n[2],i[3]=n[3],i[4]=n[4],i[5]=n[5],i[6]=n[6],i[7]=n[7],i[8]=n[8],i[9]=n[9],i[10]=n[10],i[11]=n[11],i[12]=n[12],i[13]=n[13],i[14]=n[14],i[15]=n[15],this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToVector3Array:function(){var t;return function(e,i,n){void 0===t&&(t=new dt),void 0===i&&(i=0),void 0===n&&(n=e.length);for(var r=0,o=i;r0?(e=.5/Math.sqrt(d+1),this._w=.25/e,this._x=(h-c)*e,this._y=(o-u)*e,this._z=(a-r)*e):n>s&&n>l?(e=2*Math.sqrt(1+n-s-l),this._w=(h-c)/e,this._x=.25*e,this._y=(r+a)/e,this._z=(o+u)/e):s>l?(e=2*Math.sqrt(1+s-n-l),this._w=(o-u)/e,this._x=(r+a)/e,this._y=.25*e,this._z=(c+h)/e):(e=2*Math.sqrt(1+l-n-s),this._w=(a-r)/e,this._x=(o+u)/e,this._y=(c+h)/e,this._z=.25*e),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e,i=1e-6;return function(n,r){return void 0===t&&(t=new dt),e=n.dot(r)+1,eMath.abs(n.z)?t.set(-n.y,n.x,0):t.set(0,-n.z,n.y)):t.crossVectors(n,r),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,r=t._z,o=t._w,a=e._x,s=e._y,c=e._z,u=e._w;return this._x=i*u+o*a+n*c-r*s,this._y=n*u+o*s+r*a-i*c,this._z=r*u+o*c+i*s-n*a,this._w=o*u-i*a-n*s-r*c,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var i=this._x,n=this._y,r=this._z,o=this._w,a=o*t._w+i*t._x+n*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=i,this._y=n,this._z=r,this;var s=Math.sqrt(1-a*a);if(Math.abs(s)<.001)return this._w=.5*(o+this._w),this._x=.5*(i+this._x),this._y=.5*(n+this._y),this._z=.5*(r+this._z),this;var c=Math.atan2(s,a),u=Math.sin((1-e)*c)/s,h=Math.sin(e*c)/s;return this._w=o*u+this._w*h,this._x=i*u+this._x*h,this._y=n*u+this._y*h,this._z=r*u+this._z*h,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}},Object.assign(lt,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,r,o,a){var s=i[n+0],c=i[n+1],u=i[n+2],h=i[n+3],l=r[o+0],d=r[o+1],f=r[o+2],p=r[o+3];if(h!==p||s!==l||c!==d||u!==f){var m=1-a,g=s*l+c*d+u*f+h*p,v=g>=0?1:-1,y=1-g*g;if(y>Number.EPSILON){var b=Math.sqrt(y),x=Math.atan2(b,g*v);m=Math.sin(m*x)/b,a=Math.sin(a*x)/b}var _=a*v;if(s=s*m+l*_,c=c*m+d*_,u=u*m+f*_,h=h*m+p*_,m===1-a){var w=1/Math.sqrt(s*s+c*c+u*u+h*h);s*=w,c*=w,u*=w,h*=w}}t[e]=s,t[e+1]=c,t[e+2]=u,t[e+3]=h}}),dt.prototype={constructor:dt,isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t,this.z*=t):(this.x=0,this.y=0,this.z=0),this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t;return function(e){return(e&&e.isEuler)===!1&&console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),void 0===t&&(t=new lt),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t;return function(e,i){return void 0===t&&(t=new lt),this.applyQuaternion(t.setFromAxisAngle(e,i))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6]*n,this.y=r[1]*e+r[4]*i+r[7]*n,this.z=r[2]*e+r[5]*i+r[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n+r[12],this.y=r[1]*e+r[5]*i+r[9]*n+r[13],this.z=r[2]*e+r[6]*i+r[10]*n+r[14],this},applyProjection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements,o=1/(r[3]*e+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*e+r[4]*i+r[8]*n+r[12])*o,this.y=(r[1]*e+r[5]*i+r[9]*n+r[13])*o,this.z=(r[2]*e+r[6]*i+r[10]*n+r[14])*o,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,o=t.y,a=t.z,s=t.w,c=s*e+o*n-a*i,u=s*i+a*e-r*n,h=s*n+r*i-o*e,l=-r*e-o*i-a*n;return this.x=c*s+l*-r+u*-a-h*-o,this.y=u*s+l*-o+h*-r-c*-a,this.z=h*s+l*-a+c*-o-u*-r,this},project:function(){var t;return function(e){return void 0===t&&(t=new ht),t.multiplyMatrices(e.projectionMatrix,t.getInverse(e.matrixWorld)),this.applyProjection(t)}}(),unproject:function(){var t;return function(e){return void 0===t&&(t=new ht),t.multiplyMatrices(e.matrixWorld,t.getInverse(e.projectionMatrix)),this.applyProjection(t)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n,this.y=r[1]*e+r[5]*i+r[9]*n,this.z=r[2]*e+r[6]*i+r[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t,e;return function(i,n){return void 0===t&&(t=new dt,e=new dt),t.set(i,i,i),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,i))/i)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){if(void 0!==e)return console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e);var i=this.x,n=this.y,r=this.z;return this.x=n*t.z-r*t.y,this.y=r*t.x-i*t.z,this.z=i*t.y-n*t.x,this},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,o=e.x,a=e.y,s=e.z;return this.x=n*s-r*a,this.y=r*o-i*s,this.z=i*a-n*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t;return function(e){return void 0===t&&(t=new dt),t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t;return function(e){return void 0===t&&(t=new dt),this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(lf.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return e*e+i*i+n*n},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){var e=Math.sin(t.phi)*t.radius;return this.x=e*Math.sin(t.theta),this.y=Math.cos(t.phi)*t.radius,this.z=e*Math.cos(t.theta),this},setFromMatrixPosition:function(t){return this.setFromMatrixColumn(t,3)},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=n,this},setFromMatrixColumn:function(t,e){if(\"number\"==typeof t){console.warn(\"THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).\");var i=t;t=e,e=i}return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromAttribute:function(t,e,i){return void 0===i&&(i=0),e=e*t.itemSize+i,this.x=t.array[e],this.y=t.array[e+1],this.z=t.array[e+2],this}},pt.prototype={constructor:pt,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){var i=e||new st;return i.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){var i=e||new st;return i.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new st;return function(e){var i=t.copy(e).clamp(this.min,this.max);return i.sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},gt.prototype=Object.create(ct.prototype),gt.prototype.constructor=gt,gt.prototype.isCubeTexture=!0,Object.defineProperty(gt.prototype,\"images\",{get:function(){return this.image},set:function(t){this.image=t}});var ff=new ct,pf=new gt,mf=[],gf=[];Xt.prototype.setValue=function(t,e){for(var i=this.seq,n=0,r=i.length;n!==r;++n){var o=i[n];o.setValue(t,e[o.id])}};var vf=/([\\w\\d_]+)(\\])?(\\[|\\.)?/g;Zt.prototype.setValue=function(t,e,i){var n=this.map[e];void 0!==n&&n.setValue(t,i,this.renderer)},Zt.prototype.set=function(t,e,i){var n=this.map[i];void 0!==n&&n.setValue(t,e[i],this.renderer)},Zt.prototype.setOptional=function(t,e,i){var n=e[i];void 0!==n&&this.setValue(t,i,n)},Zt.upload=function(t,e,i,n){for(var r=0,o=e.length;r!==o;++r){var a=e[r],s=i[a.id];s.needsUpdate!==!1&&a.setValue(t,s.value,n)}},Zt.seqWithValue=function(t,e){for(var i=[],n=0,r=t.length;n!==r;++n){var o=t[n];o.id in e&&i.push(o)}return i},Zt.splitDynamic=function(t,e){for(var i=null,n=t.length,r=0,o=0;o!==n;++o){var a=t[o],s=e[a.id];s&&s.dynamic===!0?(null===i&&(i=[]),i.push(a)):(ry&&v>b?vb?y0&&(n.alphaTest=this.alphaTest),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),n.skinning=this.skinning,n.morphTargets=this.morphTargets,i){var r=e(t.textures),o=e(t.images);r.length>0&&(n.textures=r),o.length>0&&(n.images=o)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.shading=t.shading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.overdraw=t.overdraw,this.visible=t.visible,this.clipShadows=t.clipShadows;var e=t.clippingPlanes,i=null;if(null!==e){var n=e.length;i=new Array(n);for(var r=0;r!==n;++r)i[r]=e[r].clone()}return this.clippingPlanes=i,this},update:function(){this.dispatchEvent({type:\"update\"})},dispose:function(){this.dispatchEvent({type:\"dispose\"})}},Object.assign(ee.prototype,at.prototype);var yf=0,bf={merge:function(t){for(var e={},i=0;i 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\t\\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t\\treturn distanceFalloff * maxDistanceCutoffFactor;\\n#else\\n\\t\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\\n\\treturn specularColor * AB.x + AB.y;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n\",Cf=\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\\n\",Tf=\"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n#endif\\n\",If=\"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\",Lf=\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\",Of=\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\",Rf=\"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",kf=\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\\n\",Df=\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\",Nf=\"#ifdef USE_COLOR\\n\\tvColor.xyz = color.xyz;\\n#endif\",Ff=\"#define PI 3.14159265359\\n#define PI2 6.28318530718\\n#define RECIPROCAL_PI 0.31830988618\\n#define RECIPROCAL_PI2 0.15915494\\n#define LOG2 1.442695\\n#define EPSILON 1e-6\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\n\",zf=\"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\treturn face;\\n}\\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\\n\\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 0.5 * log2(d);\\n\\treturn vec2(floor(mipLevel), fract(mipLevel));\\n}\\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\\n\\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = offset + vec2( texelOffset );\\n\\treturn base + s * ( scale - 2.0 * texelOffset );\\n}\\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\",Bf=\"#ifdef FLIP_SIDED\\n\\tobjectNormal = -objectNormal;\\n#endif\\nvec3 transformedNormal = normalMatrix * objectNormal;\\n\",Uf=\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\\n\",jf=\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\",$f=\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\",Vf=\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\",Gf=\" gl_FragColor = linearToOutputTexel( gl_FragColor );\\n\",Hf=\"\\nvec4 LinearToLinear( in vec4 value ) {\\n return value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n float maxComponent = max( max( value.r, value.g ), value.b );\\n float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n return vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n float maxRGB = max( value.x, max( value.g, value.b ) );\\n float M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n M = ceil( M * 255.0 ) / 255.0;\\n return vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n float maxRGB = max( value.x, max( value.g, value.b ) );\\n float D = max( maxRange / maxRGB, 1.0 );\\n D = min( floor( D ) / 255.0, 1.0 );\\n return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n vec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n vec4 vResult;\\n vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n vResult.w = fract(Le);\\n vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n return vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n float Le = value.z * 255.0 + value.w;\\n vec3 Xp_Y_XYZp;\\n Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n vec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\\n return vec4( max(vRGB, 0.0), 1.0 );\\n}\\n\",Wf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\\n\",Xf=\"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\\n\\tuniform float reflectivity;\\n\\tuniform float envMapIntenstiy;\\n#endif\\n#ifdef USE_ENVMAP\\n\\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\tuniform float flipEnvMap;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\\n\",qf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\\n\",Yf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\n\",Zf=\"#ifdef USE_FOG\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\\n\\t#else\\n\\t\\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\\n\\t#endif\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\\n\",Kf=\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",Qf=\"#ifdef USE_LIGHTMAP\\n\\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n#endif\\n\",Jf=\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",tp=\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",ep=\"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tif ( testLightInRange( lightDistance, pointLight.distance ) ) {\\n\\t\\t\\tdirectLight.color = pointLight.color;\\n\\t\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( all( bvec2( angleCos > spotLight.coneCos, testLightInRange( lightDistance, spotLight.distance ) ) ) ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\t#include \\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\t#include \\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\",ip=\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n\",np=\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tvec3\\tspecularColor;\\n\\tfloat\\tspecularShininess;\\n\\tfloat\\tspecularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\\n\",rp=\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\\n#endif\\n\",op=\"struct PhysicalMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tfloat\\tspecularRoughness;\\n\\tvec3\\tspecularColor;\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoat;\\n\\t\\tfloat clearCoatRoughness;\\n\\t#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifndef STANDARD\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\\n\",ap=\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t \\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\t\\t\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\",sp=\"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\\n\\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\\n#endif\",cp=\"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\",up=\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\",hp=\"#ifdef USE_LOGDEPTHBUF\\n\\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\\n\\t#endif\\n#endif\\n\",lp=\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\",dp=\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\",fp=\"#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\",pp=\"#ifdef USE_MAP\\n\\tuniform vec4 offsetRepeat;\\n\\tuniform sampler2D map;\\n#endif\\n\",mp=\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.r;\\n#endif\\n\",gp=\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",vp=\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\\n#endif\\n\",yp=\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_MORPHNORMALS\\n\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",bp=\"#ifdef USE_MORPHTARGETS\\n\\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\",xp=\"#ifdef DOUBLE_SIDED\\n\\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n#else\\n\\tfloat flipNormal = 1.0;\\n#endif\\n\",_p=\"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal ) * flipNormal;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\",wp=\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\\n\",Sp=\"vec3 packNormalToRGB( const in vec3 normal ) {\\n return normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n return 1.0 - 2.0 * rgb.xyz;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n return ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n return linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n return (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n\",Ap=\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\\n\",Mp=\"#ifdef USE_SKINNING\\n\\tvec4 mvPosition = modelViewMatrix * skinned;\\n#else\\n\\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\n#endif\\ngl_Position = projectionMatrix * mvPosition;\\n\",Pp=\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.r;\\n#endif\\n\",Ep=\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",Cp=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\\n\\t\\tconst vec2 offset = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = mix( a, b, f.x );\\n\\t\\treturn c;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",Tp=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n#endif\\n\",Ip=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\",Lp=\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\",Op=\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",Rp=\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureWidth;\\n\\t\\tuniform int boneTextureHeight;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureWidth ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureWidth ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureWidth );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureHeight );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\",kp=\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\tskinned = bindMatrixInverse * skinned;\\n#endif\\n\",Dp=\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n#endif\\n\",Np=\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",Fp=\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",zp=\"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\",Bp=\"#define saturate(a) clamp( a, 0.0, 1.0 )\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n return toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n return saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\\nvec3 Uncharted2ToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n return saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n color = max( vec3( 0.0 ), color - 0.004 );\\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\n\",Up=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n#endif\",jp=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n\\tuniform vec4 offsetRepeat;\\n#endif\\n\",$p=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\\n#endif\",Vp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",Gp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n#endif\",Hp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = uv2;\\n#endif\",Wp=\"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\\n\\t#ifdef USE_SKINNING\\n\\t\\tvec4 worldPosition = modelMatrix * skinned;\\n\\t#else\\n\\t\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n\\t#endif\\n#endif\\n\",Xp=\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\",qp=\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",Yp=\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\",Zp=\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",Kp=\"uniform vec3 lightPos;\\nvarying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\\n}\\n\",Qp=\"varying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition;\\n}\\n\",Jp=\"uniform sampler2D tEquirect;\\nuniform float tFlip;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\",tm=\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",em=\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",im=\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n}\\n\",nm=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight;\\n\\treflectedLight.directDiffuse = vec3( 0.0 );\\n\\treflectedLight.directSpecular = vec3( 0.0 );\\n\\treflectedLight.indirectDiffuse = diffuseColor.rgb;\\n\\treflectedLight.indirectSpecular = vec3( 0.0 );\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",rm=\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",om=\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",am=\"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",sm=\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",cm=\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",um=\"#define PHYSICAL\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifndef STANDARD\\n\\tuniform float clearCoat;\\n\\tuniform float clearCoatRoughness;\\n#endif\\nuniform float envMapIntensity;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",hm=\"#define PHYSICAL\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n}\\n\",lm=\"uniform float opacity;\\nvarying vec3 vNormal;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( vNormal ), opacity );\\n\\t#include \\n}\\n\",dm=\"varying vec3 vNormal;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvNormal = normalize( normalMatrix * normal );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",fm=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",pm=\"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",mm=\"uniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\\n}\\n\",gm=\"#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",vm={\nalphamap_fragment:xf,alphamap_pars_fragment:_f,alphatest_fragment:wf,aomap_fragment:Sf,aomap_pars_fragment:Af,begin_vertex:Mf,beginnormal_vertex:Pf,bsdfs:Ef,bumpmap_pars_fragment:Cf,clipping_planes_fragment:Tf,clipping_planes_pars_fragment:If,clipping_planes_pars_vertex:Lf,clipping_planes_vertex:Of,color_fragment:Rf,color_pars_fragment:kf,color_pars_vertex:Df,color_vertex:Nf,common:Ff,cube_uv_reflection_fragment:zf,defaultnormal_vertex:Bf,displacementmap_pars_vertex:Uf,displacementmap_vertex:jf,emissivemap_fragment:$f,emissivemap_pars_fragment:Vf,encodings_fragment:Gf,encodings_pars_fragment:Hf,envmap_fragment:Wf,envmap_pars_fragment:Xf,envmap_pars_vertex:qf,envmap_vertex:Yf,fog_fragment:Zf,fog_pars_fragment:Kf,lightmap_fragment:Qf,lightmap_pars_fragment:Jf,lights_lambert_vertex:tp,lights_pars:ep,lights_phong_fragment:ip,lights_phong_pars_fragment:np,lights_physical_fragment:rp,lights_physical_pars_fragment:op,lights_template:ap,logdepthbuf_fragment:sp,logdepthbuf_pars_fragment:cp,logdepthbuf_pars_vertex:up,logdepthbuf_vertex:hp,map_fragment:lp,map_pars_fragment:dp,map_particle_fragment:fp,map_particle_pars_fragment:pp,metalnessmap_fragment:mp,metalnessmap_pars_fragment:gp,morphnormal_vertex:vp,morphtarget_pars_vertex:yp,morphtarget_vertex:bp,normal_flip:xp,normal_fragment:_p,normalmap_pars_fragment:wp,packing:Sp,premultiplied_alpha_fragment:Ap,project_vertex:Mp,roughnessmap_fragment:Pp,roughnessmap_pars_fragment:Ep,shadowmap_pars_fragment:Cp,shadowmap_pars_vertex:Tp,shadowmap_vertex:Ip,shadowmask_pars_fragment:Lp,skinbase_vertex:Op,skinning_pars_vertex:Rp,skinning_vertex:kp,skinnormal_vertex:Dp,specularmap_fragment:Np,specularmap_pars_fragment:Fp,tonemapping_fragment:zp,tonemapping_pars_fragment:Bp,uv_pars_fragment:Up,uv_pars_vertex:jp,uv_vertex:$p,uv2_pars_fragment:Vp,uv2_pars_vertex:Gp,uv2_vertex:Hp,worldpos_vertex:Wp,cube_frag:Xp,cube_vert:qp,depth_frag:Yp,depth_vert:Zp,distanceRGBA_frag:Kp,distanceRGBA_vert:Qp,equirect_frag:Jp,equirect_vert:tm,linedashed_frag:em,linedashed_vert:im,meshbasic_frag:nm,meshbasic_vert:rm,meshlambert_frag:om,meshlambert_vert:am,meshphong_frag:sm,meshphong_vert:cm,meshphysical_frag:um,meshphysical_vert:hm,normal_frag:lm,normal_vert:dm,points_frag:fm,points_vert:pm,shadow_frag:mm,shadow_vert:gm};re.prototype={constructor:re,isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this},setScalar:function(t){this.r=t,this.g=t,this.b=t},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(){function t(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+6*(e-t)*(2/3-i):t}return function(e,i,n){if(e=lf.euclideanModulo(e,1),i=lf.clamp(i,0,1),n=lf.clamp(n,0,1),0===i)this.r=this.g=this.b=n;else{var r=n<=.5?n*(1+i):n+i-n*i,o=2*n-r;this.r=t(o,r,e+1/3),this.g=t(o,r,e),this.b=t(o,r,e-1/3)}return this}}(),setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}var i;if(i=/^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(t)){var n,r=i[1],o=i[2];switch(r){case\"rgb\":case\"rgba\":if(n=/^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case\"hsl\":case\"hsla\":if(n=/^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o)){var a=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,c=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(a,s,c)}}}else if(i=/^\\#([A-Fa-f0-9]+)$/.exec(t)){var u=i[1],h=u.length;if(3===h)return this.r=parseInt(u.charAt(0)+u.charAt(0),16)/255,this.g=parseInt(u.charAt(1)+u.charAt(1),16)/255,this.b=parseInt(u.charAt(2)+u.charAt(2),16)/255,this;if(6===h)return this.r=parseInt(u.charAt(0)+u.charAt(1),16)/255,this.g=parseInt(u.charAt(2)+u.charAt(3),16)/255,this.b=parseInt(u.charAt(4)+u.charAt(5),16)/255,this}if(t&&t.length>0){var u=ym[t];void 0!==u?this.setHex(u):console.warn(\"THREE.Color: Unknown color \"+t)}return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var i=e>0?1/e:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(){var t=this.r,e=this.g,i=this.b;return this.r=t*t,this.g=e*e,this.b=i*i,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return(\"000000\"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){var e,i,n=t||{h:0,s:0,l:0},r=this.r,o=this.g,a=this.b,s=Math.max(r,o,a),c=Math.min(r,o,a),u=(c+s)/2;if(c===s)e=0,i=0;else{var h=s-c;switch(i=u<=.5?h/(s+c):h/(2-s-c),s){case r:e=(o-a)/h+(or&&(r=u),h>o&&(o=h),l>a&&(a=l)}this.min.set(e,i,n),this.max.set(r,o,a)},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){var i=e||new dt;return i.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(){var t;return function(e){return void 0===t&&(t=new dt),this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=t.constant&&i>=t.constant},clampPoint:function(t,e){var i=e||new dt;return i.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new dt;return function(e){var i=t.copy(e).clamp(this.min,this.max);return i.sub(e).length()}}(),getBoundingSphere:function(){var t=new dt;return function(e){var i=e||new se;return i.center=this.center(),i.radius=.5*this.size(t).length(),i}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new dt,new dt,new dt,new dt,new dt,new dt,new dt,new dt];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},se.prototype={constructor:se,set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new ae;return function(e,i){var n=this.center;void 0!==i?n.copy(i):t.setFromPoints(e).center(n);for(var r=0,o=0,a=e.length;othis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},getBoundingBox:function(t){var e=t||new ae;return e.set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}},ce.prototype={constructor:ce,isMatrix3:!0,set:function(t,e,i,n,r,o,a,s,c){var u=this.elements;return u[0]=t,u[1]=n,u[2]=a,u[3]=e,u[4]=r,u[5]=s,u[6]=i,u[7]=o,u[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=t.elements;return this.set(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8]),this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToVector3Array:function(){var t;return function(e,i,n){void 0===t&&(t=new dt),void 0===i&&(i=0),void 0===n&&(n=e.length);for(var r=0,o=i;r1))return n.copy(r).multiplyScalar(a).add(e.start)}else if(0===this.distanceToPoint(e.start))return n.copy(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){var e=t||new dt;return e.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new dt,e=new ce;return function(i,n){var r=this.coplanarPoint(t).applyMatrix4(i),o=n||e.getNormalMatrix(i),a=this.normal.applyMatrix3(o).normalize();return this.constant=-r.dot(a),this}}(),translate:function(t){return this.constant=this.constant-t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}},he.prototype={constructor:he,set:function(t,e,i,n,r,o){var a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(n),a[4].copy(r),a[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements,n=i[0],r=i[1],o=i[2],a=i[3],s=i[4],c=i[5],u=i[6],h=i[7],l=i[8],d=i[9],f=i[10],p=i[11],m=i[12],g=i[13],v=i[14],y=i[15];return e[0].setComponents(a-n,h-s,p-l,y-m).normalize(),e[1].setComponents(a+n,h+s,p+l,y+m).normalize(),e[2].setComponents(a+r,h+c,p+d,y+g).normalize(),e[3].setComponents(a-r,h-c,p-d,y-g).normalize(),e[4].setComponents(a-o,h-u,p-f,y-v).normalize(),e[5].setComponents(a+o,h+u,p+f,y+v).normalize(),this},intersectsObject:function(){var t=new se;return function(e){var i=e.geometry;return null===i.boundingSphere&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new se;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,i=t.center,n=-t.radius,r=0;r<6;r++){var o=e[r].distanceToPoint(i);if(o0?i.min.x:i.max.x,e.x=o.normal.x>0?i.max.x:i.min.x,t.y=o.normal.y>0?i.min.y:i.max.y,e.y=o.normal.y>0?i.max.y:i.min.y,t.z=o.normal.z>0?i.min.z:i.max.z,e.z=o.normal.z>0?i.max.z:i.min.z;var a=o.distanceToPoint(t),s=o.distanceToPoint(e);if(a<0&&s<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}};var _m=0;Ce.prototype={constructor:Ce,isBufferAttribute:!0,get count(){return this.array.length/this.itemSize},set needsUpdate(t){t===!0&&this.version++},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.normalized=t.normalized,this.dynamic=t.dynamic,this},copyAt:function(t,e,i){t*=this.itemSize,i*=e.itemSize;for(var n=0,r=this.itemSize;n1){for(var e=0;e1)for(var e=0;e0){r.children=[];for(var o=0;o0&&(n.geometries=a),s.length>0&&(n.materials=s),c.length>0&&(n.textures=c),u.length>0&&(n.images=u)}return n.object=r,n},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(var i=0;i0)for(var f=0;f0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,i,n,r;for(i=0,n=this.faces.length;i0&&(t+=e[i].distanceTo(e[i-1])),this.lineDistances[i]=t},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ae),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new se),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if((t&&t.isGeometry)===!1)return void console.error(\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\",t);var n,r=this.vertices.length,o=this.vertices,a=t.vertices,s=this.faces,c=t.faces,u=this.faceVertexUvs[0],h=t.faceVertexUvs[0];void 0===i&&(i=0),void 0!==e&&(n=(new ce).getNormalMatrix(e));for(var l=0,d=a.length;l=0;i--){var g=f[i];for(this.faces.splice(g,1),a=0,s=this.faceVertexUvs.length;a0,w=v.vertexNormals.length>0,S=1!==v.color.r||1!==v.color.g||1!==v.color.b,A=v.vertexColors.length>0,M=0;if(M=t(M,0,0),M=t(M,1,y),M=t(M,2,b),M=t(M,3,x),M=t(M,4,_),M=t(M,5,w),M=t(M,6,S),M=t(M,7,A),h.push(M),h.push(v.a,v.b,v.c),h.push(v.materialIndex),x){var P=this.faceVertexUvs[0][c];h.push(n(P[0]),n(P[1]),n(P[2]))}if(_&&h.push(e(v.normal)),w){var E=v.vertexNormals;h.push(e(E[0]),e(E[1]),e(E[2]))}if(S&&h.push(i(v.color)),A){var C=v.vertexColors;h.push(i(C[0]),i(C[1]),i(C[2]))}}return r.data={},r.data.vertices=s,r.data.normals=l,f.length>0&&(r.data.colors=f),m.length>0&&(r.data.uvs=[m]),r.data.faces=h,r},clone:function(){return(new Fe).copy(this)},copy:function(t){this.vertices=[],this.faces=[],this.faceVertexUvs=[[]];for(var e=t.vertices,i=0,n=e.length;i0,a=r[1]&&r[1].length>0,s=t.morphTargets,c=s.length;if(c>0){e=[];for(var u=0;u0){h=[];for(var u=0;u0){var i=new Float32Array(3*t.normals.length);this.addAttribute(\"normal\",new Ce(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.addAttribute(\"color\",new Ce(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var r=new Float32Array(2*t.uvs.length);this.addAttribute(\"uv\",new Ce(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var o=new Float32Array(2*t.uvs2.length);this.addAttribute(\"uv2\",new Ce(o,2).copyVector2sArray(t.uvs2))}if(t.indices.length>0){var a=t.vertices.length>65535?Uint32Array:Uint16Array,s=new a(3*t.indices.length);this.setIndex(new Ce(s,1).copyIndicesArray(t.indices))}this.groups=t.groups;for(var c in t.morphTargets){for(var u=[],h=t.morphTargets[c],l=0,d=h.length;l0){var m=new Le(4*t.skinIndices.length,4);this.addAttribute(\"skinIndex\",m.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var g=new Le(4*t.skinWeights.length,4);this.addAttribute(\"skinWeight\",g.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ae);var t=this.attributes.position.array;void 0!==t?this.boundingBox.setFromArray(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new ae,e=new dt;return function(){null===this.boundingSphere&&(this.boundingSphere=new se);var i=this.attributes.position;if(i){var n=i.array,r=this.boundingSphere.center;t.setFromArray(n),t.center(r);for(var o=0,a=0,s=n.length;a0&&(t.data.groups=JSON.parse(JSON.stringify(s)));var c=this.boundingSphere;return null!==c&&(t.data.boundingSphere={center:c.center.toArray(),radius:c.radius}),t},clone:function(){return(new Ue).copy(this)},copy:function(t){var e=t.index;null!==e&&this.setIndex(e.clone());var i=t.attributes;for(var n in i){var r=i[n];this.addAttribute(n,r.clone())}for(var o=t.groups,a=0,s=o.length;a0)if(s=d*p-f,c=d*f-p,h=l*g,s>=0)if(c>=-h)if(c<=h){var v=1/g;s*=v,c*=v,u=s*(s+d*c+2*f)+c*(d*s+c+2*p)+m}else c=l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;else c=-l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;else c<=-h?(s=Math.max(0,-(-d*l+f)),c=s>0?-l:Math.min(Math.max(-l,-p),l),u=-s*s+c*(c+2*p)+m):c<=h?(s=0,c=Math.min(Math.max(-l,-p),l),u=c*(c+2*p)+m):(s=Math.max(0,-(d*l+f)),c=s>0?l:Math.min(Math.max(-l,-p),l),u=-s*s+c*(c+2*p)+m);else c=d>0?-l:l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;return o&&o.copy(this.direction).multiplyScalar(s).add(this.origin),a&&a.copy(e).multiplyScalar(c).add(t),u}}(),intersectSphere:function(){var t=new dt;return function(e,i){t.subVectors(e.center,this.origin);var n=t.dot(this.direction),r=t.dot(t)-n*n,o=e.radius*e.radius;if(r>o)return null;var a=Math.sqrt(o-r),s=n-a,c=n+a;return s<0&&c<0?null:s<0?this.at(c,i):this.at(s,i)}}(),intersectsSphere:function(t){return this.distanceToPoint(t.center)<=t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null},intersectPlane:function(t,e){var i=this.distanceToPlane(t);return null===i?null:this.at(i,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);if(0===e)return!0;var i=t.normal.dot(this.direction);return i*e<0},intersectBox:function(t,e){var i,n,r,o,a,s,c=1/this.direction.x,u=1/this.direction.y,h=1/this.direction.z,l=this.origin;return c>=0?(i=(t.min.x-l.x)*c,n=(t.max.x-l.x)*c):(i=(t.max.x-l.x)*c,n=(t.min.x-l.x)*c),u>=0?(r=(t.min.y-l.y)*u,o=(t.max.y-l.y)*u):(r=(t.max.y-l.y)*u,o=(t.min.y-l.y)*u),i>o||r>n?null:((r>i||i!==i)&&(i=r),(o=0?(a=(t.min.z-l.z)*h,s=(t.max.z-l.z)*h):(a=(t.max.z-l.z)*h,s=(t.min.z-l.z)*h),i>s||a>n?null:((a>i||i!==i)&&(i=a),(s=0?i:n,e)))},intersectsBox:function(){var t=new dt;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new dt,e=new dt,i=new dt,n=new dt;return function(r,o,a,s,c){e.subVectors(o,r),i.subVectors(a,r),n.crossVectors(e,i);var u,h=this.direction.dot(n);if(h>0){if(s)return null;\nu=1}else{if(!(h<0))return null;u=-1,h=-h}t.subVectors(this.origin,r);var l=u*this.direction.dot(i.crossVectors(t,i));if(l<0)return null;var d=u*this.direction.dot(e.cross(t));if(d<0)return null;if(l+d>h)return null;var f=-u*t.dot(n);return f<0?null:this.at(f/h,c)}}(),applyMatrix4:function(t){return this.direction.add(this.origin).applyMatrix4(t),this.origin.applyMatrix4(t),this.direction.sub(this.origin),this.direction.normalize(),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}},Ke.prototype={constructor:Ke,set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},center:function(t){var e=t||new dt;return e.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){var e=t||new dt;return e.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){var i=e||new dt;return this.delta(i).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(){var t=new dt,e=new dt;return function(i,n){t.subVectors(i,this.start),e.subVectors(this.end,this.start);var r=e.dot(e),o=e.dot(t),a=o/r;return n&&(a=lf.clamp(a,0,1)),a}}(),closestPointToPoint:function(t,e,i){var n=this.closestPointToPointParameter(t,e),r=i||new dt;return this.delta(r).multiplyScalar(n).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}},Qe.normal=function(){var t=new dt;return function(e,i,n,r){var o=r||new dt;o.subVectors(n,i),t.subVectors(e,i),o.cross(t);var a=o.lengthSq();return a>0?o.multiplyScalar(1/Math.sqrt(a)):o.set(0,0,0)}}(),Qe.barycoordFromPoint=function(){var t=new dt,e=new dt,i=new dt;return function(n,r,o,a,s){t.subVectors(a,r),e.subVectors(o,r),i.subVectors(n,r);var c=t.dot(t),u=t.dot(e),h=t.dot(i),l=e.dot(e),d=e.dot(i),f=c*l-u*u,p=s||new dt;if(0===f)return p.set(-2,-1,-1);var m=1/f,g=(l*h-u*d)*m,v=(c*d-u*h)*m;return p.set(1-g-v,v,g)}}(),Qe.containsPoint=function(){var t=new dt;return function(e,i,n,r){var o=Qe.barycoordFromPoint(e,i,n,r,t);return o.x>=0&&o.y>=0&&o.x+o.y<=1}}(),Qe.prototype={constructor:Qe,set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},area:function(){var t=new dt,e=new dt;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),midpoint:function(t){var e=t||new dt;return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(t){return Qe.normal(this.a,this.b,this.c,t)},plane:function(t){var e=t||new ue;return e.setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(t,e){return Qe.barycoordFromPoint(t,this.a,this.b,this.c,e)},containsPoint:function(t){return Qe.containsPoint(t,this.a,this.b,this.c)},closestPointToPoint:function(){var t,e,i,n;return function(r,o){void 0===t&&(t=new ue,e=[new Ke,new Ke,new Ke],i=new dt,n=new dt);var a=o||new dt,s=1/0;if(t.setFromCoplanarPoints(this.a,this.b,this.c),t.projectPoint(r,i),this.containsPoint(i)===!0)a.copy(i);else{e[0].set(this.a,this.b),e[1].set(this.b,this.c),e[2].set(this.c,this.a);for(var c=0;c0){this.morphTargetBase=-1,this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var t=0,e=this.geometry.morphTargets.length;te.far?null:{distance:u,point:v.clone(),object:t}}function i(i,n,r,o,u,h,l,m){a.fromArray(o,3*h),s.fromArray(o,3*l),c.fromArray(o,3*m);var v=e(i,n,r,a,s,c,g);return v&&(u&&(d.fromArray(u,2*h),f.fromArray(u,2*l),p.fromArray(u,2*m),v.uv=t(g,a,s,c,d,f,p)),v.face=new Oe(h,l,m,Qe.normal(a,s,c)),v.faceIndex=h),v}var n=new ht,r=new Ze,o=new se,a=new dt,s=new dt,c=new dt,u=new dt,h=new dt,l=new dt,d=new st,f=new st,p=new st,m=new dt,g=new dt,v=new dt;return function(m,v){var y=this.geometry,b=this.material,x=this.matrixWorld;if(void 0!==b&&(null===y.boundingSphere&&y.computeBoundingSphere(),o.copy(y.boundingSphere),o.applyMatrix4(x),m.ray.intersectsSphere(o)!==!1&&(n.getInverse(x),r.copy(m.ray).applyMatrix4(n),null===y.boundingBox||r.intersectsBox(y.boundingBox)!==!1))){var _,w;if(y&&y.isBufferGeometry){var S,A,M,P=y.index,E=y.attributes,C=E.position.array;if(void 0!==E.uv&&(_=E.uv.array),null!==P)for(var T=P.array,I=0,L=T.length;I0&&(_=B);for(var U=0,j=z.length;Ur||i.push({distance:Math.sqrt(n),point:this.position,face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),di.prototype=Object.assign(Object.create(De.prototype),{constructor:di,copy:function(t){De.prototype.copy.call(this,t,!1);for(var e=t.levels,i=0,n=e.length;i1){t.setFromMatrixPosition(i.matrixWorld),e.setFromMatrixPosition(this.matrixWorld);var r=t.distanceTo(e);n[0].object.visible=!0;for(var o=1,a=n.length;o=n[o].distance;o++)n[o-1].object.visible=!1,n[o].object.visible=!0;for(;oa)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else for(var y=0,b=g.length/3-1;ya)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}else if(s&&s.isGeometry)for(var A=s.vertices,M=A.length,y=0;ya)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),bi.prototype=Object.assign(Object.create(yi.prototype),{constructor:bi,isLineSegments:!0}),xi.prototype=Object.create(ee.prototype),xi.prototype.constructor=xi,xi.prototype.isPointsMaterial=!0,xi.prototype.copy=function(t){return ee.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this},_i.prototype=Object.assign(Object.create(De.prototype),{constructor:_i,isPoints:!0,raycast:function(){var t=new ht,e=new Ze,i=new se;return function(n,r){function o(t,i){var o=e.distanceSqToPoint(t);if(on.far)return;r.push({distance:u,distanceToRay:Math.sqrt(o),point:s.clone(),index:i,face:null,object:a})}}var a=this,s=this.geometry,c=this.matrixWorld,u=n.params.Points.threshold;if(null===s.boundingSphere&&s.computeBoundingSphere(),i.copy(s.boundingSphere),i.applyMatrix4(c),n.ray.intersectsSphere(i)!==!1){t.getInverse(c),e.copy(n.ray).applyMatrix4(t);var h=u/((this.scale.x+this.scale.y+this.scale.z)/3),l=h*h,d=new dt;if(s&&s.isBufferGeometry){var f=s.index,p=s.attributes,m=p.position.array;if(null!==f)for(var g=f.array,v=0,y=g.length;v0||0===t.search(/^data\\:image\\/jpeg/);r.format=n?Cd:Td,r.image=i,r.needsUpdate=!0,void 0!==e&&e(r)},i,n),r},setCrossOrigin:function(t){return this.crossOrigin=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setPath:function(t){return this.path=t,this}}),Oi.prototype=Object.assign(Object.create(De.prototype),{constructor:Oi,isLight:!0,copy:function(t){return De.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){var e=De.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),Ri.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ri,isHemisphereLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(ki.prototype,{copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t={};return 0!==this.bias&&(t.bias=this.bias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),Di.prototype=Object.assign(Object.create(ki.prototype),{constructor:Di,isSpotLightShadow:!0,update:function(t){var e=2*lf.RAD2DEG*t.angle,i=this.mapSize.width/this.mapSize.height,n=t.distance||500,r=this.camera;e===r.fov&&i===r.aspect&&n===r.far||(r.fov=e,r.aspect=i,r.far=n,r.updateProjectionMatrix())}}),Ni.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ni,isSpotLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Fi.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Fi,isPointLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),zi.prototype=Object.assign(Object.create(ki.prototype),{constructor:zi}),Bi.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Bi,isDirectionalLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Ui.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ui,isAmbientLight:!0});var Pm={arraySlice:function(t,e,i){return Pm.isTypedArray(t)?new t.constructor(t.subarray(e,i)):t.slice(e,i)},convertArray:function(t,e,i){return!t||!i&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){function e(e,i){return t[e]-t[i]}for(var i=t.length,n=new Array(i),r=0;r!==i;++r)n[r]=r;return n.sort(e),n},sortedArray:function(t,e,i){for(var n=t.length,r=new t.constructor(n),o=0,a=0;a!==n;++o)for(var s=i[o]*e,c=0;c!==e;++c)r[a++]=t[s+c];return r},flattenJSON:function(t,e,i,n){for(var r=1,o=t[0];void 0!==o&&void 0===o[n];)o=t[r++];if(void 0!==o){var a=o[n];if(void 0!==a)if(Array.isArray(a)){do a=o[n],void 0!==a&&(e.push(o.time),i.push.apply(i,a)),o=t[r++];while(void 0!==o)}else if(void 0!==a.toArray){do a=o[n],void 0!==a&&(e.push(o.time),a.toArray(i,i.length)),o=t[r++];while(void 0!==o)}else do a=o[n],void 0!==a&&(e.push(o.time),i.push(a)),o=t[r++];while(void 0!==o)}}};ji.prototype={constructor:ji,evaluate:function(t){var e=this.parameterPositions,i=this._cachedIndex,n=e[i],r=e[i-1];t:{e:{var o;i:{n:if(!(t=r)break t;var s=e[1];t=r)break e}o=i,i=0}}for(;i>>1;te;)--o;if(++o,0!==r||o!==n){r>=o&&(o=Math.max(o,1),r=o-1);var a=this.getValueSize();this.times=Pm.arraySlice(i,r,o),this.values=Pm.arraySlice(this.values,r*a,o*a)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error(\"invalid value size in track\",this),t=!1);var i=this.times,n=this.values,r=i.length;0===r&&(console.error(\"track is empty\",this),t=!1);for(var o=null,a=0;a!==r;a++){var s=i[a];if(\"number\"==typeof s&&isNaN(s)){console.error(\"time is not a valid number\",this,a,s),t=!1;break}if(null!==o&&o>s){console.error(\"out of order keys\",this,a,s,o),t=!1;break}o=s}if(void 0!==n&&Pm.isTypedArray(n))for(var a=0,c=n.length;a!==c;++a){var u=n[a];if(isNaN(u)){console.error(\"value is not a valid number\",this,a,u),t=!1;break}}return t},optimize:function(){for(var t=this.times,e=this.values,i=this.getValueSize(),n=1,r=1,o=t.length-1;r<=o;++r){var a=!1,s=t[r],c=t[r+1];if(s!==c&&(1!==r||s!==s[0]))for(var u=r*i,h=u-i,l=u+i,d=0;d!==i;++d){var f=e[u+d];if(f!==e[h+d]||f!==e[l+d]){a=!0;break}}if(a){if(r!==n){t[n]=t[r];for(var p=r*i,m=n*i,d=0;d!==i;++d)e[m+d]=e[p+d]}++n}}return n!==t.length&&(this.times=Pm.arraySlice(t,0,n),this.values=Pm.arraySlice(e,0,n*i)),this}},Wi.prototype=Object.assign(Object.create(Em),{constructor:Wi,ValueTypeName:\"vector\"}),Xi.prototype=Object.assign(Object.create(ji.prototype),{constructor:Xi,interpolate_:function(t,e,i,n){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,c=(i-e)/(n-e),u=s+a;s!==u;s+=4)lt.slerpFlat(r,0,o,s-a,o,s,c);return r}}),qi.prototype=Object.assign(Object.create(Em),{constructor:qi,ValueTypeName:\"quaternion\",DefaultInterpolation:Xd,InterpolantFactoryMethodLinear:function(t){return new Xi(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Yi.prototype=Object.assign(Object.create(Em),{constructor:Yi,ValueTypeName:\"number\"}),Zi.prototype=Object.assign(Object.create(Em),{constructor:Zi,ValueTypeName:\"string\",ValueBufferType:Array,DefaultInterpolation:Wd,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ki.prototype=Object.assign(Object.create(Em),{constructor:Ki,ValueTypeName:\"bool\",ValueBufferType:Array,DefaultInterpolation:Wd,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Qi.prototype=Object.assign(Object.create(Em),{constructor:Qi,ValueTypeName:\"color\"}),Ji.prototype=Em,Em.constructor=Ji,Object.assign(Ji,{parse:function(t){if(void 0===t.type)throw new Error(\"track type undefined, can not parse\");var e=Ji._getTrackTypeForValueTypeName(t.type);if(void 0===t.times){var i=[],n=[];Pm.flattenJSON(t.keys,i,n,\"value\"),t.times=i,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)},toJSON:function(t){var e,i=t.constructor;if(void 0!==i.toJSON)e=i.toJSON(t);else{e={name:t.name,times:Pm.convertArray(t.times,Array),values:Pm.convertArray(t.values,Array)};var n=t.getInterpolation();n!==t.DefaultInterpolation&&(e.interpolation=n)}return e.type=t.ValueTypeName,e},_getTrackTypeForValueTypeName:function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return Yi;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Wi;case\"color\":return Qi;case\"quaternion\":return qi;case\"bool\":case\"boolean\":return Ki;case\"string\":return Zi}throw new Error(\"Unsupported typeName: \"+t)}}),tn.prototype={constructor:tn,resetDuration:function(){for(var t=this.tracks,e=0,i=0,n=t.length;i!==n;++i){var r=this.tracks[i];e=Math.max(e,r.times[r.times.length-1])}this.duration=e},trim:function(){for(var t=0;t1){var u=c[1],h=n[u];h||(n[u]=h=[]),h.push(s)}}var l=[];for(var u in n)l.push(tn.CreateFromMorphTargetSequence(u,n[u],e,i));return l},parseAnimation:function(t,e,i){if(!t)return console.error(\" no animation in JSONLoader data\"),null;for(var n=function(t,e,i,n,r){if(0!==i.length){var o=[],a=[];Pm.flattenJSON(i,o,a,n),0!==o.length&&r.push(new t(e,o,a))}},r=[],o=t.name||\"default\",a=t.length||-1,s=t.fps||30,c=t.hierarchy||[],u=0;u1?t.skinWeights[i+1]:0,s=e>2?t.skinWeights[i+2]:0,c=e>3?t.skinWeights[i+3]:0;a.skinWeights.push(new Qt(r,o,s,c))}if(t.skinIndices)for(var i=0,n=t.skinIndices.length;i1?t.skinIndices[i+1]:0,l=e>2?t.skinIndices[i+2]:0,d=e>3?t.skinIndices[i+3]:0;a.skinIndices.push(new Qt(u,h,l,d))}a.bones=t.bones,a.bones&&a.bones.length>0&&(a.skinWeights.length!==a.skinIndices.length||a.skinIndices.length!==a.vertices.length)&&console.warn(\"When skinning, number of vertices (\"+a.vertices.length+\"), skinIndices (\"+a.skinIndices.length+\"), and skinWeights (\"+a.skinWeights.length+\") should match.\")}function r(e){if(void 0!==t.morphTargets)for(var i=0,n=t.morphTargets.length;i0){console.warn('THREE.JSONLoader: \"morphColors\" no longer supported. Using them as face colors.');for(var h=a.faces,l=t.morphColors[0].colors,i=0,n=h.length;i0&&(a.animations=e)}var a=new Fe,s=void 0!==t.scale?1/t.scale:1;if(i(s),n(),r(s),o(),a.computeFaceNormals(),a.computeBoundingSphere(),void 0===t.materials||0===t.materials.length)return{geometry:a};var c=rn.prototype.initMaterials(t.materials,e,this.crossOrigin);return{geometry:a,materials:c}}}),Object.assign(an.prototype,{load:function(t,e,i,n){\"\"===this.texturePath&&(this.texturePath=t.substring(0,t.lastIndexOf(\"/\")+1));var r=this,o=new Pi(r.manager);o.load(t,function(t){r.parse(JSON.parse(t),e)},i,n)},setTexturePath:function(t){this.texturePath=t},setCrossOrigin:function(t){this.crossOrigin=t},parse:function(t,e){var i=this.parseGeometries(t.geometries),n=this.parseImages(t.images,function(){void 0!==e&&e(a)}),r=this.parseTextures(t.textures,n),o=this.parseMaterials(t.materials,r),a=this.parseObject(t.object,i,o);return t.animations&&(a.animations=this.parseAnimations(t.animations)),void 0!==t.images&&0!==t.images.length||void 0!==e&&e(a),a},parseGeometries:function(t){var e={};if(void 0!==t)for(var i=new on,n=new nn,r=0,o=t.length;r0){var o=new Mi(e),a=new Ti(o);a.setCrossOrigin(this.crossOrigin);for(var s=0,c=t.length;s0?new gi(s,c):new ti(s,c);break;case\"LOD\":a=new di;break;case\"Line\":a=new yi(r(e.geometry),o(e.material),e.mode);break;case\"LineSegments\":a=new bi(r(e.geometry),o(e.material));break;case\"PointCloud\":case\"Points\":a=new _i(r(e.geometry),o(e.material));break;case\"Sprite\":a=new li(o(e.material));break;case\"Group\":a=new wi;break;default:a=new De}if(a.uuid=e.uuid,void 0!==e.name&&(a.name=e.name),void 0!==e.matrix?(t.fromArray(e.matrix),t.decompose(a.position,a.quaternion,a.scale)):(void 0!==e.position&&a.position.fromArray(e.position),void 0!==e.rotation&&a.rotation.fromArray(e.rotation),void 0!==e.quaternion&&a.quaternion.fromArray(e.quaternion),void 0!==e.scale&&a.scale.fromArray(e.scale)),void 0!==e.castShadow&&(a.castShadow=e.castShadow),void 0!==e.receiveShadow&&(a.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(a.shadow.bias=e.shadow.bias),void 0!==e.shadow.radius&&(a.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&a.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(a.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(a.visible=e.visible),void 0!==e.userData&&(a.userData=e.userData),void 0!==e.children)for(var u in e.children)a.add(this.parseObject(e.children[u],i,n));if(\"LOD\"===e.type)for(var h=e.levels,l=0;l(u-s)*(d-c)-(h-c)*(l-s))return!1;var m,g,v,y,b,x,_,w,S,A,M,P,E,C,T;for(m=l-u,g=d-h,v=s-l,y=c-d,b=u-s,x=h-c,a=0;a=-Number.EPSILON&&C>=-Number.EPSILON&&E>=-Number.EPSILON))return!1;return!0}return function(e,i){var n=e.length;if(n<3)return null;var r,o,a,s=[],c=[],u=[];if(Cm.area(e)>0)for(o=0;o2;){if(l--<=0)return console.warn(\"THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()\"),i?u:s;if(r=o,h<=r&&(r=0),o=r+1,h<=o&&(o=0),a=o+1,h<=a&&(a=0),t(e,r,o,a,h,c)){var d,f,p,m,g;for(d=c[r],f=c[o],p=c[a],s.push([e[d],e[f],e[p]]),u.push([c[r],c[o],c[a]]),m=o,g=o+1;g2&&t[e-1].equals(t[0])&&t.pop()}function n(t,e,i){return t.x!==e.x?t.xNumber.EPSILON){var p;if(d>0){if(f<0||f>d)return[];if(p=u*h-c*l,p<0||p>d)return[]}else{if(f>0||f0||pM?[]:x===M?o?[]:[y]:_<=M?[y,b]:[y,S]}function o(t,e,i,n){var r=e.x-t.x,o=e.y-t.y,a=i.x-t.x,s=i.y-t.y,c=n.x-t.x,u=n.y-t.y,h=r*s-o*a,l=r*u-o*c;if(Math.abs(h)>Number.EPSILON){var d=c*s-u*a;return h>0?l>=0&&d>=0:l>=0||d>=0}return l>0}function a(t,e){function i(t,e){var i=y.length-1,n=t-1;n<0&&(n=i);var r=t+1;r>i&&(r=0);var a=o(y[t],y[n],y[r],s[e]);if(!a)return!1;var c=s.length-1,u=e-1;u<0&&(u=c);var h=e+1;return h>c&&(h=0),a=o(s[e],s[u],s[h],y[t]),!!a}function n(t,e){var i,n,o;for(i=0;i0)return!0;return!1}function a(t,i){var n,o,a,s,c;for(n=0;n0)return!0;return!1}for(var s,c,u,h,l,d,f,p,m,g,v,y=t.concat(),b=[],x=[],_=0,w=e.length;_0;){if(A--,A<0){console.log(\"Infinite Loop! Holes left:\"+b.length+\", Probably Hole outside Shape!\");break}for(u=S;u=0)break;x[f]=!0}if(c>=0)break}}return y}i(t),e.forEach(i);for(var s,c,u,h,l,d,f={},p=t.concat(),m=0,g=e.length;m0)){c=r;break}c=r-1}if(r=c,n[r]===i){var u=r/(o-1);return u}var h=n[r],l=n[r+1],d=l-h,f=(i-h)/d,u=(r+f)/(o-1);return u},getTangent:function(t){var e=1e-4,i=t-e,n=t+e;i<0&&(i=0),n>1&&(n=1);var r=this.getPoint(i),o=this.getPoint(n),a=o.clone().sub(r);return a.normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)}},sn.create=function(t,e){return t.prototype=Object.create(sn.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},cn.prototype=Object.create(sn.prototype),cn.prototype.constructor=cn,cn.prototype.isLineCurve=!0,cn.prototype.getPoint=function(t){if(1===t)return this.v2.clone();var e=this.v2.clone().sub(this.v1);return e.multiplyScalar(t).add(this.v1),e},cn.prototype.getPointAt=function(t){return this.getPoint(t)},cn.prototype.getTangent=function(t){var e=this.v2.clone().sub(this.v1);return e.normalize()},un.prototype=Object.assign(Object.create(sn.prototype),{constructor:un,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new cn(e,t))},getPoint:function(t){for(var e=t*this.getLength(),i=this.getCurveLengths(),n=0;n=e){var r=i[n]-e,o=this.curves[n],a=o.getLength(),s=0===a?0:1-r/a;return o.getPointAt(s)}n++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,n=this.curves.length;i1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i},createPointsGeometry:function(t){var e=this.getPoints(t);return this.createGeometry(e)},createSpacedPointsGeometry:function(t){var e=this.getSpacedPoints(t);return this.createGeometry(e)},createGeometry:function(t){for(var e=new Fe,i=0,n=t.length;ie;)i-=e;ie.length-2?e.length-1:n+1],c=e[n>e.length-3?e.length-1:n+2],u=Tm.interpolate;return new st(u(o.x,a.x,s.x,c.x,r),u(o.y,a.y,s.y,c.y,r))},dn.prototype=Object.create(sn.prototype),dn.prototype.constructor=dn,dn.prototype.getPoint=function(t){var e=Cm.b3;return new st(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y))},dn.prototype.getTangent=function(t){var e=Tm.tangentCubicBezier;return new st(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y)).normalize()},fn.prototype=Object.create(sn.prototype),fn.prototype.constructor=fn,fn.prototype.getPoint=function(t){var e=Cm.b2;return new st(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y))},fn.prototype.getTangent=function(t){var e=Tm.tangentQuadraticBezier;return new st(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y)).normalize()};var Im=Object.assign(Object.create(un.prototype),{fromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,i=t.length;e0){var u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);var h=c.getPoint(1);this.currentPoint.copy(h)}});pn.prototype=Object.create(Fe.prototype),pn.prototype.constructor=pn,pn.NoTaper=function(t){return 1},pn.SinusoidalTaper=function(t){return Math.sin(Math.PI*t)},pn.FrenetFrames=function(t,e,i){function n(){f[0]=new dt,p[0]=new dt,o=Number.MAX_VALUE,a=Math.abs(d[0].x),s=Math.abs(d[0].y),c=Math.abs(d[0].z),a<=o&&(o=a,l.set(1,0,0)),s<=o&&(o=s,l.set(0,1,0)),c<=o&&l.set(0,0,1),m.crossVectors(d[0],l).normalize(),f[0].crossVectors(d[0],m),p[0].crossVectors(d[0],f[0])}var r,o,a,s,c,u,h,l=new dt,d=[],f=[],p=[],m=new dt,g=new ht,v=e+1;for(this.tangents=d,this.normals=f,this.binormals=p,u=0;uNumber.EPSILON&&(m.normalize(),r=Math.acos(lf.clamp(d[u-1].dot(d[u]),-1,1)),f[u].applyMatrix4(g.makeRotationAxis(m,r))),p[u].crossVectors(d[u],f[u]);if(i)for(r=Math.acos(lf.clamp(f[0].dot(f[v-1]),-1,1)),r/=v-1,d[0].dot(m.crossVectors(f[0],f[v-1]))>0&&(r=-r),u=1;uNumber.EPSILON){var d=Math.sqrt(h),f=Math.sqrt(c*c+u*u),p=e.x-s/d,m=e.y+a/d,g=i.x-u/f,v=i.y+c/f,y=((g-p)*u-(v-m)*c)/(a*u-s*c);n=p+a*y-t.x,r=m+s*y-t.y;var b=n*n+r*r;if(b<=2)return new st(n,r);o=Math.sqrt(b/2)}else{var x=!1;a>Number.EPSILON?c>Number.EPSILON&&(x=!0):a<-Number.EPSILON?c<-Number.EPSILON&&(x=!0):Math.sign(s)===Math.sign(u)&&(x=!0),x?(n=-s,r=a,o=Math.sqrt(h)):(n=a,r=s,o=Math.sqrt(h/2))}return new st(n/o,r/o)}function r(){if(b){var t=0,e=$*t;for(H=0;H=0;){i=H,n=H-1,n<0&&(n=t.length-1);var r=0,o=_+2*y;for(r=0;r=0;N--){for(z=N/y,B=g*Math.cos(z*Math.PI/2),F=v*Math.sin(z*Math.PI/2),H=0,W=D.length;HNumber.EPSILON){if(u<0&&(a=e[o],c=-c,s=e[r],u=-u),t.ys.y)continue;if(t.y===a.y){if(t.x===a.x)return!0}else{var h=u*(t.x-a.x)-c*(t.y-a.y);if(0===h)return!0;if(h<0)continue;n=!n}}else{if(t.y!==a.y)continue;if(s.x<=t.x&&t.x<=a.x||a.x<=t.x&&t.x<=s.x)return!0}}return n}var r=Cm.isClockWise,o=this.subPaths;if(0===o.length)return[];if(e===!0)return i(o);var a,s,c,u=[];if(1===o.length)return s=o[0],c=new vn,c.curves=s.curves,u.push(c),u;var h=!r(o[0].getPoints());h=t?!h:h;var l,d=[],f=[],p=[],m=0;f[m]=void 0,p[m]=[];for(var g=0,v=o.length;g1){for(var y=!1,b=[],x=0,_=f.length;x<_;x++)d[x]=[];for(var x=0,_=f.length;x<_;x++)for(var w=p[x],S=0;S0&&(y||(p=d))}for(var E,g=0,C=f.length;g0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t=.5)for(var o=0;o!==r;++o)t[e+o]=t[i+o]},_slerp:function(t,e,i,n,r){lt.slerpFlat(t,e,t,e,t,i,n)},_lerp:function(t,e,i,n,r){for(var o=1-n,a=0;a!==r;++a){var s=e+a;t[s]=t[s]*o+t[i+a]*n}}},In.prototype={constructor:In,getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,i=e.objectName,n=e.propertyName,r=e.propertyIndex;if(t||(t=In.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\" trying to update node for track: \"+this.path+\" but it wasn't found.\");if(i){var o=e.objectIndex;switch(i){case\"materials\":if(!t.material)return void console.error(\" can not bind to material as node does not have a material\",this);if(!t.material.materials)return void console.error(\" can not bind to material.materials as node.material does not have a materials array\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\" can not bind to bones as node does not have a skeleton\",this);t=t.skeleton.bones;for(var a=0;a0)for(var c=this._interpolants,u=this._propertyBindings,h=0,l=c.length;h!==l;++h)c[h].evaluate(a),u[h].accumulate(n,s)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopFading(),\n0===n&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t;if(0===t)return e;var i=this._clip.duration,n=this.loop,r=this._loopCount;if(n===Vd){r===-1&&(this.loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=i)e=i;else{if(!(e<0))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{var o=n===Hd;if(r===-1&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),e>=i||e<0){var a=Math.floor(e/i);e-=i*a,r+=Math.abs(a);var s=this.repetitions-r;if(s<0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?i:0,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(0===s){var c=t<0;this._setEndings(c,!c,o)}else this._setEndings(!1,!1,o);this._loopCount=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:a})}}if(o&&1===(1&r))return this.time=e,i-e}return this.time=e,e},_setEndings:function(t,e,i){var n=this._interpolantSettings;i?(n.endingStart=Zd,n.endingEnd=Zd):(t?n.endingStart=this.zeroSlopeAtStart?Zd:Yd:n.endingStart=Kd,e?n.endingEnd=this.zeroSlopeAtEnd?Zd:Yd:n.endingEnd=Kd)},_scheduleFading:function(t,e,i){var n=this._mixer,r=n.time,o=this._weightInterpolant;null===o&&(o=n._lendControlInterpolant(),this._weightInterpolant=o);var a=o.parameterPositions,s=o.sampleValues;return a[0]=r,s[0]=e,a[1]=r+t,s[1]=i,this}},Object.assign(On.prototype,at.prototype,{clipAction:function(t,e){var i=e||this._root,n=i.uuid,r=\"string\"==typeof t?tn.findByName(i,t):t,o=null!==r?r.uuid:t,a=this._actionsByClip[o],s=null;if(void 0!==a){var c=a.actionByRoot[n];if(void 0!==c)return c;s=a.knownActions[0],null===r&&(r=s._clip)}if(null===r)return null;var u=new Ln(this,r,e);return this._bindAction(u,s),this._addInactiveAction(u,o,n),u},existingAction:function(t,e){var i=e||this._root,n=i.uuid,r=\"string\"==typeof t?tn.findByName(i,t):t,o=r?r.uuid:t,a=this._actionsByClip[o];return void 0!==a?a.actionByRoot[n]||null:null},stopAllAction:function(){var t=this._actions,e=this._nActiveActions,i=this._bindings,n=this._nActiveBindings;this._nActiveActions=0,this._nActiveBindings=0;for(var r=0;r!==e;++r)t[r].reset();for(var r=0;r!==n;++r)i[r].useCount=0;return this},update:function(t){t*=this.timeScale;for(var e=this._actions,i=this._nActiveActions,n=this.time+=t,r=Math.sign(t),o=this._accuIndex^=1,a=0;a!==i;++a){var s=e[a];s.enabled&&s._update(n,t,r,o)}for(var c=this._bindings,u=this._nActiveBindings,a=0;a!==u;++a)c[a].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions,i=t.uuid,n=this._actionsByClip,r=n[i];if(void 0!==r){for(var o=r.knownActions,a=0,s=o.length;a!==s;++a){var c=o[a];this._deactivateAction(c);var u=c._cacheIndex,h=e[e.length-1];c._cacheIndex=null,c._byClipCacheIndex=null,h._cacheIndex=u,e[u]=h,e.pop(),this._removeInactiveBindingsForAction(c)}delete n[i]}},uncacheRoot:function(t){var e=t.uuid,i=this._actionsByClip;for(var n in i){var r=i[n].actionByRoot,o=r[e];void 0!==o&&(this._deactivateAction(o),this._removeInactiveAction(o))}var a=this._bindingsByRootAndName,s=a[e];if(void 0!==s)for(var c in s){var u=s[c];u.restoreOriginalState(),this._removeInactiveBinding(u)}},uncacheAction:function(t,e){var i=this.existingAction(t,e);null!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}}),Object.assign(On.prototype,{_bindAction:function(t,e){var i=t._localRoot||this._root,n=t._clip.tracks,r=n.length,o=t._propertyBindings,a=t._interpolants,s=i.uuid,c=this._bindingsByRootAndName,u=c[s];void 0===u&&(u={},c[s]=u);for(var h=0;h!==r;++h){var l=n[h],d=l.name,f=u[d];if(void 0!==f)o[h]=f;else{if(f=o[h],void 0!==f){null===f._cacheIndex&&(++f.referenceCount,this._addInactiveBinding(f,s,d));continue}var p=e&&e._propertyBindings[h].binding.parsedPath;f=new Tn(In.create(i,d,p),l.ValueTypeName,l.getValueSize()),++f.referenceCount,this._addInactiveBinding(f,s,d),o[h]=f}a[h].resultBuffer=f.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,i=t._clip.uuid,n=this._actionsByClip[i];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,i,e)}for(var r=t._propertyBindings,o=0,a=r.length;o!==a;++o){var s=r[o];0===s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var r=e[i];0===--r.useCount&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){var e=t._cacheIndex;return null!==e&&e.99999?this.quaternion.set(0,0,0,1):i.y<-.99999?this.quaternion.set(1,0,0,0):(e.set(i.z,0,-i.x).normalize(),t=Math.acos(i.y),this.quaternion.setFromAxisAngle(e,t))}}(),Gn.prototype.setLength=function(t,e,i){void 0===e&&(e=.2*t),void 0===i&&(i=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()},Gn.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},Hn.prototype=Object.create(Fe.prototype),Hn.prototype.constructor=Hn,Wn.prototype=Object.create(Hn.prototype),Wn.prototype.constructor=Wn,Xn.prototype=Object.create(Fe.prototype),Xn.prototype.constructor=Xn,qn.prototype=Object.create(Ue.prototype),qn.prototype.constructor=qn;(function(){function t(){}var e=new dt,i=new t,n=new t,r=new t;return t.prototype.init=function(t,e,i,n){this.c0=t,this.c1=i,this.c2=-3*t+3*e-2*i-n,this.c3=2*t-2*e+i+n},t.prototype.initNonuniformCatmullRom=function(t,e,i,n,r,o,a){var s=(e-t)/r-(i-t)/(r+o)+(i-e)/o,c=(i-e)/o-(n-e)/(o+a)+(n-i)/a;s*=o,c*=o,this.init(e,i,s,c)},t.prototype.initCatmullRom=function(t,e,i,n,r){this.init(e,i,r*(i-t),r*(n-e))},t.prototype.calc=function(t){var e=t*t,i=e*t;return this.c0+this.c1*t+this.c2*e+this.c3*i},sn.create(function(t){this.points=t||[],this.closed=!1},function(t){var o,a,s,c,u=this.points;c=u.length,c<2&&console.log(\"duh, you need at least 2 points\"),o=(c-(this.closed?0:1))*t,a=Math.floor(o),s=o-a,this.closed?a+=a>0?0:(Math.floor(Math.abs(a)/u.length)+1)*u.length:0===s&&a===c-1&&(a=c-2,s=1);var h,l,d,f;if(this.closed||a>0?h=u[(a-1)%c]:(e.subVectors(u[0],u[1]).add(u[0]),h=e),l=u[a%c],d=u[(a+1)%c],this.closed||a+2e.length-2?e.length-1:n+1],c=e[n>e.length-3?e.length-1:n+2],u=Tm.interpolate;return new dt(u(o.x,a.x,s.x,c.x,r),u(o.y,a.y,s.y,c.y,r),u(o.z,a.z,s.z,c.z,r))}),sn.create(function(t,e,i,n){this.v0=t,this.v1=e,this.v2=i,this.v3=n},function(t){var e=Cm.b3;return new dt(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y),e(t,this.v0.z,this.v1.z,this.v2.z,this.v3.z))}),sn.create(function(t,e,i){this.v0=t,this.v1=e,this.v2=i},function(t){var e=Cm.b2;return new dt(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y),e(t,this.v0.z,this.v1.z,this.v2.z))}),sn.create(function(t,e){this.v1=t,this.v2=e},function(t){if(1===t)return this.v2.clone();var e=new dt;return e.subVectors(this.v2,this.v1),e.multiplyScalar(t),e.add(this.v1),e});Object.defineProperty(t,\"AudioContext\",{get:function(){return t.getAudioContext()}}),Yn.prototype={active:!0,params:null,execute:function(t){var e,i;return this.active&&this._listener&&(i=this.params?this.params.concat(t):t,e=this._listener.apply(this.context,i),this._isOnce&&this.detach()),e},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return\"[SignalBinding isOnce:\"+this._isOnce+\", isBound:\"+this.isBound()+\", active:\"+this.active+\"]\"}},Kn.prototype={VERSION:\"1.0.0\",memorize:!1,_shouldPropagate:!0,active:!0,_registerListener:function(t,e,i,n){var r,o=this._indexOfListener(t,i);if(o!==-1){if(r=this._bindings[o],r.isOnce()!==e)throw new Error(\"You cannot add\"+(e?\"\":\"Once\")+\"() then add\"+(e?\"Once\":\"\")+\"() the same listener without removing the relationship first.\")}else r=new Yn(this,t,e,i,n),this._addBinding(r);return this.memorize&&this._prevParams&&r.execute(this._prevParams),r},_addBinding:function(t){var e=this._bindings.length;do--e;while(this._bindings[e]&&t._priority<=this._bindings[e]._priority);this._bindings.splice(e+1,0,t)},_indexOfListener:function(t,e){for(var i,n=this._bindings.length;n--;)if(i=this._bindings[n],i._listener===t&&i.context===e)return n;return-1},has:function(t,e){return this._indexOfListener(t,e)!==-1},add:function(t,e,i){return Zn(t,\"add\"),this._registerListener(t,!1,e,i)},addOnce:function(t,e,i){return Zn(t,\"addOnce\"),this._registerListener(t,!0,e,i)},remove:function(t,e){Zn(t,\"remove\");var i=this._indexOfListener(t,e);return i!==-1&&(this._bindings[i]._destroy(),this._bindings.splice(i,1)),t},removeAll:function(){for(var t=this._bindings.length;t--;)this._bindings[t]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(t){if(this.active){var e,i=Array.prototype.slice.call(arguments),n=this._bindings.length;if(this.memorize&&(this._prevParams=i),n){e=this._bindings.slice(),this._shouldPropagate=!0;do n--;while(e[n]&&this._shouldPropagate&&e[n].execute(i)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return\"[Signal active:\"+this.active+\" numListeners:\"+this.getNumListeners()+\"]\"}};var km={PROTEIN:1,NUCLEIC:2,RNA:3,DNA:4,POLYMER:5,WATER:6,HELIX:7,SHEET:8,BACKBONE:9,SIDECHAIN:10,ALL:11,HETERO:12,ION:13,SACCHARIDE:14};Qn.prototype={constructor:Qn,type:\"selection\",setString:function(t,e){if(void 0===t&&(t=this.string||\"\"),t!==this.string){try{this.parse(t)}catch(t){this.selection={error:t.message}}this.string=t,this.test=this.makeAtomTest(),this.residueTest=this.makeResidueTest(),this.chainTest=this.makeChainTest(),this.modelTest=this.makeModelTest(),this.atomOnlyTest=this.makeAtomTest(!0),this.residueOnlyTest=this.makeResidueTest(!0),this.chainOnlyTest=this.makeChainTest(!0),this.modelOnlyTest=this.makeModelTest(!0),e||this.signals.stringChanged.dispatch(this.string)}},parse:function(t){if(this.selection={operator:void 0,rules:[]},t){var e,i,n=this,r=this.selection,o=[];t=t.replace(/\\(/g,\" ( \").replace(/\\)/g,\" ) \").trim(),\"(\"===t.charAt(0)&&\")\"===t.substr(-1)&&(t=t.slice(1,-1).trim());var a,s,c,u,h,l,d,f,p,m,g=t.split(/\\s+/),v=[\"*\",\"\",\"ALL\"],y=function(t){e={operator:t,rules:[]},void 0===r?(r=e,n.selection=e):(r.rules.push(e),o.push(r),r=e)},b=function(t){i=r,r=o.pop(),void 0===r&&(y(t),x(i))},x=function(t){r.rules.push(t)};for(c=0;c0)if(\"NOT\"===a.toUpperCase())u=1;else if(1===u)u=2;else{if(2!==u)throw new Error(\"something went wrong with 'not'\");u=!1,b()}if(\"AND\"!==a.toUpperCase())if(\"OR\"!==a.toUpperCase())if(\"NOT\"!==a.toUpperCase())if(s={},\"HETERO\"!==a.toUpperCase())if(\"WATER\"!==a.toUpperCase())if(\"PROTEIN\"!==a.toUpperCase())if(\"NUCLEIC\"!==a.toUpperCase())if(\"RNA\"!==a.toUpperCase())if(\"DNA\"!==a.toUpperCase())if(\"POLYMER\"!==a.toUpperCase())if(\"ION\"!==a.toUpperCase())if(\"SACCHARIDE\"!==a.toUpperCase()&&\"SUGAR\"!==a.toUpperCase())if(\"HYDROGEN\"!==a.toUpperCase())if(\"SMALL\"!==a.toUpperCase())if(\"NUCLEOPHILIC\"!==a.toUpperCase())if(\"HYDROPHOBIC\"!==a.toUpperCase())if(\"AROMATIC\"!==a.toUpperCase())if(\"AMIDE\"!==a.toUpperCase())if(\"ACIDIC\"!==a.toUpperCase())if(\"BASIC\"!==a.toUpperCase())if(\"CHARGED\"!==a.toUpperCase())if(\"POLAR\"!==a.toUpperCase())if(\"NONPOLAR\"!==a.toUpperCase())if(\"HELIX\"!==a.toUpperCase())if(\"SHEET\"!==a.toUpperCase())if(\"TURN\"!==a.toUpperCase())if(\"BACKBONE\"!==a.toUpperCase())if(\"SIDECHAIN\"!==a.toUpperCase())if(\"SIDECHAINATTACHED\"!==a.toUpperCase())if(v.indexOf(a.toUpperCase())===-1)if(\"@\"!==a.charAt(0))if(\"#\"!==a.charAt(0))if(\"[\"!==a[0]||\"]\"!==a[a.length-1])if(a.length>=1&&a.length<=4&&\"^\"!==a[0]&&\":\"!==a[0]&&\".\"!==a[0]&&\"%\"!==a[0]&&\"/\"!==a[0]&&isNaN(parseInt(a)))s.resname=a.toUpperCase(),x(s);else{if(s={operator:\"AND\",rules:[]},d=a.split(\"/\"),d.length>1&&d[1]){if(isNaN(parseInt(d[1])))throw new Error(\"model must be an integer\");s.rules.push({model:parseInt(d[1])})}if(p=d[0].split(\"%\"),p.length>1&&s.rules.push({altloc:p[1]}),h=p[0].split(\".\"),h.length>1&&h[1]){if(h[1].length>4)throw new Error(\"atomname must be one to four characters\");s.rules.push({atomname:h[1].substring(0,4).toUpperCase()})}if(l=h[0].split(\":\"),l.length>1&&l[1]&&s.rules.push({chainname:l[1]}),m=l[0].split(\"^\"),m.length>1&&s.rules.push({inscode:m[1]}),m[0]){var _,w;if(\"-\"===m[0][0]&&(m[0]=m[0].substr(1),_=!0),m[0].indexOf(\"--\")!==-1&&(m[0]=m[0].replace(\"--\",\"-\"),w=!0),f=m[0].split(\"-\"),1===f.length){if(f=parseInt(f[0]),isNaN(f))throw new Error(\"resi must be an integer\");_&&(f*=-1),s.rules.push({resno:f})}else{if(2!==f.length)throw new Error(\"resi range must contain one '-'\");_&&(f[0]*=-1),w&&(f[1]*=-1),s.rules.push({resno:[parseInt(f[0]),parseInt(f[1])]})}}if(1===s.rules.length)x(s.rules[0]);else{if(!(s.rules.length>1))throw new Error(\"empty selection chunk\");x(s)}}else s.resname=a.substr(1,a.length-2).toUpperCase(),x(s);else s.element=a.substr(1).toUpperCase(),x(s);else{for(var S=a.substr(1).split(\",\"),A=0,M=S.length;A0?e:null},makeAtomTest:function(t){var e,i=[\"h\",\"g\",\"i\"],n=[\"e\",\"b\"];e=t?this._filter(function(t){return void 0!==t.keyword&&t.keyword!==km.BACKBONE&&t.keyword!==km.SIDECHAIN||(void 0!==t.model||(void 0!==t.chainname||(void 0!==t.resname||(void 0!==t.resno||void 0!==t.sstruc))))}):this.selection;var r=function(t,e){if(void 0===e.atomname&&void 0===e.element&&void 0===e.altloc&&void 0===e.atomindex&&void 0===e.keyword&&void 0===e.inscode&&void 0===e.resname&&void 0===e.sstruc&&void 0===e.resno&&void 0===e.chainname&&void 0===e.model)return-1;if(void 0!==e.keyword){if(e.keyword===km.BACKBONE&&!t.isBackbone())return!1;if(e.keyword===km.SIDECHAIN&&!t.isSidechain())return!1;if(e.keyword===km.HETERO&&!t.isHetero())return!1;if(e.keyword===km.PROTEIN&&!t.isProtein())return!1;if(e.keyword===km.NUCLEIC&&!t.isNucleic())return!1;if(e.keyword===km.RNA&&!t.isRna())return!1;if(e.keyword===km.DNA&&!t.isDna())return!1;if(e.keyword===km.POLYMER&&!t.isPolymer())return!1;if(e.keyword===km.WATER&&!t.isWater())return!1;if(e.keyword===km.HELIX&&i.indexOf(t.sstruc)===-1)return!1;if(e.keyword===km.SHEET&&n.indexOf(t.sstruc)===-1)return!1;if(e.keyword===km.ION&&!t.isIon())return!1;if(e.keyword===km.SACCHARIDE&&!t.isSaccharide())return!1}if(void 0!==e.atomname&&e.atomname!==t.atomname)return!1;if(void 0!==e.element&&e.element!==t.element)return!1;if(void 0!==e.altloc&&e.altloc!==t.altloc)return!1;if(void 0!==e.atomindex&&Qh(e.atomindex,t.index)<0)return!1;if(void 0!==e.resname&&e.resname!==t.resname)return!1;if(void 0!==e.sstruc&&e.sstruc!==t.sstruc)return!1;if(void 0!==e.resno)if(Array.isArray(e.resno)&&2===e.resno.length){if(e.resno[0]>t.resno||e.resno[1]e.atomindexLast||t.atomEndt.resno||e.resno[1]e.atomindexLast||t.atomEnde.atomindexLast||t.atomEnd>=4,i[r]=e[19===r?3&t|8:t]);return i.join(\"\")}}(),Nm=0,Fm=1,zm=2,Bm=3,Um=4,jm=5,$m=6,Vm=0,Gm=1,Hm=2,Wm=3,Xm=4,qm=5,Ym=6,Zm=[\"D-BETA-PEPTIDE, C-GAMMA LINKING\",\"D-GAMMA-PEPTIDE, C-DELTA LINKING\",\"D-PEPTIDE COOH CARBOXY TERMINUS\",\"D-PEPTIDE NH3 AMINO TERMINUS\",\"D-PEPTIDE LINKING\",\"L-BETA-PEPTIDE, C-GAMMA LINKING\",\"L-GAMMA-PEPTIDE, C-DELTA LINKING\",\"L-PEPTIDE COOH CARBOXY TERMINUS\",\"L-PEPTIDE NH3 AMINO TERMINUS\",\"L-PEPTIDE LINKING\",\"PEPTIDE LINKING\",\"PEPTIDE-LIKE\"],Km=[\"RNA OH 3 PRIME TERMINUS\",\"RNA OH 5 PRIME TERMINUS\",\"RNA LINKING\"],Qm=[\"DNA OH 3 PRIME TERMINUS\",\"DNA OH 5 PRIME TERMINUS\",\"DNA LINKING\",\"L-DNA LINKING\",\"L-RNA LINKING\"],Jm=[\"D-SACCHARIDE\",\"D-SACCHARIDE 1,4 AND 1,4 LINKING\",\"D-SACCHARIDE 1,4 AND 1,6 LINKING\",\"L-SACCHARIDE\",\"L-SACCHARIDE 1,4 AND 1,4 LINKING\",\"L-SACCHARIDE 1,4 AND 1,6 LINKING\",\"SACCHARIDE\"],tg=[\"OTHER\"],eg=[\"NON-POLYMER\"],ig=eg.concat(tg,Jm),ng={\nH:1.1,HE:1.4,LI:1.81,BE:1.53,B:1.92,C:1.7,N:1.55,O:1.52,F:1.47,NE:1.54,NA:2.27,MG:1.73,AL:1.84,SI:2.1,P:1.8,S:1.8,CL:1.75,AR:1.88,K:2.75,CA:2.31,SC:2.3,TI:2.15,V:2.05,CR:2.05,MN:2.05,FE:2.05,CO:2,NI:2,CU:2,ZN:2.1,GA:1.87,GE:2.11,AS:1.85,SE:1.9,BR:1.83,KR:2.02,RB:3.03,SR:2.49,Y:2.4,ZR:2.3,NB:2.15,MO:2.1,TC:2.05,RU:2.05,RH:2,PD:2.05,AG:2.1,CD:2.2,IN:2.2,SN:1.93,SB:2.17,TE:2.06,I:1.98,XE:2.16,CS:3.43,BA:2.68,LA:2.5,CE:2.48,PR:2.47,ND:2.45,PM:2.43,SM:2.42,EU:2.4,GD:2.38,TB:2.37,DY:2.35,HO:2.33,ER:2.32,TM:2.3,YB:2.28,LU:2.27,HF:2.25,TA:2.2,W:2.1,RE:2.05,OS:2,IR:2,PT:2.05,AU:2.1,HG:2.05,TL:1.96,PB:2.02,BI:2.07,PO:1.97,AT:2.02,RN:2.2,FR:3.48,RA:2.83,AC:2,TH:2.4,PA:2,U:2.3,NP:2,PU:2,AM:2,CM:2,BK:2,CF:2,ES:2,FM:2,MD:2,NO:2,LR:2,RF:2,DB:2,SG:2,BH:2,HS:2,MT:2,DS:2,RG:2,CN:2,UUT:2,FL:2,UUP:2,LV:2,UUH:2},rg=2,og={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69,BK:1.6,CF:1.6,ES:1.6,FM:1.6,MD:1.6,NO:1.6,LR:1.6,RF:1.6,DB:1.6,SG:1.6,BH:1.6,HS:1.6,MT:1.6,DS:1.6,RG:1.6,CN:1.6,UUT:1.6,FL:1.6,UUP:1.6,LV:1.6,UUH:1.6},ag=1.6,sg={ALA:[.17,.5,.33],ARG:[.81,1.81,1],ASN:[.42,.85,.43],ASP:[1.23,3.64,2.41],ASH:[-.07,.43,.5],CYS:[-.24,-.02,.22],GLN:[.58,.77,.19],GLU:[2.02,3.63,1.61],GLH:[-.01,.11,.12],GLY:[.01,1.15,1.14],HIS:[.17,.11,-.06],ILE:[-.31,-1.12,-.81],LEU:[-.56,-1.25,-.69],LYS:[.99,2.8,1.81],MET:[-.23,-.67,-.44],PHE:[-1.13,-1.71,-.58],PRO:[.45,.14,-.31],SER:[.13,.46,.33],THR:[.14,.25,.11],TRP:[-1.85,-2.09,-.24],TYR:[-.94,-.71,.23],VAL:[.07,-.46,-.53]},cg=[0,0,0],ug={HIS:\"H\",ARG:\"R\",LYS:\"K\",ILE:\"I\",PHE:\"F\",LEU:\"L\",TRP:\"W\",ALA:\"A\",MET:\"M\",PRO:\"P\",CYS:\"C\",ASN:\"N\",VAL:\"V\",GLY:\"G\",SER:\"S\",GLN:\"Q\",TYR:\"Y\",ASP:\"D\",GLU:\"E\",THR:\"T\",ASH:\"D\",GLH:\"E\",UNK:\"\"},hg=Object.keys(ug),lg=[\"A\",\"C\",\"T\",\"G\",\"U\"],dg=[\"DA\",\"DC\",\"DT\",\"DG\",\"DU\",\"TCY\",\"MCY\",\"5CM\"],fg=[\"A\",\"G\",\"DA\",\"DG\"],pg=[\"SOL\",\"WAT\",\"HOH\",\"H2O\",\"W\",\"DOD\",\"D3O\"],mg=[\"3CO\",\"3NI\",\"4MO\",\"6MO\",\"AG\",\"AL\",\"AU\",\"AU3\",\"BA\",\"BR\",\"CA\",\"CD\",\"CE\",\"CL\",\"CO\",\"CR\",\"CU\",\"CU1\",\"CU3\",\"F\",\"FE\",\"FE2\",\"GA\",\"K\",\"LI\",\"MG\",\"MN\",\"MN3\",\"NA\",\"ND4\",\"NH4\",\"NI\",\"OH\",\"OHX\",\"RB\",\"SR\",\"V\",\"Y1\",\"YT3\",\"ZN\"],gg=[\"CA\",\"C\",\"N\",\"O\",\"O1\",\"O2\",\"OC1\",\"OC2\",\"OX1\",\"OXT\",\"H\",\"H1\",\"H2\",\"H3\",\"HA\",\"BB\"],vg=[\"P\",\"O3'\",\"O5'\",\"C5'\",\"C4'\",\"C3'\",\"OP1\",\"OP2\",\"O3*\",\"O5*\",\"C5*\",\"C4*\",\"C3*\"],yg={};yg[Gm]={trace:\"CA\",direction1:\"C\",direction2:[\"O\",\"OC1\",\"O1\",\"OX1\",\"OXT\"],backboneStart:\"N\",backboneEnd:\"C\"},yg[Hm]={trace:[\"C4'\",\"C4*\"],direction1:[\"C1'\",\"C1*\"],direction2:[\"C3'\",\"C3*\"],backboneStart:\"P\",backboneEnd:[\"O3'\",\"O3*\"]},yg[Wm]={trace:[\"C3'\",\"C3*\"],direction1:[\"C2'\",\"C2*\"],direction2:[\"O4'\",\"O4*\"],backboneStart:\"P\",backboneEnd:[\"O3'\",\"O3*\"]},yg[Xm]={trace:[\"CA\",\"BB\"],backboneStart:[\"CA\",\"BB\"],backboneEnd:[\"CA\",\"BB\"]},yg[qm]={trace:[\"C4'\",\"C4*\",\"P\"],backboneStart:[\"C4'\",\"C4*\",\"P\"],backboneEnd:[\"C4'\",\"C4*\",\"P\"]},yg[Ym]={trace:[\"C3'\",\"C3*\",\"C2'\",\"P\"],backboneStart:[\"C3'\",\"C3*\",\"C2'\",\"P\"],backboneEnd:[\"C3'\",\"C3*\",\"C2'\",\"P\"]},yg[Vm]={};var bg,xg,_g,wg,Sg,Ag,Mg,Pg,Eg,Cg,Tg,Ig,Lg,Og,Rg,kg,Dg,Ng,Fg,zg,Bg,Ug,jg,$g,Vg,Gg,Hg,Wg,Xg,qg,Yg,Zg,Kg,Qg,Jg,tv,ev,iv,nv,rv,ov,av,sv,cv,uv,hv,lv,dv,fv,pv,mv,gv,vv,yv,bv,xv,_v,wv,Sv,Av,Mv,Pv,Ev,Cv,Tv,Iv,Lv,Ov,Rv,kv,Dv,Nv,Fv,zv,Bv,Uv,jv,$v,Vv=[].slice;zv=function(){var t,e,i,n,r;for(t={},r=\"Boolean Number String Function Array Date RegExp Undefined Null\".split(\" \"),n=0,e=r.length;ni&&(t=i),t},Bv=function(t){return t.length>=3?[].slice.call(t):t[0]},zg=function(t){var e;for(e in t)e<3?(t[e]<0&&(t[e]=0),t[e]>255&&(t[e]=255)):3===e&&(t[e]<0&&(t[e]=0),t[e]>1&&(t[e]=1));return t},wg=Math.PI,Rv=Math.round,jg=Math.cos,Wg=Math.floor,yv=Math.pow,hv=Math.log,Dv=Math.sin,Nv=Math.sqrt,Lg=Math.atan2,fv=Math.max,Ig=Math.abs,Mg=2*wg,Sg=wg/3,xg=wg/180,Ag=180/wg,Fg=function(){return arguments[0]instanceof bg?arguments[0]:function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,arguments,function(){})},Tg=[],Fg.version=\"1.1.1\",Cg={},Pg=[],Eg=!1,bg=function(){function t(){var t,e,i,n,r,o,a,s,c;for(o=this,e=[],s=0,n=arguments.length;s3?e[3]:1]},$v=function(t){return Rv(255*(t<=.00304?12.92*t:1.055*yv(t,1/2.4)-.055))},ov=function(t){return t>_g.t1?t*t*t:_g.t2*(t-_g.t0)},_g={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},Mv=function(){var t,e,i,n,r,o,a,s;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],r=Iv(i,e,t),o=r[0],a=r[1],s=r[2],[116*a-16,500*(o-a),200*(a-s)]},Lv=function(t){return(t/=255)<=.04045?t/12.92:yv((t+.055)/1.055,2.4)},jv=function(t){return t>_g.t3?yv(t,1/3):t/_g.t2+_g.t0},Iv=function(){var t,e,i,n,r,o,a;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],i=Lv(i),e=Lv(e),t=Lv(t),r=jv((.4124564*i+.3575761*e+.1804375*t)/_g.Xn),o=jv((.2126729*i+.7151522*e+.072175*t)/_g.Yn),a=jv((.0193339*i+.119192*e+.9503041*t)/_g.Zn),[r,o,a]},Fg.lab=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"lab\"]),function(){})},Cg.lab=rv,bg.prototype.lab=function(){return Mv(this._rgb)},Og=function(t){var e,i,n,r,o,a,s,c,u,h,l;return t=function(){var e,i,n;for(n=[],i=0,e=t.length;i=0&&e[3]<=1?\"rgb\":void 0}}),Xg=function(t){var e,i,n,r,o,a;if(t.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))return 4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=t.split(\"\"),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),a=parseInt(t,16),r=a>>16,n=a>>8&255,i=255&a,[r,n,i,1];if(t.match(/^#?([A-Fa-f0-9]{8})$/))return 9===t.length&&(t=t.substr(1)),a=parseInt(t,16),r=a>>24&255,n=a>>16&255,i=a>>8&255,e=Rv((255&a)/255*100)/100,[r,n,i,e];if(null!=Cg.css&&(o=Cg.css(t)))return o;throw\"unknown color: \"+t},_v=function(t,e){var i,n,r,o,a,s,c;return null==e&&(e=\"rgb\"),a=t[0],r=t[1],n=t[2],i=t[3],c=a<<16|r<<8|n,s=\"000000\"+c.toString(16),s=s.substr(s.length-6),o=\"0\"+Rv(255*i).toString(16),o=o.substr(o.length-2),\"#\"+function(){switch(e.toLowerCase()){case\"rgba\":return s+o;case\"argb\":return o+s;default:return s}}()},Cg.hex=function(t){return Xg(t)},Fg.hex=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hex\"]),function(){})},bg.prototype.hex=function(t){return null==t&&(t=\"rgb\"),_v(this._rgb,t)},Pg.push({p:10,test:function(t){if(1===arguments.length&&\"string\"===zv(t))return\"hex\"}}),Zg=function(){var t,e,i,n,r,o,a,s,c,u,h,l,d,f;if(t=Bv(arguments),r=t[0],h=t[1],a=t[2],0===h)c=n=e=255*a;else{for(f=[0,0,0],i=[0,0,0],d=a<.5?a*(1+h):a+h-a*h,l=2*a-d,r/=360,f[0]=r+1/3,f[1]=r,f[2]=r-1/3,o=s=0;s<=2;o=++s)f[o]<0&&(f[o]+=1),f[o]>1&&(f[o]-=1),6*f[o]<1?i[o]=l+6*(d-l)*f[o]:2*f[o]<1?i[o]=d:3*f[o]<2?i[o]=l+(d-l)*(2/3-f[o])*6:i[o]=l;u=[Rv(255*i[0]),Rv(255*i[1]),Rv(255*i[2])],c=u[0],n=u[1],e=u[2]}return t.length>3?[c,n,e,t[3]]:[c,n,e]},Sv=function(t,e,i){var n,r,o,a,s;return void 0!==t&&t.length>=3&&(a=t,t=a[0],e=a[1],i=a[2]),t/=255,e/=255,i/=255,o=Math.min(t,e,i),fv=Math.max(t,e,i),r=(fv+o)/2,fv===o?(s=0,n=Number.NaN):s=r<.5?(fv-o)/(fv+o):(fv-o)/(2-fv-o),t===fv?n=(e-i)/(fv-o):e===fv?n=2+(i-t)/(fv-o):i===fv&&(n=4+(t-e)/(fv-o)),n*=60,n<0&&(n+=360),[n,s,r]},Fg.hsl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsl\"]),function(){})},Cg.hsl=Zg,bg.prototype.hsl=function(){return Sv(this._rgb)},Kg=function(){var t,e,i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v;if(t=Bv(arguments),r=t[0],m=t[1],v=t[2],v*=255,0===m)c=n=e=v;else switch(360===r&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60,o=Wg(r),i=r-o,a=v*(1-m),s=v*(1-m*i),g=v*(1-m*(1-i)),o){case 0:u=[v,g,a],c=u[0],n=u[1],e=u[2];break;case 1:h=[s,v,a],c=h[0],n=h[1],e=h[2];break;case 2:l=[a,v,g],c=l[0],n=l[1],e=l[2];break;case 3:d=[a,s,v],c=d[0],n=d[1],e=d[2];break;case 4:f=[g,a,v],c=f[0],n=f[1],e=f[2];break;case 5:p=[v,a,s],c=p[0],n=p[1],e=p[2]}return c=Rv(c),n=Rv(n),e=Rv(e),[c,n,e,t.length>3?t[3]:1]},Av=function(){var t,e,i,n,r,o,a,s,c;return a=Bv(arguments),o=a[0],i=a[1],t=a[2],r=Math.min(o,i,t),fv=Math.max(o,i,t),e=fv-r,c=fv/255,0===fv?(n=Number.NaN,s=0):(s=e/fv,o===fv&&(n=(i-t)/e),i===fv&&(n=2+(t-o)/e),t===fv&&(n=4+(o-i)/e),n*=60,n<0&&(n+=360)),[n,s,c]},Fg.hsv=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsv\"]),function(){})},Cg.hsv=Kg,bg.prototype.hsv=function(){return Av(this._rgb)},gv=function(t){var e,i,n;return\"number\"===zv(t)&&t>=0&&t<=16777215?(n=t>>16,i=t>>8&255,e=255&t,[n,i,e,1]):(console.warn(\"unknown num color: \"+t),[0,0,0,1])},Cv=function(){var t,e,i,n;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],(i<<16)+(e<<8)+t},Fg.num=function(t){return new bg(t,\"num\")},bg.prototype.num=function(t){return null==t&&(t=\"rgb\"),Cv(this._rgb,t)},Cg.num=gv,Pg.push({p:10,test:function(t){if(1===arguments.length&&\"number\"===zv(t)&&t>=0&&t<=16777215)return\"num\"}}),$g=function(t){var e,i,n,r,o,a,s,c;if(t=t.toLowerCase(),null!=Fg.colors&&Fg.colors[t])return Xg(Fg.colors[t]);if(o=t.match(/rgb\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*\\)/)){for(s=o.slice(1,4),r=a=0;a<=2;r=++a)s[r]=+s[r];s[3]=1}else if(o=t.match(/rgba\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)/))for(s=o.slice(1,5),r=c=0;c<=3;r=++c)s[r]=+s[r];else if(o=t.match(/rgb\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)){for(s=o.slice(1,4),r=e=0;e<=2;r=++e)s[r]=Rv(2.55*s[r]);s[3]=1}else if(o=t.match(/rgba\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)){for(s=o.slice(1,5),r=i=0;i<=2;r=++i)s[r]=Rv(2.55*s[r]);s[3]=+s[3]}else(o=t.match(/hsl\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/))?(n=o.slice(1,4),n[1]*=.01,n[2]*=.01,s=Zg(n),s[3]=1):(o=t.match(/hsla\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/))&&(n=o.slice(1,4),n[1]*=.01,n[2]*=.01,s=Zg(n),s[3]=+o[4]);return s},xv=function(t){var e;return e=t[3]<1?\"rgba\":\"rgb\",\"rgb\"===e?e+\"(\"+t.slice(0,3).map(Rv).join(\",\")+\")\":\"rgba\"===e?e+\"(\"+t.slice(0,3).map(Rv).join(\",\")+\",\"+t[3]+\")\":void 0},Ov=function(t){return Rv(100*t)/100},Yg=function(t,e){var i;return i=e<1?\"hsla\":\"hsl\",t[0]=Ov(t[0]||0),t[1]=Ov(100*t[1])+\"%\",t[2]=Ov(100*t[2])+\"%\",\"hsla\"===i&&(t[3]=e),i+\"(\"+t.join(\",\")+\")\"},Cg.css=function(t){return $g(t)},Fg.css=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"css\"]),function(){})},bg.prototype.css=function(t){return null==t&&(t=\"rgb\"),\"rgb\"===t.slice(0,3)?xv(this._rgb):\"hsl\"===t.slice(0,3)?Yg(this.hsl(),this.alpha()):void 0},Cg.named=function(t){return Xg(Uv[t])},Pg.push({p:20,test:function(t){if(1===arguments.length&&null!=Uv[t])return\"named\"}}),bg.prototype.name=function(t){var e,i;arguments.length&&(Uv[t]&&(this._rgb=Xg(Uv[t])),this._rgb[3]=1),e=this.hex();for(i in Uv)if(e===Uv[i])return i;return e},av=function(){var t,e,i,n;return n=Bv(arguments),i=n[0],t=n[1],e=n[2],e*=xg,[i,jg(e)*t,Dv(e)*t]},sv=function(){var t,e,i,n,r,o,a,s,c,u,h;return i=Bv(arguments),s=i[0],r=i[1],a=i[2],u=av(s,r,a),t=u[0],e=u[1],n=u[2],h=rv(t,e,n),c=h[0],o=h[1],n=h[2],[uv(c,0,255),uv(o,0,255),uv(n,0,255),i.length>3?i[3]:1]},nv=function(){var t,e,i,n,r,o;return o=Bv(arguments),r=o[0],t=o[1],e=o[2],i=Nv(t*t+e*e),n=(Lg(e,t)*Ag+360)%360,0===Rv(1e4*i)&&(n=Number.NaN),[r,i,n]},Pv=function(){var t,e,i,n,r,o,a;return o=Bv(arguments),r=o[0],i=o[1],e=o[2],a=Mv(r,i,e),n=a[0],t=a[1],e=a[2],nv(n,t,e)},Fg.lch=function(){var t;return t=Bv(arguments),new bg(t,\"lch\")},Fg.hcl=function(){var t;return t=Bv(arguments),new bg(t,\"hcl\")},Cg.lch=sv,Cg.hcl=function(){var t,e,i,n;return n=Bv(arguments),e=n[0],t=n[1],i=n[2],sv([i,t,e])},bg.prototype.lch=function(){return Pv(this._rgb)},bg.prototype.hcl=function(){return Pv(this._rgb).reverse()},bv=function(t){var e,i,n,r,o,a,s,c,u;return null==t&&(t=\"rgb\"),c=Bv(arguments),s=c[0],r=c[1],e=c[2],s/=255,r/=255,e/=255,o=1-Math.max(s,Math.max(r,e)),n=o<1?1/(1-o):0,i=(1-s-o)*n,a=(1-r-o)*n,u=(1-e-o)*n,[i,a,u,o]},Bg=function(){var t,e,i,n,r,o,a,s,c;return e=Bv(arguments),n=e[0],a=e[1],c=e[2],o=e[3],t=e.length>4?e[4]:1,1===o?[0,0,0,t]:(s=n>=1?0:Rv(255*(1-n)*(1-o)),r=a>=1?0:Rv(255*(1-a)*(1-o)),i=c>=1?0:Rv(255*(1-c)*(1-o)),[s,r,i,t])},Cg.cmyk=function(){return Bg(Bv(arguments))},Fg.cmyk=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"cmyk\"]),function(){})},bg.prototype.cmyk=function(){return bv(this._rgb)},Cg.gl=function(){var t,e,i,n,r;for(n=function(){var t,i;t=Bv(arguments),i=[];for(e in t)r=t[e],i.push(r);return i}.apply(this,arguments),t=i=0;i<=2;t=++i)n[t]*=255;return n},Fg.gl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"gl\"]),function(){})},bg.prototype.gl=function(){var t;return t=this._rgb,[t[0]/255,t[1]/255,t[2]/255,t[3]]},Ev=function(t,e,i){var n;return n=Bv(arguments),t=n[0],e=n[1],i=n[2],t=lv(t),e=lv(e),i=lv(i),.2126*t+.7152*e+.0722*i},lv=function(t){return t/=255,t<=.03928?t/12.92:yv((t+.055)/1.055,2.4)},Tg=[],Qg=function(t,e,i,n){var r,o,a,s;for(null==i&&(i=.5),null==n&&(n=\"rgb\"),\"object\"!==zv(t)&&(t=Fg(t)),\"object\"!==zv(e)&&(e=Fg(e)),a=0,o=Tg.length;at?o(i,c):o(c,a)},i=Ev(this._rgb),this._rgb=(i>t?o(Fg(\"black\"),this):o(this,Fg(\"white\"))).rgba()),this):Ev(this._rgb)},Fv=function(t){var e,i,n,r;return r=t/100,r<66?(n=255,i=-155.25485562709179-.44596950469579133*(i=r-2)+104.49216199393888*hv(i),e=r<20?0:-254.76935184120902+.8274096064007395*(e=r-10)+115.67994401066147*hv(e)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*hv(n),i=325.4494125711974+.07943456536662342*(i=r-50)-28.0852963507957*hv(i),e=255),zg([n,i,e])},Tv=function(){var t,e,i,n,r,o,a,s,c;for(a=Bv(arguments),o=a[0],i=a[1],t=a[2],r=1e3,n=4e4,e=.4;n-r>e;)c=.5*(n+r),s=Fv(c),s[2]/s[0]>=t/o?n=c:r=c;return Rv(c)},Fg.temperature=Fg.kelvin=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"temperature\"]),function(){})},Cg.temperature=Cg.kelvin=Cg.K=Fv,bg.prototype.temperature=function(){return Tv(this._rgb)},bg.prototype.kelvin=bg.prototype.temperature,Fg.contrast=function(t,e){var i,n,r,o;return\"string\"!==(r=zv(t))&&\"number\"!==r||(t=new bg(t)),\"string\"!==(o=zv(e))&&\"number\"!==o||(e=new bg(e)),i=t.luminance(),n=e.luminance(),i>n?(i+.05)/(n+.05):(n+.05)/(i+.05)},bg.prototype.get=function(t){var e,i,n,r,o,a;return n=this,o=t.split(\".\"),r=o[0],e=o[1],a=n[r](),e?(i=r.indexOf(e),i>-1?a[i]:console.warn(\"unknown channel \"+e+\" in mode \"+r)):a},bg.prototype.set=function(t,e){var i,n,r,o,a,s;if(r=this,a=t.split(\".\"),o=a[0],i=a[1],i)if(s=r[o](),n=o.indexOf(i),n>-1)if(\"string\"===zv(e))switch(e.charAt(0)){case\"+\":s[n]+=+e;break;case\"-\":s[n]+=+e;break;case\"*\":s[n]*=+e.substr(1);break;case\"/\":s[n]/=+e.substr(1);break;default:s[n]=+e}else s[n]=e;else console.warn(\"unknown channel \"+i+\" in mode \"+o);else s=e;return r._rgb=Fg(s,o).alpha(r.alpha())._rgb,r},bg.prototype.darken=function(t){var e,i;return null==t&&(t=1),i=this,e=i.lab(),e[0]-=_g.Kn*t,Fg.lab(e).alpha(i.alpha())},bg.prototype.brighten=function(t){return null==t&&(t=1),this.darken(-t)},bg.prototype.darker=bg.prototype.darken,bg.prototype.brighter=bg.prototype.brighten,bg.prototype.saturate=function(t){var e,i;return null==t&&(t=1),i=this,e=i.lch(),e[1]+=t*_g.Kn,e[1]<0&&(e[1]=0),Fg.lch(e).alpha(i.alpha())},bg.prototype.desaturate=function(t){return null==t&&(t=1),this.saturate(-t)},bg.prototype.premultiply=function(){var t,e;return e=this.rgb(),t=this.alpha(),Fg(e[0]*t,e[1]*t,e[2]*t,t)},Rg=function(t,e,i){if(!Rg[i])throw\"unknown blend mode \"+i;return Rg[i](t,e)},kg=function(t){return function(e,i){var n,r;return n=Fg(i).rgb(),r=Fg(e).rgb(),Fg(t(n,r),\"rgb\")}},Hg=function(t){return function(e,i){var n,r,o;for(o=[],n=r=0;r<=3;n=++r)o[n]=t(e[n],i[n]);return o}},mv=function(t,e){return t},pv=function(t,e){return t*e/255},Vg=function(t,e){return t>e?e:t},cv=function(t,e){return t>e?t:e},kv=function(t,e){return 255*(1-(1-t/255)*(1-e/255))},vv=function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))},Ng=function(t,e){return 255*(1-(1-e/255)/(t/255))},Gg=function(t,e){return 255===t?255:(t=255*(e/255)/(1-t/255),t>255?255:t)},Rg.normal=kg(Hg(mv)),Rg.multiply=kg(Hg(pv)),Rg.screen=kg(Hg(kv)),Rg.overlay=kg(Hg(vv)),Rg.darken=kg(Hg(Vg)),Rg.lighten=kg(Hg(cv)),Rg.dodge=kg(Hg(Gg)),Rg.burn=kg(Hg(Ng)),Fg.blend=Rg,Fg.analyze=function(t){var e,i,n,r;for(n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0},i=0,e=t.length;in.max&&(n.max=r),n.count+=1);return n.domain=[n.min,n.max],n.limits=function(t,e){return Fg.limits(n,t,e)},n},Fg.scale=function(t,e){var i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v,y,b,x,_,w;return h=\"rgb\",l=Fg(\"#ccc\"),m=0,s=!1,a=[0,1],p=[],f=[0,0],i=!1,r=[],d=!1,u=0,c=1,o=!1,n={},_=function(t){var e,i,n,o,a,s,c;if(null==t&&(t=[\"#fff\",\"#000\"]),null!=t&&\"string\"===zv(t)&&null!=(null!=(o=Fg.brewer)?o[t]:void 0)&&(t=Fg.brewer[t]),\"array\"===zv(t)){for(t=t.slice(0),e=n=0,a=t.length-1;0<=a?n<=a:n>=a;e=0<=a?++n:--n)i=t[e],\"string\"===zv(i)&&(t[e]=Fg(i));for(p.length=0,e=c=0,s=t.length-1;0<=s?c<=s:c>=s;e=0<=s?++c:--c)p.push(e/(t.length-1))}return x(),r=t},y=function(t){var e,n;if(null!=i){for(n=i.length-1,e=0;e=i[e];)e++;return e-1}return 0},w=function(t){return t},g=function(t){var e,n,r,o,a;return a=t,i.length>2&&(o=i.length-1,e=y(t),r=i[0]+(i[1]-i[0])*(0+.5*m),n=i[o-1]+(i[o]-i[o-1])*(1-.5*m),a=u+(i[e]+.5*(i[e+1]-i[e])-r)/(n-r)*(c-u)),a},b=function(t,e){var o,a,s,d,m,g,v,b;if(null==e&&(e=!1),isNaN(t))return l;if(e?b=t:i&&i.length>2?(o=y(t),b=o/(i.length-2),b=f[0]+b*(1-f[0]-f[1])):c!==u?(b=(t-u)/(c-u),b=f[0]+b*(1-f[0]-f[1]),b=Math.min(1,Math.max(0,b))):b=1,e||(b=w(b)),d=Math.floor(1e4*b),n[d])a=n[d];else{if(\"array\"===zv(r))for(s=m=0,v=p.length-1;0<=v?m<=v:m>=v;s=0<=v?++m:--m){if(g=p[s],b<=g){a=r[s];break}if(b>=g&&s===p.length-1){a=r[s];break}if(b>g&&b=h;e=0<=h?++l:--l)p.push(e/(n-1));return a=[u,c],v},v.mode=function(t){return arguments.length?(h=t,x(),v):h},v.range=function(t,e){return _(t,e),v},v.out=function(t){return d=t,v},v.spread=function(t){return arguments.length?(m=t,v):m},v.correctLightness=function(t){return null==t&&(t=!0),o=t,x(),w=o?function(t){var e,i,n,r,o,a,s,c,u;for(e=b(0,!0).lab()[0],i=b(1,!0).lab()[0],s=e>i,n=b(t,!0).lab()[0],o=e+(i-e)*t,r=n-o,c=0,u=1,a=20;Math.abs(r)>.01&&a-- >0;)!function(){return s&&(r*=-1),r<0?(c=t,t+=.5*(u-t)):(u=t,t+=.5*(c-t)),n=b(t,!0).lab()[0],r=n-o}();return t}:function(t){return t},v},v.padding=function(t){return null!=t?(\"number\"===zv(t)&&(t=[t,t]),f=t,v):f},v.colors=function(){var e,n,r,o,s,c,u,h,l;if(o=0,s=\"hex\",1===arguments.length&&(\"string\"===zv(arguments[0])?s=arguments[0]:o=arguments[0]),2===arguments.length&&(o=arguments[0],s=arguments[1]),o)return n=a[0],e=a[1]-n,function(){u=[];for(var t=0;0<=o?to;0<=o?t++:t--)u.push(t);return u}.apply(this).map(function(t){return v(n+t/(o-1)*e)[s]()});if(t=[],h=[],i&&i.length>2)for(r=l=1,c=i.length;1<=c?lc;r=1<=c?++l:--l)h.push(.5*(i[r-1]+i[r]));else h=a;return h.map(function(t){return v(t)[s]()})},v},null==Fg.scales&&(Fg.scales={}),Fg.scales.cool=function(){return Fg.scale([Fg.hsl(180,1,.9),Fg.hsl(250,.7,.4)])},Fg.scales.hot=function(){return Fg.scale([\"#000\",\"#f00\",\"#ff0\",\"#fff\"],[0,.25,.75,1]).mode(\"rgb\")},Fg.analyze=function(t,e,i){var n,r,o,a,s,c,u;if(s={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0},null==i&&(i=function(){return!0}),n=function(t){null==t||isNaN(t)||(s.values.push(t),s.sum+=t,ts.max&&(s.max=t),s.count+=1)},u=function(t,r){if(i(t,r))return n(null!=e&&\"function\"===zv(e)?e(t):null!=e&&\"string\"===zv(e)||\"number\"===zv(e)?t[e]:t)},\"array\"===zv(t))for(a=0,o=t.length;a=F;w=1<=F?++R:--R)M.push(E+w/i*(fv-E));M.push(fv)}else if(\"l\"===e.substr(0,1)){if(E<=0)throw\"Logarithmic scales are only possible for values > 0\";for(C=Math.LOG10E*hv(E),P=Math.LOG10E*hv(fv),M.push(E),w=nt=1,z=i-1;1<=z?nt<=z:nt>=z;w=1<=z?++nt:--nt)M.push(yv(10,C+w/i*(P-C)));M.push(fv)}else if(\"q\"===e.substr(0,1)){for(M.push(E),w=n=1,G=i-1;1<=G?n<=G:n>=G;w=1<=G?++n:--n)k=it.length*w/i,D=Wg(k),D===k?M.push(it[D]):(N=k-D,M.push(it[D]*N+it[D+1]*(1-N)));M.push(fv)}else if(\"k\"===e.substr(0,1)){for(I=it.length,g=new Array(I),x=new Array(i),Q=!0,L=0,y=null,y=[],y.push(E),w=r=1,H=i-1;1<=H?r<=H:r>=H;w=1<=H?++r:--r)y.push(E+w/i*(fv-E));for(y.push(fv);Q;){for(S=o=0,W=i-1;0<=W?o<=W:o>=W;S=0<=W?++o:--o)x[S]=0;for(w=a=0,X=I-1;0<=X?a<=X:a>=X;w=0<=X?++a:--a){for(et=it[w],T=Number.MAX_VALUE,S=s=0,q=i-1;0<=q?s<=q:s>=q;S=0<=q?++s:--s)_=Ig(y[S]-et),_=Y;S=0<=Y?++c:--c)O[S]=null;for(w=u=0,Z=I-1;0<=Z?u<=Z:u>=Z;w=0<=Z?++u:--u)b=g[w],null===O[b]?O[b]=it[w]:O[b]+=it[w];for(S=h=0,K=i-1;0<=K?h<=K:h>=K;S=0<=K?++h:--h)O[S]*=1/x[S];for(Q=!1,S=l=0,B=i-1;0<=B?l<=B:l>=B;S=0<=B?++l:--l)if(O[S]!==y[w]){Q=!0;break}y=O,L++,L>200&&(Q=!1)}for(A={},S=d=0,U=i-1;0<=U?d<=U:d>=U;S=0<=U?++d:--d)A[S]=[];for(w=f=0,j=I-1;0<=j?f<=j:f>=j;w=0<=j?++f:--f)b=g[w],A[b].push(it[w]);for(tt=[],S=p=0,$=i-1;0<=$?p<=$:p>=$;S=0<=$?++p:--p)tt.push(A[S][0]),tt.push(A[S][A[S].length-1]);for(tt=tt.sort(function(t,e){return t-e}),M.push(tt[0]),w=m=1,V=tt.length-1;m<=V;w=m+=2)isNaN(tt[w])||M.push(tt[w])}return M},qg=function(t,e,i){var n,r,o,a;return n=Bv(arguments),t=n[0],e=n[1],i=n[2],t/=360,t<1/3?(r=(1-e)/3,a=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,o=1-(r+a)):t<2/3?(t-=1/3,a=(1-e)/3,o=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,r=1-(a+o)):(t-=2/3,o=(1-e)/3,r=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,a=1-(o+r)),a=uv(i*a*3),o=uv(i*o*3),r=uv(i*r*3),[255*a,255*o,255*r,n.length>3?n[3]:1]},wv=function(){var t,e,i,n,r,o,a,s;return a=Bv(arguments),o=a[0],e=a[1],t=a[2],Mg=2*Math.PI,o/=255,e/=255,t/=255,r=Math.min(o,e,t),n=(o+e+t)/3,s=1-r/n,0===s?i=0:(i=(o-e+(o-t))/2,i/=Math.sqrt((o-e)*(o-e)+(o-t)*(e-t)),i=Math.acos(i),t>e&&(i=Mg-i),i/=Mg),[360*i,s,n]},Fg.hsi=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsi\"]),function(){})},Cg.hsi=qg,bg.prototype.hsi=function(){return wv(this._rgb)},Jg=function(t,e,i,n){var r,o,a,s,c,u,h,l,d,f,p,m,g;return\"hsl\"===n?(m=t.hsl(),g=e.hsl()):\"hsv\"===n?(m=t.hsv(),g=e.hsv()):\"hsi\"===n?(m=t.hsi(),g=e.hsi()):\"lch\"!==n&&\"hcl\"!==n||(n=\"hcl\",m=t.hcl(),g=e.hcl()),\"h\"===n.substr(0,1)&&(a=m[0],f=m[1],u=m[2],s=g[0],p=g[1],h=g[2]),isNaN(a)||isNaN(s)?isNaN(a)?isNaN(s)?o=Number.NaN:(o=s,1!==u&&0!==u||\"hsv\"===n||(d=p)):(o=a,1!==h&&0!==h||\"hsv\"===n||(d=f)):(r=s>a&&s-a>180?s-(a+360):s180?s+360-a:s-a,o=a+i*r),null==d&&(d=f+i*(p-f)),c=u+i*(h-u),l=Fg[n](o,d,c)},Tg=Tg.concat(function(){var t,e,i,n;for(i=[\"hsv\",\"hsl\",\"hsi\",\"hcl\",\"lch\"],n=[],e=0,t=i.length;e>16&255)/255,e[i+1]=(t>>8&255)/255,e[i+2]=(255&t)/255,e},atomColor:function(){return 16777215},atomColorToArray:function(t,e,i){return this.colorToArray(this.atomColor(t),e,i)},bondColor:function(t,e){return this.atomProxy.index=e?t.atomIndex1:t.atomIndex2,this.atomColor(this.atomProxy)},bondColorToArray:function(t,e,i,n){return this.colorToArray(this.bondColor(t,e),i,n)},volumeColor:function(){return 16777215},volumeColorToArray:function(t,e,i){return this.colorToArray(this.volumeColor(t),e,i)},positionColor:function(){return 16777215},positionColorToArray:function(t,e,i){return this.colorToArray(this.positionColor(t),e,i)}},nr.prototype=ir.prototype,nr.prototype.constructor=nr,rr.prototype=ir.prototype,rr.prototype.constructor=rr,or.prototype=ir.prototype,or.prototype.constructor=or,ar.prototype=ir.prototype,ar.prototype.constructor=ar,sr.prototype=ir.prototype,sr.prototype.constructor=sr,cr.prototype=ir.prototype,cr.prototype.constructor=cr,ur.prototype=ir.prototype,ur.prototype.constructor=ur,hr.prototype=ir.prototype,hr.prototype.constructor=hr,lr.prototype=ir.prototype,lr.prototype.constructor=lr,dr.prototype=ir.prototype,dr.prototype.constructor=dr,fr.prototype=ir.prototype,fr.prototype.constructor=fr,pr.prototype=ir.prototype,pr.prototype.constructor=pr,mr.prototype=ir.prototype,mr.prototype.constructor=mr,gr.prototype=ir.prototype,gr.prototype.constructor=gr,vr.prototype=ir.prototype,vr.prototype.constructor=vr,yr.prototype=ir.prototype,yr.prototype.constructor=yr,er.types={\"\":ir,picking:or,random:ar,uniform:sr,atomindex:cr,residueindex:ur,chainindex:hr,chainname:lr,modelindex:dr,sstruc:fr,element:pr,resname:mr,bfactor:gr,hydrophobicity:yr,value:rr,volume:nr,occupancy:vr};var Kv=V(),Qv=!1,Jv=!1,ty={log:Function.prototype.bind.call(console.log,console),info:Function.prototype.bind.call(console.info,console),warn:Function.prototype.bind.call(console.warn,console),error:Function.prototype.bind.call(console.error,console),time:Function.prototype.bind.call(console.time,console),timeEnd:Function.prototype.bind.call(console.timeEnd,console)};t.Debug=j(U(\"debug\"));var ey=new tt,iy='

Your browser/graphics card does not seem to support WebGL.

Find out how to get it here.

',ny=new ot,ry=new er,oy=new J(\"datasource\"),ay=new J(\"representatation\"),sy=new J(\"parser\");Mr.prototype={constructor:Mr,type:\"\",__srcName:void 0,onload:function(){},onprogress:function(){},onerror:function(){},read:function(t){this._read(function(e){this.compressed?this.data=Q(e):(this.binary&&e instanceof ArrayBuffer&&(e=new Uint8Array(e)),this.data=e),\"function\"==typeof this.onload&&this.onload(this.data),t()}.bind(this))},_read:function(t){t(this.src)},_chunk:function(t,e){return e=Math.min(this.data.length,e),0===t&&this.data.length===e?this.data:this.binary||this.compressed?this.data.subarray(t,e):this.data.substring(t,e)},chunk:function(t){var e=t+this.chunkSize;return this._chunk(t,e)},peekLines:function(t){var e,i=this.data,n=i.length,r=this.binary||this.compressed?this.newline.charCodeAt(0):this.newline,o=0;for(e=0;en);return s.lines},lineCount:function(){console.warn(\"lineCount - deprecated\");for(var t=this.data,e=t.length,i=this.binary||this.compressed?this.newline.charCodeAt(0):this.newline,n=0,r=0;rthis.data.length))return this.__pointer+=this.chunkSize,this.chunk(t)},nextChunkOfLines:function(){var t=this.nextChunk();if(void 0!==t){var e=this.__pointer>this.data.length,i=this.chunkToLines(t,this.__partialLine,e);return this.__partialLine=i.partialLine,i.lines}},eachChunk:function(t){for(var e=this.chunkSize,i=this.data.length,n=this.chunkCount(),r=0;r=0),o[8]){case\"b\":i=parseInt(i,10).toString(2);break;case\"c\":i=String.fromCharCode(parseInt(i,10));break;case\"d\":case\"i\":i=parseInt(i,10);break;case\"j\":i=JSON.stringify(i,null,o[6]?parseInt(o[6]):0);break;case\"e\":i=o[7]?parseFloat(i).toExponential(o[7]):parseFloat(i).toExponential();break;case\"f\":i=o[7]?parseFloat(i).toFixed(o[7]):parseFloat(i);break;case\"g\":i=o[7]?parseFloat(i).toPrecision(o[7]):parseFloat(i);break;case\"o\":i=i.toString(8);break;case\"s\":i=String(i),i=o[7]?i.substring(0,o[7]):i;break;case\"t\":i=String(!!i),i=o[7]?i.substring(0,o[7]):i;break;case\"T\":i=Nr(i),i=o[7]?i.substring(0,o[7]):i;break;case\"u\":i=parseInt(i,10)>>>0;break;case\"v\":i=i.valueOf(),i=o[7]?i.substring(0,o[7]):i;break;case\"x\":i=parseInt(i,10).toString(16);break;case\"X\":i=parseInt(i,10).toString(16).toUpperCase()}uy.json.test(o[8])?d[d.length]=i:(!uy.number.test(o[8])||f&&!o[3]?p=\"\":(p=f?\"+\":\"-\",i=i.toString().replace(uy.sign,\"\")),s=o[4]?\"0\"===o[4]?\"0\":o[4].charAt(1):\" \",c=o[6]-(p+i).length,a=o[6]&&c>0?Fr(s,c):\"\",d[d.length]=o[5]?p+i+a:\"0\"===s?p+a+i:a+p+i)}return d.join(\"\")},Dr.cache={},Dr.parse=function(t){for(var e=t,i=[],n=[],r=0;e;){if(null!==(i=uy.text.exec(e)))n[n.length]=i[0];else if(null!==(i=uy.modulo.exec(e)))n[n.length]=\"%\";else{if(null===(i=uy.placeholder.exec(e)))throw new SyntaxError(\"[sprintf] unexpected placeholder\");if(i[2]){r|=1;var o=[],a=i[2],s=[];if(null===(s=uy.key.exec(a)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");for(o[o.length]=s[1];\"\"!==(a=a.substring(s[0].length));)if(null!==(s=uy.key_access.exec(a)))o[o.length]=s[1];else{if(null===(s=uy.index_access.exec(a)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");o[o.length]=s[1]}i[2]=o}else r|=2;if(3===r)throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");n[n.length]=i}e=e.substring(i[0].length)}return n};var hy={0:[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\"],\" \":[\"\",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],_:[\"\",\"_\",\"__\",\"___\",\"____\",\"_____\",\"______\",\"_______\"]};Br.prototype={clear:function(){this.change(-this.count)},change:function(t){this.count+=t,this.signals.countChanged.dispatch(t,this.count),this.count<0&&ty.warn(\"Counter.count below zero\",this.count)},increment:function(){this.change(1)},decrement:function(){this.change(-1)},listen:function(t){this.change(t.count),t.signals.countChanged.add(this.change,this)},unlisten:function(t){var e=t.signals.countChanged;e.has(this.change,this)&&e.remove(this.change,this)},onZeroOnce:function(t,e){if(0===this.count)t.call(e,0,0);else{var i=function(){0===this.count&&(this.signals.countChanged.remove(i,this),t.apply(e,arguments))};this.signals.countChanged.add(i,this)}},dispose:function(){this.clear(),this.signals.countChanged.dispose()}},Ur.prototype={update:function(){this.startTime=this.end(),this.signals.updated.dispatch()},begin:function(){this.startTime=performance.now(),this.lastFrames=this.frames},end:function(){var t=performance.now();return this.count+=1,this.frames+=1,this.lastDuration=t-this.startTime,this.minDuration=Math.min(this.minDuration,this.lastDuration),this.maxDuration=Math.max(this.maxDuration,this.lastDuration),this.avgDuration-=this.avgDuration/30,this.avgDuration+=this.lastDuration/30,t>this.prevFpsTime+1e3&&(this.lastFps=this.frames,this.prevFpsTime=t,this.frames=0),t}},jr.prototype=Object.create(at.prototype),jr.prototype.constructor=jr;var ly=\"\\nattribute vec3 mapping;\\nattribute vec3 position1;\\nattribute vec3 position2;\\nattribute float radius;\\nvarying vec3 axis;\\nvarying vec4 base_radius;\\nvarying vec4 end_b;\\nvarying vec3 U;\\nvarying vec3 V;\\nvarying vec4 w;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nattribute vec3 pickingColor2;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nattribute vec3 color2;\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#endif\\nuniform mat4 modelViewMatrixInverse;\\nuniform float ortho;\\nvoid main(){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\nvPickingColor2 = pickingColor2;\\n#else\\nvColor1 = color;\\nvColor2 = color2;\\n#endif\\nbase_radius.w = radius;\\nvec3 center = position;\\nvec3 dir = normalize( position2 - position1 );\\nfloat ext = length( position2 - position1 ) / 2.0;\\nvec3 cam_dir;\\nif( ortho == 0.0 ){\\ncam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;\\n}else{\\ncam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;\\n}\\ncam_dir = normalize( cam_dir );\\nvec3 ldir;\\nfloat b = dot( cam_dir, dir );\\nend_b.w = b;\\nif( b < 0.0 )\\nldir = -ext * dir;\\nelse\\nldir = ext * dir;\\nvec3 left = normalize( cross( cam_dir, ldir ) );\\nleft = radius * left;\\nvec3 up = radius * normalize( cross( left, ldir ) );\\naxis = normalize( normalMatrix * ldir );\\nU = normalize( normalMatrix * up );\\nV = normalize( normalMatrix * left );\\nvec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );\\nbase_radius.xyz = base4.xyz / base4.w;\\nvec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );\\nvec4 end4 = top_position;\\nend_b.xyz = end4.xyz / end4.w;\\nw = modelViewMatrix * vec4(\\ncenter + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0\\n);\\ngl_Position = projectionMatrix * w;\\ngl_Position.z = 0.99;\\n}\",dy=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform mat4 projectionMatrix;\\nuniform float ortho;\\nvarying vec3 axis;\\nvarying vec4 base_radius;\\nvarying vec4 end_b;\\nvarying vec3 U;\\nvarying vec3 V;\\nvarying vec4 w;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#include common\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool interior = false;\\nfloat distSq3( vec3 v3a, vec3 v3b ){\\nreturn (\\n( v3a.x - v3b.x ) * ( v3a.x - v3b.x ) +\\n( v3a.y - v3b.y ) * ( v3a.y - v3b.y ) +\\n( v3a.z - v3b.z ) * ( v3a.z - v3b.z )\\n);\\n}\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nvoid main(){\\nvec3 point = w.xyz / w.w;\\nvec3 base = base_radius.xyz;\\nfloat vRadius = base_radius.w;\\nvec3 end = end_b.xyz;\\nfloat b = end_b.w;\\nvec3 end_cyl = end;\\nvec3 surface_point = point;\\nvec3 ray_target = surface_point;\\nvec3 ray_origin = vec3(0.0);\\nvec3 ray_direction = mix(normalize(ray_origin - ray_target), vec3(0.0, 0.0, 1.0), ortho);\\nmat3 basis = mat3( U, V, axis );\\nvec3 diff = ray_target - 0.5 * (base + end_cyl);\\nvec3 P = diff * basis;\\nfloat dz = dot( axis, ray_direction );\\nfloat radius2 = vRadius*vRadius;\\nvec3 D = vec3(dot(U, ray_direction),\\ndot(V, ray_direction),\\ndz);\\nfloat a0 = P.x*P.x + P.y*P.y - radius2;\\nfloat a1 = P.x*D.x + P.y*D.y;\\nfloat a2 = D.x*D.x + D.y*D.y;\\nfloat d = a1*a1 - a0*a2;\\nif (d < 0.0)\\ndiscard;\\nfloat dist = (-a1 + sqrt(d)) / a2;\\nvec3 new_point = ray_target + dist * ray_direction;\\nvec3 tmp_point = new_point - base;\\nvec3 _normal = normalize( tmp_point - axis * dot(tmp_point, axis) );\\nray_origin = mix( ray_origin, surface_point, ortho );\\nfloat cap_test = dot( new_point - base, axis );\\n#ifndef CAP\\nvec3 new_point2 = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;\\nvec3 tmp_point2 = new_point2 - base;\\n#endif\\nif (cap_test < 0.0)\\n{\\nfloat dNV = dot(-axis, ray_direction);\\nif (dNV < 0.0)\\ndiscard;\\nfloat near = dot(-axis, (base)) / dNV;\\nnew_point = ray_direction * near + ray_origin;\\nif (dot(new_point - base, new_point-base) > radius2)\\ndiscard;\\n#ifdef CAP\\n_normal = axis;\\n#else\\n_normal = -normalize( tmp_point2 - axis * dot(tmp_point2, axis) );\\n#endif\\n}\\ncap_test = dot((new_point - end_cyl), axis);\\nif( cap_test > 0.0 )\\n{\\nfloat dNV = dot(axis, ray_direction);\\nif (dNV < 0.0)\\ndiscard;\\nfloat near = dot(axis, end_cyl) / dNV;\\nnew_point = ray_direction * near + ray_origin;\\nif( dot(new_point - end_cyl, new_point-base) > radius2 )\\ndiscard;\\n#ifdef CAP\\n_normal = axis;\\n#else\\n_normal = -normalize( tmp_point2 - axis * dot(tmp_point2, axis) );\\n#endif\\n}\\ngl_FragDepthEXT = calcDepth( new_point );\\n#ifdef NEAR_CLIP\\nif( calcClip( new_point ) > 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\nif( calcClip( new_point ) > 0.0 )\\ndiscard;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );\\n}\\n}else if( gl_FragDepthEXT <= 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n}\\n#else\\nif( gl_FragDepthEXT <= 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n}\\n#endif\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\n#ifdef PICKING\\nif( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){\\nif( b < 0.0 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n}else{\\nif( b > 0.0 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n}\\n#else\\nvec3 vViewPosition = -new_point;\\nvec3 vNormal = _normal;\\nvec3 vColor;\\nif( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){\\nif( b < 0.0 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\n}else{\\nif( b > 0.0 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\n}\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\nvec3 normal = normalize( vNormal );\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",fy=\"\\nattribute vec3 mapping;\\nattribute float radius;\\nattribute float radius2;\\nattribute vec3 position1;\\nattribute vec3 position2;\\nvarying mat4 matrix_near;\\nvarying vec4 prime1;\\nvarying vec4 prime2;\\nvarying float vRadius;\\nvarying float vRadius2;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nattribute vec3 pickingColor2;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nattribute vec3 color2;\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#endif\\nuniform float shrink;\\nuniform mat4 modelViewProjectionMatrix;\\nuniform mat4 modelViewProjectionMatrixInverse;\\nvoid main(){\\nvRadius = radius;\\nvRadius2 = radius2;\\nvec4 spaceposition;\\nvec3 position_atom1;\\nvec3 position_atom2;\\nvec4 vertex_position;\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\nvPickingColor2 = pickingColor2;\\n#else\\nvColor1 = color;\\nvColor2 = color2;\\n#endif\\nfloat radius1 = radius;\\nposition_atom1 = position1;\\nposition_atom2 = position2;\\nfloat distance = distance( position_atom1, position_atom2 );\\nspaceposition.z = mapping.z * distance;\\nif (radius1 > radius2) {\\nspaceposition.y = mapping.y * 1.5 * radius1;\\nspaceposition.x = mapping.x * 1.5 * radius1;\\n} else {\\nspaceposition.y = mapping.y * 1.5 * radius2;\\nspaceposition.x = mapping.x * 1.5 * radius2;\\n}\\nspaceposition.w = 1.0;\\nvec4 e3 = vec4( 1.0 );\\nvec3 e1, e1_temp, e2, e2_temp;\\ne3.xyz = normalize(position_atom1-position_atom2);\\nif (e3.z == 0.0) { e3.z = 0.0000000000001;}\\nif ( (position_atom1.x - position_atom2.x) == 0.0) { position_atom1.x += 0.001;}\\nif ( (position_atom1.y - position_atom2.y) == 0.0) { position_atom1.y += 0.001;}\\nif ( (position_atom1.z - position_atom2.z) == 0.0) { position_atom1.z += 0.001;}\\nvec4 focus = vec4( 1.0 );\\nfocus.x = ( position_atom1.x*position_atom1.x - position_atom2.x*position_atom2.x +\\n( radius2*radius2 - radius1*radius1 )*e3.x*e3.x/shrink )/(2.0*(position_atom1.x - position_atom2.x));\\nfocus.y = ( position_atom1.y*position_atom1.y - position_atom2.y*position_atom2.y +\\n( radius2*radius2 - radius1*radius1 )*e3.y*e3.y/shrink )/(2.0*(position_atom1.y - position_atom2.y));\\nfocus.z = ( position_atom1.z*position_atom1.z - position_atom2.z*position_atom2.z +\\n( radius2*radius2 - radius1*radius1 )*e3.z*e3.z/shrink )/(2.0*(position_atom1.z - position_atom2.z));\\ne1.x = 1.0;\\ne1.y = 1.0;\\ne1.z = ( (e3.x*focus.x + e3.y*focus.y + e3.z*focus.z) - e1.x*e3.x - e1.y*e3.y)/e3.z;\\ne1_temp = e1 - focus.xyz;\\ne1 = normalize(e1_temp);\\ne2_temp = e1.yzx * e3.zxy - e1.zxy * e3.yzx;\\ne2 = normalize(e2_temp);\\nmat3 R= mat3( e1.xyz, e2.xyz, e3.xyz );\\nvertex_position.xyz = R * spaceposition.xyz;\\nvertex_position.w = 1.0;\\nvertex_position.x += (position_atom1.x+position_atom2.x) / 2.0;\\nvertex_position.y += (position_atom1.y+position_atom2.y) / 2.0;\\nvertex_position.z += (position_atom1.z+position_atom2.z) / 2.0;\\ngl_Position = modelViewProjectionMatrix * vertex_position;\\nvec4 i_near, i_far;\\nvec4 near = gl_Position;\\nnear.z = 0.0 ;\\nnear = modelViewProjectionMatrixInverse * near;\\ni_near = near;\\nvec4 far = gl_Position;\\nfar.z = far.w ;\\ni_far = modelViewProjectionMatrixInverse * far;\\nprime1 = vec4( position_atom1 - (position_atom1 - focus.xyz)*shrink, 1.0 );\\nprime2 = vec4( position_atom2 - (position_atom2 - focus.xyz)*shrink, 1.0 );\\nfloat Rsquare = (radius1*radius1/shrink) - (\\n(position_atom1.x - focus.x)*(position_atom1.x - focus.x) +\\n(position_atom1.y - focus.y)*(position_atom1.y - focus.y) +\\n(position_atom1.z - focus.z)*(position_atom1.z - focus.z)\\n);\\nfocus.w = Rsquare;\\nmatrix_near = mat4( i_near, i_far, focus, e3 );\\ngl_Position.z = 1.0;\\n}\",py=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform float shrink;\\nuniform mat4 modelViewMatrix;\\nuniform mat4 modelViewProjectionMatrix;\\nuniform mat4 modelViewMatrixInverseTranspose;\\nuniform mat4 projectionMatrix;\\nvarying mat4 matrix_near;\\nvarying vec4 prime1;\\nvarying vec4 prime2;\\nvarying float vRadius;\\nvarying float vRadius2;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#include common\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool interior = false;\\nfloat calcClip( vec4 cameraPos ){\\nreturn dot( cameraPos, vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn calcClip( vec4( cameraPos, 1.0 ) );\\n}\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nstruct Ray {\\nvec3 origin ;\\nvec3 direction ;\\n};\\nbool cutoff_plane (vec3 M, vec3 cutoff, vec3 x3){\\nfloat a = x3.x;\\nfloat b = x3.y;\\nfloat c = x3.z;\\nfloat d = -x3.x*cutoff.x-x3.y*cutoff.y-x3.z*cutoff.z;\\nfloat l = a*M.x+b*M.y+c*M.z+d;\\nif (l<0.0) {return true;}\\nelse{return false;}\\n}\\nvec3 isect_surf(Ray r, mat4 matrix_coef){\\nvec4 direction = vec4(r.direction, 0.0);\\nvec4 origin = vec4(r.origin, 1.0);\\nfloat a = dot(direction,(matrix_coef*direction));\\nfloat b = dot(origin,(matrix_coef*direction));\\nfloat c = dot(origin,(matrix_coef*origin));\\nfloat delta =b*b-a*c;\\ngl_FragColor.a = 1.0;\\nif (delta<0.0){\\ndiscard;\\n}\\nfloat t1 =(-b-sqrt(delta))/a;\\nreturn r.origin+t1*r.direction;\\n}\\nvec3 isect_surf2(Ray r, mat4 matrix_coef){\\nvec4 direction = vec4(r.direction, 0.0);\\nvec4 origin = vec4(r.origin, 1.0);\\nfloat a = dot(direction,(matrix_coef*direction));\\nfloat b = dot(origin,(matrix_coef*direction));\\nfloat c = dot(origin,(matrix_coef*origin));\\nfloat delta =b*b-a*c;\\ngl_FragColor.a = 1.0;\\nif (delta<0.0){\\ndiscard;\\n}\\nfloat t2 =(-b+sqrt(delta))/a;\\nreturn r.origin+t2*r.direction;\\n}\\nRay primary_ray(vec4 near1, vec4 far1){\\nvec3 near=near1.xyz/near1.w;\\nvec3 far=far1.xyz/far1.w;\\nreturn Ray(near,far-near);\\n}\\nfloat update_z_buffer(vec3 M, mat4 ModelViewP){\\nfloat depth1;\\nvec4 Ms=(ModelViewP*vec4(M,1.0));\\nreturn depth1=(1.0+Ms.z/Ms.w)/2.0;\\n}\\nvoid main(){\\nfloat radius = max( vRadius, vRadius2 );\\nvec4 i_near, i_far, focus;\\nvec3 e3, e1, e1_temp, e2;\\ni_near = vec4(matrix_near[0][0],matrix_near[0][1],matrix_near[0][2],matrix_near[0][3]);\\ni_far = vec4(matrix_near[1][0],matrix_near[1][1],matrix_near[1][2],matrix_near[1][3]);\\nfocus = vec4(matrix_near[2][0],matrix_near[2][1],matrix_near[2][2],matrix_near[2][3]);\\ne3 = vec3(matrix_near[3][0],matrix_near[3][1],matrix_near[3][2]);\\ne1.x = 1.0;\\ne1.y = 1.0;\\ne1.z = ( (e3.x*focus.x + e3.y*focus.y + e3.z*focus.z) - e1.x*e3.x - e1.y*e3.y)/e3.z;\\ne1_temp = e1 - focus.xyz;\\ne1 = normalize(e1_temp);\\ne2 = normalize(cross(e1,e3));\\nvec4 equation = focus;\\nfloat shrinkfactor = shrink;\\nfloat t1 = -1.0/(1.0-shrinkfactor);\\nfloat t2 = 1.0/(shrinkfactor);\\nvec4 colonne1, colonne2, colonne3, colonne4;\\nmat4 mat;\\nvec3 equation1 = vec3(t2,t2,t1);\\nfloat A1 = - e1.x*equation.x - e1.y*equation.y - e1.z*equation.z;\\nfloat A2 = - e2.x*equation.x - e2.y*equation.y - e2.z*equation.z;\\nfloat A3 = - e3.x*equation.x - e3.y*equation.y - e3.z*equation.z;\\nfloat A11 = equation1.x*e1.x*e1.x + equation1.y*e2.x*e2.x + equation1.z*e3.x*e3.x;\\nfloat A21 = equation1.x*e1.x*e1.y + equation1.y*e2.x*e2.y + equation1.z*e3.x*e3.y;\\nfloat A31 = equation1.x*e1.x*e1.z + equation1.y*e2.x*e2.z + equation1.z*e3.x*e3.z;\\nfloat A41 = equation1.x*e1.x*A1 + equation1.y*e2.x*A2 + equation1.z*e3.x*A3;\\nfloat A22 = equation1.x*e1.y*e1.y + equation1.y*e2.y*e2.y + equation1.z*e3.y*e3.y;\\nfloat A32 = equation1.x*e1.y*e1.z + equation1.y*e2.y*e2.z + equation1.z*e3.y*e3.z;\\nfloat A42 = equation1.x*e1.y*A1 + equation1.y*e2.y*A2 + equation1.z*e3.y*A3;\\nfloat A33 = equation1.x*e1.z*e1.z + equation1.y*e2.z*e2.z + equation1.z*e3.z*e3.z;\\nfloat A43 = equation1.x*e1.z*A1 + equation1.y*e2.z*A2 + equation1.z*e3.z*A3;\\nfloat A44 = equation1.x*A1*A1 + equation1.y*A2*A2 + equation1.z*A3*A3 - equation.w;\\ncolonne1 = vec4(A11,A21,A31,A41);\\ncolonne2 = vec4(A21,A22,A32,A42);\\ncolonne3 = vec4(A31,A32,A33,A43);\\ncolonne4 = vec4(A41,A42,A43,A44);\\nmat = mat4(colonne1,colonne2,colonne3,colonne4);\\nRay ray = primary_ray(i_near,i_far) ;\\nvec3 M;\\nM = isect_surf(ray, mat);\\nif (cutoff_plane(M, prime1.xyz, -e3) || cutoff_plane(M, prime2.xyz, e3)){ discard; }\\nvec4 M1 = vec4(M,1.0);\\nvec4 M2 = mat*M1;\\nvec3 _normal = ( modelViewMatrixInverseTranspose * M2 ).xyz;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\n#ifdef NEAR_CLIP\\nif( calcClip( modelViewMatrix * vec4( M, 1.0 ) ) > 0.0 ){\\nM = isect_surf2(ray, mat);\\nif( calcClip( modelViewMatrix * vec4( M, 1.0 ) ) > 0.0 )\\ndiscard;\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / radius ) );\\n}\\n}else if( gl_FragDepthEXT <= 0.0 ){\\nM = isect_surf2(ray, mat);\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix);\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / radius );\\n}\\n}\\n#else\\nif( gl_FragDepthEXT <= 0.0 ){\\nM = isect_surf2(ray, mat);\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / radius );\\n}\\n}\\n#endif\\nif (cutoff_plane(M, prime1.xyz, -e3) || cutoff_plane(M, prime2.xyz, e3)){ discard; }\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\nfloat distance_ratio = ((M.x-prime2.x)*e3.x + (M.y-prime2.y)*e3.y +(M.z-prime2.z)*e3.z) /\\ndistance(prime2.xyz,prime1.xyz);\\n#ifdef PICKING\\nif( distance_ratio > 0.5 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n#else\\nvec3 vViewPosition = -( modelViewMatrix * vec4( M, 1.0 ) ).xyz;\\nvec3 vNormal = _normal;\\nvec3 vColor;\\nif( distance_ratio>0.5 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\nvec3 normal = normalize( vNormal );\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",my=\"uniform float nearClip;\\nvarying vec3 vViewPosition;\\n#include color_pars_vertex\\nvoid main(){\\n#include color_vertex\\n#include begin_vertex\\n#include project_vertex\\nvViewPosition = -mvPosition.xyz;\\n#include nearclip_vertex\\n}\",gy=\"uniform float opacity;\\nuniform float nearClip;\\nvarying vec3 vViewPosition;\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\nvoid main(){\\n#include nearclip_fragment\\ngl_FragColor = vec4( vColor, opacity );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",vy=\"void main(){\\n#include begin_vertex\\n#include project_vertex\\n}\",yy=\"uniform vec3 uColor;\\n#include common\\n#include fog_pars_fragment\\nvoid main(){\\ngl_FragColor = vec4( uColor, 1.0 );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",by=\"#define STANDARD\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvarying vec3 vViewPosition;\\n#endif\\n#if defined( PICKING )\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#elif defined( NOLIGHT )\\nvarying vec3 vColor;\\n#else\\n#include color_pars_vertex\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#endif\\n#include common\\nvoid main(){\\n#if defined( PICKING )\\nvPickingColor = pickingColor;\\n#elif defined( NOLIGHT )\\nvColor = color;\\n#else\\n#include color_vertex\\n#include beginnormal_vertex\\n#include defaultnormal_vertex\\n#ifndef FLAT_SHADED\\nvNormal = normalize( transformedNormal );\\n#endif\\n#endif\\n#include begin_vertex\\n#include project_vertex\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvViewPosition = -mvPosition.xyz;\\n#endif\\n#include nearclip_vertex\\n}\",xy=\"#define STANDARD\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvarying vec3 vViewPosition;\\n#endif\\n#if defined( PICKING )\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\n#elif defined( NOLIGHT )\\nvarying vec3 vColor;\\n#else\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nvoid main(){\\n#include nearclip_fragment\\n#if defined( PICKING )\\ngl_FragColor = vec4( vPickingColor, objectId );\\n#elif defined( NOLIGHT )\\ngl_FragColor = vec4( vColor, opacity );\\n#else\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\n#include normal_flip\\n#include normal_fragment\\n#include dull_interior_fragment\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#include opaque_back_fragment\\n#endif\\n}\",_y=\"uniform float nearClip;\\nuniform float size;\\nuniform float canvasHeight;\\nuniform float pixelRatio;\\nvarying vec3 vViewPosition;\\n#include color_pars_vertex\\n#include common\\nvoid main(){\\n#include color_vertex\\n#include begin_vertex\\n#include project_vertex\\n#ifdef USE_SIZEATTENUATION\\ngl_PointSize = size * pixelRatio * ( ( canvasHeight / 2.0 ) / -mvPosition.z );\\n#else\\ngl_PointSize = size * pixelRatio;\\n#endif\\nvViewPosition = -mvPosition.xyz;\\n#include nearclip_vertex\\n}\",wy=\"uniform vec3 diffuse;\\nuniform float opacity;\\nvarying vec3 vViewPosition;\\n#ifdef USE_MAP\\nuniform sampler2D map;\\n#endif\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\nvoid main(){\\nvec3 outgoingLight = vec3( 0.0 );\\nvec4 diffuseColor = vec4( diffuse, 1.0 );\\n#ifdef USE_MAP\\ndiffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) );\\n#endif\\n#include color_fragment\\n#include alphatest_fragment\\noutgoingLight = diffuseColor.rgb;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a * opacity );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",Sy=\"varying vec2 vUv;\\nvoid main() {\\nvUv = uv;\\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",Ay=\"varying vec2 vUv;\\nuniform sampler2D tForeground;\\nuniform float scale;\\nvoid main() {\\nvec4 foreground = texture2D( tForeground, vUv );\\ngl_FragColor = foreground * scale;\\n}\",My=\"#define STANDARD\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || !defined( PICKING )\\nvarying vec3 vViewPosition;\\n#endif\\nattribute vec3 dir;\\nattribute float size;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#else\\n#include color_pars_vertex\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#endif\\n#include common\\nvoid main(void){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\n#else\\n#include color_vertex\\n#include beginnormal_vertex\\n#include defaultnormal_vertex\\n#ifndef FLAT_SHADED\\nvNormal = normalize( transformedNormal );\\n#endif\\n#endif\\n#include begin_vertex\\ntransformed += normalize( dir ) * size;\\n#include project_vertex\\n#if defined( NEAR_CLIP ) || !defined( PICKING )\\nvViewPosition = -mvPosition.xyz;\\n#endif\\n#include nearclip_vertex\\n}\",Py=\"uniform float nearClip;\\nuniform float xOffset;\\nuniform float yOffset;\\nuniform float zOffset;\\nuniform bool ortho;\\nvarying vec3 vViewPosition;\\nvarying vec2 texCoord;\\nattribute vec2 mapping;\\nattribute vec2 inputTexCoord;\\nattribute float inputSize;\\n#include color_pars_vertex\\n#include common\\nvoid main(void){\\n#include color_vertex\\ntexCoord = inputTexCoord;\\nfloat _zOffset = zOffset;\\nif( texCoord.x == 10.0 ){\\n_zOffset -= 0.001;\\n}\\nvec3 pos = position;\\nif( ortho ){\\npos += normalize( cameraPosition ) * _zOffset;\\n}\\nvec4 cameraPos = modelViewMatrix * vec4( pos, 1.0 );\\nvec4 cameraCornerPos = vec4( cameraPos.xyz, 1.0 );\\ncameraCornerPos.xy += mapping * inputSize * 0.01;\\ncameraCornerPos.x += xOffset;\\ncameraCornerPos.y += yOffset;\\nif( !ortho ){\\ncameraCornerPos.xyz += normalize( -cameraCornerPos.xyz ) * _zOffset;\\n}\\ngl_Position = projectionMatrix * cameraCornerPos;\\nvViewPosition = -cameraCornerPos.xyz;\\n#include nearclip_vertex\\n}\",Ey=\"uniform sampler2D fontTexture;\\nuniform float opacity;\\nuniform bool showBorder;\\nuniform vec3 borderColor;\\nuniform float borderWidth;\\nuniform vec3 backgroundColor;\\nuniform float backgroundOpacity;\\nvarying vec3 vViewPosition;\\nvarying vec2 texCoord;\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#ifdef SDF\\nconst float smoothness = 16.0;\\n#else\\nconst float smoothness = 256.0;\\n#endif\\nconst float gamma = 2.2;\\nvoid main(){\\nif( texCoord.x == 10.0 ){\\ngl_FragColor = vec4( backgroundColor, backgroundOpacity );\\n}else{\\nfloat sdf = texture2D( fontTexture, texCoord ).a;\\nif( showBorder ) sdf += borderWidth;\\nfloat w = clamp(\\nsmoothness * ( abs( dFdx( texCoord.x ) ) + abs( dFdy( texCoord.y ) ) ),\\n0.0,\\n0.5\\n);\\nfloat a = smoothstep( 0.5 - w, 0.5 + w, sdf );\\na = pow( a, 1.0 / gamma );\\nif( a < 0.2 ) discard;\\na *= opacity;\\nvec3 outgoingLight = vColor;\\nif( showBorder && sdf < ( 0.5 + borderWidth ) ){\\noutgoingLight = borderColor;\\n}\\ngl_FragColor = vec4( outgoingLight, a );\\n}\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",Cy=\"uniform mat4 projectionMatrixInverse;\\nuniform float nearClip;\\nvarying float vRadius;\\nvarying float vRadiusSq;\\nvarying vec3 vPoint;\\nvarying vec3 vPointViewPosition;\\nattribute vec2 mapping;\\nattribute float radius;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#else\\n#include color_pars_vertex\\n#endif\\nconst mat4 D = mat4(\\n1.0, 0.0, 0.0, 0.0,\\n0.0, 1.0, 0.0, 0.0,\\n0.0, 0.0, 1.0, 0.0,\\n0.0, 0.0, 0.0, -1.0\\n);\\nmat4 transpose( in mat4 inMatrix ) {\\nvec4 i0 = inMatrix[0];\\nvec4 i1 = inMatrix[1];\\nvec4 i2 = inMatrix[2];\\nvec4 i3 = inMatrix[3];\\nmat4 outMatrix = mat4(\\nvec4(i0.x, i1.x, i2.x, i3.x),\\nvec4(i0.y, i1.y, i2.y, i3.y),\\nvec4(i0.z, i1.z, i2.z, i3.z),\\nvec4(i0.w, i1.w, i2.w, i3.w)\\n);\\nreturn outMatrix;\\n}\\nvoid ComputePointSizeAndPositionInClipCoordSphere(){\\nvec2 xbc;\\nvec2 ybc;\\nmat4 T = mat4(\\nradius, 0.0, 0.0, 0.0,\\n0.0, radius, 0.0, 0.0,\\n0.0, 0.0, radius, 0.0,\\nposition.x, position.y, position.z, 1.0\\n);\\nmat4 R = transpose( projectionMatrix * modelViewMatrix * T );\\nfloat A = dot( R[ 3 ], D * R[ 3 ] );\\nfloat B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );\\nfloat C = dot( R[ 0 ], D * R[ 0 ] );\\nxbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nxbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nfloat sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;\\nA = dot( R[ 3 ], D * R[ 3 ] );\\nB = -2.0 * dot( R[ 1 ], D * R[ 3 ] );\\nC = dot( R[ 1 ], D * R[ 1 ] );\\nybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nfloat sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;\\ngl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );\\ngl_Position.xy -= mapping * vec2( sx, sy );\\ngl_Position.xy *= gl_Position.w;\\n}\\nvoid main(void){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\n#else\\n#include color_vertex\\n#endif\\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\nmvPosition.z -= radius;\\ngl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );\\nComputePointSizeAndPositionInClipCoordSphere();\\nvRadius = radius;\\nvRadiusSq = radius * radius;\\nvec4 vPoint4 = projectionMatrixInverse * gl_Position;\\nvPoint = vPoint4.xyz / vPoint4.w;\\nvPointViewPosition = -mvPosition.xyz / mvPosition.w;\\n}\",Ty=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform mat4 projectionMatrix;\\nuniform float ortho;\\nvarying float vRadius;\\nvarying float vRadiusSq;\\nvarying vec3 vPoint;\\nvarying vec3 vPointViewPosition;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\n#else\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool flag2 = false;\\nbool interior = false;\\nvec3 cameraPos;\\nvec3 cameraNormal;\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nbool Impostor( out vec3 cameraPos, out vec3 cameraNormal ){\\nvec3 cameraSpherePos = -vPointViewPosition;\\ncameraSpherePos.z += vRadius;\\nvec3 rayOrigin = mix( vec3( 0.0, 0.0, 0.0 ), vPoint, ortho );\\nvec3 rayDirection = mix( normalize( vPoint ), vec3( 0.0, 0.0, 1.0 ), ortho );\\nvec3 cameraSphereDir = mix( cameraSpherePos, rayOrigin - cameraSpherePos, ortho );\\nfloat B = dot( rayDirection, cameraSphereDir );\\nfloat det = B * B + vRadiusSq - dot( cameraSphereDir, cameraSphereDir );\\nif( det < 0.0 ){\\ndiscard;\\nreturn false;\\n}else{\\nfloat sqrtDet = sqrt( det );\\nfloat posT = mix( B + sqrtDet, B + sqrtDet, ortho );\\nfloat negT = mix( B - sqrtDet, sqrtDet - B, ortho );\\ncameraPos = rayDirection * negT + rayOrigin;\\n#ifdef NEAR_CLIP\\nif( calcDepth( cameraPos ) <= 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nreturn false;\\n}else if( calcClip( cameraPos ) > 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nflag2 = true;\\nreturn false;\\n}else{\\ncameraNormal = normalize( cameraPos - cameraSpherePos );\\n}\\n#else\\nif( calcDepth( cameraPos ) <= 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nreturn false;\\n}else{\\ncameraNormal = normalize( cameraPos - cameraSpherePos );\\n}\\n#endif\\nreturn true;\\n}\\nreturn false;\\n}\\nvoid main(void){\\nbool flag = Impostor( cameraPos, cameraNormal );\\n#ifdef NEAR_CLIP\\nif( calcClip( cameraPos ) > 0.0 )\\ndiscard;\\n#endif\\ngl_FragDepthEXT = calcDepth( cameraPos );\\nif( !flag ){\\n#ifdef NEAR_CLIP\\nif( flag2 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );\\n}else if( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n#else\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n#endif\\n}\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\n#ifdef PICKING\\ngl_FragColor = vec4( vPickingColor, objectId );\\n#else\\nvec3 vNormal = cameraNormal;\\nvec3 vViewPosition = -cameraPos;\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\n#include normal_flip\\n#include normal_fragment\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",Iy=\"#ifdef DULL_INTERIOR\\nif( gl_FrontFacing == false ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#endif\",Ly=\"#ifdef USE_FOG\\nfloat depth = length( vViewPosition );\\n#ifdef FOG_EXP2\\nfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\\n#else\\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\\n#endif\\ngl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",Oy=\"#ifdef NEAR_CLIP\\nif( vViewPosition.z < nearClip )\\ndiscard;\\n#endif\",Ry=\"#ifdef NEAR_CLIP\\nif( vViewPosition.z < nearClip )\\ngl_Position.z = 2.0 * gl_Position.w;\\n#endif\",ky=\"#ifdef OPAQUE_BACK\\n#ifdef FLIP_SIDED\\nif( gl_FrontFacing == true ){\\ngl_FragColor.a = 1.0;\\n}\\n#else\\nif( gl_FrontFacing == false ){\\ngl_FragColor.a = 1.0;\\n}\\n#endif\\n#endif\",Dy={\n\"shader/CylinderImpostor.vert\":ly,\"shader/CylinderImpostor.frag\":dy,\"shader/HyperballStickImpostor.vert\":fy,\"shader/HyperballStickImpostor.frag\":py,\"shader/Line.vert\":my,\"shader/Line.frag\":gy,\"shader/BasicLine.vert\":vy,\"shader/BasicLine.frag\":yy,\"shader/Mesh.vert\":by,\"shader/Mesh.frag\":xy,\"shader/Point.vert\":_y,\"shader/Point.frag\":wy,\"shader/Quad.vert\":Sy,\"shader/Quad.frag\":Ay,\"shader/Ribbon.vert\":My,\"shader/SDFFont.vert\":Py,\"shader/SDFFont.frag\":Ey,\"shader/SphereImpostor.vert\":Cy,\"shader/SphereImpostor.frag\":Ty,\"shader/chunk/dull_interior_fragment.glsl\":Iy,\"shader/chunk/fog_fragment.glsl\":Ly,\"shader/chunk/nearclip_fragment.glsl\":Oy,\"shader/chunk/nearclip_vertex.glsl\":Ry,\"shader/chunk/opaque_back_fragment.glsl\":ky},Ny=/^(?!\\/\\/)\\s*#include\\s+(\\S+)/gim,Fy={};Gr.prototype.constructor=Gr;var zy=2*Math.PI,By=new dt,Uy=new ht,jy=new ht,$y=new ht,Vy=new ht,Gy=[[[0,0]],[[4,4],[-4,-4]],[[-2,-6],[6,-2],[-6,2],[2,6]],[[1,-3],[-1,3],[5,1],[-3,-5],[-5,5],[-7,-1],[3,7],[7,-7]],[[1,1],[-1,-3],[-3,2],[4,-1],[-5,-2],[2,5],[5,3],[3,-5],[-2,6],[0,-7],[-4,-6],[-6,4],[-8,0],[7,-4],[6,7],[-7,-8]],[[-4,-7],[-7,-5],[-3,-5],[-5,-4],[-1,-4],[-2,-2],[-6,-1],[-4,0],[-7,1],[-1,2],[-6,3],[-3,3],[-7,6],[-3,6],[-5,7],[-1,7],[5,-7],[1,-6],[6,-5],[4,-4],[2,-3],[7,-2],[1,-1],[4,-1],[2,1],[6,2],[0,4],[4,4],[2,5],[7,5],[5,6],[3,7]]];Gy.forEach(function(t){t.forEach(function(t){t[0]*=.0625,t[1]*=.0625})}),no.prototype.constructor=no;var Hy=2,Wy=3,Xy=function(e,i){function n(t){var e=Object.assign({},t);a=$(e.hoverTimeout,a)}function r(t,i){var n,r,o,a=e.pick(t.canvasPosition.x,t.canvasPosition.y),s=a.instance,u=ey.getByGid(a.gid);return u&&\"AtomProxy\"===u.type?n=u:u&&\"BondProxy\"===u.type?r=u:u&&\"Volume\"===u.volume.type&&(o=u),(n||r||o)&&t.which===Hy&&i&&(n?c.copy(n):r?c.copy(r.atom1).add(r.atom2).multiplyScalar(.5):o&&c.copy(o),s&&c.applyProjection(s.matrix),e.centerView(!1,c)),{atom:n,bond:r,volume:o,instance:s}}function o(){if(performance.now()-u.lastMoved>a&&(u.moving=!1),!u.moving&&!u.hovering){u.hovering=!0;var t=r(u);s.hovered.dispatch(t)}requestAnimationFrame(o)}var a=50;n(i);var s={clicked:new Kn,hovered:new Kn},c=new dt,u={position:new st,down:new st,canvasPosition:new st,moving:!1,hovering:!0,lastMoved:1/0,which:void 0,distance:function(){return u.position.distanceTo(u.down)},setCanvasPosition:function(t){var i=e.renderer.domElement.getBoundingClientRect(),n=t.clientX-i.left,r=t.clientY-i.top;u.canvasPosition.set(n,i.height-r)}};o(),e.renderer.domElement.addEventListener(\"mousemove\",function(t){t.preventDefault(),u.moving=!0,u.hovering=!1,u.lastMoved=performance.now(),u.position.set(t.layerX,t.layerY),u.setCanvasPosition(t)}),e.renderer.domElement.addEventListener(\"mousedown\",function(t){t.preventDefault(),u.moving=!1,u.hovering=!1,u.down.set(t.layerX,t.layerY),u.which=t.which,u.setCanvasPosition(t)}),e.renderer.domElement.addEventListener(\"mouseup\",function(e){if(e.preventDefault(),!(u.distance()>3||e.which===Wy)){var i=r(u,!0);u.which=void 0,s.clicked.dispatch(i),t.Debug&&ty.log(\"clicked\",i)}}),this.signals=s,this.setParameters=n};ro.prototype.add=function(t){this.count<<5<=t&&this.resize(t),this.words[t>>>5]|=1<>>5]|=1<>>5]^=1<>>5]^=1<>>5)+1,r=(e>>>5)-1,o=0|n;o+7>>5]|=1<>>5]|=1<>>5]&=~(1<>>5]&=~(1<>>5]&=~(1<>>5]&=~(1<>>5]&1<0;)0===this.words[this.count-1]&&this.count--;this.words=this.words.slice(0,this.count)},ro.prototype.resize=function(t){if(this.length=t,!(this.count<<5>t)&&(this.count=t+32>>>5,this.words.length<<5<=t)){var e=new Uint32Array(this.count<<1);e.set(this.words),this.words=e}},ro.prototype.hammingWeight=function(t){return t-=t>>>1&1431655765,t=(858993459&t)+(t>>>2&858993459),16843009*(t+(t>>>4)&252645135)>>>24},ro.prototype.size=function(){for(var t=0,e=this.count,i=0;i=t&&eo?a.set(this[n].subarray(0,o)):a.set(this[n]),this[n]=a}},growIfFull:function(){if(this.count>=this.length){var t=Math.round(1.5*this.length);this.resize(Math.max(256,t))}},copyFrom:function(t,e,i,n){for(var r=0,o=this.__fields.length;r0;)s-=1;a<=s&&(a===o?o=s:s===o&&(o=a),e(a,s),a+=1,s-=1)}while(a<=s);i(n,s),i(a,r)}}ty.time(\"Store.sort\");var n=this,r=new this.constructor(1);i(0,this.count-1),ty.timeEnd(\"Store.sort\")},clear:function(){this.count=0},dispose:function(){delete this.length,delete this.count;for(var t=0,e=this.__fields.length;t0&&(l[i]=S.angleTo(A)),t=Math.cos(b.angleTo(x)),p[i]=180/Math.PI*Math.acos(t),n=b.length(),r=x.length(),d[i]=Math.sqrt(r*n)/Math.max(2,2*(1-t)),f[i]=Math.abs(v.dot(S)),_.copy(b).multiplyScalar(d[i]/n),w.copy(x).multiplyScalar(d[i]/r),_.subVectors(T,_),w.subVectors(I,w),_.toArray(u,e+3),w.toArray(u,e+6),M.subVectors(C,P),M.toArray(m,e),A.copy(S),P.copy(_);for(_.fromArray(u,3),w.fromArray(u,6),S.subVectors(_,w).normalize(),C.index=o.getAtomIndexByType(0,E),P.copy(C),_=Yy(P,_,S),_.toArray(u,0),M.subVectors(P,_),M.toArray(m,0),_.fromArray(u,3*s-6),w.fromArray(u,3*s-9),S.subVectors(_,w).normalize(),C.index=o.getAtomIndexByType(s-1,E),P.copy(C),_=Yy(P,_,S),_.toArray(u,3*s-3),i=s-3;ie?F=!0:h.bending[z]>t&&(F=!0)),F){if(z-v<4){v=z,F=!1;continue}k.index=O.traceAtomIndex,C=h.axis.subarray(3*v+3,3*z),T=h.center.subarray(3*v,3*z+3),d=ao(C).normalize(),f=ao(T),I.fromArray(T),I=Yy(I,f,d),L.fromArray(T,T.length-3),L=Yy(L,f,d),d.subVectors(L,I),d.toArray(b,y),f.toArray(x,y),I.toArray(_,y),L.toArray(w,y),p.atomColorToArray(k,S,y),m.atomColorToArray(k,A,y),M.push(g.atomRadius(k)),P.push(u+v),E.push(u+z+1-v),y+=3,v=z,F=!1}return{axis:new Float32Array(b),center:new Float32Array(x),begin:new Float32Array(_),end:new Float32Array(w),color:new Float32Array(S),pickingColor:new Float32Array(A),size:new Float32Array(M),residueOffset:P,residueCount:E}}},ta.prototype={push:function(t){this.content.push(t),this.bubbleUp(this.content.length-1)},pop:function(){var t=this.content[0],e=this.content.pop();return this.content.length>0&&(this.content[0]=e,this.sinkDown(0)),t},peek:function(){return this.content[0]},remove:function(t){for(var e=this.content.length,i=0;i0;){var i=Math.floor((t+1)/2)-1,n=this.content[i];if(!(this.scoreFunction(e)\":\"3/4-Z\",\"?\":\"X-Y\",\"@\":\"Y-X\",A:\"Z+1/3\",B:\"Z+2/3\",C:\"X+2/3\",D:\"Y+1/3\",E:\"-Y+2/3\",F:\"X-Y+1/3\",G:\"Y-X+2/3\",H:\"-X+1/3\",I:\"X+1/3\",J:\"Y+2/3\",K:\"-Y+1/3\",L:\"X-Y+2/3\",M:\"Y-X+1/3\",N:\"-X+2/3\",O:\"2/3+X\",P:\"1/3+Y\",Q:\"1/3+Z\",R:\"2/3-Y\",S:\"1/3+X-Y\",T:\"2/3+Y-X\",U:\"1/3-X\",V:\"2/3-X\",W:\"1/3-Y\",X:\"1/3-Z\",Y:\"2/3+Y\",Z:\"1/3+Y-X\",\"[\":\"2/3+X-Y\",\"]\":\"1/3+X\",\"^\":\"2/3+Z\",_:\"2/3-Z\",\"`\":\"5/6+Z\",a:\"1/6+Z\",b:\"5/6-Z\",c:\"1/6-Z\",d:\"Z+5/6\",e:\"Z+1/6\",f:\"Z+1/4\",g:\"+Y\"},Jy={\"P 1\":\" !#\",\"P -1\":\" !#$%&\",\"P 1 2 1\":\" !#$!&\",\"P 1 21 1\":\" !#$'&\",\"C 1 2 1\":\" !#$!&()#*)&\",\"P 1 m 1\":\" !# %#\",\"P 1 c 1\":\" !# %+\",\"C 1 m 1\":\" !# %#()#(,#\",\"C 1 c 1\":\" !# %+()#(,+\",\"P 1 2/m 1\":\" !# %#$!&$%&\",\"P 1 21/m 1\":\" !#$)&$%& ,#\",\"C 1 2/m 1\":\" !# %#$!&$%&()#(,#*)&*,&\",\"P 1 2/c 1\":\" !#$!-$%& %+\",\"P 1 21/c 1\":\" !#$%&$)- ,+\",\"C 1 2/c 1\":\" !#$!-$%& %+()#*)-*,&(,+\",\"P 2 2 2\":\" !#$%#$!& %&\",\"P 2 2 21\":\" !#$%+$!- %&\",\"P 21 21 2\":\" !#$%#*)&(,&\",\"P 21 21 21\":\" !#*%+$)-(,&\",\"C 2 2 21\":\" !#$%+$!- %&()#*,+*)-(,&\",\"C 2 2 2\":\" !#$%#$!& %&()#*,#*)&(,&\",\"F 2 2 2\":\" !#$%#$!& %& )+$,+$)- ,-(!+*%+*!-(%-()#*,#*)&(,&\",\"I 2 2 2\":\" !#$%# %&$!&.'/01/.120'2\",\"I 21 21 21\":\" !#*%+$)-(,&()+$,#*!& %-\",\"P m m 2\":\" !#$%# %#$!#\",\"P m c 21\":\" !#$%+ %+$!#\",\"P c c 2\":\" !#$%# %+$!+\",\"P m a 2\":\" !#$%#(%#*!#\",\"P c a 21\":\" !#$%+(%#*!+\",\"P n c 2\":\" !#$%# ,+$)+\",\"P m n 21\":\" !#*%+(%+$!#\",\"P b a 2\":\" !#$%#(,#*)#\",\"P n a 21\":\" !#$%+(,#*)+\",\"P n n 2\":\" !#$%#(,+*)+\",\"C m m 2\":\" !#$%# %#$!#()#*,#(,#*)#\",\"C m c 21\":\" !#$%+ %+$!#()#*,+(,+*)#\",\"C c c 2\":\" !#$%# %+$!+()#*,#(,+*)+\",\"A m m 2\":\" !#$%# %#$!# )+$,+ ,+$)+\",\"A b m 2\":\" !#$%# ,#$)# )+$,+ %+$!+\",\"A m a 2\":\" !#$%#(%#*!# )+$,+(,+*)+\",\"A b a 2\":\" !#$%#(,#*)# )+$,+(%+*!+\",\"F m m 2\":\" !#$%# %#$!# )+$,+ ,+$)+(!+*%+(%+*!+()#*,#(,#*)#\",\"F d d 2\":\" !#$%#345675 )+$,+3896:9(!+*%+;49<79()#*,#;85<:5\",\"I m m 2\":\" !#$%# %#$!#()+*,+(,+*)+\",\"I b a 2\":\" !#$%#(,#*)#()+*,+ %+$!+\",\"I m a 2\":\" !#$%#(%#*!#()+*,+ ,+$)+\",\"P 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#\",\"P 2/n 2/n 2/n\":\" !#$%#$!& %&*,-()-(,+*)+\",\"P 2/c 2/c 2/m\":\" !#$%#$!- %-$%& !& %+$!+\",\"P 2/b 2/a 2/n\":\" !#$%#$!& %&*,&()&(,#*)#\",\"P 21/m 2/m 2/a\":\" !#*%#$!&(%&$%&(!& %#*!#\",\"P 2/n 21/n 2/a\":\" !#*%#*)- ,-$%&(!&(,+$)+\",\"P 2/m 2/n 21/a\":\" !#*%+*!- %&$%&(!-(%+$!#\",\"P 21/c 2/c 2/a\":\" !#*%#$!-(%-$%&(!& %+*!+\",\"P 21/b 21/a 2/m\":\" !#$%#*)&(,&$%& !&(,#*)#\",\"P 21/c 21/c 2/n\":\" !#*,#$)-(%-$%&()& ,+*!+\",\"P 2/b 21/c 21/m\":\" !#$%+$)- ,&$%& !- ,+$)#\",\"P 21/n 21/n 2/m\":\" !#$%#*)-(,-$%& !&(,+*)+\",\"P 21/m 21/m 2/n\":\" !#$%#*'&.,&*,&.'& %#$!#\",\"P 21/b 2/c 21/n\":\" !#*,+$!-(,&$%&()- %+*)#\",\"P 21/b 21/c 21/a\":\" !#*%+$)-(,&$%&(!- ,+*)#\",\"P 21/n 21/m 21/a\":\" !#0%/$'&.12$%&.!2 1#0'/\",\"C 2/m 2/c 21/m\":\" !#$%+$!- %&$%& !- %+$!#()#*,+*)-(,&*,&()-(,+*)#\",\"C 2/m 2/c 21/a\":\" !#$,+$)- %&$%& )- ,+$!#()#*%+*!-(,&*,&(!-(%+*)#\",\"C 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#()#*,#*)&(,&*,&()&(,#*)#\",\"C 2/c 2/c 2/m\":\" !#$%#$!- %-$%& !& %+$!+()#*,#*)-(,-*,&()&(,+*)+\",\"C 2/m 2/m 2/a\":\" !#$,#$)& %&$%& )& ,#$!#()#*%#*!&(,&*,&(!&(%#*)#\",\"C 2/c 2/c 2/a\":\" !#*,#$!&(,&$,-(!- ,+*!+()#$%#*)& %&*%- )-(%+$)+\",\"F 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!# )+$,+$)- ,-$,- )- ,+$)+(!+*%+*!-(%-*%-(!-(%+*!+()#*,#*)&(,&*,&()&(,#*)#\",\"F 2/d 2/d 2/d\":\" !#$%#$!& %&64=37=345675 )+$,+$)- ,-68>3:>3896:9(!+*%+*!-(%-<4>;7>;49<79()#*,#*)&(,&<8=;:=;85<:5\",\"I 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#()+*,+*)-(,-*,-()-(,+*)+\",\"I 2/b 2/a 2/m\":\" !#$%#*)&(,&$%& !&(,#*)#()+*,+$!- %-*,-()- %+$!+\",\"I 21/b 21/c 21/a\":\" !#*%+$)-(,&$%&(!- ,+*)#()+$,#*!& %-*,- )&(%#$!+\",\"I 21/m 21/m 21/a\":\" !#$,#$)& %&$%& )& ,#$!#()+*%+*!-(,-*,-(!-(%+*)+\",\"P 4\":\" !#$%#% #!$#\",\"P 41\":\" !#$%+% 5!$9\",\"P 42\":\" !#$%#% +!$+\",\"P 43\":\" !#$%+% 9!$5\",\"I 4\":\" !#$%#% #!$#()+*,+,(+)*+\",\"I 41\":\" !#*,+%(5)$9()+$%#, 9!*5\",\"P -4\":\" !#$%#!$&% &\",\"I -4\":\" !#$%#!$&% &()+*,+)*-,(-\",\"P 4/m\":\" !#$%#% #!$#$%& !&!$&% &\",\"P 42/m\":\" !#$%#% +!$+$%& !&!$-% -\",\"P 4/n\":\" !#$%#,(#)*#*,&()&!$&% &\",\"P 42/n\":\" !#$%#,(+)*+*,-()-!$&% &\",\"I 4/m\":\" !#$%#% #!$#$%& !&!$&% &()+*,+,(+)*+*,-()-)*-,(-\",\"I 41/a\":\" !#*,+%(5)$9$,=(!>!$&,(-()+$%#, 9!*5*%> )=)*-% &\",\"P 4 2 2\":\" !#$%#% #!$#$!& %&! &%$&\",\"P 4 21 2\":\" !#$%#,(#)*#*)&(,&! &%$&\",\"P 41 2 2\":\" !#$%+% 5!$9$!& %-! >%$=\",\"P 41 21 2\":\" !#$%+,(5)*9*)=(,>! &%$-\",\"P 42 2 2\":\" !#$%#% +!$+$!& %&! -%$-\",\"P 42 21 2\":\" !#$%#,(+)*+*)-(,-! &%$&\",\"P 43 2 2\":\" !#$%+% 9!$5$!& %-! =%$>\",\"P 43 21 2\":\" !#$%+,(9)*5*)>(,=! &%$-\",\"I 4 2 2\":\" !#$%#% #!$#$!& %&! &%$&()+*,+,(+)*+*)-(,-)(-,*-\",\"I 41 2 2\":\" !#*,+%(5)$9*!> ,=)(-%$&()+$%#, 9!*5$)=(%>! &,*-\",\"P 4 m m\":\" !#$%#% #!$# %#$!#%$#! #\",\"P 4 b m\":\" !#$%#% #!$#(,#*)#,*#)(#\",\"P 42 c m\":\" !#$%#% +!$+ %+$!+%$#! #\",\"P 42 n m\":\" !#$%#,(+)*+(,+*)+%$#! #\",\"P 4 c c\":\" !#$%#% #!$# %+$!+%$+! +\",\"P 4 n c\":\" !#$%#% #!$#(,+*)+,*+)(+\",\"P 42 m c\":\" !#$%#% +!$+ %#$!#%$+! +\",\"P 42 b c\":\" !#$%#% +!$+(,#*)#,*+)(+\",\"I 4 m m\":\" !#$%#% #!$# %#$!#%$#! #()+*,+,(+)*+(,+*)+,*+)(+\",\"I 4 c m\":\" !#$%#% #!$# %+$!+%$+! +()+*,+,(+)*+(,#*)#,*#)(#\",\"I 41 m d\":\" !#*,+%(5)$9 %#*)+%*5) 9()+$%#, 9!*5(,+$!#,$9!(5\",\"I 41 c d\":\" !#*,+%(5)$9 %+*)#%*9) 5()+$%#, 9!*5(,#$!+,$5!(9\",\"P -4 2 m\":\" !#$%#% &!$&$!& %&%$#! #\",\"P -4 2 c\":\" !#$%#% &!$&$!- %-%$+! +\",\"P -4 21 m\":\" !#$%#% &!$&*)&(,&,*#)(#\",\"P -4 21 c\":\" !#$%#% &!$&*)-(,-,*+)(+\",\"P -4 m 2\":\" !#$%#!$&% & %#$!#! &%$&\",\"P -4 c 2\":\" !#$%#% &!$& %+$!+! -%$-\",\"P -4 b 2\":\" !#$%#% &!$&(,#*)#)(&,*&\",\"P -4 n 2\":\" !#$%#% &!$&(,+*)+)(-,*-\",\"I -4 m 2\":\" !#$%#% &!$& %#$!#! &%$&()+*,+,(-)*-(,+*)+)(-,*-\",\"I -4 c 2\":\" !#$%#% &!$& %+$!+! -%$-()+*,+,(-)*-(,#*)#)(&,*&\",\"I -4 2 m\":\" !#$%#% &!$&$!& %&%$#! #()+*,+,(-)*-*)-(,-,*+)(+\",\"I -4 2 d\":\" !#$%#% &!$&*!>(%>,$9) 9()+*,+,(-)*-$)= ,=%*5!(5\",\"P 4/m 2/m 2/m\":\" !#$%#% #!$#$!& %&! &%$&$%& !&!$&% & %#$!#%$#! #\",\"P 4/m 2/c 2/c\":\" !#$%#% #!$#$!- %-! -%$-$%& !&!$&% & %+$!+%$+! +\",\"P 4/n 2/b 2/m\":\" !#$%#% #!$#$!& %&! &%$&*,&()&)*&,(&(,#*)#,*#)(#\",\"P 4/n 2/n 2/c\":\" !#$%#% #!$#$!& %&! &%$&*,-()-)*-,(-(,+*)+,*+)(+\",\"P 4/m 21/b 2/m\":\" !#$%#% #!$#*)&(,&)(&,*&$%& !&!$&% &(,#*)#,*#)(#\",\"P 4/m 21/n 2/c\":\" !#$%#% #!$#*)-(,-)(-,*-$%& !&!$&% &(,+*)+,*+)(+\",\"P 4/n 21/m 2/m\":\" !#$%#,(#)*#*)&(,&! &%$&*,&()&!$&% & %#$!#,*#)(#\",\"P 4/n 2/c 2/c\":\" !#$%#,(#)*#*)-(,-! -%$-*,&()&!$&% & %+$!+,*+)(+\",\"P 42/m 2/m 2/c\":\" !#$%#% +!$+$!& %&! -%$-$%& !&!$-% - %#$!#%$+! +\",\"P 42/m 2/c 2/m\":\" !#$%#% +!$+$!- %-! &%$&$%& !&!$-% - %+$!+%$#! #\",\"P 42/n 2/b 2/c\":\" !#$%#,(+)*+$!- %-)(&,*&*,-()-!$&% &(,#*)#%$+! +\",\"P 42/n 2/n 2/m\":\" !#$%#,(+)*+$!& %&)(-,*-*,-()-!$&% &(,+*)+%$#! #\",\"P 42/m 21/b 2/c\":\" !#$%#% +!$+*)&(,&)(-,*-$%& !&!$-% -(,#*)#,*+)(+\",\"P 42/m 21/n 2/m\":\" !#$%#,./'*/*'-.,-! &%$&$%& !&'*-,.-.,/*'/%$#! #\",\"P 42/n 21/m 2/c\":\" !#$%#,(+)*+*)-(,-! &%$&*,-()-!$&% & %#$!#,*+)(+\",\"P 42/n 21/c 2/m\":\" !#$%#,(+)*+*)&(,&! -%$-*,-()-!$&% & %+$!+,*#)(#\",\"I 4/m 2/m 2/m\":\" !#$%#% #!$#$!& %&! &%$&$%& !&!$&% & %#$!#%$#! #()+*,+,(+)*+*)-(,-)(-,*-*,-()-)*-,(-(,+*)+,*+)(+\",\"I 4/m 2/c 2/m\":\" !#$%#% #!$#$!- %-! -%$-$%& !&!$&% & %+$!+%$+! +()+*,+,(+)*+*)&(,&)(&,*&*,-()-)*-,(-(,#*)#,*#)(#\",\"I 41/a 2/m 2/d\":\" !#*,+%(5)$9*!> ,=)(-%$&$,=(!>!$&,(-(,+$!#,$9!(5()+$%#, 9!*5$)=(%>! &,*-*%> )=)*-% & %#*)+%*5) 9\",\"I 41/a 2/c 2/d\":\" !#*,+%(5)$9*!= ,>)(&%$-$,=(!>!$&,(-(,#$!+,$5!(9()+$%#, 9!*5$)>(%=! -,*&*%> )=)*-% & %+*)#%*9) 5\",\"P 3\":\" !#%?#@$#\",\"P 31\":\" !#%?A@$B\",\"P 32\":\" !#%?B@$A\",\"H 3\":\" !#%?#@$#CDAEFAGHAIJBKLBMNB\",\"R 3\":\" !## !!# \",\"P -3\":\" !#%?#@$#$%&!@&? &\",\"H -3\":\" !#%?#@$#$%&!@&? &OPQRSQTUQVWXYZX[]X]Y^W[^ZV^UR_PT_SO_\",\"R -3\":\" !## !!# $%&&$%%&$\",\"P 3 1 2\":\" !#%?#@$#%$&@!& ?&\",\"P 3 2 1\":\" !#%?#@$#! &?%&$@&\",\"P 31 1 2\":\" !#%?Q@$^%$_@!X ?&\",\"P 31 2 1\":\" !#%?A@$B! &?%_$@X\",\"P 32 1 2\":\" !#%?^@$Q%$X@!_ ?&\",\"P 32 2 1\":\" !#%?B@$A! &?%X$@_\",\"H 3 2\":\" !#%?#@$#! &?%&$@&OPQRSQTUQY]X[WXVZX]Y^W[^ZV^PO_SR_UT_\",\"R 3 2\":\" !## !!# %$&$&%&%$\",\"P 3 m 1\":\" !#%?#@$#%$#@!# ?#\",\"P 3 1 m\":\" !#%?#@$#! #?%#$@#\",\"P 3 c 1\":\" !#%?#@$#%$+@!+ ?+\",\"P 3 1 c\":\" !#%?#@$#! +?%+$@+\",\"H 3 m\":\" !#%?#@$#%$#@!# ?#OPQRSQTUQRUQTPQOSQ]Y^W[^ZV^WV^ZY^][^\",\"R 3 m\":\" !## !!# ! # #!#! \",\"H 3 c\":\" !#%?#@$#%$+@!+ ?+OPQRSQTUQRU`TP`OS`]Y^W[^ZV^WVaZYa][a\",\"R 3 c\":\" !## !!# '././'/'.\",\"P -3 1 2/m\":\" !#%?#@$#%$&@!& ?&$%&!@&? &! #?%#$@#\",\"P -3 1 2/c\":\" !#%?#@$#%$-@!- ?-$%&!@&? &! +?%+$@+\",\"P -3 2/m 1\":\" !#%?#@$#! &?%&$@&$%&!@&? &%$#@!# ?#\",\"P -3 2/c 1\":\" !#%?#@$#! -?%-$@-$%&!@&? &%$+@!+ ?+\",\"H -3 2/m\":\" !#%?#@$#! &?%&$@&$%&!@&? &%$#@!# ?#OPQRSQTUQY]X[WXVZXVWXYZX[]XRUQTPQOSQ]Y^W[^ZV^PO_SR_UT_UR_PT_SO_WV^ZY^][^\",\"R -3 2/m\":\" !## !!# %$&$&%&%$$%&&$%%&$! # #!#! \",\"H -3 2/c\":\" !#%?#@$#! -?%-$@-$%&!@&? &%$+@!+ ?+OPQRSQTUQY]b[WbVZbVWXYZX[]XRU`TP`OS`]Y^W[^ZV^POcSRcUTcUR_PT_SO_WVaZYa][a\",\"R -3 2/c\":\" !## !!# 102021210$%&&$%%&$'././'/'.\",\"P 6\":\" !#%?#@$#$%#!@#? #\",\"P 61\":\" !#%?A@$B$%/!@d? e\",\"P 65\":\" !#%?B@$A$%/!@e? d\",\"P 62\":\" !#%?^@$Q$%#!@^? Q\",\"P 64\":\" !#%?Q@$^$%#!@Q? ^\",\"P 63\":\" !#%?#@$#$%+!@+? +\",\"P -6\":\" !#%?#@$# !&%?&@$&\",\"P 6/m\":\" !#%?#@$#$%#!@#? #$%&!@&? & !&%?&@$&\",\"P 63/m\":\" !#%?#@$#$%+!@+? +$%&!@&? & !-%?-@$-\",\"P 6 2 2\":\" !#%?#@$#$%#!@#? #! &?%&$@&%$&@!& ?&\",\"P 61 2 2\":\" !#%?Q@$^$%+!@`? a! X?%&$@_%$b@!- ?c\",\"P 65 2 2\":\" !#%?^@$Q$%+!@a? `! _?%&$@X%$c@!- ?b\",\"P 62 2 2\":\" !#%?^@$Q$%#!@^? Q! _?%&$@X%$_@!& ?X\",\"P 64 2 2\":\" !#%?Q@$^$%#!@Q? ^! X?%&$@_%$X@!& ?_\",\"P 63 2 2\":\" !#%?#@$#$%+!@+? +! &?%&$@&%$-@!- ?-\",\"P 6 m m\":\" !#%?#@$#$%#!@#? #%$#@!# ?#! #?%#$@#\",\"P 6 c c\":\" !#%?#@$#$%#!@#? #%$+@!+ ?+! +?%+$@+\",\"P 63 c m\":\" !#%?#@$#$%+!@+? +%$+@!+ ?+! #?%#$@#\",\"P 63 m c\":\" !#%?#@$#$%+!@+? +%$#@!# ?#! +?%+$@+\",\"P -6 m 2\":\" !#%?#@$# !&%?&@$&%$#@!# ?#%$&@!& ?&\",\"P -6 c 2\":\" !#%?#@$# !-%?-@$-%$+@!+ ?+%$&@!& ?&\",\"P -6 2 m\":\" !#%?#@$# !&%?&@$&! &?%&$@&! #?%#$@#\",\"P -6 2 c\":\" !#%?#@$# !-%?-@$-! &?%&$@&! +?%+$@+\",\"P 6/m 2/m 2/m\":\" !#%?#@$#$%#!@#? #! &?%&$@&%$&@!& ?&$%&!@&? & !&@$&%?&%$#@!# ?#! #?%#$@#\",\"P 6/m 2/c 2/c\":\" !#%?#@$#$%#!@#? #! -?%-$@-%$-@!- ?-$%&!@&? & !&@$&%?&%$+@!+ ?+! +?%+$@+\",\"P 63/m 2/c 2/m\":\" !#%?#@$#$%+!@+? +! -?%-$@-%$&@!& ?&$%&!@&? & !-@$-%?-%$+@!+ ?+! #?%#$@#\",\"P 63/m 2/m 2/c\":\" !#%?#@$#$%+!@+? +! &?%&$@&%$-@!- ?-$%&!@&? & !-@$-%?-%$#@!# ?#! +?%+$@+\",\"P 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& \",\"F 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- \",\"I 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-(\",\"P 21 3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(\",\"I 21 3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- \",\"P 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$\",\"P 2/n -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& *,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*\",\"F 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$ )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-($,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(*%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- *,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$\",\"F 2/d -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& 64=37=345675=64=375345674=67=3453756 )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(68>3:>3896:9=<8=;:5;85<:4><7>;49;79<(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(<4>;7>;49<79>68>3:93896:8=<:=;85;:5<()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- <8=;:=;8f<:f><4>;79;49<78>6:>3893:96\",\n\"I 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-(*,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*\",\"P 21/a -3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&($%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*\",\"I 21/a -3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&($%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*()+$,#*g& %-+()#$,&*!- %)+(,#$!&*%- *,- )&(%#$!+-*,& )#(%+$!,-*)& %#(!+$\",\"P 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$\",\"P 42 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*\",\"F 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$ )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(-%*-!*+%(+ +,$+)$-, -)#)*#,(&)(&,*(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() -,$-)$+, +(#,*#)*&,(&)+!*+%(-!(-%*()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(&,*&)*#,(#(+%*+!*-%(-!+)$+, -) -,$\",\"F 41 3 2\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=46 )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<(!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>86\",\"I 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*\",\"P 43 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(7;>46=:<5839398<5:6=4;>75:<983>7;=46\",\"P 41 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<\",\"I 41 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- 7;>46=:<5839398<5:6=4;>75:<983>7;=46\",\"P -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% \",\"F -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(+%*+!*-%(- +)$+,$-) -,#)(#,*&)*&,((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() +,$+)$-, -(#)*#,*&)(&,+!(+%*-!*-%(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(#,*#)*&,(&(+!*+%*-!(-%+) +,$-)$-, \",\"I -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,(\",\"P -4 3 n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,(\",\"F -4 3 c\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,( )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-() #,$#)$&, &(#!*#%*&!(&%+! +%$-!$-% (!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(!(#%*#!*&%(& +!$+%$-! -%#) #,$&)$&, ()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- ! +%$+!$-% - #)$#,$&) &,#!(#%*&!*&%(\",\"I -4 3 d\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(7354<9:6>8;=357<946>:;=857394<>:6=8;()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- :;98657<=43>;9:658<=73>49:;586=7<>43\",\"P 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! \",\"P 4/n -3 2/n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$*,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"P 42/m -3 2/n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"P 42/n -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,**,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! \",\"F 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(-%*-!*+%(+ +,$+)$-, -)#)*#,(&)(&,*$,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*%*+!(+%(-!*-$-) -, +)$+,&,(&)*#,*#)((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() -,$-)$+, +(#,*#)*&,(&)+!*+%(-!(-%**%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*,$+) +, -)$-*&)(&,(#)*#,-%(-!*+%*+!(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(&,*&)*#,(#(+%*+!*-%(-!+)$+, -) -,$*,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$,*#)(#,(&)*&*-!(-%(+!*+%-, -)$+,$+) \",\"F 4/m -3 2/c\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)( )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-() &,$&)$#, #(#%*#!*&%(&!+!$+% -! -%$$,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*,$#) #, &)$&*&!(&%(#!*#%-% -!$+%$+! (!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(!(&%*&!*#%(# +%$+!$-% -!#)$#, &) &,$*%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*%*#!(#%(&!*&$-! -% +!$+%&, &)$#,$#) ()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- ! -%$-!$+% + #,$#)$&, &)#!*#%(&!(&%**,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$%$+! +% -!$-$&) &, #)$#,&%(&!*#%*#!(\",\"F 41/d -3 2/m\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=4664=3:>;85<79=64>3:5;89<74=6:>385;79<,$+! #%(-)*&*&)(-% #!$+,-%(&)*+,$#! )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<68>37=;49<:5=<8>;753496:4><:=;893756,*#!(+% &)$-*-!(&, +)$#%-, &!$+%*#)((!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<<4>;:=389675>68=379;45<:8=<7>;453:96%$#) +,(&!*-$&! -,(#)*+%&% -)$#,*+!(()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>86<8=;7>3456:9><4=;:9385678>67=349;:5<%*+)(#, -!$&$-) &%(+!*#,&,(-!*#%$+) \",\"F 41/d -3 2/c\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=46<8>;7=3496:5><8=;793456:8><7=;493:56%*#)(+, &!$-$-! &,(+)*#%&, -!$#%*+)( )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<<4=;:>385679>64=3:9;85<78=67>345;:9<%$+) #,(-!*&$&) -%(#!*+,&%(-)*#,$+! (!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<68=37>;45<:9=<4>;:5389674>6:=389;75<,*+!(#% -)$&*-)(&% +!$#,-,(&!*+%$#) ()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>8664>3:=;89<75=68>375;49<:4=<:>;853796,$#! +%(&)*-*&!(-, #)$+%-% &)$+,*#!(\",\"I 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,**,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"I 41/a -3 2/d\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<$%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*4<97358;=:6>6>:;=8357<94=8;>:694<573()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- 7;>46=:<5839398<5:6=4;>75:<983>7;=46*,- )&(%#$!+-*,& )#(%+$!,-*)& %#(!+$865:;943>7<=<=73>4;9:658>43=7<5869:;\",\"P 1 1 2\":\" !#$%#\",\"P 1 1 21\":\" !#$%+\",\"B 1 1 2\":\" !#$%#(g+*%+\",\"A 1 2 1\":\" !#$!& )+$)-\",\"C 1 21 1\":\" !#$)&()#*!&\",\"I 1 2 1\":\" !#$!&.'/0'2\",\"I 1 21 1\":\" !#$)&.'/0!-\",\"P 1 1 m\":\" !# !&\",\"P 1 1 b\":\" !# )&\",\"B 1 1 m\":\" !# !&(!+(!-\",\"B 1 1 b\":\" !# )&(!+()-\",\"P 1 1 2/m\":\" !# !&$%#$%&\",\"P 1 1 21/m\":\" !#$%+$%& !-\",\"B 1 1 2/m\":\" !# !&$%#$%&(!+(!-*%+*%-\",\"P 1 1 2/b\":\" !#$,#$%& )&\",\"P 1 1 21/b\":\" !#$%&$,+ )-\",\"B 1 1 2/b\":\" !#$,#$%& )&(!+*,+*%-()-\",\"P 21 2 2\":\" !#$!&(%&*%#\",\"P 2 21 2\":\" !# ,&$)&$%#\",\"P 21 21 2 (a)\":\" !#*,#.%&$'&\",\"P 21 2 21\":\" !#$!&(%-*%+\",\"P 2 21 21\":\" !# %&$)-$,+\",\"C 2 2 21a)\":\" !#*%+(,&$)-()#$,+ %&*!-\",\"C 2 2 2a\":\" !#*,#.%&$'&()#$%# ,&*!&\",\"F 2 2 2a\":\" !#*,#.%&$'& '/*%/.12$!2.!/$,/ %20'2.'#$%# 1&0!&\",\"I 2 2 2a\":\" !#*,#.%&$'&()+$%+*!- ,-\",\"P 21/m 21/m 2/n a\":\" !#*,#$)&(%&$%&.'& ,#*!#\",\"P 42 21 2a\":\" !#*,#%.+'$+$'&.%&! -,*-\",\"I 2 3a\":\" !#*,#.%&$'&!# ,- '&$%/$# !-*!/$%&.%()+$%+ ,-*!-)+(%&(!-*,#*+()&$)#*,- ,\"};oa.prototype={constructor:oa,type:\"Assembly\",addPart:function(t,e){var i=new aa(t,e);return this.partList.push(i),i},getAtomCount:function(t){var e=0;return this.partList.forEach(function(i){e+=i.getAtomCount(t)}),e},getInstanceCount:function(){var t=0;return this.partList.forEach(function(e){t+=e.matrixList.length}),t},isIdentity:function(t){if(1!==this.partList.length)return!1;var e=this.partList[0];if(1!==e.matrixList.length)return!1;var i=new ht;if(!i.equals(e.matrixList[0]))return!1;var n=[];return t.eachChain(function(t){n.push(t.chainname)}),n=Y(n),e.chainList.length===n.length},getBoundingBox:function(t){var e=new ae;return this.partList.forEach(function(i){var n=i.getBoundingBox(t);e.expandByPoint(n.min),e.expandByPoint(n.max)}),e},getSelection:function(){var t=[];return this.partList.forEach(function(e){t=t.concat(e.chainList)}),ra(t)}},aa.prototype={constructor:aa,type:\"AssemblyPart\",getAtomCount:function(t){var e=0,i=this.chainList;return t.eachChain(function(t){0!==i.length&&i.indexOf(t.chainname)===-1||(e+=t.atomCount)}),this.matrixList.length*e},getBoundingBox:function(t){var e=new ae,i=new ae,n=this.getSelection(),r=t.getBoundingBox(n);return this.matrixList.forEach(function(t){i.copy(r).applyMatrix4(t),e.expandByPoint(i.min),e.expandByPoint(i.max)}),e},getSelection:function(){return ra(this.chainList)},getView:function(t){var e=this.getSelection();return e?t.getView(e):t},getInstanceList:function(){for(var t=[],e=0,i=this.matrixList.length;e=t.residueCount)){a.index=o+h,s.index=o+h+l,c.index=a.traceAtomIndex,u.index=s.traceAtomIndex;var d=c.distanceTo(u);if(Math.abs(d-i[l-2])>n)return!1}return!0},i=function(t,i){var n=[5.45,5.18,6.37],r=2.1;return e(t,i,n,r)},n=function(t,i){var n=[6.1,10.4,13],r=1.42;return e(t,i,n,r)},r=function(t){for(var e=t.residueStore,r=t.residueIndexStart,o=0,a=t.residueCount;o1&&a.bending[u]=3&&t.indexOf(n[0])!==-1?n[0]:\"\"}}();va.prototype={constructor:va,type:\"AtomType\",atomname:void 0,element:void 0,vdw:void 0,covalent:void 0},ba.prototype={constructor:ba,type:\"ResidueType\",resname:void 0,atomTypeIdList:void 0,atomCount:void 0,getBackboneIndexList:function(){var t,e=[];switch(this.moleculeType){case Bm:t=gg;break;case Um:case jm:t=vg;break;default:return e}for(var i=this.structure.atomMap,n=this.atomTypeIdList,r=0,o=this.atomCount;r=2?t(l,e[l],a):i[l]=2;else if(1===i[l]&&c&&c!=l){var d=[l];n[l]=1,r.push(d);for(var f=o.length-1;f>=0;--f){var p=o[f];if(p===l)break;d.push(p),n[p]=1}}}i[a]=2,o.pop()}for(var e=this.getBondGraph(),i=new Int8Array(this.atomCount),n=new Int8Array(this.atomCount),r=[],o=[],a=0;a1){for(e=0;e1){for(e=0;e0){var e=this.residueStore.atomOffset[this.residueIndex];return t.indexOf(this.index-e)!==-1}return!1},isPolymer:function(){var t=this.residueType.moleculeType;return t===Bm||t===Um||t===jm},isSidechain:function(){return this.isPolymer()&&!this.isBackbone()},isCg:function(){var t=this.residueType.backboneType;return t===Xm||t===qm||t===Ym},isHetero:function(){return 1===this.residueType.hetero},isProtein:function(){return this.residueType.moleculeType===Bm},isNucleic:function(){var t=this.residueType.moleculeType;return t===Um||t===jm},isRna:function(){return this.residueType.moleculeType===Um},isDna:function(){return this.residueType.moleculeType===jm},isWater:function(){return this.residueType.moleculeType===Fm},isIon:function(){return this.residueType.moleculeType===zm},isSaccharide:function(){return this.residueType.moleculeType===$m},isRing:function(){var t=this.residueType.getRings().flags;return 1===t[this.index-this.residueAtomOffset]},distanceTo:function(t){var e=this.atomStore,i=t.atomStore,n=this.index,r=t.index,o=e.x[n]-i.x[r],a=e.y[n]-i.y[r],s=e.z[n]-i.z[r],c=o*o+a*a+s*s;return Math.sqrt(c)},connectedTo:function(t){var e=this.atomStore,i=t.atomStore,n=this.index,r=t.index;if(e.altloc&&i.altloc){var o=e.altloc[n],a=i.altloc[r];if(0!==o&&0!==a&&32!==o&&32!==a&&o!==a)return!1}var s=e.x[n]-i.x[r],c=e.y[n]-i.y[r],u=e.z[n]-i.z[r],h=s*s+c*c+u*u;if(h<64&&this.isCg())return!0;if(isNaN(h))return!1;var l=this.covalent+t.covalent,d=l+.3,f=l-.5;return hf*f},positionFromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e+0],this.y=t[e+1],this.z=t[e+2],this},positionToArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var i=this.index,n=this.atomStore;return t[e+0]=n.x[i],t[e+1]=n.y[i],t[e+2]=n.z[i],t},positionToVector3:function(t){return void 0===t&&(t=new dt),t.x=this.x,t.y=this.y,t.z=this.z,t},positionFromVector3:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},getResidueBonds:function(t){var e,i,n,r,o=this.residueAtomOffset,a=this.index-this.residueAtomOffset,s=this.residueType.getBonds(),c=s.atomIndices1,u=s.atomIndices2;for(t||(r=[]),e=c.indexOf(a);e!==-1;){if(n=u[e]+o,t)return n;r.push(n),e=c.indexOf(a,e+1)}for(i=u.indexOf(a);i!==-1;){if(n=c[i]+o,t)return n;r.push(n),i=u.indexOf(a,i+1)}return r},qualifiedName:function(t){var e=\"\";return this.resname&&!t&&(e+=\"[\"+this.resname+\"]\"),void 0!==this.resno&&(e+=this.resno),this.inscode&&(e+=\"^\"+this.inscode),this.chainname&&(e+=\":\"+this.chainname),this.atomname&&(e+=\".\"+this.atomname),this.altloc&&(e+=\"%\"+this.altloc),e+=\"/\"+this.modelIndex},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,residueIndex:this.residueIndex,atomno:this.atomno,resname:this.resname,x:this.x,y:this.y,z:this.z,element:this.element,chainname:this.chainname,resno:this.resno,serial:this.serial,vdw:this.vdw,covalent:this.covalent,hetero:this.hetero,bfactor:this.bfactor,altloc:this.altloc,atomname:this.atomname,modelindex:this.modelindex}}},Sa.prototype={constructor:Sa,type:\"ResidueProxy\",structure:void 0,chainStore:void 0,residueStore:void 0,atomStore:void 0,index:void 0,get chain(){return this.structure.getChainProxy(this.chainIndex)},get chainIndex(){return this.residueStore.chainIndex[this.index]},set chainIndex(t){this.residueStore.chainIndex[this.index]=t},get atomOffset(){return this.residueStore.atomOffset[this.index]},set atomOffset(t){this.residueStore.atomOffset[this.index]=t},get atomCount(){return this.residueStore.atomCount[this.index]},set atomCount(t){this.residueStore.atomCount[this.index]=t},get atomEnd(){return this.atomOffset+this.atomCount-1},get modelIndex(){return this.chainStore.modelIndex[this.chainIndex]},get chainname(){return this.chainStore.getChainname(this.chainIndex)},get resno(){return this.residueStore.resno[this.index]},set resno(t){this.residueStore.resno[this.index]=t},get sstruc(){return this.residueStore.getSstruc(this.index)},set sstruc(t){this.residueStore.setSstruc(this.index,t)},get inscode(){return this.residueStore.getInscode(this.index)},set inscode(t){this.residueStore.getInscode(this.index,t)},get residueType(){return this.residueMap.get(this.residueStore.residueTypeId[this.index])},get resname(){return this.residueType.resname},get hetero(){return this.residueType.hetero},get moleculeType(){return this.residueType.moleculeType},get backboneType(){return this.residueType.backboneType},get backboneStartType(){return this.residueType.backboneStartType},get backboneEndType(){return this.residueType.backboneEndType},get traceAtomIndex(){return this.residueType.traceAtomIndex+this.atomOffset},get direction1AtomIndex(){return this.residueType.direction1AtomIndex+this.atomOffset},get direction2AtomIndex(){return this.residueType.direction2AtomIndex+this.atomOffset},get backboneStartAtomIndex(){return this.residueType.backboneStartAtomIndex+this.atomOffset},get backboneEndAtomIndex(){return this.residueType.backboneEndAtomIndex+this.atomOffset},get rungEndAtomIndex(){return this.residueType.rungEndAtomIndex+this.atomOffset},eachAtom:function(t,e){var i,n=this.atomCount,r=this.atomOffset,o=this.structure._ap,a=r+n;if(e&&e.atomOnlyTest){var s=e.atomOnlyTest;for(i=r;i=e){if(void 0===t&&(t=this.structure.getResidueProxy()),t.index=i,t.connectedTo(this))return t}else if(i===e-1){void 0===t&&(t=this.structure.getResidueProxy());var n=this.chainStore.residueCount[this.chainIndex];if(t.index=e+n-1,t.connectedTo(this))return t}},getBonds:function(){return this.residueType.getBonds(this)},getRings:function(){return this.residueType.getRings()},qualifiedName:function(t){var e=\"\";return this.resname&&!t&&(e+=\"[\"+this.resname+\"]\"),void 0!==this.resno&&(e+=this.resno),this.inscode&&(e+=\"^\"+this.inscode),this.chain&&(e+=\":\"+this.chainname),e+=\"/\"+this.modelIndex},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,chainIndex:this.chainIndex,atomOffset:this.atomOffset,atomCount:this.atomCount,resno:this.resno,resname:this.resname,sstruc:this.sstruc}}},Aa.prototype={constructor:Aa,type:\"Polymer\",structure:void 0,residueStore:void 0,atomStore:void 0,residueIndexStart:void 0,residueIndexEnd:void 0,residueCount:void 0,get chainIndex(){return this.residueStore.chainIndex[this.residueIndexStart]},get modelIndex(){return this.chainStore.modelIndex[this.chainIndex]},get chainname(){return this.chainStore.getChainname(this.chainIndex)},isProtein:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isProtein()},isCg:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isCg()},isNucleic:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isNucleic()},getMoleculeType:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.moleculeType},getBackboneType:function(t){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.getBackboneType(t)},getAtomIndexByType:function(t,e){this.isCyclic?t===-1?t=this.residueCount-1:t===this.residueCount&&(t=0):(t!==-1||this.isPrevConnected||(t+=1),t!==this.residueCount||this.isNextNextConnected||(t-=1));var i=this.__residueProxy;i.index=this.residueIndexStart+t;var n;switch(e){case\"trace\":n=i.traceAtomIndex;break;case\"direction1\":n=i.direction1AtomIndex;break;case\"direction2\":n=i.direction2AtomIndex;break;default:var r=i.getAtomByName(e);n=r?r.index:void 0}return n},eachAtom:function(t,e){this.eachResidue(function(i){i.eachAtom(t,e)},e)},eachAtomN:function(t,e,i){var n,r=this.residueCount,o=new Array(t);for(n=0;n=n&&i=t&&e.apply(this,a)}})}},eachDirectionAtomsN:function(t,e){var i=2*t,n=this.atomOffset,r=this.atomCount,o=n+r;if(!(r=n&&i=n&&r=t&&e.apply(this,a)}},c,u)}},eachResidue:function(t){for(var e=this.structure.getResidueProxy(),i=this.residueCount,n=this.residueIndexStart,r=0;r1&&t(new Aa(o,i,u.index)),i=n)):(m!==Vm&&u.index-i>1&&t(new Aa(o,i,u.index)),i=n)}n-i>1&&this.structure.getResidueProxy(i).backboneStartType&&t(new Aa(o,i,n))},qualifiedName:function(){var t=\":\"+this.chainname+\"/\"+this.modelIndex;return t},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,residueOffset:this.residueOffset,residueCount:this.residueCount,chainname:this.chainname}}},Pa.prototype={constructor:Pa,type:\"ModelProxy\",structure:void 0,modelStore:void 0,index:void 0,get chainOffset(){return this.modelStore.chainOffset[this.index]},set chainOffset(t){this.modelStore.chainOffset[this.index]=t},get chainCount(){return this.modelStore.chainCount[this.index]},set chainCount(t){this.modelStore.chainCount[this.index]=t},get residueOffset(){return this.chainStore.residueOffset[this.chainOffset]},get atomOffset(){return this.residueStore.atomOffset[this.residueOffset]},get chainEnd(){return this.chainOffset+this.chainCount-1},get residueEnd(){return this.chainStore.residueOffset[this.chainEnd]+this.chainStore.residueCount[this.chainEnd]-1},get atomEnd(){return this.residueStore.atomOffset[this.residueEnd]+this.residueStore.atomCount[this.residueEnd]-1},get residueCount(){return 0===this.chainCount?0:this.residueEnd-this.residueOffset+1},get atomCount(){return 0===this.residueCount?0:this.atomEnd-this.atomOffset+1},eachAtom:function(t,e){this.eachChain(function(i){i.eachAtom(t,e)},e)},eachResidue:function(t,e){this.eachChain(function(i){i.eachResidue(t,e)},e)},eachPolymer:function(t,e){if(e&&e.chainOnlyTest){var i=e.chainOnlyTest;this.eachChain(function(n){i(n)&&n.eachPolymer(t,e)})}else this.eachChain(function(i){i.eachPolymer(t,e)})},eachChain:function(t,e){var i,n=this.chainCount,r=this.chainOffset,o=this.structure._cp,a=r+n;if(e&&e.test){var s=e.chainOnlyTest;if(s)for(i=r;i1?(L=i.atomRadius(S),O=L*y/(.5*I),_.calculateShiftDir(F),v?(R=2*b*L,F.multiplyScalar(R),F.negate(),N.subVectors(A,S).multiplyScalar(Math.max(.1,R/1.88)),S.positionToArray(o,C),A.positionToArray(a,C),I>=2&&(D.addVectors(S,F).add(N).toArray(o,C+3),D.addVectors(A,F).sub(N).toArray(a,C+3),I>=3&&(D.subVectors(S,F).add(N).toArray(o,C+6),D.subVectors(A,F).sub(N).toArray(a,C+6)))):(R=(b-y)*L,F.multiplyScalar(R),2===I?(D.addVectors(S,F).toArray(o,C),D.subVectors(S,F).toArray(o,C+3),D.addVectors(A,F).toArray(a,C),D.subVectors(A,F).toArray(a,C+3)):3===I?(S.positionToArray(o,C),D.addVectors(S,F).toArray(o,C+3),D.subVectors(S,F).toArray(o,C+6),A.positionToArray(a,C),D.addVectors(A,F).toArray(a,C+3),D.subVectors(A,F).toArray(a,C+6)):(S.positionToArray(o,C),A.positionToArray(a,C)))):(S.positionToArray(o,C),A.positionToArray(a,C))),s&&(n.bondColorToArray(_,1,s,C),n.bondColorToArray(_,0,c,C),g&&I>1))for(E=1;E1))for(E=1;E1))for(O=l[k]*y/(v?1:.5*I),E=v?1:0;E1))for(O=d[k]*y/(v?1:.5*I),E=v?1:0;Ea&&(a=e),i>s&&(s=i),u>c&&(c=u)},e),i.min.set(n,r,o),i.max.set(a,s,c),t.Debug&&ty.timeEnd(\"getBoundingBox\"),i},getPrincipalAxes:function(e){t.Debug&&ty.time(\"getPrincipalAxes\");var i=0,n=new So(3,this.atomCount),r=n.data;return this.eachAtom(function(t){r[i+0]=t.x,r[i+1]=t.y,r[i+2]=t.z,i+=3},e),t.Debug&&ty.timeEnd(\"getPrincipalAxes\"),No(n)},atomCenter:function(t){return t?this.getBoundingBox(t).center():this.center.clone()},getSequence:function(t){var e=[],i=this.getResidueProxy();return this.eachAtom(function(t){i.index=t.residueIndex,t.index===i.traceAtomIndex&&e.push(i.getResname1())},t),e},getAtomIndices:function(t){var e;if(t&&t.string)e=[],this.eachAtom(function(t){e.push(t.index)},t);else{var i={what:{index:!0}};e=this.getAtomData(i).index}return e},updatePosition:function(t){var e=0;this.eachAtom(function(i){i.positionFromArray(t,e),e+=3})},dispose:function(){ey.removeObject(this),this.frames&&(this.frames.length=0),this.boxes&&(this.boxes.length=0),this.bondStore.dispose(),this.backboneBondStore.dispose(),this.rungBondStore.dispose(),this.atomStore.dispose(),this.residueStore.dispose(),this.chainStore.dispose(),this.modelStore.dispose(),delete this.bondStore,delete this.atomStore,delete this.residueStore,delete this.chainStore,delete this.modelStore,delete this.frames,delete this.boxes,delete this.cif,delete this.bondSet,delete this.atomSet}},Ca.prototype={constructor:Ca,type:\"Surface\",set:function(t,e,i,n,r){this.position=t,this.index=e,this.normal=i,this.color=n,this.atomindex=r,this.size=t.length/3},fromGeometry:function(e){t.Debug&&ty.time(\"GeometrySurface.fromGeometry\");var i;e instanceof Fe?(e.computeVertexNormals(!0),i=(new Ue).fromGeometry(e)):i=e instanceof Ue?e:e[0],i.boundingBox||i.computeBoundingBox(),this.center.copy(i.boundingBox.center()),this.boundingBox.copy(i.boundingBox);var n,r,o,a;if(i instanceof Ue){var s=i.attributes,c=!!s.normal&&s.normal.array;(!c||0===c[0]&&0===c[1]&&0===c[2])&&i.computeVertexNormals(),n=s.position.array,o=s.index?s.index.array:null,a=s.normal.array}this.set(n,o,a,r,void 0),t.Debug&&ty.timeEnd(\"GeometrySurface.setGeometry\")},getPosition:function(){return this.position},getColor:function(t){var e,i,n,r=t||{},o=this.size;if(\"volume\"===r.scheme){var a=new dt,s=this.position;for(n=ry.getScheme(r),i=new Float32Array(3*o),e=0;e65535?Uint32Array:Uint16Array;return new g(r)}return this.index},getAtomindex:function(){return this.atomindex},dispose:function(){}},Ta.prototype.constructor=Ta,Ia.prototype.constructor=Ia,Ra.__deps=[La,Oa],ka.__deps=[Da],Da.__deps=[po,fo,mo,ho],Na.__deps=[ka,Da,Ra,co,uo,Vo,Go],ny.add(\"surf\",function(t,e){var i=t.data.args,n=t.data.params;if(i&&(self.volsurf=new Na(i[0],i[1],i[2],i[3],i[4])),n){var r=self.volsurf.getSurface(n.isolevel,n.smooth,n.box,n.matrix),o=[r.position.buffer,r.index.buffer];r.normal&&o.push(r.normal.buffer),r.atomindex&&o.push(r.atomindex.buffer),e({sd:r,p:n},o)}},[Na]),Fa.prototype={constructor:Fa,type:\"Volume\",setData:function(t,e,i,n,r){this.nx=e||1,this.ny=i||1,this.nz=n||1,this.data=t||new Float32Array(1),this.__data=this.data,this.setDataAtomindex(r),delete this.mc,delete this.__isolevel,delete this.__smooth,delete this.__minValue,delete this.__maxValue,delete this.__dataPositionBuffer,delete this.__dataPosition,delete this.__dataBuffer,delete this.__dataMin,delete this.__dataMax,delete this.__dataMean,delete this.__dataRms,this.worker&&this.worker.terminate(),this.__data.length<=Math.pow(10,7)?ey.updateObject(this,!0):(ty.warn(\"Volume too large (>10^7), not adding to GidPool\"),ey.removeObject(this))},setMatrix:function(t){this.matrix.copy(t);var e=this.boundingBox,i=this.center,n=this.nx-1,r=this.ny-1,o=this.nz-1;e.makeEmpty(),e.expandByPoint(i.set(n,r,o)),e.expandByPoint(i.set(n,r,0)),e.expandByPoint(i.set(n,0,o)),e.expandByPoint(i.set(n,0,0)),e.expandByPoint(i.set(0,r,o)),e.expandByPoint(i.set(0,0,o)),e.expandByPoint(i.set(0,r,0)),e.expandByPoint(i.set(0,0,0)),e.applyMatrix4(this.matrix),e.center(this.center);var a=this.matrix.elements,s=new dt(a[0],a[1],a[2]),c=new dt(a[4],a[5],a[6]),u=new dt(a[8],a[9],a[10]),h=new dt,l=this.normalMatrix.elements;h.crossVectors(c,u),l[0]=h.x,l[1]=h.y,l[2]=h.z,h.crossVectors(u,s),l[3]=h.x,l[4]=h.y,l[5]=h.z,h.crossVectors(s,c),l[6]=h.x,l[7]=h.y,l[8]=h.z,this.inverseMatrix.getInverse(this.matrix)},setDataAtomindex:function(t){this.dataAtomindex=t,this.__dataAtomindex=this.dataAtomindex,delete this.__dataAtomindexBuffer},getBox:function(t,e,i){return i||(i=new ae),i.set(t,t),i.expandByScalar(e),i.applyMatrix4(this.inverseMatrix),i.min.round(),i.max.round(),i},__getBox:function(t,e){if(t&&e){this.__box||(this.__box=new ae);var i=this.getBox(t,e,this.__box);return[i.min.toArray(),i.max.toArray()]}},makeSurface:function(t,e,i){var n=new Ca(\"\",\"\",t);return n.info.isolevel=e,n.info.smooth=i,n},getSurface:function(t,e,i,n){t=isNaN(t)?this.getValueForSigma(2):t,e=e||0,void 0===this.volsurf&&(this.volsurf=new Na(this.__data,this.nx,this.ny,this.nz,this.__dataAtomindex));var r=this.__getBox(i,n),o=this.volsurf.getSurface(t,e,r,this.matrix.elements);return this.makeSurface(o,t,e)},getSurfaceWorker:function(t,e,i,n,r){if(t=isNaN(t)?this.getValueForSigma(2):t,e=e||0,window.Worker){void 0===this.workerPool&&(this.workerPool=new Ia(\"surf\",2));var o={},a=this.workerPool.getNextWorker();0===a.postCount&&(o.args=[this.__data,this.nx,this.ny,this.nz,this.__dataAtomindex]),o.params={isolevel:t,smooth:e,box:this.__getBox(i,n),matrix:this.matrix.elements},a.post(o,void 0,function(t){var e=t.data.sd,i=t.data.p;r(this.makeSurface(e,i.isolevel,i.smooth))}.bind(this),function(o){console.warn(\"Volume.getSurfaceWorker error - trying without worker\",o);var a=this.getSurface(t,e,i,n);r(a)}.bind(this))}else{var s=this.getSurface(t,e,i,n);r(s)}},getValueForSigma:function(t){return t=void 0!==t?t:2,this.getDataMean()+t*this.getDataRms()},getSigmaForValue:function(t){return t=void 0!==t?t:0,(t-this.getDataMean())/this.getDataRms()},filterData:function(t,e,i){isNaN(t)&&this.header&&(t=this.header.DMEAN+2*this.header.ARMS),t=void 0===t||isNaN(t)?-(1/0):t,e=void 0!==e?e:1/0,i=i||!1,this.dataPosition||this.makeDataPosition();var n=this.__dataPosition,r=this.__data;if(t!==this.__minValue||e!=this.__maxValue||i!==this.__outside){if(t===-(1/0)&&e===1/0)this.dataPosition=n,this.data=r;else{var o=r.length;this.__dataBuffer||(this.__dataPositionBuffer=new ArrayBuffer(3*o*4),this.__dataBuffer=new ArrayBuffer(4*o));for(var a=new Float32Array(this.__dataPositionBuffer),s=new Float32Array(this.__dataBuffer),c=0,u=0;u=t&&l<=e||i&&(le)){var d=3*c;a[d+0]=n[h+0],a[d+1]=n[h+1],a[d+2]=n[h+2],s[c]=l,c+=1}}this.dataPosition=new Float32Array(this.__dataPositionBuffer,0,3*c),this.data=new Float32Array(this.__dataBuffer,0,c)}this.__minValue=t,this.__maxValue=e,this.__outside=i}},makeDataPosition:function(){for(var t=this.nz,e=this.ny,i=this.nx,n=new Float32Array(i*e*t*3),r=0,o=0;o.9*e[3*n+n])if(o>0)for(r=0;r<3;++r)t[i+r]-=e[3*n+r];else for(r=0;r<3;++r)t[i+r]+=e[3*n+r];return t}},superpose:function(t){var e,i,n=3*this.indices.length,r=this.coords1,o=this.coords2;for(e=0;e0&&this.params.centerPbc){var r=[e[0],e[4],e[8]],o=this.getCircularMean(this.backboneIndices,i,r);this.centerPbc(i,o,r)}this.params.removePbc&&this.removePbc(i,e)}this.indices.length>0&&this.params.superpose&&this.superpose(i),this.frameCache[t]=i,this.boxCache[t]=e,this.frameCacheSize+=1},setNumframes:function(t){t!==this.numframes&&(this.numframes=t,this.signals.gotNumframes.dispatch(t))},dispose:function(){this.frameCache=[],this._disposed=!0,this.player&&this.player.stop()},setPlayer:function(t){this.player=t,this.signals.playerChanged.dispatch(t)},getPath:function(t,e){ty.error(\"Trajectory.getPath not implemented\",t,e)}},$a.prototype={constructor:$a,parameters:{opaqueBack:{updateShader:!0},dullInterior:{updateShader:!0},side:{updateShader:!0,property:!0},opacity:{uniform:!0},clipNear:{updateShader:!0,property:!0},flatShaded:{updateShader:!0},background:{updateShader:!0},linewidth:{property:!0},wireframe:{updateVisibility:!0},roughness:{uniform:!0},metalness:{uniform:!0},diffuse:{uniform:!0}},get transparent(){return this.opacity<1||this.forceTransparent},makeMaterial:function(){var t=ja(this.side);this.material=new ne({uniforms:this.uniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:this.transparent,depthWrite:!0,lights:!0,fog:!0,side:t,linewidth:this.linewidth}),this.material.vertexColors=fl,this.material.extensions.derivatives=this.flatShaded,this.material.extensions.fragDepth=this.impostor,this.material.clipNear=this.clipNear,this.wireframeMaterial=new ne({uniforms:this.uniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:this.transparent,depthWrite:!0,lights:!1,fog:!0,side:t,linewidth:this.linewidth}),this.wireframeMaterial.vertexColors=fl,this.wireframeMaterial.clipNear=this.clipNear,this.pickingMaterial=new ne({uniforms:this.pickingUniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:!1,depthWrite:!0,lights:!1,fog:!1,side:t,linewidth:this.linewidth}),this.pickingMaterial.vertexColors=fl,this.pickingMaterial.extensions.fragDepth=this.impostor,this.pickingMaterial.clipNear=this.clipNear,this.updateShader()},makeWireframeGeometry:function(){this.makeWireframeIndex();var t=this.geometry,e=this.wireframeIndex,i=new Ue;i.attributes=t.attributes,e&&(i.setIndex(new Ce(e,1).setDynamic(this.dynamic)),i.setDrawRange(0,this.wireframeIndexCount)),this.wireframeGeometry=i},makeWireframeIndex:function(){function t(t,i){if(t>i){var n=t;t=i,i=n}var r=e[t];return void 0===r?(e[t]=[i],!0):r.indexOf(i)===-1&&(r.push(i),!0)}var e=[];return function(){var i=this.geometry.index;if(this.wireframe){if(i){var n=i.array,r=n.length;this.geometry.drawRange.count!==1/0&&(r=this.geometry.drawRange.count);var o;if(this.wireframeIndex&&this.wireframeIndex.length>2*r)o=this.wireframeIndex;else{var a=this.geometry.attributes.position.count,s=a>65535?Uint32Array:Uint16Array;o=new s(2*r)}var c=0;e.length=0;for(var u=0;uthis.wireframeGeometry.index.array.length)this.wireframeGeometry.setIndex(new Ce(this.wireframeIndex,1).setDynamic(this.dynamic));else{var t=this.wireframeGeometry.getIndex();t.set(this.wireframeIndex),t.needsUpdate=this.wireframeIndexCount>0,t.updateRange.count=this.wireframeIndexCount}this.wireframeGeometry.setDrawRange(0,this.wireframeIndexCount)},getRenderOrder:function(){var t=0;return\"text\"===this.type?t=1:this.transparent&&(t=\"surface\"===this.type?3:2),t},getMesh:function(){var t;return this.material||this.makeMaterial(),this.line?t=new bi(this.geometry,this.material):this.point?(t=new _i(this.geometry,this.material),this.sortParticles&&(t.sortParticles=!0)):t=new ti(this.geometry,this.material),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getWireframeMesh:function(){var t;return this.material||this.makeMaterial(),this.wireframeGeometry||this.makeWireframeGeometry(),t=new bi(this.wireframeGeometry,this.wireframeMaterial),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getPickingMesh:function(){var t;return this.material||this.makeMaterial(),t=new ti(this.geometry,this.pickingMaterial),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getShader:function(t,e){return Vr(t,this.getDefines(e))},getVertexShader:function(t){return this.getShader(this.vertexShader,t)},getFragmentShader:function(t){return this.getShader(this.fragmentShader,t)},getDefines:function(t){var e={};return this.clipNear&&(e.NEAR_CLIP=1),\"picking\"===t?e.PICKING=1:((\"background\"===t||this.background)&&(e.NOLIGHT=1),this.flatShaded&&(e.FLAT_SHADED=1),this.opaqueBack&&(e.OPAQUE_BACK=1),\nthis.dullInterior&&(e.DULL_INTERIOR=1)),e},getParameters:function(){var t={};for(var e in this.parameters)t[e]=this[e];return t},addUniforms:function(t){this.uniforms=bf.merge([this.uniforms,t]),this.pickingUniforms=bf.merge([this.pickingUniforms,t])},addAttributes:function(t){var e={f:1,v2:2,v3:3,c:3};for(var i in t){var n,r=t[i];r.value?(this.attributeSize*e[r.type]!==r.value.length&&ty.error(\"attribute value has wrong length\",i),n=r.value):n=new Float32Array(this.attributeSize*e[r.type]),this.geometry.addAttribute(i,new Ce(n,e[r.type]).setDynamic(this.dynamic))}},updateRenderOrder:function(){function t(t){t.renderOrder=e}var e=this.getRenderOrder();this.group.children.forEach(t),this.pickingGroup&&this.pickingGroup.children.forEach(t)},updateShader:function(){var t=this.material,e=this.wireframeMaterial,i=this.pickingMaterial;t.vertexShader=this.getVertexShader(),t.fragmentShader=this.getFragmentShader(),t.needsUpdate=!0,e.vertexShader=this.getShader(\"Line.vert\"),e.fragmentShader=this.getShader(\"Line.frag\"),e.needsUpdate=!0,i.vertexShader=this.getVertexShader(\"picking\"),i.fragmentShader=this.getFragmentShader(\"picking\"),i.needsUpdate=!0},setParameters:function(t){if(t){var e=t,i=this.parameters,n={},r={},o=!1,a=!1;for(var s in e)void 0!==e[s]&&void 0!==i[s]&&(this[s]=e[s],i[s].property&&(i[s].property!==!0?n[i[s].property]=e[s]:n[s]=e[s]),i[s].uniform&&(i[s].uniform!==!0?r[i[s].uniform]=e[s]:r[s]=e[s]),i[s].updateShader&&(o=!0),i[s].updateVisibility&&(a=!0),this.dynamic&&\"wireframe\"===s&&e[s]===!0&&this.updateWireframeIndex(),\"flatShaded\"===s&&(this.material.extensions.derivatives=this.flatShaded),\"forceTransparent\"===s&&(n.transparent=this.transparent));this.setProperties(n),this.setUniforms(r),o&&this.updateShader(),a&&this.setVisibility(this.visible)}},setAttributes:function(t){var e=this.geometry,i=e.attributes;for(var n in t){var r=t[n],o=r.length;if(\"index\"===n){var a=e.getIndex();e.setDrawRange(0,1/0),o>a.array.length?e.setIndex(new Ce(r,1).setDynamic(this.dynamic)):(a.set(r),a.needsUpdate=o>0,a.updateRange.count=o,e.setDrawRange(0,o)),this.indexVersion++,this.wireframe&&this.updateWireframeIndex()}else{var s=i[n];o>s.array.length?e.addAttribute(n,new Ce(r,s.itemSize).setDynamic(this.dynamic)):(i[n].set(r),i[n].needsUpdate=o>0,i[n].updateRange.count=o)}}},setUniforms:function(t){if(t){var e=this.material.uniforms,i=this.wireframeMaterial.uniforms,n=this.pickingMaterial.uniforms;for(var r in t)\"opacity\"===r&&this.setProperties({transparent:this.transparent}),void 0!==e[r]&&(e[r].value.set?e[r].value.set(t[r]):e[r].value=t[r]),void 0!==i[r]&&(i[r].value.set?i[r].value.set(t[r]):i[r].value=t[r]),void 0!==n[r]&&(n[r].value.set?n[r].value.set(t[r]):n[r].value=t[r])}},setProperties:function(t){if(t){var e=this.material,i=this.wireframeMaterial,n=this.pickingMaterial;for(var r in t){var o=t[r];\"transparent\"===r?this.updateRenderOrder():\"side\"===r&&(o=ja(o)),void 0!==e[r]&&(e[r]=o),void 0!==i[r]&&(i[r]=o),void 0!==n[r]&&(n[r]=o)}e.needsUpdate=!0,i.needsUpdate=!0,n.needsUpdate=!0}},setVisibility:function(t){this.visible=t,this.wireframe?(this.group.visible=!1,this.wireframeGroup.visible=t,this.pickable&&(this.pickingGroup.visible=!1)):(this.group.visible=t,this.wireframeGroup.visible=!1,this.pickable&&(this.pickingGroup.visible=t))},dispose:function(){this.material&&this.material.dispose(),this.wireframeMaterial&&this.wireframeMaterial.dispose(),this.pickingMaterial&&this.pickingMaterial.dispose(),this.geometry.dispose(),this.wireframeGeometry&&this.wireframeGeometry.dispose()}},Va.prototype=Object.assign(Object.create($a.prototype),{constructor:Va}),Xa.prototype=Object.assign(Object.create(Va.prototype),{constructor:Xa,applyPositionTransform:function(){},setAttributes:function(){var t=new ht,e=new ce;return function(i){var n,r,o,a,s,c,u,h,l,d,f,p=this.geometry.attributes;i.position&&(n=i.position,a=this.geoPosition,h=this.meshPosition,c=this.transformedGeoPosition,p.position.needsUpdate=!0),i.color&&(r=i.color,l=this.meshColor,p.color.needsUpdate=!0),i.pickingColor&&(o=i.pickingColor,d=this.meshPickingColor,p.pickingColor.needsUpdate=!0);var m=!(!this.updateNormals||!n),g=!(!this.initNormals||!n);(m||g)&&(s=this.geoNormal,f=this.meshNormal,u=this.transformedGeoNormal,p.normal.needsUpdate=!0);for(var v=this.positionCount,y=this.geoPositionCount,b=0;b0?(this.tasks.change(1-this.queue.length()),this.queue.kill()):this.tasks.increment(),t||(t=this.getParameters(),delete t.quality),void this.queue.push(t)):(t||(t=this.getParameters(),delete t.quality),this.tasks.increment(),void this.make(t,function(){}))},make:function(e,i){t.Debug&&ty.time(\"Representation.make \"+this.type),e&&!e.__update&&this.init(e);var n=function(){e.__update?(this.update(e.__update),this.viewer.requestRender(),this.tasks.decrement(),i()):(this.clear(),this.create(),this.manualAttach||this.disposed||(t.Debug&&ty.time(\"Representation.attach \"+this.type),this.attach(function(){t.Debug&&ty.timeEnd(\"Representation.attach \"+this.type),this.tasks.decrement(),i()}.bind(this)))),t.Debug&&ty.timeEnd(\"Representation.make \"+this.type)}.bind(this);this.prepare?this.prepare(n):n()},attach:function(t){this.setVisibility(this.visible),t()},setVisibility:function(t,e){if(this.visible=t,this.visible){var i=this.lazyProps;if(i.build)return i.build=!1,void this.build();(i.bufferParams||i.what)&&this.updateParameters(i.bufferParams,i.what)}return this.bufferList.forEach(function(e){e.setVisibility(t)}),e||this.viewer.requestRender(),this},setParameters:function(t,e,i){var n=t||{},r=this.parameters;e=e||{},i=i||!1;var o={};for(var a in n)void 0!==n[a]&&void 0!==r[a]&&(r[a].int&&(n[a]=parseInt(n[a])),r[a].float&&(n[a]=parseFloat(n[a])),n[a]!==this[a]&&(this[a]=n[a],r[a].buffer&&(r[a].buffer===!0?o[a]=n[a]:o[r[a].buffer]=n[a]),r[a].update&&(e[r[a].update]=!0),!r[a].rebuild||\"impostor\"===r[a].rebuild&&Jv&&!this.disableImpostor||(i=!0)));return i?this.build():this.updateParameters(o,e),this},updateParameters:function(t,e){return this.lazy&&!this.visible?(Object.assign(this.lazyProps.bufferParams,t),void Object.assign(this.lazyProps.what,e)):(this.bufferList.forEach(function(e){e.setParameters(t)}),Object.keys(e).length&&this.update(e),void this.viewer.requestRender())},getParameters:function(){var t={lazy:this.lazy,visible:this.visible,quality:this.quality};return Object.keys(this.parameters).forEach(function(e){\"button\"===this.parameters.type?t[e]=this[e].bind(this):t[e]=this[e]},this),t},clear:function(){this.bufferList.forEach(function(t){this.viewer.remove(t),t.dispose()},this),this.bufferList.length=0,this.viewer.requestRender()},dispose:function(){this.disposed=!0,this.queue.kill(),this.tasks.dispose(),this.clear()}},hs.prototype=Object.assign(Object.create(us.prototype),{constructor:hs,type:\"buffer\",parameters:Object.assign({},us.prototype.parameters,{colorScheme:null,colorScale:null,colorValue:null,colorDomain:null,colorMode:null}),create:function(){this.bufferList.push.apply(this.bufferList,this.buffer)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t),t.setParameters(this.getBufferParams())},this),this.setVisibility(this.visible),t()}}),ls.prototype=Object.assign(Object.create(Va.prototype),{constructor:ls,type:\"surface\"}),ds.prototype.constructor=ds,fs.prototype=Object.assign(Object.create(us.prototype),{constructor:fs,type:\"surface\",parameters:Object.assign({isolevelType:{type:\"select\",options:{value:\"value\",sigma:\"sigma\"}},isolevel:{type:\"number\",precision:2,max:1e3,min:-1e3},smooth:{type:\"integer\",precision:1,max:10,min:0},background:{type:\"boolean\",rebuild:!0},opaqueBack:{type:\"boolean\",buffer:!0},boxSize:{type:\"integer\",precision:1,max:100,min:0},useWorker:{type:\"boolean\",rebuild:!0}},us.prototype.parameters),init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"uniform\"),e.colorValue=$(e.colorValue,14540253),this.isolevelType=$(e.isolevelType,\"sigma\"),this.isolevel=$(e.isolevel,2),this.smooth=$(e.smooth,0),this.background=$(e.background,!1),this.opaqueBack=$(e.opaqueBack,!0),this.boxSize=$(e.boxSize,0),this.useWorker=$(e.useWorker,!0),us.prototype.init.call(this,e)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t)},this),this.setVisibility(this.visible),t()},prepare:function(t){if(this.volume){var e;if(e=\"sigma\"===this.isolevelType?this.volume.getValueForSigma(this.isolevel):this.isolevel,!this.surface||this.__isolevel!==e||this.__smooth!==this.smooth||this.__boxSize!==this.boxSize||this.boxSize>0&&!this.__boxCenter.equals(this.boxCenter)){this.__isolevel=e,this.__smooth=this.smooth,this.__boxSize=this.boxSize,this.__boxCenter.copy(this.boxCenter),this.__box.copy(this.box);var i=function(e){this.surface=e,t()}.bind(this);this.useWorker?this.volume.getSurfaceWorker(e,this.smooth,this.boxCenter,this.boxSize,i):i(this.volume.getSurface(e,this.smooth,this.boxCenter,this.boxSize))}else t()}else t()},create:function(){var t=new ls(this.surface.getPosition(),this.surface.getColor(this.getColorParams()),this.surface.getIndex(),this.surface.getNormal(),void 0,this.getBufferParams({background:this.background,opaqueBack:this.opaqueBack,dullInterior:!1})),e=new ds(t);this.bufferList.push(e)},update:function(t){if(0!==this.bufferList.length){t=t||{};var e={};t.position&&(e.position=this.surface.getPosition()),t.color&&(e.color=this.surface.getColor(this.getColorParams())),t.index&&(e.index=this.surface.getIndex()),t.normal&&(e.normal=this.surface.getNormal()),this.bufferList.forEach(function(t){t.setAttributes(e)})}},setParameters:function(t,e,i){return t&&void 0!==t.isolevelType&&this.volume&&(\"value\"===this.isolevelType&&\"sigma\"===t.isolevelType?this.isolevel=this.volume.getSigmaForValue(this.isolevel):\"sigma\"===this.isolevelType&&\"value\"===t.isolevelType&&(this.isolevel=this.volume.getValueForSigma(this.isolevel)),this.isolevelType=t.isolevelType),t&&t.boxCenter&&(this.boxCenter.copy(t.boxCenter),delete t.boxCenter),us.prototype.setParameters.call(this,t,e,i),this.volume&&this.volume.getBox(this.boxCenter,this.boxSize,this.box),this.surface&&(void 0!==t.isolevel||void 0!==t.smooth||void 0!==t.boxSize||this.boxSize>0&&!this.__box.equals(this.box))&&this.build({__update:{position:!0,color:!0,index:!0,normal:!0}}),this},dispose:function(){this.viewer.signals.orientationChanged.remove(this.setBox),us.prototype.dispose.call(this)}}),ms.prototype=Object.assign(Object.create($a.prototype),{constructor:ms,parameters:Object.assign({pointSize:{uniform:\"size\"},sizeAttenuation:{updateShader:!0},sortParticles:{},alphaTest:{updateShader:!0},useTexture:{updateShader:!0},forceTransparent:{},edgeBleach:{uniform:!0}},$a.prototype.parameters),makeMaterial:function(){$a.prototype.makeMaterial.call(this),this.makeTexture(),this.material.uniforms.map.value=this.tex,this.material.blending=ml,this.material.needsUpdate=!0,this.wireframeMaterial.uniforms.map.value=this.tex,this.wireframeMaterial.blending=ml,this.wireframeMaterial.needsUpdate=!0,this.pickingMaterial.uniforms.map.value=this.tex,this.pickingMaterial.blending=ml,this.pickingMaterial.needsUpdate=!0},makeTexture:function(){this.tex&&this.tex.dispose(),this.tex=ps({delta:this.edgeBleach})},getDefines:function(t){var e=$a.prototype.getDefines.call(this,t);return this.sizeAttenuation&&(e.USE_SIZEATTENUATION=1),this.useTexture&&(e.USE_MAP=1),this.alphaTest>0&&this.alphaTest<=1&&(e.ALPHATEST=this.alphaTest.toPrecision(2)),e},setUniforms:function(t){t&&void 0!==t.edgeBleach&&(this.makeTexture(),t.map=this.tex),$a.prototype.setUniforms.call(this,t)},dispose:function(){$a.prototype.dispose.call(this),this.tex&&this.tex.dispose()}}),gs.prototype=Object.assign(Object.create(us.prototype),{constructor:gs,type:\"dot\",parameters:Object.assign({thresholdType:{type:\"select\",rebuild:!0,options:{value:\"value\",sigma:\"sigma\"}},thresholdMin:{type:\"number\",precision:3,max:1/0,min:-(1/0),rebuild:!0},thresholdMax:{type:\"number\",precision:3,max:1/0,min:-(1/0),rebuild:!0},thresholdOut:{type:\"boolean\",rebuild:!0},dotType:{type:\"select\",rebuild:!0,options:{\"\":\"\",sphere:\"sphere\",point:\"point\"}},radiusType:{type:\"select\",options:{\"\":\"\",value:\"value\",\"abs-value\":\"abs-value\",\"value-min\":\"value-min\",deviation:\"deviation\",size:\"size\"}},radius:{type:\"number\",precision:3,max:10,min:.001,property:\"size\"},scale:{type:\"number\",precision:3,max:10,min:.001},sphereDetail:!0,disableImpostor:!0,pointSize:{type:\"number\",precision:1,max:100,min:0,buffer:!0},sizeAttenuation:{type:\"boolean\",buffer:!0},sortParticles:{type:\"boolean\",rebuild:!0},useTexture:{type:\"boolean\",buffer:!0},alphaTest:{type:\"range\",step:.001,max:1,min:0,buffer:!0},forceTransparent:{type:\"boolean\",buffer:!0},edgeBleach:{type:\"range\",step:.001,max:1,min:0,buffer:!0}},us.prototype.parameters,{colorScheme:{type:\"select\",update:\"color\",options:{\"\":\"\",value:\"value\",uniform:\"uniform\"}}}),defaultSize:.1,init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"uniform\"),e.colorValue=$(e.colorValue,14540253),this.thresholdType=$(e.thresholdType,\"sigma\"),this.thresholdMin=$(e.thresholdMin,2),this.thresholdMax=$(e.thresholdMax,1/0),this.thresholdOut=$(e.thresholdOut,!1),this.dotType=$(e.dotType,\"point\"),this.radius=$(e.radius,.1),this.scale=$(e.scale,1),this.pointSize=$(e.pointSize,1),this.sizeAttenuation=$(e.sizeAttenuation,!0),this.sortParticles=$(e.sortParticles,!1),this.useTexture=$(e.useTexture,!1),this.alphaTest=$(e.alphaTest,.5),this.forceTransparent=$(e.forceTransparent,!1),this.edgeBleach=$(e.edgeBleach,0),us.prototype.init.call(this,e)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t)},this),this.setVisibility(this.visible),t()},create:function(){var t,e,i,n;if(this.volume){var r,o,a=this.volume;\"sigma\"===this.thresholdType?(r=a.getValueForSigma(this.thresholdMin),o=a.getValueForSigma(this.thresholdMax)):(r=this.thresholdMin,o=this.thresholdMax),a.filterData(r,o,this.thresholdOut),t=a.getDataPosition(),e=a.getDataColor(this.getColorParams()),i=a.getDataSize(this.radius,this.scale),n=a.getPickingDataColor(this.getColorParams())}else{var s=this.surface;t=s.getPosition(),e=s.getColor(this.getColorParams()),i=s.getSize(this.radius,this.scale),n=s.getPickingColor(this.getColorParams())}\"sphere\"===this.dotType?this.dotBuffer=new Qa(t,e,i,n,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!1})):this.dotBuffer=new ms(t,e,this.getBufferParams({pointSize:this.pointSize,sizeAttenuation:this.sizeAttenuation,sortParticles:this.sortParticles,useTexture:this.useTexture,alphaTest:this.alphaTest,forceTransparent:this.forceTransparent,edgeBleach:this.edgeBleach})),this.bufferList.push(this.dotBuffer)},update:function(t){if(0!==this.bufferList.length){t=t||{};var e={};t.color&&(this.volume?e.color=this.volume.getDataColor(this.getColorParams()):e.color=this.surface.getColor(this.getColorParams())),\"sphere\"===this.dotType&&(t.radius||t.scale)&&(this.volume?e.radius=this.volume.getDataSize(this.radius,this.scale):e.radius=this.surface.getSize(this.radius,this.scale)),this.dotBuffer.setAttributes(e)}},setParameters:function(t,e,i){return e=e||{},t&&void 0!==t.thresholdType&&this.volume instanceof Fa&&(\"value\"===this.thresholdType&&\"sigma\"===t.thresholdType?(this.thresholdMin=this.volume.getSigmaForValue(this.thresholdMin),this.thresholdMax=this.volume.getSigmaForValue(this.thresholdMax)):\"sigma\"===this.thresholdType&&\"value\"===t.thresholdType&&(this.thresholdMin=this.volume.getValueForSigma(this.thresholdMin),this.thresholdMax=this.volume.getValueForSigma(this.thresholdMax)),this.thresholdType=t.thresholdType),t&&void 0!==t.radiusType&&(\"radius\"===t.radiusType?this.radius=this.defaultSize:this.radius=t.radiusType,e.radius=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.radius&&(e.radius=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.scale&&(e.scale=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),us.prototype.setParameters.call(this,t,e,i),this}}),vs.prototype=Object.assign(Object.create(us.prototype),{constructor:vs,type:\"structure\",parameters:Object.assign({radiusType:{type:\"select\",options:oo.types},radius:{type:\"number\",precision:3,max:10,min:.001},scale:{type:\"number\",precision:3,max:10,min:.001},assembly:null},us.prototype.parameters),defaultScale:{vdw:1,covalent:1,bfactor:.01,sstruc:1},defaultSize:1,init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"element\"),this.radius=$(e.radius,\"vdw\"),this.scale=$(e.scale,1),this.assembly=$(e.assembly,\"default\"),this.defaultAssembly=$(e.defaultAssembly,\"\"),us.prototype.init.call(this,e)},getAssembly:function(){var t=\"default\"===this.assembly?this.defaultAssembly:this.assembly;return this.structure.biomolDict[t]},create:function(){if(0!==this.structureView.atomCount){var t=this.getAssembly();if(t)t.partList.forEach(function(t,e){var i=t.getView(this.structureView);if(0!==i.atomCount){var n=this.createData(i,e);n&&(n.sview=i,n.instanceList=t.getInstanceList(),this.dataList.push(n))}},this);else{var e=this.createData(this.structureView,0);e&&(e.sview=this.structureView,this.dataList.push(e))}}},createData:function(){console.error(\"createData not implemented\")},update:function(t){return this.lazy&&!this.visible?void Object.assign(this.lazyProps.what,t):void this.dataList.forEach(function(e){e.bufferList.length>0&&this.updateData(t,e)},this)},updateData:function(){console.error(\"updateData not implemented\")},getColorParams:function(){var t=us.prototype.getColorParams.call(this);return t.structure=this.structure,t},getAtomParams:function(t,e){return Object.assign({what:t,colorParams:this.getColorParams(),radiusParams:{radius:this.radius,scale:this.scale}},e)},getBondParams:function(t,e){return Object.assign({what:t,colorParams:this.getColorParams(),radiusParams:{radius:this.radius,scale:this.scale}},e)},setSelection:function(t,e){return this.selection.setString(t,e),this},setParameters:function(t,e,i){return e=e||{},t&&void 0!==t.radiusType&&(\"size\"===t.radiusType?this.radius=this.defaultSize:this.radius=t.radiusType,e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.radius&&(e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.scale&&(e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),us.prototype.setParameters.call(this,t,e,i),this},getParameters:function(){var t=Object.assign(us.prototype.getParameters.call(this),{sele:this.selection?this.selection.string:void 0,defaultAssembly:this.defaultAssembly});return t},attach:function(t){var e=this.viewer,i=this.bufferList;this.dataList.forEach(function(t){t.bufferList.forEach(function(n){i.push(n),e.add(n,t.instanceList)})}),this.setVisibility(this.visible),t()},clear:function(){this.dataList.length=0,us.prototype.clear.call(this)},dispose:function(){this.structureView.dispose(),delete this.structure,delete this.structureView,us.prototype.dispose.call(this)}}),ys.prototype=Object.assign(Object.create($a.prototype),{constructor:ys,setAttributes:function(t){var e,i,n,r,o,a,s=this.geometry.attributes;t.from&&t.to&&(e=t.from,i=t.to,o=s.position.array,s.position.needsUpdate=!0),t.color&&t.color2&&(n=t.color,r=t.color2,a=s.color.array,s.color.needsUpdate=!0);for(var c,u,h,l,d,f,p,m,g,v,y,b,x=this.size,_=6*x,w=0;w0&&(n=\"( \"+e.join(\" ) AND ( \")+\" )\"),new Qn(n)},getStructure:function(){return this.structure.getStructure()},eachBond:function(t,e){this.structure.eachBond(t,this.getSelection(e))},eachAtom:function(t,e){var i=this.getAtomProxy(),n=this.getAtomSet(e),r=this.atomStore.count;if(n&&n.size()=this.V[i][n]&&this.S[i][n]>=this.V[i][n]?(r=\"S\",this.score=this.S[i][n]):this.V[i][n]>=this.H[i][n]?(r=\"V\",this.score=this.V[i][n]):(r=\"H\",this.score=this.H[i][n]),t.Debug&&ty.log(\"Alignment: SCORE\",this.score),t.Debug&&ty.log(\"Alignment: S, V, H\",this.S[i][n],this.V[i][n],this.H[i][n]);i>0&&n>0;)\"S\"===r?this.S[i][n]===this.S[i-1][n-1]+e(i-1,n-1)?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--i,--n,r=\"S\"):this.S[i][n]===this.V[i][n]?r=\"V\":this.S[i][n]===this.H[i][n]?r=\"H\":(--i,--n):\"V\"===r?this.V[i][n]===this.V[i-1][n]+this.gapExtensionPenalty?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i,r=\"V\"):this.V[i][n]===this.S[i-1][n]+this.gap(0)?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i,r=\"S\"):--i:\"H\"===r?this.H[i][n]===this.H[i][n-1]+this.gapExtensionPenalty?(this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n,r=\"H\"):this.H[i][n]===this.S[i][n-1]+this.gap(0)?(this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n,r=\"S\"):--n:ty.error(\"Alignment: no matrix\");for(;i>0;)this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i;for(;n>0;)this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n;t.Debug&&ty.timeEnd(\"Alignment.trace\"),t.Debug&&ty.log([this.ali1,this.ali2])}},ks.prototype=Object.assign(Object.create(_s.prototype),{constructor:ks,type:\"structure\",signals:Object.assign({trajectoryAdded:null,trajectoryRemoved:null,defaultAssemblyChanged:null},_s.prototype.signals),initSelection:function(t){this.selection=new Qn(t),this.structureView=new Ls(this.structure,this.selection),this.selection.signals.stringChanged.add(function(){this.structureView.setSelection(this.selection),this.rebuildRepresentations(),this.rebuildTrajectories()},this)},setSelection:function(t){return this.selection.setString(t),this},setDefaultAssembly:function(t){this.defaultAssembly=t,this.rebuildRepresentations(),this.signals.defaultAssemblyChanged.dispatch(t)},rebuildRepresentations:function(){this.reprList.forEach(function(t){var e=t.getParameters();e.defaultAssembly=this.defaultAssembly,t.build(e)},this)},rebuildTrajectories:function(){this.trajList.slice().forEach(function(t){t.trajectory.setStructure(this.structureView)},this)},addRepresentation:function(t,e){var i=e||{};return i.defaultAssembly=this.defaultAssembly,_s.prototype.addRepresentation.call(this,t,this.structureView,i)},addTrajectory:function(t,e,i){var n={i:i},r=Is(t,this.structureView,e);r.signals.frameChanged.add(function(){this.updateRepresentations({position:!0})},this);var o=new Ps(this.stage,r,n,this);return this.trajList.push(o),this.signals.trajectoryAdded.dispatch(o),o},removeTrajectory:function(t){var e=this.trajList.indexOf(t);e!==-1&&this.trajList.splice(e,1),t.dispose(),this.signals.trajectoryRemoved.dispatch(t)},dispose:function(){this.trajList.slice().forEach(function(t){t.dispose()}),this.trajList.length=0,this.structure.dispose(),_s.prototype.dispose.call(this)},centerView:function(t,e){t=void 0===t||t;var i=this.getCenter(e);if(t){var n;n=e?this.structureView.getBoundingBox(new Qn(e)):this.structureView.boundingBox;var r=n.size(),o=Math.max(r.x,r.y,r.z),a=Math.min(r.x,r.y,r.z);t=Math.max(1,o+a/2)}return this.viewer.centerView(t,i),this},getCenter:function(t){return t?this.structure.atomCenter(new Qn(t)):this.structure.center},superpose:function(t,e,i,n){return Rs(this.structureView,t.structureView,e,i,n),this.updateRepresentations({position:!0}),this},setVisibility:function(t){return _s.prototype.setVisibility.call(this,t),this.trajList.forEach(function(e){e.setVisibility(t)}),this}}),Ds.prototype=Object.assign(Object.create(_s.prototype),{constructor:Ds,type:\"surface\",addRepresentation:function(t,e){return _s.prototype.addRepresentation.call(this,t,this.surface,e)},dispose:function(){this.surface.dispose(),_s.prototype.dispose.call(this)},centerView:function(t){var e=this.surface.center;t&&(t=this.surface.boundingBox.size().length()),this.viewer.centerView(t,e)}}),Ns.prototype=Object.assign(Object.create(_s.prototype),{constructor:Ns,type:\"shape\",addRepresentation:function(t,e){return _s.prototype.addRepresentation.call(this,t,this.shape,e)},dispose:function(){this.shape.dispose(),_s.prototype.dispose.call(this)}}),Fs.prototype=Object.assign(Object.create(_s.prototype),{constructor:Fs,type:\"script\",addRepresentation:function(){},removeRepresentation:function(){},run:function(){var t=this;this.setStatus(\"running\"),this.script.call(this.stage,function(){t.setStatus(\"finished\")}),this.setStatus(\"called\")},dispose:function(){this.signals.disposed.dispatch()},setVisibility:function(){},getCenter:function(){}}),Bs.prototype={constructor:Bs,parameters:{backgroundColor:{type:\"color\"},quality:{type:\"select\",options:{low:\"low\",medium:\"medium\",high:\"high\"}},sampleLevel:{type:\"range\",step:1,max:5,min:-1},impostor:{type:\"boolean\"},rotateSpeed:{type:\"number\",precision:1,max:10,min:0},zoomSpeed:{type:\"number\",precision:1,max:10,min:0},panSpeed:{type:\"number\",precision:1,max:10,min:0},clipNear:{type:\"range\",step:1,max:100,min:0},clipFar:{type:\"range\",step:1,max:100,min:0},clipDist:{type:\"integer\",max:200,min:0},fogNear:{type:\"range\",step:1,max:100,min:0},fogFar:{type:\"range\",step:1,max:100,min:0},cameraType:{type:\"select\",options:{perspective:\"perspective\",orthographic:\"orthographic\"}},cameraFov:{type:\"range\",step:1,max:120,min:15},lightColor:{type:\"color\"},lightIntensity:{type:\"number\",precision:2,max:10,min:0},ambientColor:{type:\"color\"},ambientIntensity:{type:\"number\",precision:2,max:10,min:0},hoverTimeout:{type:\"integer\",max:1e4,min:10}},setParameters:function(t){var e=Object.assign({},t),i=this.parameters,n=this.viewer,r=n.controls,o=this.pickingControls;for(var a in e)void 0!==e[a]&&i[a]&&(i[a].int&&(e[a]=parseInt(e[a])),i[a].float&&(e[a]=parseFloat(e[a])),i[a].value=e[a]);return void 0!==e.quality&&this.setQuality(e.quality),void 0!==e.impostor&&this.setImpostor(e.impostor),void 0!==e.rotateSpeed&&(r.rotateSpeed=e.rotateSpeed),void 0!==e.zoomSpeed&&(r.zoomSpeed=e.zoomSpeed),void 0!==e.panSpeed&&(r.panSpeed=e.panSpeed),o.setParameters({hoverTimeout:e.hoverTimeout}),n.setClip(e.clipNear,e.clipFar,e.clipDist),n.setFog(void 0,e.fogNear,e.fogFar),n.setCamera(e.cameraType,e.cameraFov),n.setSampling(e.sampleLevel),n.setBackground(e.backgroundColor),n.setLight(e.lightColor,e.lightIntensity,e.ambientColor,e.ambientIntensity),this.signals.parametersChanged.dispatch(this.getParameters()),this},getParameters:function(){var t={};for(var e in this.parameters)t[e]=this.parameters[e].value;return t},defaultFileRepresentation:function(e){if(\"structure\"===e.type){e.setSelection(\"/0\");var i,n,r=e.structure;if(r.biomolDict.BU1){var o=r.biomolDict.BU1;i=o.getAtomCount(r),n=o.getInstanceCount(),e.setDefaultAssembly(\"BU1\")}else i=r.getModelProxy(0).atomCount,n=1;\"undefined\"!=typeof window.orientation&&(i*=4);var a=r.atomStore.count/r.residueStore.count<2;a&&(i*=10);var s=\"chainname\",c=new Set,u=r.getResidueProxy();if(r.getModelProxy(0).eachChain(function(t){u.index=t.residueOffset,u.isPolymer()&&c.add(t.chainname)}),1===c.size&&(s=\"residueindex\"),t.Debug&&console.log(i,n,a),n>5&&i>15e3||i>7e5){var h=Math.min(1.5,Math.max(.1,2e3/(i/n)));a&&(h=Math.min(h,.15)),e.addRepresentation(\"surface\",{sele:\"polymer\",surfaceType:\"sas\",probeRadius:1.4,scaleFactor:h,colorScheme:s,colorScale:\"RdYlBu\",useWorker:!1})}else if(i>25e4)e.addRepresentation(\"backbone\",{lineOnly:!0,colorScheme:s,colorScale:\"RdYlBu\"});else if(i>1e5)e.addRepresentation(\"backbone\",{quality:\"low\",disableImpostor:!0,colorScheme:s,colorScale:\"RdYlBu\",scale:2});else if(i>8e4)e.addRepresentation(\"backbone\",{colorScheme:s,colorScale:\"RdYlBu\",scale:2});else{var l=i<15e3?\"high\":\"medium\";e.addRepresentation(\"cartoon\",{color:s,colorScale:\"RdYlBu\",scale:.7,aspectRatio:5,quality:l}),i<5e4&&e.addRepresentation(\"base\",{color:s,colorScale:\"RdYlBu\",quality:l}),e.addRepresentation(\"ball+stick\",{sele:\"hetero and not ( water or ion )\",colorScheme:\"element\",scale:2,aspectRatio:1.5,bondScale:.3,bondSpacing:.75,quality:l})}this.centerView(),e.structure.frames.length&&e.addTrajectory()}else\"surface\"!==e.type&&\"volume\"!==e.type||(e.addRepresentation(\"surface\"),this.centerView())},loadFile:function(t,e){var i=Object.assign({},this.defaultFileParams,e),n=new _s(this,i);n.name=X(t).name,this.addComponent(n);var r=this.tasks;r.increment();var o=function(t){return this.removeComponent(n),n=this.addComponentFromObject(t,i),\"script\"===n.type&&n.run(),i.defaultRepresentation&&this.defaultFileRepresentation(n),r.decrement(),n}.bind(this),a=function(t){throw n.setStatus(t),r.decrement(),t};return kr(t,i).then(o,a)},addComponent:function(t){return t?(this.compList.push(t),void this.signals.componentAdded.dispatch(t)):void ty.warn(\"Stage.addComponent: no component given\")},addComponentFromObject:function(t,e){var i=zs(this,t,e);return this.addComponent(i),i},removeComponent:function(t){var e=this.compList.indexOf(t);e!==-1&&this.compList.splice(e,1),t.dispose(),this.signals.componentRemoved.dispatch(t)},removeAllComponents:function(t){this.compList.slice().forEach(function(e){t&&e.type!==t||this.removeComponent(e)},this)},handleResize:function(){this.viewer.handleResize()},toggleFullscreen:function(t){function e(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}function i(){if(!e()&&n.lastFullscreenElement){var t=n.lastFullscreenElement;t.style.width=t.dataset.normalWidth,t.style.height=t.dataset.normalHeight,document.removeEventListener(\"fullscreenchange\",i),document.removeEventListener(\"mozfullscreenchange\",i),document.removeEventListener(\"webkitfullscreenchange\",i),document.removeEventListener(\"MSFullscreenChange\",i),n.handleResize(),n.signals.fullscreenChanged.dispatch(!1)}}if(!(document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled))return void ty.log(\"fullscreen mode (currently) not possible\");var n=this;t=t||this.viewer.container,this.lastFullscreenElement=t,e()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(t.dataset.normalWidth=t.style.width,t.dataset.normalHeight=t.style.height,t.style.width=screen.width+\"px\",t.style.height=screen.height+\"px\",t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen(),document.addEventListener(\"fullscreenchange\",i),document.addEventListener(\"mozfullscreenchange\",i),document.addEventListener(\"webkitfullscreenchange\",i),document.addEventListener(\"MSFullscreenChange\",i),this.handleResize(),this.signals.fullscreenChanged.dispatch(!0),setTimeout(function(){n.handleResize()},100))},centerView:function(){if(this.tasks.count>0){var t=function(e,i){0===i&&this.tasks.signals.countChanged.remove(t,this),this.viewer.centerView(!0)};this.tasks.signals.countChanged.add(t,this)}this.viewer.centerView(!0)},setSpin:function(t,e){Array.isArray(t)&&(t=(new dt).fromArray(t)),this.viewer.setSpin(t,e)},setOrientation:function(t){this.tasks.onZeroOnce(function(){this.viewer.setOrientation(t)},this)},getOrientation:function(){return this.viewer.getOrientation()},makeImage:function(t){var e=this.viewer,i=this.tasks;return new Promise(function(n,r){function o(){i.increment(),e.makeImage(t).then(function(t){i.decrement(),n(t)}).catch(function(t){i.decrement(),r(t)})}i.onZeroOnce(o)})},setImpostor:function(t){this.parameters.impostor.value=t;var e=[\"spacefill\",\"ball+stick\",\"licorice\",\"hyperball\",\"backbone\",\"rocket\",\"helixorient\",\"contact\",\"distance\",\"dot\"];this.eachRepresentation(function(i){if(\"script\"!==i.type&&e.indexOf(i.getType())!==-1){var n=i.getParameters();n.disableImpostor=!t,i.build(n)}})},setQuality:function(t){this.parameters.quality.value=t;var e=[\"tube\",\"cartoon\",\"ribbon\",\"trace\",\"rope\"],i=[\"spacefill\",\"ball+stick\",\"licorice\",\"hyperball\",\"backbone\",\"rocket\",\"helixorient\",\"contact\",\"distance\",\"dot\"];this.eachRepresentation(function(n){if(\"script\"!==n.type){var r=n.getParameters();if(e.indexOf(n.getType())===-1){if(i.indexOf(n.getType())===-1)return;if(!r.disableImpostor)return void(n.repr.quality=t)}r.quality=t,n.build(r)}})},eachComponent:function(t,e){this.compList.forEach(function(i,n){e&&i.type!==e||t(i,n)})},eachRepresentation:function(t,e){this.eachComponent(function(e){e.reprList.forEach(function(i){t(i,e)})},e)},getComponentsByName:function(t,e){var i=[];return this.eachComponent(function(e){void 0!==t&&null===e.name.match(t)||i.push(e)},e),new As(i)},getRepresentationsByName:function(t,e){var i,n;\"object\"!=typeof t?(i=void 0,n=t):(i=t.comp,n=t.repr);var r=[];return this.eachRepresentation(function(t,e){void 0!==i&&null===e.name.match(i)||void 0!==n&&null===t.name.match(n)||r.push(t)},e),new Ms(r)},getAnythingByName:function(t){var e=this.getComponentsByName(t).list,i=this.getRepresentationsByName(t).list;return new Ss(e.concat(i))},dispose:function(){this.tasks.dispose()}},Us.prototype={constructor:Us,_animate:function(){var t;if(this._running=!0,this.traj.inProgress||this._stopFlag||(t=\"forward\"===this.direction?this.traj.currentFrame+this.step:this.traj.currentFrame-this.step,(t>=this.end||t=this.end?e=this.start:\"backward\"===this.direction&&t<=this.start&&(e=this.end),this.traj.setFrame(e),this._stopFlag=!1,this._animate(),this.signals.startedRunning.dispatch()}},pause:function(){this._running&&(this._stopFlag=!0,this.signals.haltedRunning.dispatch())},stop:function(){this.traj.setFrame(this.start),this.pause()}},js.prototype=Object.assign(Object.create(vs.prototype),{constructor:js,type:\"axes\",parameters:Object.assign({radius:{type:\"number\",precision:3,max:10,min:.001},sphereDetail:!0,radialSegments:!0,disableImpostor:!0,align:{type:\"button\"}},us.prototype.parameters,{assembly:null}),init:function(t){var e=t||{};e.radius=$(e.radius,.5),e.colorValue=$(e.colorValue,\"lightgreen\"),vs.prototype.init.call(this,e)},getPrincipalAxes:function(){var t,e=this.getAssembly();return e&&(t=e.partList[0].getSelection()),this.structureView.getView(t).getPrincipalAxes()},align:function(){var t=this.getPrincipalAxes(this.structureView),e=(new dt).copy(t[0][1]).sub(t[0][0]).normalize(),i=(new dt).copy(t[2][1]).sub(t[2][0]).normalize();this.viewer.alignView(i,e,t[3],!0)},getAxesData:function(t){function e(t,e){t.toArray(r,2*l),e.toArray(r,2*l+3),t.toArray(s,l),e.toArray(c,l),l+=3}var i=this.getPrincipalAxes(t),n=new re(this.colorValue),r=new Float32Array(18),o=qr(6,n.r,n.g,n.b),a=Xr(6,this.radius),s=new Float32Array(9),c=new Float32Array(9),u=qr(3,n.r,n.g,n.b),h=Xr(3,this.radius),l=0;return e(i[0][0],i[0][1]),e(i[1][0],i[1][1]),e(i[2][0],i[2][1]),{vertexPosition:r,vertexColor:o,vertexRadius:a,edgePosition1:s,edgePosition2:c,edgeColor:u,edgeRadius:h}},create:function(){var t=this.getAxesData(this.structureView);this.sphereBuffer=new Qa(t.vertexPosition,t.vertexColor,t.vertexRadius,void 0,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!0})),this.cylinderBuffer=new rs(t.edgePosition1,t.edgePosition2,t.edgeColor,t.edgeColor,t.edgeRadius,void 0,void 0,this.getBufferParams({openEnded:!0,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0})),this.dataList.push({sview:this.structureView,bufferList:[this.sphereBuffer,this.cylinderBuffer]})},updateData:function(t,e){var i=this.getAxesData(e.sview),n={},r={};t&&!t.position||(n.position=i.vertexPosition,r.position1=i.edgePosition1,r.position2=i.edgePosition2),t&&!t.color||(n.color=i.vertexColor,r.color=i.edgeColor,r.color2=i.edgeColor),t&&!t.radius||(n.radius=i.vertexRadius,r.radius=i.edgeRadius),this.sphereBuffer.setAttributes(n),this.cylinderBuffer.setAttributes(r)}}),ay.add(\"axes\",js),$s.prototype=Object.assign(Object.create(vs.prototype),{constructor:$s,type:\"ball+stick\",defaultSize:.15,parameters:Object.assign({sphereDetail:!0,radialSegments:!0,openEnded:!0,disableImpostor:!0,aspectRatio:{type:\"number\",precision:1,max:10,min:1},lineOnly:{type:\"boolean\",rebuild:!0},cylinderOnly:{type:\"boolean\",rebuild:!0},multipleBond:{type:\"select\",rebuild:!0,options:{off:\"off\",symmetric:\"symmetric\",offset:\"offset\"}},bondScale:{type:\"number\",precision:2,max:1,min:.01},bondSpacing:{type:\"number\",precision:2,max:2,min:.5}},vs.prototype.parameters),init:function(t){var e=t||{};e.radius=$(e.radius,this.defaultSize),this.aspectRatio=$(e.aspectRatio,2),this.lineOnly=$(e.lineOnly,!1),this.cylinderOnly=$(e.cylinderOnly,!1),this.multipleBond=$(e.multipleBond,\"off\"),this.bondSpacing=$(e.bondSpacing,1),this.bondScale=$(e.bondScale,.4),vs.prototype.init.call(this,e)},getAtomParams:function(t,e){return e=Object.assign({radiusParams:{radius:this.radius,scale:this.scale*this.aspectRatio}},e),vs.prototype.getAtomParams.call(this,t,e)},getAtomData:function(t,e,i){return t.getAtomData(this.getAtomParams(e,i))},getBondParams:function(t,e){return e=Object.assign({multipleBond:this.multipleBond,bondSpacing:this.bondSpacing,bondScale:this.bondScale},e),vs.prototype.getBondParams.call(this,t,e)},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},createData:function(t){var e=this.getBondData(t),i=[];if(this.lineOnly)this.lineBuffer=new ys(e.position1,e.position2,e.color1,e.color2,this.getBufferParams()),i.push(this.lineBuffer);else{var n=new rs(e.position1,e.position2,e.color1,e.color2,e.radius,e.pickingColor1,e.pickingColor2,this.getBufferParams({openEnded:this.openEnded,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0\n}));if(i.push(n),!this.cylinderOnly){var r=this.getAtomData(t),o=new Qa(r.position,r.color,r.radius,r.pickingColor,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!0}));i.push(o)}}return{bufferList:i}},updateData:function(t,e){\"off\"!==this.multipleBond&&t&&t.radius&&(t.position=!0);var i=this.getBondData(e.sview,t);if(this.lineOnly){var n={};t&&!t.position||(n.from=i.position1,n.to=i.position2),t&&!t.color||(n.color=i.color1,n.color2=i.color2),e.bufferList[0].setAttributes(n)}else{var r={};if(t&&!t.position||(r.position1=i.position1,r.position2=i.position2),t&&!t.color||(r.color=i.color1,r.color2=i.color2),t&&!t.radius||(r.radius=i.radius),e.bufferList[0].setAttributes(r),!this.cylinderOnly){var o=this.getAtomData(e.sview,t),a={};t&&!t.position||(a.position=o.position),t&&!t.color||(a.color=o.color),t&&!t.radius||(a.radius=o.radius),e.bufferList[1].setAttributes(a)}}},setParameters:function(t){var e=!1,i={};return t&&(t.aspectRatio||t.bondSpacing||t.bondScale)&&(i.radius=!0,Jv&&!this.disableImpostor||(e=!0)),vs.prototype.setParameters.call(this,t,i,e),this}}),ay.add(\"ball+stick\",$s),Vs.prototype=Object.assign(Object.create($s.prototype),{constructor:Vs,type:\"backbone\",defaultSize:.25,parameters:Object.assign({},$s.prototype.parameters,{multipleBond:null,bondSpacing:null}),init:function(t){var e=t||{};e.aspectRatio=$(e.aspectRatio,1),$s.prototype.init.call(this,e)},getAtomData:function(t,e,i){return t.getBackboneAtomData(this.getAtomParams(e,i))},getBondData:function(t,e,i){var n=this.getBondParams(e,i);return n.colorParams.backbone=!0,t.getBackboneBondData(n)}}),ay.add(\"backbone\",Vs),Gs.prototype=Object.assign(Object.create($s.prototype),{constructor:Gs,type:\"base\",defaultSize:.3,parameters:Object.assign({},$s.prototype.parameters,{multipleBond:null,bondSpacing:null}),init:function(t){var e=t||{};e.aspectRatio=$(e.aspectRatio,1),$s.prototype.init.call(this,e)},getAtomData:function(t,e,i){return t.getRungAtomData(this.getAtomParams(e,i))},getBondData:function(t,e,i){var n=this.getBondParams(e,i);return n.colorParams.rung=!0,t.getRungBondData(n)}}),ay.add(\"base\",Gs),Ws.prototype={constructor:Ws,getAtomIterator:function(t,e){function i(){var t=this.get(u);return u+=1,t}function n(i){var n=h[c%4];if(n.index=o.getAtomIndexByType(i,t),e&&i>0&&ie)&&(s=!0,r.add_unsafe(n.index),o.addBond(a,n,1))}s&&r.add_unsafe(a.index)});var a=new qy(o.count);return a.set_all(!0),ty.timeEnd(\"Contact within\"),{atomSet:r,bondSet:a,bondStore:o}}},Qs.prototype=Object.assign(Object.create(vs.prototype),{constructor:Qs,type:\"contact\",defaultSize:.25,parameters:Object.assign({contactType:{type:\"select\",rebuild:!0,options:{polar:\"polar\",polarBackbone:\"polar backbone\"}},maxDistance:{type:\"number\",precision:1,max:10,min:.1,rebuild:!0},maxAngle:{type:\"integer\",max:180,min:0,rebuild:!0},radialSegments:!0,disableImpostor:!0},vs.prototype.parameters),init:function(t){var e=t||{};e.radius=$(e.radius,this.defaultSize),this.contactType=$(e.contactType,\"polarBackbone\"),this.maxDistance=$(e.maxDistance,3.5),this.maxAngle=$(e.maxAngle,40),vs.prototype.init.call(this,e)},getContactData:function(t){var e={polar:Zs,polarBackbone:Ks},i=e[this.contactType](t,this.maxDistance,this.maxAngle);return i},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},createData:function(t){var e=this.getContactData(t),i={bondSet:e.bondSet,bondStore:e.bondStore},n=this.getBondData(t,void 0,i),r=new rs(n.position1,n.position2,n.color1,n.color2,n.radius,n.pickingColor1,n.pickingColor2,this.getBufferParams({openEnded:!1,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0}));return{bufferList:[r],bondSet:e.bondSet,bondStore:e.bondStore}},updateData:function(t,e){if(!t||t.position){var i=this.getContactData(e.sview);e.bondSet=i.bondSet,e.bondStore=i.bondStore}var n={bondSet:e.bondSet,bondStore:e.bondStore},r=this.getBondData(e.sview,t,n),o={};t&&!t.position||(o.position=Wr(r.position1,r.position2),o.position1=r.position1,o.position2=r.position2),t&&!t.color||(o.color=r.color1,o.color2=r.color2),t&&!t.radius||(o.radius=r.radius),e.bufferList[0].setAttributes(o)}}),ay.add(\"contact\",Qs);var rb=function(){var t={};return function(e){var i=JSON.stringify(e);return void 0===t[i]&&(t[i]=new Js(e)),t[i]}}();Js.prototype={constructor:Js,build:function(){var t=this.size+2*this.outline+Math.round(this.size/4),e=this.width/4,i=document.createElement(\"canvas\");i.width=e,i.height=t;var n=i.getContext(\"2d\");n.font=this.style+\" \"+this.variant+\" \"+this.weight+\" \"+this.size+\"px \"+this.font,n.fillStyle=\"#FF0000\",n.textAlign=\"left\",n.textBaseline=\"bottom\",n.lineJoin=\"round\";for(var r=[],o=3*this.outline,a=0;athis.width&&(this.currentX=0,this.currentY+=this.scratchH),this.currentY+this.scratchH>this.height&&console.warn(\"canvas to small\"),this.mapped[t]={x:this.currentX,y:this.currentY,w:this.scratchW,h:this.scratchH},this.context2.drawImage(this.canvas,0,0,this.scratchW,this.scratchH,this.currentX,this.currentY,this.scratchW,this.scratchH),this.currentX+=this.scratchW),this.mapped[t]},draw:function(t){var e=this.lineHeight,i=this.outline,n=this.context,r=this.scratch,o=this.maxWidth,a=this.colors,s=i,c=e-this.outline,u=n.measureText(t),h=Math.min(o,Math.ceil(u.width+2*s+1));n.clearRect(0,0,h,e);var l,d,f,p,m;if(0===this.outline)for(n.fillText(t,s,c),p=n.getImageData(0,0,h,e),m=p.data,f=3,l=0,d=m.length/4;l0;--l)f=l>1?2*l-2:l,n.strokeStyle=a[f-1],n.lineWidth=f,n.strokeText(t,s,c);n.globalCompositeOperation=\"multiply\",n.fillStyle=\"#FF00FF\",n.fillText(t,s,c),p=n.getImageData(0,0,h,e),m=p.data,f=0;var g=this.gamma;for(l=0,d=m.length/4;l0&&(i-=h,r=r.subarray(0,3*i));var l=new qy(s.count);return l.set_all(!0),{text:n,position:r,bondSet:l,bondStore:s}},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},create:function(){if(0!==this.structureView.atomCount){var t=this.atomPair.length;if(0!==t){var e=this.getDistanceData(this.structureView,this.atomPair),i=new re(this.labelColor);this.textBuffer=new tc(e.position,Xr(t,this.labelSize),qr(t,i.r,i.g,i.b),e.text,this.getBufferParams({fontFamily:this.fontFamily,fontStyle:this.fontStyle,fontWeight:this.fontWeight,sdf:this.sdf,zOffset:this.labelZOffset,opacity:1,visible:this.labelVisible}));var n={bondSet:e.bondSet,bondStore:e.bondStore},r=this.getBondData(this.structureView,void 0,n);this.cylinderBuffer=new rs(r.position1,r.position2,r.color1,r.color2,r.radius,r.pickingColor1,r.pickingColor2,this.getBufferParams({openEnded:!1,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0})),this.dataList.push({sview:this.structureView,bondSet:e.bondSet,bondStore:e.bondStore,position:e.position,bufferList:[this.textBuffer,this.cylinderBuffer]})}}},update:function(t){t.position?this.build():vs.prototype.update.call(this,t)},updateData:function(t,e){var i={bondSet:e.bondSet,bondStore:e.bondStore},n=this.getBondData(e.sview,t,i),r={},o={},a=this.atomPair.length;if(t.labelSize&&(o.size=Xr(a,this.labelSize)),t.labelColor){var s=new re(this.labelColor);o.color=qr(a,s.r,s.g,s.b)}t.color&&(r.color=n.color1,r.color2=n.color2),(t.radius||t.scale)&&(r.radius=n.radius),this.textBuffer.setAttributes(o),this.cylinderBuffer.setAttributes(r)},setVisibility:function(t,e){return vs.prototype.setVisibility.call(this,t,!0),this.textBuffer&&this.textBuffer.setVisibility(this.labelVisible&&this.visible),e||this.viewer.requestRender(),this},setParameters:function(t){var e=!1,i={};return t&&t.labelSize&&(i.labelSize=!0),t&&t.labelColor&&(i.labelColor=!0),vs.prototype.setParameters.call(this,t,i,e),t&&void 0!==t.labelVisible&&this.setVisibility(this.visible),this}}),ay.add(\"distance\",ec),ic.prototype=Object.assign(Object.create($a.prototype),{constructor:ic,setAttributes:function(t){var e,i,n,r=this.geometry.attributes;t.position&&t.vector&&(e=t.position,i=t.vector,n=r.position.array,r.position.needsUpdate=!0);var o,a,s=this.size,c=this.scale;if(t.position&&t.vector)for(var u=0;u0||e.sheets.length>0)&&ca(e),this._postProcess(),e.unitcell&&ma(e),t.Debug&&ty.timeEnd(\"StructureParser._afterParse\"),t.Debug&&ty.log(this[this.__objName])},_postProcess:function(){}}),Oc.prototype={constructor:Oc},Rc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:Rc,type:\"gro\",_parse:function(e){function i(t,e,i){for(var o=t;oS)continue}p=v.substr(5,5).trim(),m=parseInt(v.substr(0,5)),g=parseInt(v.substr(15,5)),M.growIfFull(),M.atomTypeId[P]=A.add(f),M.x[P]=L,M.y[P]=O,M.z[P]=R,M.serial[P]=g,a.addAtom(E,\"\",p,m,0,\"l\"),P+=1}}}t.Debug&&ty.time(\"GroParser._parse \"+this.name);var n,r,o=this.structure,a=this.structureBuilder,s=this.firstModelOnly,c=this.asTrajectory,u=this.cAlphaOnly,h=o.frames,l=o.boxes,d=this.streamer.peekLines(3);o.title=d[0].trim();var f,p,m,g,v=d[2].length-d[2].lastIndexOf(\".\")-1,y=5+v,b=20,x=20+y,_=20+2*y,w=parseInt(d[1]),S=w+3,A=o.atomMap,M=o.atomStore;M.resize(w);var P=0,E=0,C=0;this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),a.finalize(),o.unitcell=new Oc(l[0][0],l[0][4],l[0][8],90,90,90,\"P 1\"),t.Debug&&ty.timeEnd(\"GroParser._parse \"+this.name),e()}}),sy.add(\"gro\",Rc);var ab={1:\"h\",2:\"h\",3:\"i\",4:\"h\",5:\"g\",6:\"h\",7:\"h\",8:\"h\",9:\"h\",10:\"h\",\"\":\"h\"};kc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:kc,type:\"pdb\",_parse:function(e){function i(t,e,i){for(var Y,Z,K=t;K0)continue;var Q,J,tt,et,it;if(P){if(et=c.split(E),it=10===et.length?1:0,g=et[2],O&&\"CA\"!==g)continue;Q=parseFloat(et[6-it]),J=parseFloat(et[7-it]),tt=parseFloat(et[8-it])}else{if(g=c.substr(12,4).trim(),O&&\"CA\"!==g)continue;Q=parseFloat(c.substr(30,8)),J=parseFloat(c.substr(38,8)),tt=parseFloat(c.substr(46,8))}if(L&&(Y=3*r,n[Y+0]=Q,n[Y+1]=J,n[Y+2]=tt,r+=1,D))continue;var nt;P?(h=parseInt(et[1]),nt=\"\",v=\"H\"===c[0]?1:0,l=it?\"\":et[4],d=parseInt(et[5-it]),m=\"\",f=et[3],y=parseFloat(et[9-it]),b=\"\",p=0):(h=parseInt(c.substr(6,5)),nt=c.substr(76,2).trim(),v=\"H\"===c[0]?1:0,l=c[21].trim(),d=parseInt(c.substr(22,4)),m=c[26].trim(),f=c.substr(17,4).trim(),y=parseFloat(c.substr(60,6)),b=c[16].trim(),p=parseFloat(c.substr(54,6))),V.growIfFull(),V.atomTypeId[W]=$.add(g,nt),V.x[W]=Q,V.y[W]=J,V.z[W]=tt,V.serial[W]=h,V.bfactor[W]=isNaN(y)?0:y,V.altloc[W]=b.charCodeAt(0),V.occupancy[W]=isNaN(p)?0:p,T.addAtom(X,l,f,d,v,void 0,m),B[h]=W,W+=1}else if(\"CONECT\"===u){var rt=B[parseInt(c.substr(6,5))],ot=[11,16,21,26],at={};if(void 0===rt)continue;for(Y=0;Y<4;++Y){var st=parseInt(c.substr(ot[Y],5));if(!Number.isNaN(st)&&(st=B[st],void 0!==st))if(rt0)continue;var rt=it[_].replace(g,\"\");if(d&&\"CA\"!==rt)continue;var ot=parseFloat(it[I]),at=parseFloat(it[L]),st=parseFloat(it[O]);if(l){var ct=3*a;if(o[ct+0]=ot,o[ct+1]=at,o[ct+2]=st,a+=1,Z>0)continue}var ut=it[w],ht=parseInt(it[x]),lt=it[T];lt=\"?\"===lt?\"\":lt;var dt=it[b],ft=\"H\"===it[M][0]?1:0,pt=it[E],mt=parseFloat(it[R]),gt=parseFloat(it[k]),vt=it[A];if(vt=\".\"===vt?\"\":vt,X.growIfFull(),X.atomTypeId[Y]=W.add(rt,pt),X.x[Y]=ot,X.y[Y]=at,X.z[Y]=st,X.serial[Y]=parseInt(it[P]),X.bfactor[Y]=isNaN(mt)?0:mt,X.occupancy[Y]=isNaN(gt)?0:gt,X.altloc[Y]=vt.charCodeAt(0),u.addAtom(Z,dt,ut,ht,ft,void 0,lt),t.Debug){var yt=H[it[S]];void 0!==yt&&yt!==dt&&ty.warn(yt,dt)}H[it[S]]=dt,Y+=1}else{it=s.match(m),et=it.length,U===B.length&&(U=0);for(var bt=0;btX){var q=W;W=X,X=q;var Y=B;B=G,G=Y}if(0!==W&&0!==X)for(var Z=0;Z0&&(l=!0))),S>=g&&S0)continue;var E=parseFloat(P.substr(0,10)),C=parseFloat(P.substr(10,10)),T=parseFloat(P.substr(20,10));if(a){var I=3*u;if(c[I+0]=E,c[I+1]=C,c[I+2]=T,u+=1,l)continue}var L=P.substr(31,3).trim(),O=L+(w+1);f.growIfFull(),f.atomTypeId[w]=d.add(O,L),f.x[w]=E,f.y[w]=C,f.z[w]=T,f.serial[w]=w,r.addAtom(A,\"\",\"HET\",1,1),w+=1}if(S>=y&&S0)continue;if(a&&A>0)continue;x.index=parseInt(P.substr(0,3))-1+M,_.index=parseInt(P.substr(3,3))-1+M;var R=parseInt(P.substr(6,3));n.bondStore.addBond(x,_,R)}++S}}t.Debug&&ty.time(\"SdfParser._parse \"+this.name);var n=this.structure,r=this.structureBuilder,o=this.firstModelOnly,a=this.asTrajectory,s=this.streamer.peekLines(2);n.id=s[0].trim(),n.title=s[1].trim();var c,u,h=n.frames,l=!1,d=n.atomMap,f=n.atomStore;f.resize(Math.round(this.streamer.data.length/50));var p,m,g,v,y,b,x=n.getAtomProxy(),_=n.getAtomProxy(),w=0,S=0,A=0,M=0;this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),r.finalize(),n.unitcell=void 0,t.Debug&&ty.timeEnd(\"SdfParser._parse \"+this.name),e()},_postProcess:function(){ga(this.structure)}}),sy.add(\"sdf\",Fc),zc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:zc,type:\"mol2\",_parse:function(e){function i(t,e,i){for(var P,E=t;EMOLECULE\"===C?(b=x,m=0,++v):\"@ATOM\"===C?(b=_,g=f.count,u&&(r=0,n=new Float32Array(3*y),h.push(n),v>0&&(l=!0))):b=\"@BOND\"===C?w:0;else if(b===x)0===m?(a.title=C,a.id=C):1===m&&(P=C.split(o),y=parseInt(P[0])),++m;else if(b===_){if(P=C.split(o),c&&v>0)continue;var T=parseFloat(P[2]),I=parseFloat(P[3]),L=parseFloat(P[4]);if(u){var O=3*r;if(n[O+0]=T,n[O+1]=I,n[O+2]=L,r+=1,l)continue}var R=P[0],k=P[1],D=P[5].split(\".\")[0],N=P[6]?parseInt(P[6]):1,F=P[7]?P[7]:\"\",z=P[8]?parseFloat(P[8]):0;f.growIfFull(),f.atomTypeId[p]=d.add(k,D),f.x[p]=T,f.y[p]=I,f.z[p]=L,f.serial[p]=R,f.bfactor[p]=z,s.addAtom(v,\"\",F,N,1),p+=1}else if(b===w){if(c&&v>0)continue;if(u&&v>0)continue;P=C.split(o),S.index=parseInt(P[1])-1+g,A.index=parseInt(P[2])-1+g;var B=M[P[3]];a.bondStore.addBond(S,A,B)}}}t.Debug&&ty.time(\"Mol2Parser._parse \"+this.name);var n,r,o=/\\s+/,a=this.structure,s=this.structureBuilder,c=this.firstModelOnly,u=this.asTrajectory,h=a.frames,l=!1,d=a.atomMap,f=a.atomStore;f.resize(Math.round(this.streamer.data.length/60));var p=0,m=0,g=0,v=-1,y=0,b=0,x=1,_=2,w=3,S=a.getAtomProxy(),A=a.getAtomProxy(),M={1:1,2:2,3:3,am:1,ar:1,du:1,un:1,nc:0};this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),s.finalize(),a.unitcell=void 0,t.Debug&&ty.timeEnd(\"Mol2Parser._parse \"+this.name),e()},_postProcess:function(){ga(this.structure)}}),sy.add(\"mol2\",zc);var sb=[\"mmtfVersion\",\"mmtfProducer\",\"unitCell\",\"spaceGroup\",\"structureId\",\"title\",\"depositionDate\",\"releaseDate\",\"experimentalMethods\",\"resolution\",\"rFree\",\"rWork\",\"bioAssemblyList\",\"ncsOperatorList\",\"entityList\",\"groupList\",\"numBonds\",\"numAtoms\",\"numGroups\",\"numChains\",\"numModels\",\"groupsPerChain\",\"chainsPerModel\"],cb=[\"xCoordList\",\"yCoordList\",\"zCoordList\",\"groupIdList\",\"groupTypeList\",\"chainIdList\",\"bFactorList\",\"atomIdList\",\"altLocList\",\"occupancyList\",\"secStructList\",\"insCodeList\",\"sequenceIndexList\",\"chainNameList\",\"bondAtomList\",\"bondOrderList\"],ub=sb.concat(cb),hb={0:\"i\".charCodeAt(0),1:\"s\".charCodeAt(0),2:\"h\".charCodeAt(0),3:\"e\".charCodeAt(0),4:\"g\".charCodeAt(0),5:\"b\".charCodeAt(0),6:\"t\".charCodeAt(0),7:\"l\".charCodeAt(0),\"-1\":\"\".charCodeAt(0)};su.prototype=Object.assign(Object.create(Lc.prototype),{constructor:su,type:\"mmtf\",_parse:function(e){t.Debug&&ty.time(\"MmtfParser._parse \"+this.name);var i,n,r,o,a,s,c,u,h,l,d,f=this.structure,p=au(ru(this.streamer.data));if(f.id=p.structureId,f.title=p.title,this.firstModelOnly||this.asTrajectory){for(l=1,h=p.chainsPerModel[0],u=0,i=0,n=h;i0&&(f.biomolDict[at]=st)}p.unitCell&&Array.isArray(p.unitCell)&&p.unitCell[0]?f.unitcell=new Oc(p.unitCell[0],p.unitCell[1],p.unitCell[2],p.unitCell[3],p.unitCell[4],p.unitCell[5],p.spaceGroup):f.unitcell=void 0,t.Debug&&ty.timeEnd(\"MmtfParser._parse \"+this.name),pa(f,!0),fa(f,!0),e()}}),sy.add(\"mmtf\",su),cu.prototype={constructor:cu},uu.prototype=Object.assign(Object.create(Tc.prototype),{constructor:uu,type:\"trajectory\",__objName:\"frames\"}),hu.prototype=Object.assign(Object.create(uu.prototype),{constructor:hu,type:\"dcd\",_parse:function(e){t.Debug&&ty.time(\"DcdParser._parse \"+this.name);var i=this.streamer.data;i instanceof Uint8Array&&(i=i.buffer);var n,r,o=new DataView(i),a=this.frames,s=a.coordinates,c=a.boxes,u={},h=0,l=new Int32Array(i,0,23),d=l[0]!==o.getInt32(0);if(84!==l[0])for(r=i.byteLength,n=0;n0)return ty.error(\"dcd format with fixed atoms unsupported, aborting\"),void e();var b=u.NATOM,x=4*b;for(n=0,r=u.NSET;n=a.atomCount+6){r=r.split(s);for(var o=0,c=r.length;os){var r=i[n].trim();if(\"\"!==r)for(var o=r.split(c),a=0,f=o.length;a=n.elements[s].count&&(s++,c=0);var l=this.parseASCIIElement(n.elements[s].properties,h);this.handleElement(i,n.elements[s].name,l),c++}}return this.postProcess(i)},postProcess:function(t){if(t.useColor){for(var e=0;e=0?i-1:i+e/3)},parseNormalIndex:function(t,e){var i=parseInt(t,10);return 3*(i>=0?i-1:i+e/3)},addVertex:function(t,e,i){var n=this.vertices,r=this.object.geometry.vertices;r.push(n[t+0]),r.push(n[t+1]),r.push(n[t+2]),r.push(n[e+0]),r.push(n[e+1]),r.push(n[e+2]),r.push(n[i+0]),r.push(n[i+1]),r.push(n[i+2])},addVertexLine:function(t){var e=this.vertices,i=this.object.geometry.vertices;i.push(e[t+0]),i.push(e[t+1]),i.push(e[t+2])},addNormal:function(t,e,i){var n=this.normals,r=this.object.geometry.normals;r.push(n[t+0]),r.push(n[t+1]),r.push(n[t+2]),r.push(n[e+0]),r.push(n[e+1]),r.push(n[e+2]),r.push(n[i+0]),r.push(n[i+1]),r.push(n[i+2])},addFace:function(t,e,i,n,r,o,a,s){var c,u=this.vertices.length,h=this.parseVertexIndex(t,u),l=this.parseVertexIndex(e,u),d=this.parseVertexIndex(i,u);if(void 0===n?this.addVertex(h,l,d):(c=this.parseVertexIndex(n,u),this.addVertex(h,l,c),this.addVertex(l,d,c)),void 0!==r){var f=this.normals.length;h=this.parseNormalIndex(r,f),l=r===o?h:this.parseNormalIndex(o,f),d=r===a?h:this.parseNormalIndex(a,f),void 0===n?this.addNormal(h,l,d):(c=this.parseNormalIndex(s,f),this.addNormal(h,l,c),this.addNormal(l,d,c))}},addLineGeometry:function(t){this.object.geometry.type=\"Line\";for(var e=this.vertices.length,i=0,n=t.length;i0?_.addAttribute(\"normal\",new Ce(new Float32Array(x.normals),3)):_.computeVertexNormals(),y.push(_)}}return console.timeEnd(\"OBJLoader\"),y}},xu.prototype=Object.assign(Object.create(gu.prototype),{constructor:xu,type:\"obj\"}),sy.add(\"obj\",xu),_u.prototype=Object.assign(Object.create(Tc.prototype),{constructor:_u,type:\"text\",__objName:\"text\",_parse:function(t){this.text.data=this.streamer.asText(),t()}}),sy.add(\"txt\",_u),sy.add(\"text\",_u),wu.prototype=Object.assign(Object.create(Tc.prototype),{constructor:wu,type:\"csv\",__objName:\"table\",_parse:function(t){var e=this.table.data,i=/\\s*,\\s*/;this.streamer.eachChunkOfLines(function(t,n){for(var r=t.length,o=0;o\");){var i=o();if(!i)return e;e.attributes[i.name]=i.value}return s(/\\?>\\s*/),e}}function n(){var t=s(/^<([\\w-:.]+)\\s*/);if(t){for(var e={name:t[1],attributes:{},children:[]};!(c()||u(\">\")||u(\"?>\")||u(\"/>\"));){var i=o();if(!i)return e;e.attributes[i.name]=i.value}if(s(/^\\s*\\/>\\s*/))return e;s(/\\??>\\s*/),e.content=r();for(var a;a=n();)e.children.push(a);return s(/^<\\/[\\w-:.]+>\\s*/),e}}function r(){var t=s(/^([^<]*)/);return t?t[1]:\"\"}function o(){var t=s(/([\\w:-]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|\\w+)\\s*/);if(t)return{name:t[1],value:a(t[2])}}function a(t){return t.replace(/^['\"]|['\"]$/g,\"\")}function s(e){var i=t.match(e);if(i)return t=t.slice(i[0].length),i}function c(){return 0===t.length}function u(e){return 0===t.indexOf(e)}return t=t.trim(),t=t.replace(//g,\"\"),e()},__domParser:function(t){var e=new window.DOMParser;return e.parseFromString(t,\"text/xml\")},_parse:function(e){t.Debug&&ty.time(\"XmlParser._parse \"+this.name);var i=this.streamer.asText();this.useDomParser?this.xml.data=this.__domParser(i):this.xml.data=this.__xmlParser(i),t.Debug&&ty.timeEnd(\"XmlParser._parse \"+this.name),e()}}),sy.add(\"xml\",Au),window.Promise||(window.Promise=n),function(t){t.console=t.console||{};for(var e,i,n=t.console,r={},o=function(){},a=\"memory\".split(\",\"),s=\"assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn\".split(\",\");e=a.pop();)n[e]||(n[e]=r);for(;i=s.pop();)n[i]||(n[i]=o)}(\"undefined\"==typeof window?self:window),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,\"toBlob\",{value:function(t,e,i){for(var n=window.atob(this.toDataURL(e,i).split(\",\")[1]),r=n.length,o=r>>2,a=new Uint8Array(r),s=new Uint32Array(a.buffer,0,o),c=0,u=0;c-9007199254740992&&t<9007199254740992&&Math.floor(t)===t}),Number.isNaN||(Number.isNaN=function(t){return t!==t}),Object.assign||Object.defineProperty(Object,\"assign\",{enumerable:!1,configurable:!0,writable:!0,value:function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert first argument to object\");for(var e,i=Object(t),n=!1,r=1;r1?arguments[1]:void 0,s=a?Number(a):0;s!=s&&(s=0);var c=Math.min(Math.max(s,0),n);if(o+c>n)return!1;for(var u=-1;++ui.length)&&(e=i.length),e-=t.length;var n=i.indexOf(t,e);return n!==-1&&n===e}),function(){for(var t=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/timers-browserify/main.js\n ** module id = 4\n ** module chunks = 0\n **/","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 5\n ** module chunks = 0\n **/","module.exports = {\n\t\"name\": \"nglview-js\",\n\t\"version\": \"0.5.2\",\n\t\"description\": \"nglview\",\n\t\"author\": \"Alexander S. Rose\",\n\t\"license\": \"MIT\",\n\t\"main\": \"src/index.js\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"https://github.com/arose/nglview.git\"\n\t},\n\t\"keywords\": [\n\t\t\"jupyter\",\n\t\t\"widgets\",\n\t\t\"ipython\",\n\t\t\"ipywidgets\"\n\t],\n\t\"scripts\": {\n\t\t\"prepublish\": \"webpack\",\n\t\t\"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n\t},\n\t\"devDependencies\": {\n\t\t\"json-loader\": \"^0.5.4\",\n\t\t\"webpack\": \"^1.12.14\"\n\t},\n\t\"dependencies\": {\n\t\t\"jupyter-js-widgets\": \"^1.1.1\",\n\t\t\"underscore\": \"^1.8.3\"\n\t}\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./package.json\n ** module id = 6\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/bootstrap 4037ff1a59c45b781b84","webpack:///./src/index.js","webpack:///./src/widget_ngl.js","webpack:///external \"jupyter-js-widgets\"","webpack:///./src/ngl.js","webpack:///(webpack)/~/node-libs-browser/~/timers-browserify/main.js","webpack:///(webpack)/~/node-libs-browser/~/process/browser.js","webpack:///./package.json"],"names":[],"mappings":";AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,uBAAe;AACf;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;AC7BA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,UAAS;;AAET;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,cAAa;AACb,UAAS;;AAET;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;;AAEA,wBAAuB,kBAAkB;AACzC;AACA;AACA;AACA,4BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;;AAET;AACA;AACA;AACA,MAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB,cAAa;AACb;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB,kBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;;AAEb;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA,wBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA,kBAAiB;AACjB;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,4BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,oBAAmB,SAAS;AAC5B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA;AACA,cAAa;AACb,UAAS;AACT;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA,cAAa;AACb,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa;AACb;AACA,MAAK;;AAEL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA,UAAS;AACT,MAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,iEAAgE;AAChE;AACA;AACA,cAAa;AACb;AACA,UAAS;AACT,MAAK;;AAEL;;AAEA;;AAEA,wBAAuB,kBAAkB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA,sBAAqB;AACrB;AACA,yCAAwC,yBAAyB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAqC;AACrC,kCAAiC;AACjC;AACA;AACA,sCAAqC;AACrC;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,0BAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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yDAAyD,kBAAkB,yCAAyC,+DAA+D,uDAAuD,kBAAkB,2CAA2C,kEAAkE,0DAA0D,qBAAqB,0FAA0F,gEAAgE,wDAAwD,kBAAkB,2CAA2C,4FAA4F,mBAAmB,6sBAA6sB,SAAS,EAAE;;;;;;;;AC3B3mD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA2C,iBAAiB;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAG;;AAEH;AACA;;AAEA;AACA;AACA,G;;;;;;;AC3EA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACtHtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA;AACA,G","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4037ff1a59c45b781b84\n **/","// Entry point for the notebook bundle containing custom model definitions.\n//\n// Setup notebook base URL\n//\n// Some static assets may be required by the custom widget javascript. The base\n// url for the notebook is not known at build time and is therefore computed\n// dynamically.\n__webpack_public_path__ = document.querySelector('body').getAttribute('data-base-url') + 'nbextensions/nglview/';\n\n// Export widget models and views, and the npm package version number.\n\nmodule.exports = {};\n\nvar loadedModules = [\n require(\"./widget_ngl.js\"),\n //require(\"./ngl.js\"),\n]\n\nfor (var i in loadedModules) {\n if (loadedModules.hasOwnProperty(i)) {\n var loadedModule = loadedModules[i];\n for (var target_name in loadedModule) {\n if (loadedModule.hasOwnProperty(target_name)) {\n module.exports[target_name] = loadedModule[target_name];\n }\n }\n }\n}\n\nmodule.exports['version'] = require('../package.json').version;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/index.js\n ** module id = 0\n ** module chunks = 0\n **/","var widgets = require(\"jupyter-js-widgets\");\nvar NGL = require('./ngl');\n\nvar NGLView = widgets.DOMWidgetView.extend({\n\n render: function() {\n\n // init representations handling\n this.model.on(\"change:_init_representations\", this.representationsChanged, this);\n\n // init structure loading\n this.model.on(\"change:_init_structures_sync\", this.structureChanged, this);\n\n // init setting of frame\n this.model.on(\"change:frame\", this.frameChanged, this);\n\n // init setting of frame\n this.model.on(\"change:count\", this.countChanged, this);\n\n // init _parameters handling\n this.model.on(\"change:_parameters\", this.parametersChanged, this);\n\n // init orientation handling\n this.model.on(\"change:orientation\", this.orientationChanged, this);\n\n // for player\n this.delay = 100;\n this.sync_frame = false;\n this.sync_camera = false;\n\n // get message from Python\n this.model.on(\"msg:custom\", function(msg) {\n this.on_msg(msg);\n }, this);\n\n if (this.model.comm) {\n // for embeding in website\n this.model.comm.on_msg(function(msg) {\n var buffers = msg.buffers;\n var content = msg.content.data.content;\n if (buffers.length && content) {\n content.buffers = buffers;\n }\n this.model._handle_comm_msg.call(this.model, msg);\n }.bind(this));\n }\n\n // init NGL stage\n NGL.useWorker = false;\n this.stage = new NGL.Stage(undefined, {\n backgroundColor: \"white\"\n });\n this.structureComponent = undefined;\n this.$container = $(this.stage.viewer.container);\n this.$el.append(this.$container);\n this.$container.resizable({\n resize: function(event, ui) {\n this.setSize(ui.size.width + \"px\", ui.size.height + \"px\");\n }.bind(this)\n });\n this.displayed.then(function() {\n var width = this.$el.parent().width() + \"px\";\n var height = \"300px\";\n\n this.setSize(width, height);\n this.$container.resizable(\n \"option\", \"maxWidth\", this.$el.parent().width()\n );\n this.requestUpdateStageParameters();\n }.bind(this));\n\n this.stage.viewer.controls.addEventListener(\"change\", function() {\n if (this.sync_camera) {\n this.model.set('camera_str', JSON.stringify(this.stage.viewer.camera));\n this.model.set('orientation', this.stage.viewer.getOrientation());\n this.touch();\n }\n }.bind(this));\n\n // init toggle fullscreen\n $(this.stage.viewer.container).dblclick(function() {\n this.stage.toggleFullscreen();\n }.bind(this));\n\n // init model data\n this.structureChanged();\n\n // init picking handling\n this.$pickingInfo = $(\"
\")\n .css(\"position\", \"absolute\")\n .css(\"top\", \"5%\")\n .css(\"left\", \"3%\")\n .css(\"background-color\", \"white\")\n .css(\"padding\", \"2px 5px 2px 5px\")\n .css(\"opacity\", \"0.7\")\n .appendTo(this.$container);\n\n $inputNotebookCommand = $('');\n var that = this;\n\n $inputNotebookCommand.keypress(function(e) {\n var command = $(\"#input_notebook_command\").val();\n if (e.which == 13) {\n $(\"#input_notebook_command\").val(\"\")\n Jupyter.notebook.kernel.execute(command);\n }\n });\n\n this.$notebook_text = $(\"
\")\n .css(\"position\", \"absolute\")\n .css(\"bottom\", \"5%\")\n .css(\"left\", \"3%\")\n .css(\"padding\", \"2px 5px 2px 5px\")\n .css(\"opacity\", \"0.7\")\n .append($inputNotebookCommand)\n .appendTo(this.$container);\n this.$notebook_text.hide();\n\n this.stage.signals.clicked.add(function(pd) {\n var pd2 = {};\n if (pd.atom) pd2.atom = pd.atom.toObject();\n if (pd.bond) pd2.bond = pd.bond.toObject();\n if (pd.instance) pd2.instance = pd.instance;\n this.model.set(\"picked\", pd2);\n this.model.save();\n var pickingText = \"\";\n if (pd.atom) {\n pickingText = \"Atom: \" + pd.atom.qualifiedName();\n } else if (pd.bond) {\n pickingText = \"Bond: \" + pd.bond.atom1.qualifiedName() + \" - \" + pd.bond.atom2.qualifiedName();\n }\n this.$pickingInfo.text(pickingText);\n }, this);\n\n this.initPlayer();\n\n var container = this.stage.viewer.container;\n var that = this;\n container.addEventListener('dragover', function(e) {\n e.stopPropagation();\n e.preventDefault();\n e.dataTransfer.dropEffect = 'copy';\n }, false);\n\n container.addEventListener('drop', function(e) {\n e.stopPropagation();\n e.preventDefault();\n var file = e.dataTransfer.files[0];\n\n that.stage.loadFile(file).then(that.makeDefaultRepr);\n\n var numDroppedFiles = that.model.get(\"_n_dragged_files\");\n that.model.set(\"_n_dragged_files\", numDroppedFiles + 1);\n that.touch();\n }, false);\n\n var that = this;\n this.stage.signals.componentAdded.add(function() {\n var len = this.stage.compList.length;\n this.model.set(\"n_components\", len);\n this.touch();\n var comp = this.stage.compList[len - 1];\n comp.signals.representationRemoved.add(function() {\n that.requestReprsInfo();\n });\n comp.signals.representationAdded.add(function() {\n that.requestReprsInfo();\n });\n }, this);\n\n this.stage.signals.componentRemoved.add(function() {\n this.model.set(\"n_components\", this.stage.compList.length);\n this.touch();\n }, this);\n\n // for callbacks from Python\n // must be after initializing NGL.Stage\n this.model.send({\n 'type': 'request_loaded',\n 'data': true\n })\n var state_params = this.stage.getParameters();\n this.model.set('_original_stage_parameters', state_params);\n this.touch();\n },\n\n setSelector: function(selector_id) {\n // id is uuid that will be set from Python\n var selector = \"
\";\n console.log('selector', selector);\n this.$ngl_selector = $(selector)\n .css(\"position\", \"absolute\")\n .css(\"bottom\", \"5%\")\n .css(\"left\", \"3%\")\n .css(\"padding\", \"2px 5px 2px 5px\")\n .css(\"opacity\", \"0.7\")\n .appendTo(this.$container);\n },\n\n setIPythonLikeCell: function() {\n var cell = Jupyter.notebook.insert_cell_at_bottom();\n\n var handler = function(event) {\n var selected_cell = Jupyter.notebook.get_selected_cell();\n if (selected_cell.cell_id === cell.cell_id) {\n selected_cell.execute();\n selected_cell.set_text('');\n }\n return false;\n };\n\n var action = {\n help: 'run cell',\n help_index: 'zz',\n handler: handler\n };\n\n Jupyter.keyboard_manager.edit_shortcuts.add_shortcut('enter', action);\n },\n\n hideNotebookCommandBox: function() {\n this.$notebook_text.hide();\n },\n\n showNotebookCommandBox: function() {\n this.$notebook_text.show();\n },\n\n requestFrame: function() {\n this.send({\n 'type': 'request_frame',\n 'data': 'frame'\n });\n },\n\n requestUpdateStageParameters: function() {\n var updated_params = this.stage.getParameters();\n this.model.set('_full_stage_parameters', updated_params);\n this.touch();\n },\n\n requestReprParameters: function(component_index, repr_index) {\n var comp = this.stage.compList[component_index];\n var repr = comp.reprList[repr_index];\n var msg = repr.repr.getParameters();\n\n if (msg) {\n msg['name'] = repr.name;\n this.send({\n 'type': 'repr_parameters',\n 'data': msg\n });\n }\n },\n\n requestReprsInfo: function() {\n var n_components = this.stage.compList.length;\n var msg = {};\n\n for (var i = 0; i < n_components; i++) {\n var comp = this.stage.compList[i];\n msg['c' + i] = {};\n var msgi = msg['c' + i];\n for (var j = 0; j < comp.reprList.length; j++) {\n var repr = comp.reprList[j];\n msgi[j] = {};\n msgi[j]['name'] = repr.name;\n msgi[j]['parameters'] = repr.repr.getParameters();\n }\n }\n this.send({\n 'type': 'all_reprs_info',\n 'data': msg\n });\n },\n\n setDraggable: function(params) {\n if (params) {\n this.$container.draggable(params);\n } else {\n this.$container.draggable();\n }\n },\n setDelay: function(delay) {\n this.delay = delay;\n },\n\n setSyncFrame: function() {\n this.sync_frame = true;\n },\n\n setUnSyncFrame: function() {\n this.sync_frame = false;\n },\n\n setSyncCamera: function() {\n this.sync_camera = true;\n },\n\n setUnSyncCamera: function() {\n this.sync_camera = false;\n },\n\n makeDefaultRepr: function(o) {\n var reprDefList = this.model.get(\"_init_representations\");\n reprDefList.forEach(function(reprDef) {\n o.addRepresentation(reprDef.type, reprDef.params);\n });\n\n if (this.stage.compList.length < 2) {\n o.centerView();\n }\n },\n\n\n initPlayer: function() {\n // init player\n if (this.model.get(\"count\")) {\n var play = function() {\n this.$playerButton.text(\"pause\");\n this.playerInterval = setInterval(function() {\n var frame = this.model.get(\"frame\") + 1;\n var count = this.model.get(\"count\");\n if (frame >= count) frame = 0;\n\n if (this.sync_frame) {\n this.model.set(\"frame\", frame);\n this.model.save();\n } else {\n this.requestFrame();\n }\n }.bind(this), this.delay);\n }.bind(this);\n var pause = function() {\n this.$playerButton.text(\"play\");\n if (this.playerInterval !== undefined) {\n clearInterval(this.playerInterval);\n }\n }.bind(this);\n this.$playerButton = $(\"\")\n .css(\"float\", \"left\")\n .css(\"width\", \"55px\")\n .css(\"opacity\", \"0.7\")\n .click(function(event) {\n if (this.$playerButton.text() === \"play\") {\n play();\n } else if (this.$playerButton.text() === \"pause\") {\n pause();\n }\n }.bind(this));\n this.$playerSlider = $(\"
\")\n .css(\"margin-left\", \"70px\")\n .css(\"position\", \"relative\")\n .css(\"bottom\", \"-7px\")\n .slider({\n min: 0,\n max: this.model.get(\"count\") - 1,\n slide: function(event, ui) {\n pause();\n this.model.set(\"frame\", ui.value);\n this.model.save();\n }.bind(this)\n });\n this.$player = $(\"
\")\n .css(\"position\", \"absolute\")\n .css(\"bottom\", \"5%\")\n .css(\"width\", \"94%\")\n .css(\"margin-left\", \"3%\")\n .css(\"opacity\", \"0.7\")\n .append(this.$playerButton)\n .append(this.$playerSlider)\n .appendTo(this.$container);\n this.model.on(\"change:frame\", function() {\n this.$playerSlider.slider(\"value\", this.model.get(\"frame\"));\n }, this);\n\n if (this.model.get(\"count\") < 2) {\n this.$player.hide()\n };\n }\n },\n\n countChanged: function() {\n var count = this.model.get(\"count\");\n this.$playerSlider.slider({\n max: count - 1\n });\n if (this.model.get(\"count\") > 1) {\n this.$player.show()\n };\n },\n\n representationsChanged: function() {\n var representations = this.model.get(\"_init_representations\");\n\n for (var i = 0; i < this.stage.compList.length; i++) {\n component = this.stage.compList[i];\n if (representations && component) {\n component.clearRepresentations();\n representations.forEach(function(repr) {\n component.addRepresentation(repr.type, repr.params);\n });\n }\n }\n },\n\n setVisibilityForRepr: function(component_index, repr_index, value) {\n // value = True/False\n var component = this.stage.compList[component_index];\n var repr = component.reprList[repr_index];\n\n if (repr) {\n repr.setVisibility(value);\n }\n },\n\n removeRepresentation: function(component_index, repr_index) {\n var component = this.stage.compList[component_index];\n var repr = component.reprList[repr_index]\n\n if (repr) {\n component.removeRepresentation(repr);\n repr.dispose();\n }\n },\n\n removeRepresentationsByName: function(repr_name, component_index) {\n var component = this.stage.compList[component_index];\n\n if (component) {\n component.reprList.forEach(function(repr) {\n if (repr.name == repr_name) {\n component.removeRepresentation(repr);\n repr.dispose();\n }\n })\n }\n },\n\n updateRepresentationForComponent: function(repr_index, component_index, params) {\n var component = this.stage.compList[component_index];\n var repr = component.reprList[repr_index];\n if (repr) {\n repr.setParameters(params);\n }\n },\n\n updateRepresentationsByName: function(repr_name, component_index, params) {\n var component = this.stage.compList[component_index];\n\n if (component) {\n component.reprList.forEach(function(repr) {\n if (repr.name == repr_name) {\n repr.setParameters(params);\n }\n })\n }\n },\n\n setRepresentation: function(name, params, component_index, repr_index) {\n var component = this.stage.compList[component_index];\n var repr = component.reprList[repr_index];\n\n if (repr) {\n params['useWorker'] = false;\n var new_repr = NGL.makeRepresentation(name, component.structure,\n this.stage.viewer, params);\n if (new_repr) {\n repr.setRepresentation(new_repr);\n repr.name = name;\n component.reprList[repr_index] = repr;\n this.requestReprsInfo();\n }\n }\n },\n\n setColorByResidue: function(colors, component_index, repr_index){\n var repr = this.stage.compList[component_index].reprList[repr_index];\n var schemeId = NGL.ColorMakerRegistry.addScheme(function(params){\n this.atomColor = function(atom){\n var color = colors[atom.residueIndex];\n return color\n };\n });\n repr.setColor(schemeId);\n },\n\n addShape: function(name, shapes) {\n // shapes: list of tuple\n // e.g: [('sphere', ...), ('cone', ...)]\n var shape = new NGL.Shape(name);\n var shape_dict = {\n 'sphere': shape.addSphere,\n 'ellipsoid': shape.addEllipsoid,\n 'cylinder': shape.addCylinder,\n 'cone': shape.addCone,\n 'mesh': shape.addMesh,\n 'arrow': shape.addArrow\n };\n for (var i = 0; i < shapes.length; i++) {\n var shapes_i = shapes[i]\n var shape_type = shapes_i[0];\n var params = shapes_i.slice(1, shapes_i.length);\n // e.g params = ('sphere', [ 0, 0, 9 ], [ 1, 0, 0 ], 1.5)\n\n var func = shape_dict[shape_type];\n func.apply(this, params);\n }\n var shapeComp = this.stage.addComponentFromObject(shape);\n shapeComp.addRepresentation(\"buffer\");\n },\n\n structureChanged: function() {\n if (!this.model.get(\"loaded\")) {\n var structureList = this.model.get(\"_init_structures_sync\");\n for (var i = 0; i < Object.keys(structureList).length; i++) {\n var structure = structureList[i];\n if (structure.data && structure.ext) {\n var blob = new Blob([structure.data], {\n type: \"text/plain\"\n });\n var params = structure.params || {};\n params.ext = structure.ext;\n params.defaultRepresentation = false;\n this.stage.loadFile(blob, params).then(function(component) {\n component.centerView();\n // this.structureComponent = component;\n this.representationsChanged();\n\n // for small peptide\n if (component.structure) {\n var structure = component.structure;\n if (structure.biomolDict.BU1) {\n var assembly = structure.biomolDict.BU1;\n atomCount = assembly.getAtomCount(structure);\n instanceCount = assembly.getInstanceCount();\n } else {\n atomCount = structure.getModelProxy(0).atomCount;\n }\n\n if (atomCount < 50) {\n // why 50? arbitrary number\n component.addRepresentation('licorice');\n }\n }\n }.bind(this));\n }\n }\n // only use _init_structures_sync before Widget is loaded.\n }\n },\n\n superpose: function(cindex0, cindex1, align, sele0, sele1) {\n // superpose two components with given params\n var component0 = this.stage.compList[cindex0];\n var component1 = this.stage.compList[cindex1];\n component1.superpose(component0, align, sele0, sele1);\n },\n\n decode_base64: function(base64) {\n // lightly adapted from Niklas\n\n /*\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n var chars =\n \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var bufferLength = base64.length * 0.75,\n len = base64.length,\n i, p = 0,\n encoded1, encoded2, encoded3, encoded4;\n\n if (base64[base64.length - 1] === \"=\") {\n bufferLength--;\n if (base64[base64.length - 2] === \"=\") {\n bufferLength--;\n }\n }\n\n var arraybuffer = new ArrayBuffer(bufferLength),\n bytes = new Uint8Array(arraybuffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = chars.indexOf(base64[i]);\n encoded2 = chars.indexOf(base64[i + 1]);\n encoded3 = chars.indexOf(base64[i + 2]);\n encoded4 = chars.indexOf(base64[i + 3]);\n\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\n }\n\n return arraybuffer;\n },\n\n updateCoordinates: function(coordinates, model) {\n // coordinates must be ArrayBuffer (use this.decode_base64)\n var component = this.stage.compList[model];\n if (coordinates && component) {\n var coords = new Float32Array(coordinates);\n component.structure.updatePosition(coords);\n component.updateRepresentations({\n \"position\": true\n });\n }\n },\n\n handleResize: function() {\n this.$container.resizable({\n resize: function(event, ui) {\n this.setSize(ui.size.width + \"px\", ui.size.height + \"px\");\n }.bind(this)\n })\n },\n\n setSize: function(width, height) {\n this.stage.viewer.container.style.width = width;\n this.stage.viewer.container.style.height = height;\n this.stage.handleResize();\n },\n\n openNotebookCommandDialog: function() {\n var that = this;\n dialog = this.$notebook_text.dialog({\n draggable: true,\n resizable: true,\n modal: false,\n show: {\n effect: \"blind\",\n duration: 150\n },\n close: function(event, ui) {\n that.$container.append(that.$notebook_text);\n that.$notebook_text.dialog('destroy');\n },\n });\n dialog.css({\n overflow: 'hidden'\n });\n dialog.prev('.ui-dialog-titlebar')\n .css({\n 'background': 'transparent',\n 'border': 'none'\n });\n Jupyter.keyboard_manager.register_events(dialog);\n },\n\n setDialog: function() {\n var $nb_container = Jupyter.notebook.container;\n var that = this;\n dialog = this.$container.dialog({\n title: \"NGLView\",\n draggable: true,\n resizable: true,\n modal: false,\n width: window.innerWidth - $nb_container.width() - $nb_container.offset().left - 50,\n height: 'auto',\n position: {\n my: 'right',\n at: 'right',\n of: window\n },\n show: {\n effect: \"blind\",\n duration: 150\n },\n close: function(event, ui) {\n that.$el.append(that.$container);\n that.$container.dialog('destroy');\n that.handleResize();\n },\n resize: function(event, ui) {\n that.stage.handleResize();\n that.setSize(ui.size.width + \"px\", ui.size.height + \"px\");\n }.bind(that),\n });\n dialog.css({\n overflow: 'hidden'\n });\n dialog.prev('.ui-dialog-titlebar')\n .css({\n 'background': 'transparent',\n 'border': 'none'\n });\n },\n\n resizeNotebook: function(width) {\n var $nb_container = Jupyter.notebook.container;\n $nb_container.width(width);\n\n if (this.$container.dialog) {\n this.$container.dialog({\n width: $nb_container.offset().left\n });\n }\n },\n\n parametersChanged: function() {\n var _parameters = this.model.get(\"_parameters\");\n this.stage.setParameters(_parameters);\n\n // do not set _full_stage_parameters here\n // or parameters will be never updated (not sure why) \n // use observe in python side\n var updated_params = this.stage.getParameters();\n this.send({\n 'type': 'stage_parameters',\n 'data': updated_params\n })\n },\n\n orientationChanged: function() {\n var orientation = this.model.get(\"orientation\");\n this.stage.viewer.setOrientation(orientation);\n },\n\n _downloadImage: function(filename, params) {\n this.stage.makeImage(params).then(function(blob) {\n NGL.download(blob, filename);\n })\n },\n\n _exportImage: function(params) {\n this.stage.makeImage(params).then(function(blob) {\n var reader = new FileReader();\n var arr_str;\n reader.onload = function() {\n arr_str = reader.result.replace(\"data:image/png;base64,\", \"\");\n this.model.set(\"_image_data\", arr_str);\n this.touch();\n }.bind(this);\n reader.readAsDataURL(blob);\n }.bind(this));\n },\n\n cleanOutput: function() {\n\n var cells = Jupyter.notebook.get_cells();\n\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.output_area.outputs.length > 0) {\n var out = cell.output_area.outputs[0];\n if (out.output_type == 'display_data') {\n cell.clear_output();\n }\n }\n }\n },\n\n on_msg: function(msg) {\n // TODO: re-organize\n if (msg.type == 'call_method') {\n var new_args = msg.args.slice();\n new_args.push(msg.kwargs);\n\n switch (msg.target) {\n case 'Stage':\n var stage_func = this.stage[msg.methodName];\n var stage = this.stage;\n if (msg.methodName == 'screenshot') {\n NGL.screenshot(this.stage.viewer, msg.kwargs);\n } else if (msg.methodName == 'removeComponent') {\n var index = msg.args[0];\n var component = this.stage.compList[index];\n this.stage.removeComponent(component);\n } else {\n if (msg.methodName == 'loadFile') {\n // args = [{'type': ..., 'data': ...}]\n var args0 = msg.args[0];\n if (args0.type == 'blob') {\n var blob;\n if (args0.binary) {\n var decoded_data = this.decode_base64(args0.data);\n blob = new Blob([decoded_data], {\n type: \"application/octet-binary\"\n });\n } else {\n blob = new Blob([args0.data], {\n type: \"text/plain\"\n });\n }\n this.stage.loadFile(blob, msg.kwargs);\n } else {\n this.stage.loadFile(msg.args[0].data, msg.kwargs);\n }\n } else {\n stage_func.apply(stage, new_args);\n }\n }\n break;\n case 'Viewer':\n var viewer = this.stage.viewer;\n var func = this.stage.viewer[msg.methodName];\n func.apply(viewer, new_args);\n break;\n case 'compList':\n var index = msg['component_index'];\n var component = this.stage.compList[index];\n var func = component[msg.methodName];\n func.apply(component, new_args);\n break;\n case 'StructureComponent':\n var component = this.structureComponent;\n var func = component[msg.methodName];\n func.apply(component, new_args);\n break;\n case 'Widget':\n var func = this[msg.methodName];\n if (func) {\n func.apply(this, new_args);\n } else {\n console.log('can not create func for ' + msg.methodName);\n }\n break;\n case 'Representation':\n var component_index = msg['component_index'];\n var repr_index = msg['repr_index'];\n var component = this.stage.compList[component_index];\n var repr = component.reprList[repr_index];\n var func = repr[msg.methodName];\n if (repr && func) {\n func.apply(repr, new_args);\n }\n break;\n default:\n console.log('there is no method for ' + msg.target);\n break;\n }\n } else if (msg.type == 'base64_single') {\n // TODO: remove time\n var time0 = Date.now();\n\n var coordinatesDict = msg.data;\n var keys = Object.keys(coordinatesDict);\n\n for (var i = 0; i < keys.length; i++) {\n var traj_index = keys[i];\n var coordinates = this.decode_base64(coordinatesDict[traj_index]);\n if (coordinates.byteLength > 0) {\n this.updateCoordinates(coordinates, traj_index);\n }\n }\n var time1 = Date.now();\n } else if (msg.type == 'binary_single') {\n // TODO: remove time\n var time0 = Date.now();\n\n var coordinateMeta = msg.data;\n var keys = Object.keys(coordinateMeta);\n\n for (var i = 0; i < keys.length; i++) {\n var traj_index = keys[i];\n var coordinates = new Float32Array(msg.buffers[i].buffer);\n if (coordinates.byteLength > 0) {\n this.updateCoordinates(coordinates, traj_index);\n }\n }\n var time1 = Date.now();\n } else if (msg.type == 'get') {\n if (msg.data == 'camera') {\n this.send(JSON.stringify(this.stage.viewer.camera));\n } else if (msg.data == 'parameters') {\n this.send(JSON.stringify(this.stage.parameters));\n } else {\n for (var i = 0; i < this.stage.compList.length; i++) {\n console.log(this.stage.compList[i]);\n }\n }\n }\n },\n});\n\nvar NGLBox = widgets.BoxView.extend({\n initialize: function(parameters) {\n widgets.BoxView.prototype.initialize.call(this, parameters);\n this.$dialog = undefined;\n },\n\n render: function() {\n this.model.on('change:_dialog', this.dialogCommandChanged, this);\n this.model.on('change:_ngl_command', this.commandChanged, this);\n widgets.BoxView.prototype.render.call(this);\n },\n\n dialogCommandChanged: function() {\n var _dialog = this.model.get('_dialog');\n if (_dialog == 'on') {\n this.setDialog();\n }\n },\n\n merge: function() {\n // TODO: rename and add doc\n console.log('calling merge');\n var v0 = this.children_views.views[0];\n var v1 = this.children_views.views[1];\n\n v0.then(function(v00) {\n v1.then(function(v11) {\n v11.$el.appendTo(v00.$container)\n .css(\"position\", \"absolute\")\n .css(\"bottom\", \"5%\")\n .css(\"left\", \"3%\")\n .css(\"padding\", \"2px 5px 2px 5px\")\n });\n });\n },\n\n commandChanged: function() {\n var cm = this.model.get('_ngl_command');\n if (cm == 'merge') {\n this.merge();\n } else {\n console.log(\"place holder\");\n }\n },\n\n setDialog: function() {\n //var $node = $(this.$el.parent()[0]);\n var $node = $(this.$el);\n $node.addClass('jupyter-widgets');\n $node.addClass('widget-container');\n $node.addClass('widget-box');\n var that = this;\n dialog = $node.dialog({\n draggable: true,\n resizable: true,\n modal: false,\n height: 'auto',\n show: {\n effect: \"blind\",\n duration: 150\n },\n });\n dialog.css({\n overflow: 'hidden'\n });\n dialog.prev('.ui-dialog-titlebar')\n .css({\n 'background': 'transparent',\n 'border': 'none'\n });\n },\n});\n\nmodule.exports = {\n 'NGLView': NGLView,\n 'NGL': NGL,\n 'NGLBox': NGLBox\n};\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/widget_ngl.js\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"jupyter-js-widgets\"\n ** module id = 2\n ** module chunks = 0\n **/","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e(t.NGL=t.NGL||{})}(this,function(t){\"use strict\";function e(){}function i(t,e){return function(){t.apply(e,arguments)}}function n(t){if(\"object\"!=typeof this)throw new TypeError(\"Promises must be constructed via new\");if(\"function\"!=typeof t)throw new TypeError(\"not a function\");this._state=0,this._handled=!1,this._value=void 0,this._deferreds=[],u(t,this)}function r(t,e){for(;3===t._state;)t=t._value;return 0===t._state?void t._deferreds.push(e):(t._handled=!0,void Eu(function(){var i=1===t._state?e.onFulfilled:e.onRejected;if(null===i)return void(1===t._state?o:a)(e.promise,t._value);var n;try{n=i(t._value)}catch(t){return void a(e.promise,t)}o(e.promise,n)}))}function o(t,e){try{if(e===t)throw new TypeError(\"A promise cannot be resolved with itself.\");if(e&&(\"object\"==typeof e||\"function\"==typeof e)){var r=e.then;if(e instanceof n)return t._state=3,t._value=e,void s(t);if(\"function\"==typeof r)return void u(i(r,e),t)}t._state=1,t._value=e,s(t)}catch(e){a(t,e)}}function a(t,e){t._state=2,t._value=e,s(t)}function s(t){2===t._state&&0===t._deferreds.length&&Eu(function(){t._handled||Cu(t._value)});for(var e=0,i=t._deferreds.length;e>>16&65535|0,a=0;0!==i;){a=i>2e3?2e3:i,i-=a;do r=r+e[n++]|0,o=o+r|0;while(--a);r%=65521,o%=65521}return r|o<<16|0}function m(){for(var t,e=[],i=0;i<256;i++){t=i;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[i]=t}return e}function g(t,e,i,n){var r=Lu,o=n+i;t^=-1;for(var a=n;a>>8^r[255&(t^e[a])];return t^-1}function v(t,e){var i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v,y,b,x,_,w,S,A,M,P;i=t.state,n=t.next_in,M=t.input,r=n+(t.avail_in-5),o=t.next_out,P=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),c=i.dmax,u=i.wsize,h=i.whave,l=i.wnext,d=i.window,f=i.hold,p=i.bits,m=i.lencode,g=i.distcode,v=(1<>>24,f>>>=x,p-=x,x=b>>>16&255,0===x)P[o++]=65535&b;else{if(!(16&x)){if(0===(64&x)){b=m[(65535&b)+(f&(1<>>=x,p-=x),p<15&&(f+=M[n++]<>>24,f>>>=x,p-=x,x=b>>>16&255,!(16&x)){if(0===(64&x)){b=g[(65535&b)+(f&(1<c){t.msg=\"invalid distance too far back\",i.mode=Ou;break t}if(f>>>=x,p-=x,x=o-a,w>x){if(x=w-x,x>h&&i.sane){t.msg=\"invalid distance too far back\",i.mode=Ou;break t}if(S=0,A=d,0===l){if(S+=u-x,x<_){_-=x;do P[o++]=d[S++];while(--x);S=o-w,A=P}}else if(l2;)P[o++]=A[S++],P[o++]=A[S++],P[o++]=A[S++],_-=3;_&&(P[o++]=A[S++],_>1&&(P[o++]=A[S++]))}else{S=o-w;do P[o++]=P[S++],P[o++]=P[S++],P[o++]=P[S++],_-=3;while(_>2);_&&(P[o++]=P[S++],_>1&&(P[o++]=P[S++]))}break}}break}}while(n>3,n-=_,p-=_<<3,f&=(1<=1&&0===I[_];_--);if(w>_&&(w=_),0===_)return r[o++]=20971520,r[o++]=20971520,s.bits=1,0;for(x=1;x<_&&0===I[x];x++);for(w0&&(t===Fu||1!==_))return-1;for(L[1]=0,y=1;yDu||t===Bu&&P>Nu)return 1;for(var k=0;;){k++,p=y-A,a[b]f?(m=O[R+a[b]],g=C[T+a[b]]):(m=96,g=0),c=1<>A)+u]=p<<24|m<<16|g|0;while(0!==u);for(c=1<>=1;if(0!==c?(E&=c-1,E+=c):E=0,b++,0===--I[y]){if(y===_)break;y=e[i+a[b]]}if(y>w&&(E&l)!==h){for(0===A&&(A=w),d+=x,S=y-A,M=1<Du||t===Bu&&P>Nu)return 1;h=E&l,r[h]=w<<24|S<<16|d-o|0}}return 0!==E&&(r[d+E]=y-A<<24|64<<16|0),s.bits=w,0}function b(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function x(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function _(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=rh,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Nh),e.distcode=e.distdyn=new Int32Array(Fh),e.sane=1,e.back=-1,Zu):Ju}function w(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,_(t)):Ju}function S(t,e){var i,n;return t&&t.state?(n=t.state,e<0?(i=0,e=-e):(i=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?Ju:(null!==n.window&&n.wbits!==e&&(n.window=null),n.wrap=i,n.wbits=e,w(t))):Ju}function A(t,e){var i,n;return t?(n=new x,t.state=n,n.window=null,i=S(t,e),i!==Zu&&(t.state=null),i):Ju}function M(t){if(zh){var e;for(Tu=new Int32Array(512),Iu=new Int32Array(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(Hu,t.lens,0,288,Tu,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(Wu,t.lens,0,32,Iu,0,t.work,{bits:5}),zh=!1}t.lencode=Tu,t.lenbits=9,t.distcode=Iu,t.distbits=5}function P(t,e,i,n){var r,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(d(o.window,e,i-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),d(o.window,e,i-n,r,o.wnext),n-=r,n?(d(o.window,e,i-n,n,0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,i.check=g(i.check,D,2,0),u=0,h=0,i.mode=oh;break}if(i.flags=0,i.head&&(i.head.done=!1),!(1&i.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",i.mode=Rh;break}if((15&u)!==nh){t.msg=\"unknown compression method\",i.mode=Rh;break}if(u>>>=4,h-=4,I=(15&u)+8,0===i.wbits)i.wbits=I;else if(I>i.wbits){t.msg=\"invalid window size\",i.mode=Rh;break}i.dmax=1<>8&1),512&i.flags&&(D[0]=255&u,D[1]=u>>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0,i.mode=ah;case ah:for(;h<32;){if(0===s)break t;s--,u+=n[o++]<>>8&255,D[2]=u>>>16&255,D[3]=u>>>24&255,i.check=g(i.check,D,4,0)),u=0,h=0,i.mode=sh;case sh:for(;h<16;){if(0===s)break t;s--,u+=n[o++]<>8),512&i.flags&&(D[0]=255&u,D[1]=u>>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0,i.mode=ch;case ch:if(1024&i.flags){for(;h<16;){if(0===s)break t;s--,u+=n[o++]<>>8&255,i.check=g(i.check,D,2,0)),u=0,h=0}else i.head&&(i.head.extra=null);i.mode=uh;case uh:if(1024&i.flags&&(m=i.length,m>s&&(m=s),m&&(i.head&&(I=i.head.extra_len-i.length,i.head.extra||(i.head.extra=new Array(i.head.extra_len)),d(i.head.extra,n,o,m,I)),512&i.flags&&(i.check=g(i.check,n,m,o)),s-=m,o+=m,i.length-=m),i.length))break t;i.length=0,i.mode=hh;case hh:if(2048&i.flags){if(0===s)break t;m=0;do I=n[o+m++],i.head&&I&&i.length<65536&&(i.head.name+=String.fromCharCode(I));while(I&&m>9&1,i.head.done=!0),t.adler=i.check=0,i.mode=mh;break;case fh:for(;h<32;){if(0===s)break t;s--,u+=n[o++]<>>=7&h,h-=7&h,i.mode=Ih;break}for(;h<3;){if(0===s)break t;s--,u+=n[o++]<>>=1,h-=1,3&u){case 0:i.mode=vh;break;case 1:if(M(i),i.mode=Sh,e===Yu){u>>>=2,h-=2;break t}break;case 2:i.mode=xh;break;case 3:t.msg=\"invalid block type\",i.mode=Rh}u>>>=2,h-=2;break;case vh:for(u>>>=7&h,h-=7&h;h<32;){if(0===s)break t;s--,u+=n[o++]<>>16^65535)){t.msg=\"invalid stored block lengths\",i.mode=Rh;break}if(i.length=65535&u,u=0,h=0,i.mode=yh,e===Yu)break t;case yh:i.mode=bh;case bh:if(m=i.length){if(m>s&&(m=s),m>c&&(m=c),0===m)break t;d(r,n,o,m,a),s-=m,o+=m,c-=m,a+=m,i.length-=m;break}i.mode=mh;break;case xh:for(;h<14;){if(0===s)break t;s--,u+=n[o++]<>>=5,h-=5,i.ndist=(31&u)+1,u>>>=5,h-=5,i.ncode=(15&u)+4,u>>>=4,h-=4,i.nlen>286||i.ndist>30){t.msg=\"too many length or distance symbols\",i.mode=Rh;break}i.have=0,i.mode=_h;case _h:for(;i.have>>=3,h-=3}for(;i.have<19;)i.lens[N[i.have++]]=0;if(i.lencode=i.lendyn,i.lenbits=7,O={bits:i.lenbits},L=y(Gu,i.lens,0,19,i.lencode,0,i.work,O),i.lenbits=O.bits,L){t.msg=\"invalid code lengths set\",i.mode=Rh;break}i.have=0,i.mode=wh;case wh:for(;i.have>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=w,h-=w,i.lens[i.have++]=A;else{if(16===A){for(R=w+2;h>>=w,h-=w,0===i.have){t.msg=\"invalid bit length repeat\",i.mode=Rh;break}I=i.lens[i.have-1],m=3+(3&u),u>>>=2,h-=2}else if(17===A){for(R=w+3;h>>=w,h-=w,I=0,m=3+(7&u),u>>>=3,h-=3}else{for(R=w+7;h>>=w,h-=w,I=0,m=11+(127&u),u>>>=7,h-=7}if(i.have+m>i.nlen+i.ndist){t.msg=\"invalid bit length repeat\",i.mode=Rh;break}for(;m--;)i.lens[i.have++]=I}}if(i.mode===Rh)break;if(0===i.lens[256]){t.msg=\"invalid code -- missing end-of-block\",i.mode=Rh;break}if(i.lenbits=9,O={bits:i.lenbits},L=y(Hu,i.lens,0,i.nlen,i.lencode,0,i.work,O),i.lenbits=O.bits,L){t.msg=\"invalid literal/lengths set\",i.mode=Rh;break}if(i.distbits=6,i.distcode=i.distdyn,O={bits:i.distbits},L=y(Wu,i.lens,i.nlen,i.ndist,i.distcode,0,i.work,O),i.distbits=O.bits,L){t.msg=\"invalid distances set\",i.mode=Rh;break}if(i.mode=Sh,e===Yu)break t;case Sh:i.mode=Ah;case Ah:if(s>=6&&c>=258){t.next_out=a,t.avail_out=c,t.next_in=o,t.avail_in=s,i.hold=u,i.bits=h,v(t,f),a=t.next_out,r=t.output,c=t.avail_out,o=t.next_in,n=t.input,s=t.avail_in,u=i.hold,h=i.bits,i.mode===mh&&(i.back=-1);break}for(i.back=0;k=i.lencode[u&(1<>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>E)],w=k>>>24,S=k>>>16&255,A=65535&k,!(E+w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=E,h-=E,i.back+=E}if(u>>>=w,h-=w,i.back+=w,i.length=A,0===S){i.mode=Th;break}if(32&S){i.back=-1,i.mode=mh;break}if(64&S){t.msg=\"invalid literal/length code\",i.mode=Rh;break}i.extra=15&S,i.mode=Mh;case Mh:if(i.extra){for(R=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}i.was=i.length,i.mode=Ph;case Ph:for(;k=i.distcode[u&(1<>>24,S=k>>>16&255,A=65535&k,!(w<=h);){if(0===s)break t;s--,u+=n[o++]<>E)],w=k>>>24,S=k>>>16&255,A=65535&k,!(E+w<=h);){if(0===s)break t;s--,u+=n[o++]<>>=E,h-=E,i.back+=E}if(u>>>=w,h-=w,i.back+=w,64&S){t.msg=\"invalid distance code\",i.mode=Rh;break}i.offset=A,i.extra=15&S,i.mode=Eh;case Eh:if(i.extra){for(R=i.extra;h>>=i.extra,h-=i.extra,i.back+=i.extra}if(i.offset>i.dmax){t.msg=\"invalid distance too far back\",i.mode=Rh;break}i.mode=Ch;case Ch:if(0===c)break t;if(m=f-c,i.offset>m){if(m=i.offset-m,m>i.whave&&i.sane){t.msg=\"invalid distance too far back\",i.mode=Rh;break}m>i.wnext?(m-=i.wnext,x=i.wsize-m):x=i.wnext-m,m>i.length&&(m=i.length),_=i.window}else _=r,x=a-i.offset,m=i.length;m>c&&(m=c),c-=m,i.length-=m;do r[a++]=_[x++];while(--m);0===i.length&&(i.mode=Ah);break;case Th:if(0===c)break t;r[a++]=i.length,c--,i.mode=Ah;break;case Ih:if(i.wrap){for(;h<32;){if(0===s)break t;s--,u|=n[o++]<>>6,e[o++]=128|63&i):i<65536?(e[o++]=224|i>>>12,e[o++]=128|i>>>6&63,e[o++]=128|63&i):(e[o++]=240|i>>>18,e[o++]=128|i>>>12&63,e[o++]=128|i>>>6&63,e[o++]=128|63&i);return e}function O(t,e){if(e<65537&&(t.subarray&&Uh||!t.subarray&&Bh))return String.fromCharCode.apply(null,l(t,e));for(var i=\"\",n=0;n4)s[n++]=65533,i+=o-1;else{for(r&=2===o?31:3===o?15:7;o>1&&i1?s[n++]=65533:r<65536?s[n++]=r:(r-=65536,s[n++]=55296|r>>10&1023,s[n++]=56320|1023&r)}return O(s,n)}function D(t,e){var i;for(e=e||t.length,e>t.length&&(e=t.length),i=e-1;i>=0&&128===(192&t[i]);)i--;return i<0?e:0===i?e:i+jh[t[i]]>e?i:e}function N(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}function F(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}function z(t){if(!(this instanceof z))return new z(t);this.options=h({chunkSize:16384,windowBits:0,to:\"\"},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new N,this.strm.avail_out=0;var i=A(this.strm,e.windowBits);if(i!==Wh)throw new Error(Zh[i]);this.header=new F,T(this.strm,this.header)}function B(t,e){var i=new z(e);if(i.push(t,!0),i.err)throw i.msg;return i.result}function U(t){if(\"undefined\"!=typeof window){var e=new RegExp(t+\"=([^&#=]*)\"),i=e.exec(window.location.search);return i?decodeURIComponent(i[1]):void 0}}function j(t){return!!t&&(\"string\"!=typeof t||/^1|true|t|yes|y$/i.test(t))}function $(t,e){return void 0!==t?t:e}function V(){if(\"undefined\"==typeof window)return!1;var t=window.navigator.userAgent;return/Arora/i.test(t)?\"Arora\":/Opera|OPR/.test(t)?\"Opera\":/Chrome/i.test(t)?\"Chrome\":/Epiphany/i.test(t)?\"Epiphany\":/Firefox/i.test(t)?\"Firefox\":/Mobile(\\/.*)? Safari/i.test(t)?\"Mobile Safari\":/MSIE/i.test(t)?\"Internet Explorer\":/Midori/i.test(t)?\"Midori\":!!/Safari/i.test(t)&&\"Safari\"}function G(t){var e=window.location,i=e.pathname,n=i.substring(0,i.lastIndexOf(\"/\")+1);return e.origin+n+t}function H(t){if(\"object\"!=typeof t)return t;var e=Array.isArray(t)?[]:{};for(var i in t)e[i]=H(t[i]);return e}function W(t,e){function i(t){var e=window.open(t,\"_blank\");e||(window.location.href=t)}function n(t){i(o?t:t.replace(/^data:[^;]*;/,\"data:attachment/file;\"))}if(t){e=e||\"download\";var r=\"Safari\"===V(),o=/CriOS\\/[\\d]+/.test(window.navigator.userAgent),a=document.createElement(\"a\");if(\"undefined\"!=typeof navigator&&navigator.msSaveOrOpenBlob)navigator.msSaveOrOpenBlob(t,e);else if((r||o)&&window.FileReader)if(t instanceof Blob){var s=new FileReader;s.onloadend=function(){n(s.result)},s.readAsDataURL(t)}else n(t);else t instanceof Blob&&(t=URL.createObjectURL(t)),\"download\"in a?(a.style.display=\"hidden\",document.body.appendChild(a),a.href=t,a.download=e,a.target=\"_blank\",a.click(),document.body.removeChild(a)):i(t),t instanceof Blob&&URL.revokeObjectURL(t)}}function X(t){var e,i,n,r=[\"gz\"];e=\"undefined\"!=typeof File&&t instanceof File||\"undefined\"!=typeof Blob&&t instanceof Blob?t.name||\"\":t;var o=e.lastIndexOf(\"?\");e=e.substring(0,o===-1?e.length:o);var a=e.replace(/^.*[\\\\\\/]/,\"\"),s=a.substring(0,a.lastIndexOf(\".\")),c=a.split(\".\"),u=c.length>1?c.pop().toLowerCase():\"\",h=e.match(/^(.+):\\/\\/(.+)$/);h&&(n=h[1].toLowerCase(),e=h[2]);var l=e.substring(0,e.lastIndexOf(\"/\")+1);if(r.indexOf(u)!==-1){i=u;var d=e.length-u.length-1;u=e.substr(0,d).split(\".\").pop().toLowerCase();var f=s.length-u.length-1;s=s.substr(0,f)}else i=!1;return{path:e,name:a,ext:u,base:s,dir:l,compressed:i,protocol:n,src:t}}function q(t,e,i){var n,r,o,a=null,s=0;i||(i={});var c=function(){s=i.leading===!1?0:Date.now(),a=null,o=t.apply(n,r),a||(n=r=null)};return function(){var u=Date.now();s||i.leading!==!1||(s=u);var h=e-(u-s);return n=this,r=arguments,h<=0||h>e?(a&&(clearTimeout(a),a=null),s=u,o=t.apply(n,r),a||(n=r=null)):a||i.trailing===!1||(a=setTimeout(c,h)),o}}function Y(t){return t.sort().filter(function(t,e,i){return 0===e||t!==i[e-1]})}function Z(t){var e=28672;if(t.length>e){for(var i=[],n=0;n0&&console.error(\"THREE.Matrix4: the constructor no longer reads arguments. use .set() instead.\")}function lt(t,e,i,n){this._x=t||0,this._y=e||0,this._z=i||0,this._w=void 0!==n?n:1}function dt(t,e,i){this.x=t||0,this.y=e||0,this.z=i||0}function ft(t,e){function i(){var t=new Float32Array([-.5,-.5,0,0,.5,-.5,1,0,.5,.5,1,1,-.5,.5,0,1]),e=new Uint16Array([0,1,2,0,2,3]);o=l.createBuffer(),a=l.createBuffer(),l.bindBuffer(l.ARRAY_BUFFER,o),l.bufferData(l.ARRAY_BUFFER,t,l.STATIC_DRAW),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,a),l.bufferData(l.ELEMENT_ARRAY_BUFFER,e,l.STATIC_DRAW),s=n(),c={position:l.getAttribLocation(s,\"position\"),uv:l.getAttribLocation(s,\"uv\")},u={uvOffset:l.getUniformLocation(s,\"uvOffset\"),uvScale:l.getUniformLocation(s,\"uvScale\"),rotation:l.getUniformLocation(s,\"rotation\"),scale:l.getUniformLocation(s,\"scale\"),color:l.getUniformLocation(s,\"color\"),map:l.getUniformLocation(s,\"map\"),opacity:l.getUniformLocation(s,\"opacity\"),modelViewMatrix:l.getUniformLocation(s,\"modelViewMatrix\"),projectionMatrix:l.getUniformLocation(s,\"projectionMatrix\"),fogType:l.getUniformLocation(s,\"fogType\"),fogDensity:l.getUniformLocation(s,\"fogDensity\"),fogNear:l.getUniformLocation(s,\"fogNear\"),fogFar:l.getUniformLocation(s,\"fogFar\"),fogColor:l.getUniformLocation(s,\"fogColor\"),alphaTest:l.getUniformLocation(s,\"alphaTest\")};var i=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");i.width=8,i.height=8;var r=i.getContext(\"2d\");r.fillStyle=\"white\",r.fillRect(0,0,8,8),h=new ct(i),h.needsUpdate=!0}function n(){var e=l.createProgram(),i=l.createShader(l.VERTEX_SHADER),n=l.createShader(l.FRAGMENT_SHADER);return l.shaderSource(i,[\"precision \"+t.getPrecision()+\" float;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform float rotation;\",\"uniform vec2 scale;\",\"uniform vec2 uvOffset;\",\"uniform vec2 uvScale;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"void main() {\",\"vUV = uvOffset + uv * uvScale;\",\"vec2 alignedPosition = position * scale;\",\"vec2 rotatedPosition;\",\"rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y;\",\"rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y;\",\"vec4 finalPosition;\",\"finalPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 );\",\"finalPosition.xy += rotatedPosition;\",\"finalPosition = projectionMatrix * finalPosition;\",\"gl_Position = finalPosition;\",\"}\"].join(\"\\n\")),l.shaderSource(n,[\"precision \"+t.getPrecision()+\" float;\",\"uniform vec3 color;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform int fogType;\",\"uniform vec3 fogColor;\",\"uniform float fogDensity;\",\"uniform float fogNear;\",\"uniform float fogFar;\",\"uniform float alphaTest;\",\"varying vec2 vUV;\",\"void main() {\",\"vec4 texture = texture2D( map, vUV );\",\"if ( texture.a < alphaTest ) discard;\",\"gl_FragColor = vec4( color * texture.xyz, texture.a * opacity );\",\"if ( fogType > 0 ) {\",\"float depth = gl_FragCoord.z / gl_FragCoord.w;\",\"float fogFactor = 0.0;\",\"if ( fogType == 1 ) {\",\"fogFactor = smoothstep( fogNear, fogFar, depth );\",\"} else {\",\"const float LOG2 = 1.442695;\",\"fogFactor = exp2( - fogDensity * fogDensity * depth * depth * LOG2 );\",\"fogFactor = 1.0 - clamp( fogFactor, 0.0, 1.0 );\",\"}\",\"gl_FragColor = mix( gl_FragColor, vec4( fogColor, gl_FragColor.w ), fogFactor );\",\"}\",\"}\"].join(\"\\n\")),l.compileShader(i),l.compileShader(n),l.attachShader(e,i),l.attachShader(e,n),l.linkProgram(e),e}function r(t,e){return t.renderOrder!==e.renderOrder?t.renderOrder-e.renderOrder:t.z!==e.z?e.z-t.z:e.id-t.id}var o,a,s,c,u,h,l=t.context,d=t.state,f=new dt,p=new lt,m=new dt;this.render=function(n,g){if(0!==e.length){void 0===s&&i(),l.useProgram(s),d.initAttributes(),d.enableAttribute(c.position),d.enableAttribute(c.uv),d.disableUnusedAttributes(),d.disable(l.CULL_FACE),d.enable(l.BLEND),l.bindBuffer(l.ARRAY_BUFFER,o),l.vertexAttribPointer(c.position,2,l.FLOAT,!1,16,0),l.vertexAttribPointer(c.uv,2,l.FLOAT,!1,16,8),l.bindBuffer(l.ELEMENT_ARRAY_BUFFER,a),l.uniformMatrix4fv(u.projectionMatrix,!1,g.projectionMatrix.elements),d.activeTexture(l.TEXTURE0),l.uniform1i(u.map,0);var v=0,y=0,b=n.fog;b?(l.uniform3f(u.fogColor,b.color.r,b.color.g,b.color.b),b&&b.isFog?(l.uniform1f(u.fogNear,b.near),l.uniform1f(u.fogFar,b.far),l.uniform1i(u.fogType,1),v=1,y=1):b&&b.isFogExp2&&(l.uniform1f(u.fogDensity,b.density),l.uniform1i(u.fogType,2),v=2,y=2)):(l.uniform1i(u.fogType,0),v=0,y=0);for(var x=0,_=e.length;x<_;x++){var w=e[x];w.modelViewMatrix.multiplyMatrices(g.matrixWorldInverse,w.matrixWorld),w.z=-w.modelViewMatrix.elements[14]}e.sort(r);for(var S=[],x=0,_=e.length;x<_;x++){var w=e[x],A=w.material;if(A.visible!==!1){l.uniform1f(u.alphaTest,A.alphaTest),l.uniformMatrix4fv(u.modelViewMatrix,!1,w.modelViewMatrix.elements),w.matrixWorld.decompose(f,p,m),S[0]=m.x,S[1]=m.y;var M=0;n.fog&&A.fog&&(M=y),v!==M&&(l.uniform1i(u.fogType,M),v=M),null!==A.map?(l.uniform2f(u.uvOffset,A.map.offset.x,A.map.offset.y),l.uniform2f(u.uvScale,A.map.repeat.x,A.map.repeat.y)):(l.uniform2f(u.uvOffset,0,0),l.uniform2f(u.uvScale,1,1)),l.uniform1f(u.opacity,A.opacity),l.uniform3f(u.color,A.color.r,A.color.g,A.color.b),l.uniform1f(u.rotation,A.rotation),l.uniform2fv(u.scale,S),d.setBlending(A.blending,A.blendEquation,A.blendSrc,A.blendDst),d.setDepthTest(A.depthTest),d.setDepthWrite(A.depthWrite),A.map?t.setTexture2D(A.map,0):t.setTexture2D(h,0),l.drawElements(l.TRIANGLES,6,l.UNSIGNED_SHORT,0)}}d.enable(l.CULL_FACE),t.resetGLState()}}}function pt(t,e){this.min=void 0!==t?t:new st(+(1/0),+(1/0)),this.max=void 0!==e?e:new st(-(1/0),-(1/0))}function mt(t,e){function i(){var t=new Float32Array([-1,-1,0,0,1,-1,1,0,1,1,1,1,-1,1,0,1]),e=new Uint16Array([0,1,2,0,2,3]);r=d.createBuffer(),o=d.createBuffer(),d.bindBuffer(d.ARRAY_BUFFER,r),d.bufferData(d.ARRAY_BUFFER,t,d.STATIC_DRAW),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,o),d.bufferData(d.ELEMENT_ARRAY_BUFFER,e,d.STATIC_DRAW),h=d.createTexture(),l=d.createTexture(),f.bindTexture(d.TEXTURE_2D,h),d.texImage2D(d.TEXTURE_2D,0,d.RGB,16,16,0,d.RGB,d.UNSIGNED_BYTE,null),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.NEAREST),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.NEAREST),f.bindTexture(d.TEXTURE_2D,l),d.texImage2D(d.TEXTURE_2D,0,d.RGBA,16,16,0,d.RGBA,d.UNSIGNED_BYTE,null),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.CLAMP_TO_EDGE),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.NEAREST),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.NEAREST),a={vertexShader:[\"uniform lowp int renderType;\",\"uniform vec3 screenPosition;\",\"uniform vec2 scale;\",\"uniform float rotation;\",\"uniform sampler2D occlusionMap;\",\"attribute vec2 position;\",\"attribute vec2 uv;\",\"varying vec2 vUV;\",\"varying float vVisibility;\",\"void main() {\",\"vUV = uv;\",\"vec2 pos = position;\",\"if ( renderType == 2 ) {\",\"vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\",\"visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\",\"vVisibility = visibility.r / 9.0;\",\"vVisibility *= 1.0 - visibility.g / 9.0;\",\"vVisibility *= visibility.b / 9.0;\",\"vVisibility *= 1.0 - visibility.a / 9.0;\",\"pos.x = cos( rotation ) * position.x - sin( rotation ) * position.y;\",\"pos.y = sin( rotation ) * position.x + cos( rotation ) * position.y;\",\"}\",\"gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\",\"}\"].join(\"\\n\"),fragmentShader:[\"uniform lowp int renderType;\",\"uniform sampler2D map;\",\"uniform float opacity;\",\"uniform vec3 color;\",\"varying vec2 vUV;\",\"varying float vVisibility;\",\"void main() {\",\"if ( renderType == 0 ) {\",\"gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.0 );\",\"} else if ( renderType == 1 ) {\",\"gl_FragColor = texture2D( map, vUV );\",\"} else {\",\"vec4 texture = texture2D( map, vUV );\",\"texture.a *= opacity * vVisibility;\",\"gl_FragColor = texture;\",\"gl_FragColor.rgb *= color;\",\"}\",\"}\"].join(\"\\n\")\n},s=n(a),c={vertex:d.getAttribLocation(s,\"position\"),uv:d.getAttribLocation(s,\"uv\")},u={renderType:d.getUniformLocation(s,\"renderType\"),map:d.getUniformLocation(s,\"map\"),occlusionMap:d.getUniformLocation(s,\"occlusionMap\"),opacity:d.getUniformLocation(s,\"opacity\"),color:d.getUniformLocation(s,\"color\"),scale:d.getUniformLocation(s,\"scale\"),rotation:d.getUniformLocation(s,\"rotation\"),screenPosition:d.getUniformLocation(s,\"screenPosition\")}}function n(e){var i=d.createProgram(),n=d.createShader(d.FRAGMENT_SHADER),r=d.createShader(d.VERTEX_SHADER),o=\"precision \"+t.getPrecision()+\" float;\\n\";return d.shaderSource(n,o+e.fragmentShader),d.shaderSource(r,o+e.vertexShader),d.compileShader(n),d.compileShader(r),d.attachShader(i,n),d.attachShader(i,r),d.linkProgram(i),i}var r,o,a,s,c,u,h,l,d=t.context,f=t.state;this.render=function(n,a,p){if(0!==e.length){var m=new dt,g=p.w/p.z,v=.5*p.z,y=.5*p.w,b=16/p.w,x=new st(b*g,b),_=new dt(1,1,0),w=new st(1,1),S=new pt;S.min.set(0,0),S.max.set(p.z-16,p.w-16),void 0===s&&i(),d.useProgram(s),f.initAttributes(),f.enableAttribute(c.vertex),f.enableAttribute(c.uv),f.disableUnusedAttributes(),d.uniform1i(u.occlusionMap,0),d.uniform1i(u.map,1),d.bindBuffer(d.ARRAY_BUFFER,r),d.vertexAttribPointer(c.vertex,2,d.FLOAT,!1,16,0),d.vertexAttribPointer(c.uv,2,d.FLOAT,!1,16,8),d.bindBuffer(d.ELEMENT_ARRAY_BUFFER,o),f.disable(d.CULL_FACE),f.setDepthWrite(!1);for(var A=0,M=e.length;A.001&&T.scale>.001&&(_.x=T.x,_.y=T.y,_.z=T.z,b=T.size*T.scale/p.w,x.x=b*g,x.y=b,d.uniform3f(u.screenPosition,_.x,_.y,_.z),d.uniform2f(u.scale,x.x,x.y),d.uniform1f(u.rotation,T.rotation),d.uniform1f(u.opacity,T.opacity),d.uniform3f(u.color,T.color.r,T.color.g,T.color.b),f.setBlending(T.blending,T.blendEquation,T.blendSrc,T.blendDst),t.setTexture2D(T.texture,1),d.drawElements(d.TRIANGLES,6,d.UNSIGNED_SHORT,0))}}}f.enable(d.CULL_FACE),f.enable(d.DEPTH_TEST),f.setDepthWrite(!0),t.resetGLState()}}}function gt(t,e,i,n,r,o,a,s,c,u){t=void 0!==t?t:[],e=void 0!==e?e:Jl,ct.call(this,t,e,i,n,r,o,a,s,c,u),this.flipY=!1}function vt(){this.seq=[],this.map={}}function yt(t,e,i){var n=t[0];if(n<=0||n>0)return t;var r=e*i,o=mf[r];if(void 0===o&&(o=new Float32Array(r),mf[r]=o),0!==e){n.toArray(o,0);for(var a=1,s=0;a!==e;++a)s+=i,t[a].toArray(o,s)}return o}function bt(t,e){var i=gf[e];void 0===i&&(i=new Int32Array(e),gf[e]=i);for(var n=0;n!==e;++n)i[n]=t.allocTextureUnit();return i}function xt(t,e){t.uniform1f(this.addr,e)}function _t(t,e){t.uniform1i(this.addr,e)}function wt(t,e){void 0===e.x?t.uniform2fv(this.addr,e):t.uniform2f(this.addr,e.x,e.y)}function St(t,e){void 0!==e.x?t.uniform3f(this.addr,e.x,e.y,e.z):void 0!==e.r?t.uniform3f(this.addr,e.r,e.g,e.b):t.uniform3fv(this.addr,e)}function At(t,e){void 0===e.x?t.uniform4fv(this.addr,e):t.uniform4f(this.addr,e.x,e.y,e.z,e.w)}function Mt(t,e){t.uniformMatrix2fv(this.addr,!1,e.elements||e)}function Pt(t,e){t.uniformMatrix3fv(this.addr,!1,e.elements||e)}function Et(t,e){t.uniformMatrix4fv(this.addr,!1,e.elements||e)}function Ct(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTexture2D(e||ff,n)}function Tt(t,e,i){var n=i.allocTextureUnit();t.uniform1i(this.addr,n),i.setTextureCube(e||pf,n)}function It(t,e){t.uniform2iv(this.addr,e)}function Lt(t,e){t.uniform3iv(this.addr,e)}function Ot(t,e){t.uniform4iv(this.addr,e)}function Rt(t){switch(t){case 5126:return xt;case 35664:return wt;case 35665:return St;case 35666:return At;case 35674:return Mt;case 35675:return Pt;case 35676:return Et;case 35678:return Ct;case 35680:return Tt;case 5124:case 35670:return _t;case 35667:case 35671:return It;case 35668:case 35672:return Lt;case 35669:case 35673:return Ot}}function kt(t,e){t.uniform1fv(this.addr,e)}function Dt(t,e){t.uniform1iv(this.addr,e)}function Nt(t,e){t.uniform2fv(this.addr,yt(e,this.size,2))}function Ft(t,e){t.uniform3fv(this.addr,yt(e,this.size,3))}function zt(t,e){t.uniform4fv(this.addr,yt(e,this.size,4))}function Bt(t,e){t.uniformMatrix2fv(this.addr,!1,yt(e,this.size,4))}function Ut(t,e){t.uniformMatrix3fv(this.addr,!1,yt(e,this.size,9))}function jt(t,e){t.uniformMatrix4fv(this.addr,!1,yt(e,this.size,16))}function $t(t,e,i){var n=e.length,r=bt(i,n);t.uniform1iv(this.addr,r);for(var o=0;o!==n;++o)i.setTexture2D(e[o]||ff,r[o])}function Vt(t,e,i){var n=e.length,r=bt(i,n);t.uniform1iv(this.addr,r);for(var o=0;o!==n;++o)i.setTextureCube(e[o]||pf,r[o])}function Gt(t){switch(t){case 5126:return kt;case 35664:return Nt;case 35665:return Ft;case 35666:return zt;case 35674:return Bt;case 35675:return Ut;case 35676:return jt;case 35678:return $t;case 35680:return Vt;case 5124:case 35670:return Dt;case 35667:case 35671:return It;case 35668:case 35672:return Lt;case 35669:case 35673:return Ot}}function Ht(t,e,i){this.id=t,this.addr=i,this.setValue=Rt(e.type)}function Wt(t,e,i){this.id=t,this.addr=i,this.size=e.size,this.setValue=Gt(e.type)}function Xt(t){this.id=t,vt.call(this)}function qt(t,e){t.seq.push(e),t.map[e.id]=e}function Yt(t,e,i){var n=t.name,r=n.length;for(vf.lastIndex=0;;){var o=vf.exec(n),a=vf.lastIndex,s=o[1],c=\"]\"===o[2],u=o[3];if(c&&(s=0|s),void 0===u||\"[\"===u&&a+2===r){qt(i,void 0===u?new Ht(s,t,e):new Wt(s,t,e));break}var h=i.map,l=h[s];void 0===l&&(l=new Xt(s),qt(i,l)),i=l}}function Zt(t,e,i){vt.call(this),this.renderer=i;for(var n=t.getProgramParameter(e,t.ACTIVE_UNIFORMS),r=0;r!==n;++r){var o=t.getActiveUniform(e,r),a=o.name,s=t.getUniformLocation(e,a);Yt(o,s,this)}}function Kt(t,e,i,n,r,o,a){function s(t,e){if(t.width>e||t.height>e){var i=e/Math.max(t.width,t.height),n=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");n.width=Math.floor(t.width*i),n.height=Math.floor(t.height*i);var r=n.getContext(\"2d\");return r.drawImage(t,0,0,t.width,t.height,0,0,n.width,n.height),console.warn(\"THREE.WebGLRenderer: image is too big (\"+t.width+\"x\"+t.height+\"). Resized to \"+n.width+\"x\"+n.height,t),n}return t}function c(t){return lf.isPowerOfTwo(t.width)&&lf.isPowerOfTwo(t.height)}function u(t){if(t instanceof HTMLImageElement||t instanceof HTMLCanvasElement){var e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\");e.width=lf.nearestPowerOfTwo(t.width),e.height=lf.nearestPowerOfTwo(t.height);var i=e.getContext(\"2d\");return i.drawImage(t,0,0,e.width,e.height),console.warn(\"THREE.WebGLRenderer: image is not power of two (\"+t.width+\"x\"+t.height+\"). Resized to \"+e.width+\"x\"+e.height,t),e}return t}function h(t){return t.wrapS!==sd||t.wrapT!==sd||t.minFilter!==ud&&t.minFilter!==dd}function l(e){return e===ud||e===hd||e===ld?t.NEAREST:t.LINEAR}function d(t){var e=t.target;e.removeEventListener(\"dispose\",d),p(e),E.textures--}function f(t){var e=t.target;e.removeEventListener(\"dispose\",f),m(e),E.textures--}function p(e){var i=n.get(e);if(e.image&&i.__image__webglTextureCube)t.deleteTexture(i.__image__webglTextureCube);else{if(void 0===i.__webglInit)return;t.deleteTexture(i.__webglTexture)}n.delete(e)}function m(e){var i=n.get(e),r=n.get(e.texture);if(e){if(void 0!==r.__webglTexture&&t.deleteTexture(r.__webglTexture),e.depthTexture&&e.depthTexture.dispose(),e&&e.isWebGLRenderTargetCube)for(var o=0;o<6;o++)t.deleteFramebuffer(i.__webglFramebuffer[o]),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer[o]);else t.deleteFramebuffer(i.__webglFramebuffer),i.__webglDepthbuffer&&t.deleteRenderbuffer(i.__webglDepthbuffer);n.delete(e.texture),n.delete(e)}}function g(e,r){var o=n.get(e);if(e.version>0&&o.__version!==e.version){var a=e.image;if(void 0===a)console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is undefined\",e);else{if(a.complete!==!1)return void x(o,e,r);console.warn(\"THREE.WebGLRenderer: Texture marked for update but image is incomplete\",e)}}i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_2D,o.__webglTexture)}function v(e,a){var u=n.get(e);if(6===e.image.length)if(e.version>0&&u.__version!==e.version){u.__image__webglTextureCube||(e.addEventListener(\"dispose\",d),u.__image__webglTextureCube=t.createTexture(),E.textures++),i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_CUBE_MAP,u.__image__webglTextureCube),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,e.flipY);for(var h=e&&e.isCompressedTexture,l=e.image[0]&&e.image[0].isDataTexture,f=[],p=0;p<6;p++)h||l?f[p]=l?e.image[p].image:e.image[p]:f[p]=s(e.image[p],r.maxCubemapSize);var m=f[0],g=c(m),v=o(e.format),y=o(e.type);b(t.TEXTURE_CUBE_MAP,e,g);for(var p=0;p<6;p++)if(h)for(var x,_=f[p].mipmaps,w=0,S=_.length;w-1?i.compressedTexImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,w,v,x.width,x.height,0,x.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .setTextureCube()\"):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,w,v,x.width,x.height,0,v,y,x.data);else l?i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,v,f[p].width,f[p].height,0,v,y,f[p].data):i.texImage2D(t.TEXTURE_CUBE_MAP_POSITIVE_X+p,0,v,v,y,f[p]);e.generateMipmaps&&g&&t.generateMipmap(t.TEXTURE_CUBE_MAP),u.__version=e.version,e.onUpdate&&e.onUpdate(e)}else i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_CUBE_MAP,u.__image__webglTextureCube)}function y(e,r){i.activeTexture(t.TEXTURE0+r),i.bindTexture(t.TEXTURE_CUBE_MAP,n.get(e).__webglTexture)}function b(i,a,s){var c;if(s?(t.texParameteri(i,t.TEXTURE_WRAP_S,o(a.wrapS)),t.texParameteri(i,t.TEXTURE_WRAP_T,o(a.wrapT)),t.texParameteri(i,t.TEXTURE_MAG_FILTER,o(a.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,o(a.minFilter))):(t.texParameteri(i,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(i,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),a.wrapS===sd&&a.wrapT===sd||console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.wrapS and Texture.wrapT should be set to THREE.ClampToEdgeWrapping.\",a),t.texParameteri(i,t.TEXTURE_MAG_FILTER,l(a.magFilter)),t.texParameteri(i,t.TEXTURE_MIN_FILTER,l(a.minFilter)),a.minFilter!==ud&&a.minFilter!==dd&&console.warn(\"THREE.WebGLRenderer: Texture is not power of two. Texture.minFilter should be set to THREE.NearestFilter or THREE.LinearFilter.\",a)),c=e.get(\"EXT_texture_filter_anisotropic\")){if(a.type===_d&&null===e.get(\"OES_texture_float_linear\"))return;if(a.type===wd&&null===e.get(\"OES_texture_half_float_linear\"))return;(a.anisotropy>1||n.get(a).__currentAnisotropy)&&(t.texParameterf(i,c.TEXTURE_MAX_ANISOTROPY_EXT,Math.min(a.anisotropy,r.getMaxAnisotropy())),n.get(a).__currentAnisotropy=a.anisotropy)}}function x(e,n,a){void 0===e.__webglInit&&(e.__webglInit=!0,n.addEventListener(\"dispose\",d),e.__webglTexture=t.createTexture(),E.textures++),i.activeTexture(t.TEXTURE0+a),i.bindTexture(t.TEXTURE_2D,e.__webglTexture),t.pixelStorei(t.UNPACK_FLIP_Y_WEBGL,n.flipY),t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n.premultiplyAlpha),t.pixelStorei(t.UNPACK_ALIGNMENT,n.unpackAlignment);var l=s(n.image,r.maxTextureSize);h(n)&&c(l)===!1&&(l=u(l));var f=c(l),p=o(n.format),m=o(n.type);b(t.TEXTURE_2D,n,f);var g,v=n.mipmaps;if(n&&n.isDepthTexture){var y=t.DEPTH_COMPONENT;if(n.type===_d){if(!C)throw new Error(\"Float Depth Texture only supported in WebGL2.0\");y=t.DEPTH_COMPONENT32F}else C&&(y=t.DEPTH_COMPONENT16);n.format===Rd&&(y=t.DEPTH_STENCIL),i.texImage2D(t.TEXTURE_2D,0,y,l.width,l.height,0,p,m,null)}else if(n&&n.isDataTexture)if(v.length>0&&f){for(var x=0,_=v.length;x<_;x++)g=v[x],i.texImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,p,m,g.data);n.generateMipmaps=!1}else i.texImage2D(t.TEXTURE_2D,0,p,l.width,l.height,0,p,m,l.data);else if(n&&n.isCompressedTexture)for(var x=0,_=v.length;x<_;x++)g=v[x],n.format!==Td&&n.format!==Cd?i.getCompressedTextureFormats().indexOf(p)>-1?i.compressedTexImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,g.data):console.warn(\"THREE.WebGLRenderer: Attempt to load unsupported compressed texture format in .uploadTexture()\"):i.texImage2D(t.TEXTURE_2D,x,p,g.width,g.height,0,p,m,g.data);else if(v.length>0&&f){for(var x=0,_=v.length;x<_;x++)g=v[x],i.texImage2D(t.TEXTURE_2D,x,p,p,m,g);n.generateMipmaps=!1}else i.texImage2D(t.TEXTURE_2D,0,p,p,m,l);n.generateMipmaps&&f&&t.generateMipmap(t.TEXTURE_2D),e.__version=n.version,n.onUpdate&&n.onUpdate(n)}function _(e,r,a,s){var c=o(r.texture.format),u=o(r.texture.type);i.texImage2D(s,0,c,r.width,r.height,0,c,u,null),t.bindFramebuffer(t.FRAMEBUFFER,e),t.framebufferTexture2D(t.FRAMEBUFFER,a,s,n.get(r.texture).__webglTexture,0),t.bindFramebuffer(t.FRAMEBUFFER,null)}function w(e,i){t.bindRenderbuffer(t.RENDERBUFFER,e),i.depthBuffer&&!i.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,i.width,i.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,e)):i.depthBuffer&&i.stencilBuffer?(t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_STENCIL,i.width,i.height),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,e)):t.renderbufferStorage(t.RENDERBUFFER,t.RGBA4,i.width,i.height),t.bindRenderbuffer(t.RENDERBUFFER,null)}function S(e,i){var r=i&&i.isWebGLRenderTargetCube;if(r)throw new Error(\"Depth Texture with cube render targets is not supported!\");if(t.bindFramebuffer(t.FRAMEBUFFER,e),!i.depthTexture||!i.depthTexture.isDepthTexture)throw new Error(\"renderTarget.depthTexture must be an instance of THREE.DepthTexture\");n.get(i.depthTexture).__webglTexture&&i.depthTexture.image.width===i.width&&i.depthTexture.image.height===i.height||(i.depthTexture.image.width=i.width,i.depthTexture.image.height=i.height,i.depthTexture.needsUpdate=!0),g(i.depthTexture,0);var o=n.get(i.depthTexture).__webglTexture;if(i.depthTexture.format===Od)t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.TEXTURE_2D,o,0);else{if(i.depthTexture.format!==Rd)throw new Error(\"Unknown depthTexture format\");t.framebufferTexture2D(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.TEXTURE_2D,o,0)}}function A(e){var i=n.get(e),r=e&&e.isWebGLRenderTargetCube;if(e.depthTexture){if(r)throw new Error(\"target.depthTexture not supported in Cube render targets\");S(i.__webglFramebuffer,e)}else if(r){i.__webglDepthbuffer=[];for(var o=0;o<6;o++)t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer[o]),i.__webglDepthbuffer[o]=t.createRenderbuffer(),w(i.__webglDepthbuffer[o],e)}else t.bindFramebuffer(t.FRAMEBUFFER,i.__webglFramebuffer),i.__webglDepthbuffer=t.createRenderbuffer(),w(i.__webglDepthbuffer,e);t.bindFramebuffer(t.FRAMEBUFFER,null)}function M(e){var r=n.get(e),o=n.get(e.texture);e.addEventListener(\"dispose\",f),o.__webglTexture=t.createTexture(),E.textures++;var a=e&&e.isWebGLRenderTargetCube,s=c(e);if(a){r.__webglFramebuffer=[];for(var u=0;u<6;u++)r.__webglFramebuffer[u]=t.createFramebuffer()}else r.__webglFramebuffer=t.createFramebuffer();if(a){i.bindTexture(t.TEXTURE_CUBE_MAP,o.__webglTexture),b(t.TEXTURE_CUBE_MAP,e.texture,s);for(var u=0;u<6;u++)_(r.__webglFramebuffer[u],e,t.COLOR_ATTACHMENT0,t.TEXTURE_CUBE_MAP_POSITIVE_X+u);e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_CUBE_MAP),i.bindTexture(t.TEXTURE_CUBE_MAP,null)}else i.bindTexture(t.TEXTURE_2D,o.__webglTexture),b(t.TEXTURE_2D,e.texture,s),_(r.__webglFramebuffer,e,t.COLOR_ATTACHMENT0,t.TEXTURE_2D),e.texture.generateMipmaps&&s&&t.generateMipmap(t.TEXTURE_2D),i.bindTexture(t.TEXTURE_2D,null);e.depthBuffer&&A(e)}function P(e){var r=e.texture;if(r.generateMipmaps&&c(e)&&r.minFilter!==ud&&r.minFilter!==dd){var o=e&&e.isWebGLRenderTargetCube?t.TEXTURE_CUBE_MAP:t.TEXTURE_2D,a=n.get(r).__webglTexture;i.bindTexture(o,a),t.generateMipmap(o),i.bindTexture(o,null)}}var E=a.memory,C=\"undefined\"!=typeof WebGL2RenderingContext&&t instanceof WebGL2RenderingContext;this.setTexture2D=g,this.setTextureCube=v,this.setTextureCubeDynamic=y,this.setupRenderTarget=M,this.updateRenderTargetMipmap=P}function Qt(t,e,i,n){this.x=t||0,this.y=e||0,this.z=i||0,this.w=void 0!==n?n:1}function Jt(t,e,i){function n(){var e=!1,i=new Qt,n=null,r=new Qt;return{setMask:function(i){n===i||e||(t.colorMask(i,i,i,i),n=i)},setLocked:function(t){e=t},setClear:function(e,n,o,a){i.set(e,n,o,a),r.equals(i)===!1&&(t.clearColor(e,n,o,a),r.copy(i))},reset:function(){e=!1,n=null,r.set(0,0,0,1)}}}function r(){var e=!1,i=null,n=null,r=null;return{setTest:function(e){e?d(t.DEPTH_TEST):f(t.DEPTH_TEST)},setMask:function(n){i===n||e||(t.depthMask(n),i=n)},setFunc:function(e){if(n!==e){if(e)switch(e){case Nl:t.depthFunc(t.NEVER);break;case Fl:t.depthFunc(t.ALWAYS);break;case zl:t.depthFunc(t.LESS);break;case Bl:t.depthFunc(t.LEQUAL);break;case Ul:t.depthFunc(t.EQUAL);break;case jl:t.depthFunc(t.GEQUAL);break;case $l:t.depthFunc(t.GREATER);break;case Vl:t.depthFunc(t.NOTEQUAL);break;default:t.depthFunc(t.LEQUAL)}else t.depthFunc(t.LEQUAL);n=e}},setLocked:function(t){e=t},setClear:function(e){r!==e&&(t.clearDepth(e),r=e)},reset:function(){e=!1,i=null,n=null,r=null}}}function o(){var e=!1,i=null,n=null,r=null,o=null,a=null,s=null,c=null,u=null;return{setTest:function(e){e?d(t.STENCIL_TEST):f(t.STENCIL_TEST)},setMask:function(n){i===n||e||(t.stencilMask(n),i=n)},setFunc:function(e,i,a){n===e&&r===i&&o===a||(t.stencilFunc(e,i,a),n=e,r=i,o=a)},setOp:function(e,i,n){a===e&&s===i&&c===n||(t.stencilOp(e,i,n),a=e,s=i,c=n)},setLocked:function(t){e=t},setClear:function(e){u!==e&&(t.clearStencil(e),u=e)},reset:function(){e=!1,i=null,n=null,r=null,o=null,a=null,s=null,c=null,u=null}}}function a(e,i,n){var r=new Uint8Array(4),o=t.createTexture();t.bindTexture(e,o),t.texParameteri(e,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(e,t.TEXTURE_MAG_FILTER,t.NEAREST);for(var a=0;a0&&console.error(\"THREE.Matrix3: the constructor no longer reads arguments. use .set() instead.\")}function ue(t,e){this.normal=void 0!==t?t:new dt(1,0,0),this.constant=void 0!==e?e:0}function he(t,e,i,n,r,o){this.planes=[void 0!==t?t:new ue,void 0!==e?e:new ue,void 0!==i?i:new ue,void 0!==n?n:new ue,void 0!==r?r:new ue,void 0!==o?o:new ue]}function le(t,e,i,n){function r(e,i,n,r){var o=e.geometry,a=null,s=b,c=e.customDepthMaterial;if(n&&(s=x,c=e.customDistanceMaterial),c)a=c;else{var u=!1;i.morphTargets&&(o&&o.isBufferGeometry?u=o.morphAttributes&&o.morphAttributes.position&&o.morphAttributes.position.length>0:o&&o.isGeometry&&(u=o.morphTargets&&o.morphTargets.length>0));var h=e.isSkinnedMesh&&i.skinning,l=0;u&&(l|=g),h&&(l|=v),a=s[l]}if(t.localClippingEnabled&&i.clipShadows===!0&&0!==i.clippingPlanes.length){var d=a.uuid,f=i.uuid,p=_[d];void 0===p&&(p={},_[d]=p);var m=p[f];void 0===m&&(m=a.clone(),p[f]=m),a=m}a.visible=i.visible,a.wireframe=i.wireframe;var y=i.side;return R.renderSingleSided&&y==cl&&(y=al),R.renderReverseSided&&(y===al?y=sl:y===sl&&(y=al)),a.side=y,a.clipShadows=i.clipShadows,a.clippingPlanes=i.clippingPlanes,a.wireframeLinewidth=i.wireframeLinewidth,a.linewidth=i.linewidth,n&&void 0!==a.uniforms.lightPos&&a.uniforms.lightPos.value.copy(r),a}function o(t,e,i){if(t.visible!==!1){var n=0!==(t.layers.mask&e.layers.mask);if(n&&(t.isMesh||t.isLine||t.isPoints)&&t.castShadow&&(t.frustumCulled===!1||c.intersectsObject(t)===!0)){var r=t.material;r.visible===!0&&(t.modelViewMatrix.multiplyMatrices(i.matrixWorldInverse,t.matrixWorld),m.push(t))}for(var a=t.children,s=0,u=a.length;s\");return Ae(i)}var i=/#include +<([\\w\\d.]+)>/g;return t.replace(i,e)}function Me(t){function e(t,e,i,n){for(var r=\"\",o=parseInt(e);o0?t.gammaFactor:1,g=be(o,n,t.extensions),v=xe(a),y=r.createProgram();i.isRawShaderMaterial?(f=[v,\"\\n\"].filter(we).join(\"\\n\"),p=[g,v,\"\\n\"].filter(we).join(\"\\n\")):(f=[\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.supportsVertexTextures?\"#define VERTEX_TEXTURES\":\"\",\"#define GAMMA_FACTOR \"+m,\"#define MAX_BONES \"+n.maxBones,n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+l:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.displacementMap&&n.supportsVertexTextures?\"#define USE_DISPLACEMENTMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.skinning?\"#define USE_SKINNING\":\"\",n.useVertexTexture?\"#define BONE_TEXTURE\":\"\",n.morphTargets?\"#define USE_MORPHTARGETS\":\"\",n.morphNormals&&n.flatShading===!1?\"#define USE_MORPHNORMALS\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+u:\"\",n.sizeAttenuation?\"#define USE_SIZEATTENUATION\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",\"uniform mat4 modelMatrix;\",\"uniform mat4 modelViewMatrix;\",\"uniform mat4 projectionMatrix;\",\"uniform mat4 viewMatrix;\",\"uniform mat3 normalMatrix;\",\"uniform vec3 cameraPosition;\",\"attribute vec3 position;\",\"attribute vec3 normal;\",\"attribute vec2 uv;\",\"#ifdef USE_COLOR\",\" attribute vec3 color;\",\"#endif\",\"#ifdef USE_MORPHTARGETS\",\" attribute vec3 morphTarget0;\",\" attribute vec3 morphTarget1;\",\" attribute vec3 morphTarget2;\",\" attribute vec3 morphTarget3;\",\" #ifdef USE_MORPHNORMALS\",\" attribute vec3 morphNormal0;\",\" attribute vec3 morphNormal1;\",\" attribute vec3 morphNormal2;\",\" attribute vec3 morphNormal3;\",\" #else\",\" attribute vec3 morphTarget4;\",\" attribute vec3 morphTarget5;\",\" attribute vec3 morphTarget6;\",\" attribute vec3 morphTarget7;\",\" #endif\",\"#endif\",\"#ifdef USE_SKINNING\",\" attribute vec4 skinIndex;\",\" attribute vec4 skinWeight;\",\"#endif\",\"\\n\"].filter(we).join(\"\\n\"),p=[g,\"precision \"+n.precision+\" float;\",\"precision \"+n.precision+\" int;\",\"#define SHADER_NAME \"+i.__webglShader.name,v,n.alphaTest?\"#define ALPHATEST \"+n.alphaTest:\"\",\"#define GAMMA_FACTOR \"+m,n.useFog&&n.fog?\"#define USE_FOG\":\"\",n.useFog&&n.fogExp?\"#define FOG_EXP2\":\"\",n.map?\"#define USE_MAP\":\"\",n.envMap?\"#define USE_ENVMAP\":\"\",n.envMap?\"#define \"+h:\"\",n.envMap?\"#define \"+l:\"\",n.envMap?\"#define \"+d:\"\",n.lightMap?\"#define USE_LIGHTMAP\":\"\",n.aoMap?\"#define USE_AOMAP\":\"\",n.emissiveMap?\"#define USE_EMISSIVEMAP\":\"\",n.bumpMap?\"#define USE_BUMPMAP\":\"\",n.normalMap?\"#define USE_NORMALMAP\":\"\",n.specularMap?\"#define USE_SPECULARMAP\":\"\",n.roughnessMap?\"#define USE_ROUGHNESSMAP\":\"\",n.metalnessMap?\"#define USE_METALNESSMAP\":\"\",n.alphaMap?\"#define USE_ALPHAMAP\":\"\",n.vertexColors?\"#define USE_COLOR\":\"\",n.flatShading?\"#define FLAT_SHADED\":\"\",n.doubleSided?\"#define DOUBLE_SIDED\":\"\",n.flipSided?\"#define FLIP_SIDED\":\"\",\"#define NUM_CLIPPING_PLANES \"+n.numClippingPlanes,n.shadowMapEnabled?\"#define USE_SHADOWMAP\":\"\",n.shadowMapEnabled?\"#define \"+u:\"\",n.premultipliedAlpha?\"#define PREMULTIPLIED_ALPHA\":\"\",n.physicallyCorrectLights?\"#define PHYSICALLY_CORRECT_LIGHTS\":\"\",n.logarithmicDepthBuffer?\"#define USE_LOGDEPTHBUF\":\"\",n.logarithmicDepthBuffer&&t.extensions.get(\"EXT_frag_depth\")?\"#define USE_LOGDEPTHBUF_EXT\":\"\",n.envMap&&t.extensions.get(\"EXT_shader_texture_lod\")?\"#define TEXTURE_LOD_EXT\":\"\",\"uniform mat4 viewMatrix;\",\"uniform vec3 cameraPosition;\",n.toneMapping!==Xl?\"#define TONE_MAPPING\":\"\",n.toneMapping!==Xl?vm.tonemapping_pars_fragment:\"\",n.toneMapping!==Xl?ye(\"toneMapping\",n.toneMapping):\"\",n.outputEncoding||n.mapEncoding||n.envMapEncoding||n.emissiveMapEncoding?vm.encodings_pars_fragment:\"\",n.mapEncoding?ge(\"mapTexelToLinear\",n.mapEncoding):\"\",n.envMapEncoding?ge(\"envMapTexelToLinear\",n.envMapEncoding):\"\",n.emissiveMapEncoding?ge(\"emissiveMapTexelToLinear\",n.emissiveMapEncoding):\"\",n.outputEncoding?ve(\"linearToOutputTexel\",n.outputEncoding):\"\",n.depthPacking?\"#define DEPTH_PACKING \"+i.depthPacking:\"\",\"\\n\"].filter(we).join(\"\\n\")),s=Ae(s,n),s=Se(s,n),c=Ae(c,n),c=Se(c,n),i.isShaderMaterial||(s=Me(s),c=Me(c));var b=f+s,x=p+c,_=fe(r,r.VERTEX_SHADER,b),w=fe(r,r.FRAGMENT_SHADER,x);r.attachShader(y,_),r.attachShader(y,w),void 0!==i.index0AttributeName?r.bindAttribLocation(y,0,i.index0AttributeName):n.morphTargets===!0&&r.bindAttribLocation(y,0,\"position\"),r.linkProgram(y);var S=r.getProgramInfoLog(y),A=r.getShaderInfoLog(_),M=r.getShaderInfoLog(w),P=!0,E=!0;r.getProgramParameter(y,r.LINK_STATUS)===!1?(P=!1,console.error(\"THREE.WebGLProgram: shader error: \",r.getError(),\"gl.VALIDATE_STATUS\",r.getProgramParameter(y,r.VALIDATE_STATUS),\"gl.getProgramInfoLog\",S,A,M)):\"\"!==S?console.warn(\"THREE.WebGLProgram: gl.getProgramInfoLog()\",S):\"\"!==A&&\"\"!==M||(E=!1),E&&(this.diagnostics={runnable:P,material:i,programLog:S,vertexShader:{log:A,prefix:f},fragmentShader:{log:M,prefix:p}}),r.deleteShader(_),r.deleteShader(w);var C;this.getUniforms=function(){return void 0===C&&(C=new Zt(r,y,t)),C};var T;return this.getAttributes=function(){return void 0===T&&(T=_e(r,y)),T},this.destroy=function(){r.deleteProgram(y),this.program=void 0},Object.defineProperties(this,{uniforms:{get:function(){return console.warn(\"THREE.WebGLProgram: .uniforms is now .getUniforms().\"),this.getUniforms()}},attributes:{get:function(){return console.warn(\"THREE.WebGLProgram: .attributes is now .getAttributes().\"),this.getAttributes()}}}),this.id=_m++,this.code=e,this.usedTimes=1,this.program=y,this.vertexShader=_,this.fragmentShader=w,this}function Ee(t,e){function i(t){if(e.floatVertexTextures&&t&&t.skeleton&&t.skeleton.useVertexTexture)return 1024;var i=e.maxVertexUniforms,n=Math.floor((i-20)/4),r=n;return void 0!==t&&t&&t.isSkinnedMesh&&(r=Math.min(t.skeleton.bones.length,r),r0,shadowMapType:t.shadowMap.type,toneMapping:t.toneMapping,physicallyCorrectLights:t.physicallyCorrectLights,premultipliedAlpha:r.premultipliedAlpha,alphaTest:r.alphaTest,doubleSided:r.side===cl,flipSided:r.side===sl,depthPacking:void 0!==r.depthPacking&&r.depthPacking};return p},this.getProgramCode=function(t,e){var i=[];if(e.shaderID?i.push(e.shaderID):(i.push(t.fragmentShader),i.push(t.vertexShader)),void 0!==t.defines)for(var n in t.defines)i.push(n),i.push(t.defines[n]);for(var r=0;r65535?Uint32Array:Uint16Array,y=new Ce(new v(o),1);return r(y,t.ELEMENT_ARRAY_BUFFER),n.wireframe=y,y}function u(t,e,i){if(e>i){var n=e;e=i,i=n}var r=t[e];return void 0===r?(t[e]=[i],!0):r.indexOf(i)===-1&&(r.push(i),!0)}var h=new je(t,e,i);return{getAttributeBuffer:s,getWireframeAttribute:c,update:n}}function Ve(){var t={};return{get:function(e){if(void 0!==t[e.id])return t[e.id];var i;switch(e.type){case\"DirectionalLight\":i={direction:new dt,color:new re,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"SpotLight\":i={position:new dt,direction:new dt,color:new re,distance:0,coneCos:0,penumbraCos:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"PointLight\":i={position:new dt,color:new re,distance:0,decay:0,shadow:!1,shadowBias:0,shadowRadius:1,shadowMapSize:new st};break;case\"HemisphereLight\":i={direction:new dt,skyColor:new re,groundColor:new re}}return t[e.id]=i,i}}}function Ge(t,e,i){function n(){if(void 0!==o)return o;var i=e.get(\"EXT_texture_filter_anisotropic\");return o=null!==i?t.getParameter(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}function r(e){if(\"highp\"===e){if(t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.HIGH_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.HIGH_FLOAT).precision>0)return\"highp\";e=\"mediump\"}return\"mediump\"===e&&t.getShaderPrecisionFormat(t.VERTEX_SHADER,t.MEDIUM_FLOAT).precision>0&&t.getShaderPrecisionFormat(t.FRAGMENT_SHADER,t.MEDIUM_FLOAT).precision>0?\"mediump\":\"lowp\"}var o,a=void 0!==i.precision?i.precision:\"highp\",s=r(a);s!==a&&(console.warn(\"THREE.WebGLRenderer:\",a,\"not supported, using\",s,\"instead.\"),a=s);var c=i.logarithmicDepthBuffer===!0&&!!e.get(\"EXT_frag_depth\"),u=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS),h=t.getParameter(t.MAX_VERTEX_TEXTURE_IMAGE_UNITS),l=t.getParameter(t.MAX_TEXTURE_SIZE),d=t.getParameter(t.MAX_CUBE_MAP_TEXTURE_SIZE),f=t.getParameter(t.MAX_VERTEX_ATTRIBS),p=t.getParameter(t.MAX_VERTEX_UNIFORM_VECTORS),m=t.getParameter(t.MAX_VARYING_VECTORS),g=t.getParameter(t.MAX_FRAGMENT_UNIFORM_VECTORS),v=h>0,y=!!e.get(\"OES_texture_float\"),b=v&&y;return{getMaxAnisotropy:n,getMaxPrecision:r,precision:a,logarithmicDepthBuffer:c,maxTextures:u,maxVertexTextures:h,maxTextureSize:l,maxCubemapSize:d,maxAttributes:f,maxVertexUniforms:p,maxVaryings:m,maxFragmentUniforms:g,vertexTextures:v,floatFragmentTextures:y,floatVertexTextures:b}}function He(t){var e={};return{get:function(i){if(void 0!==e[i])return e[i];var n;switch(i){case\"WEBGL_depth_texture\":n=t.getExtension(\"WEBGL_depth_texture\")||t.getExtension(\"MOZ_WEBGL_depth_texture\")||t.getExtension(\"WEBKIT_WEBGL_depth_texture\");break;case\"EXT_texture_filter_anisotropic\":n=t.getExtension(\"EXT_texture_filter_anisotropic\")||t.getExtension(\"MOZ_EXT_texture_filter_anisotropic\")||t.getExtension(\"WEBKIT_EXT_texture_filter_anisotropic\");break;case\"WEBGL_compressed_texture_s3tc\":n=t.getExtension(\"WEBGL_compressed_texture_s3tc\")||t.getExtension(\"MOZ_WEBGL_compressed_texture_s3tc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_s3tc\");break;case\"WEBGL_compressed_texture_pvrtc\":n=t.getExtension(\"WEBGL_compressed_texture_pvrtc\")||t.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\");break;case\"WEBGL_compressed_texture_etc1\":n=t.getExtension(\"WEBGL_compressed_texture_etc1\");break;default:n=t.getExtension(i)}return null===n&&console.warn(\"THREE.WebGLRenderer: \"+i+\" extension not supported.\"),e[i]=n,n}}}function We(t,e,i){function n(t){s=t}function r(i){i.array instanceof Uint32Array&&e.get(\"OES_element_index_uint\")?(c=t.UNSIGNED_INT,u=4):(c=t.UNSIGNED_SHORT,u=2)}function o(e,n){t.drawElements(s,n,c,e*u),i.calls++,i.vertices+=n,s===t.TRIANGLES&&(i.faces+=n/3)}function a(n,r,o){var a=e.get(\"ANGLE_instanced_arrays\");return null===a?void console.error(\"THREE.WebGLBufferRenderer: using THREE.InstancedBufferGeometry but hardware does not support extension ANGLE_instanced_arrays.\"):(a.drawElementsInstancedANGLE(s,o,c,r*u,n.maxInstancedCount),i.calls++,i.vertices+=o*n.maxInstancedCount,void(s===t.TRIANGLES&&(i.faces+=n.maxInstancedCount*o/3)))}var s,c,u;return{setMode:n,setIndex:r,render:o,renderInstances:a}}function Xe(){function t(){u.value!==n&&(u.value=n,u.needsUpdate=r>0),i.numPlanes=r}function e(t,e,n,r){var o=null!==t?t.length:0,a=null;if(0!==o){if(a=u.value,r!==!0||null===a){var h=n+4*o,l=e.matrixWorldInverse;c.getNormalMatrix(l),(null===a||a.length0?1:-1,p[g]=I.x,p[g+1]=I.y,p[g+2]=I.z,m[v]=R/c,m[v+1]=1-L/h,g+=3,v+=2,C+=1}for(L=0;L65535?Uint32Array:Uint16Array)(l),f=new Float32Array(3*h),p=new Float32Array(3*h),m=new Float32Array(2*h),g=0,v=0,y=0,b=0,x=0;c(\"z\",\"y\",\"x\",-1,-1,i,e,t,o,r,0),c(\"z\",\"y\",\"x\",1,-1,i,e,-t,o,r,1),c(\"x\",\"z\",\"y\",1,1,t,i,e,n,o,2),c(\"x\",\"z\",\"y\",1,-1,t,i,-e,n,o,3),c(\"x\",\"y\",\"z\",1,-1,t,e,i,n,r,4),c(\"x\",\"y\",\"z\",-1,-1,t,e,-i,n,r,5),this.setIndex(new Ce(d,1)),this.addAttribute(\"position\",new Ce(f,3)),this.addAttribute(\"normal\",new Ce(p,3)),this.addAttribute(\"uv\",new Ce(m,2))}function Ze(t,e){this.origin=void 0!==t?t:new dt,this.direction=void 0!==e?e:new dt}function Ke(t,e){this.start=void 0!==t?t:new dt,this.end=void 0!==e?e:new dt}function Qe(t,e,i){this.a=void 0!==t?t:new dt,this.b=void 0!==e?e:new dt,this.c=void 0!==i?i:new dt}function Je(t){ee.call(this),this.type=\"MeshBasicMaterial\",this.color=new re(16777215),this.map=null,this.aoMap=null,this.aoMapIntensity=1,this.specularMap=null,this.alphaMap=null,this.envMap=null,this.combine=Gl,this.reflectivity=1,this.refractionRatio=.98,this.wireframe=!1,this.wireframeLinewidth=1,this.wireframeLinecap=\"round\",this.wireframeLinejoin=\"round\",this.skinning=!1,this.morphTargets=!1,this.lights=!1,this.setValues(t)}function ti(t,e){De.call(this),this.type=\"Mesh\",this.geometry=void 0!==t?t:new Ue,this.material=void 0!==e?e:new Je({color:16777215*Math.random()}),this.drawMode=Qd,this.updateMorphTargets()}function ei(t,e,i,n){Ue.call(this),this.type=\"PlaneBufferGeometry\",this.parameters={width:t,height:e,widthSegments:i,heightSegments:n};for(var r=t/2,o=e/2,a=Math.floor(i)||1,s=Math.floor(n)||1,c=a+1,u=s+1,h=t/a,l=e/s,d=new Float32Array(c*u*3),f=new Float32Array(c*u*3),p=new Float32Array(c*u*2),m=0,g=0,v=0;v65535?Uint32Array:Uint16Array)(a*s*6),v=0;v=0){var h=o[c];if(void 0!==h){var l=It.FLOAT,d=h.array,f=h.normalized;d instanceof Float32Array?l=It.FLOAT:d instanceof Float64Array?console.warn(\"Unsupported data buffer format: Float64Array\"):d instanceof Uint16Array?l=It.UNSIGNED_SHORT:d instanceof Int16Array?l=It.SHORT:d instanceof Uint32Array?l=It.UNSIGNED_INT:d instanceof Int32Array?l=It.INT:d instanceof Int8Array?l=It.BYTE:d instanceof Uint8Array&&(l=It.UNSIGNED_BYTE);var p=h.itemSize,m=Ft.getAttributeBuffer(h);if(h&&h.isInterleavedBufferAttribute){var g=h.data,v=g.stride,y=h.offset;g&&g.isInstancedInterleavedBuffer?(kt.enableAttributeAndDivisor(u,g.meshPerAttribute,r),void 0===i.maxInstancedCount&&(i.maxInstancedCount=g.meshPerAttribute*g.count)):kt.enableAttribute(u),It.bindBuffer(It.ARRAY_BUFFER,m),It.vertexAttribPointer(u,p,l,f,v*g.array.BYTES_PER_ELEMENT,(n*v+y)*g.array.BYTES_PER_ELEMENT)}else h&&h.isInstancedBufferAttribute?(kt.enableAttributeAndDivisor(u,h.meshPerAttribute,r),void 0===i.maxInstancedCount&&(i.maxInstancedCount=h.meshPerAttribute*h.count)):kt.enableAttribute(u),It.bindBuffer(It.ARRAY_BUFFER,m),It.vertexAttribPointer(u,p,l,f,0,n*p*h.array.BYTES_PER_ELEMENT)}else if(void 0!==s){var b=s[c];if(void 0!==b)switch(b.length){case 2:It.vertexAttrib2fv(u,b);break;case 3:It.vertexAttrib3fv(u,b);break;case 4:It.vertexAttrib4fv(u,b);break;default:It.vertexAttrib1fv(u,b)}}}}kt.disableUnusedAttributes()}function h(t,e){return Math.abs(e[0])-Math.abs(t[0])}function l(t,e){return t.object.renderOrder!==e.object.renderOrder?t.object.renderOrder-e.object.renderOrder:t.material.program&&e.material.program&&t.material.program!==e.material.program?t.material.program.id-e.material.program.id:t.material.id!==e.material.id?t.material.id-e.material.id:t.z!==e.z?t.z-e.z:t.id-e.id}function d(t,e){return t.object.renderOrder!==e.object.renderOrder?t.object.renderOrder-e.object.renderOrder:t.z!==e.z?e.z-t.z:t.id-e.id}function f(t,e,i,n,r){var o,a;i.transparent?(o=X,a=++q):(o=H,a=++W);var s=o[a];void 0!==s?(s.id=t.id,s.object=t,s.geometry=e,s.material=i,s.z=Et.z,s.group=r):(s={id:t.id,object:t,geometry:e,material:i,z:Et.z,group:r},o.push(s))}function p(t){var e=t.geometry;return null===e.boundingSphere&&e.computeBoundingSphere(),Mt.copy(e.boundingSphere).applyMatrix4(t.matrixWorld),g(Mt)}function m(t){return Mt.center.set(0,0,0),Mt.radius=.7071067811865476,Mt.applyMatrix4(t.matrixWorld),g(Mt)}function g(t){if(!_t.intersectsSphere(t))return!1;var e=wt.numPlanes;if(0===e)return!0;var i=Q.clippingPlanes,n=t.center,r=-t.radius,o=0;do if(i[o].distanceToPoint(n)=0&&t.numSupportedMorphTargets++;\n}if(t.morphNormals){t.numSupportedMorphNormals=0;for(var d=0;d=0&&t.numSupportedMorphNormals++}var f=n.__webglShader.uniforms;!t.isShaderMaterial&&!t.isRawShaderMaterial|t.clipping===!0&&(n.numClippingPlanes=wt.numPlanes,f.clippingPlanes=wt.uniform),n.fog=e,n.lightsHash=Ct.hash,t.lights&&(f.ambientLightColor.value=Ct.ambient,f.directionalLights.value=Ct.directional,f.spotLights.value=Ct.spot,f.pointLights.value=Ct.point,f.hemisphereLights.value=Ct.hemi,f.directionalShadowMap.value=Ct.directionalShadowMap,f.directionalShadowMatrix.value=Ct.directionalShadowMatrix,f.spotShadowMap.value=Ct.spotShadowMap,f.spotShadowMatrix.value=Ct.spotShadowMatrix,f.pointShadowMap.value=Ct.pointShadowMap,f.pointShadowMatrix.value=Ct.pointShadowMatrix);var p=n.program.getUniforms(),m=Zt.seqWithValue(p.seq,f);n.uniformsList=m,n.dynamicUniforms=Zt.splitDynamic(m,f)}function x(t){t.side===cl?kt.disable(It.CULL_FACE):kt.enable(It.CULL_FACE),kt.setFlipSided(t.side===sl),t.transparent===!0?kt.setBlending(t.blending,t.blendEquation,t.blendSrc,t.blendDst,t.blendEquationAlpha,t.blendSrcAlpha,t.blendDstAlpha,t.premultipliedAlpha):kt.setBlending(pl),kt.setDepthFunc(t.depthFunc),kt.setDepthTest(t.depthTest),kt.setDepthWrite(t.depthWrite),kt.setColorWrite(t.colorWrite),kt.setPolygonOffset(t.polygonOffset,t.polygonOffsetFactor,t.polygonOffsetUnits)}function _(t,e,i,n){ct=0;var r=Dt.get(i);if(St&&(At||t!==rt)){var o=t===rt&&i.id===it;wt.setState(i.clippingPlanes,i.clipShadows,t,r,o)}i.needsUpdate===!1&&(void 0===r.program?i.needsUpdate=!0:i.fog&&r.fog!==e?i.needsUpdate=!0:i.lights&&r.lightsHash!==Ct.hash?i.needsUpdate=!0:void 0!==r.numClippingPlanes&&r.numClippingPlanes!==wt.numPlanes&&(i.needsUpdate=!0)),i.needsUpdate&&(b(i,e,n),i.needsUpdate=!1);var a=!1,s=!1,c=!1,u=r.program,h=u.getUniforms(),l=r.__webglShader.uniforms;if(u.id!==J&&(It.useProgram(u.program),J=u.id,a=!0,s=!0,c=!0),i.id!==it&&(it=i.id,s=!0),a||t!==rt){if(h.set(It,t,\"projectionMatrix\"),Rt.logarithmicDepthBuffer&&h.setValue(It,\"logDepthBufFC\",2/(Math.log(t.far+1)/Math.LN2)),t!==rt&&(rt=t,s=!0,c=!0),i.isShaderMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.envMap){var d=h.map.cameraPosition;void 0!==d&&d.setValue(It,Et.setFromMatrixPosition(t.matrixWorld))}(i.isMeshPhongMaterial||i.isMeshLambertMaterial||i.isMeshBasicMaterial||i.isMeshStandardMaterial||i.isShaderMaterial||i.skinning)&&h.setValue(It,\"viewMatrix\",t.matrixWorldInverse),h.set(It,Q,\"toneMappingExposure\"),h.set(It,Q,\"toneMappingWhitePoint\")}if(i.skinning){h.setOptional(It,n,\"bindMatrix\"),h.setOptional(It,n,\"bindMatrixInverse\");var f=n.skeleton;f&&(Rt.floatVertexTextures&&f.useVertexTexture?(h.set(It,f,\"boneTexture\"),h.set(It,f,\"boneTextureWidth\"),h.set(It,f,\"boneTextureHeight\")):h.setOptional(It,f,\"boneMatrices\"))}s&&(i.lights&&L(l,c),e&&i.fog&&P(l,e),(i.isMeshBasicMaterial||i.isMeshLambertMaterial||i.isMeshPhongMaterial||i.isMeshStandardMaterial||i.isMeshDepthMaterial)&&w(l,i),i.isLineBasicMaterial?S(l,i):i.isLineDashedMaterial?(S(l,i),A(l,i)):i.isPointsMaterial?M(l,i):i.isMeshLambertMaterial?E(l,i):i.isMeshPhongMaterial?C(l,i):i.isMeshPhysicalMaterial?I(l,i):i.isMeshStandardMaterial?T(l,i):i.isMeshDepthMaterial?i.displacementMap&&(l.displacementMap.value=i.displacementMap,l.displacementScale.value=i.displacementScale,l.displacementBias.value=i.displacementBias):i.isMeshNormalMaterial&&(l.opacity.value=i.opacity),Zt.upload(It,r.uniformsList,l,Q)),h.set(It,n,\"modelViewMatrix\"),h.set(It,n,\"normalMatrix\"),h.setValue(It,\"modelMatrix\",n.matrixWorld);var p=r.dynamicUniforms;return null!==p&&(Zt.evalDynamic(p,l,n,t),Zt.upload(It,p,l,Q)),u}function w(t,e){t.opacity.value=e.opacity,t.diffuse.value=e.color,e.emissive&&t.emissive.value.copy(e.emissive).multiplyScalar(e.emissiveIntensity),t.map.value=e.map,t.specularMap.value=e.specularMap,t.alphaMap.value=e.alphaMap,e.aoMap&&(t.aoMap.value=e.aoMap,t.aoMapIntensity.value=e.aoMapIntensity);var i;if(e.map?i=e.map:e.specularMap?i=e.specularMap:e.displacementMap?i=e.displacementMap:e.normalMap?i=e.normalMap:e.bumpMap?i=e.bumpMap:e.roughnessMap?i=e.roughnessMap:e.metalnessMap?i=e.metalnessMap:e.alphaMap?i=e.alphaMap:e.emissiveMap&&(i=e.emissiveMap),void 0!==i){i.isWebGLRenderTarget&&(i=i.texture);var n=i.offset,r=i.repeat;t.offsetRepeat.value.set(n.x,n.y,r.x,r.y)}t.envMap.value=e.envMap,t.flipEnvMap.value=e.envMap&&e.envMap.isCubeTexture?-1:1,t.reflectivity.value=e.reflectivity,t.refractionRatio.value=e.refractionRatio}function S(t,e){t.diffuse.value=e.color,t.opacity.value=e.opacity}function A(t,e){t.dashSize.value=e.dashSize,t.totalSize.value=e.dashSize+e.gapSize,t.scale.value=e.scale}function M(t,e){if(t.diffuse.value=e.color,t.opacity.value=e.opacity,t.size.value=e.size*vt,t.scale.value=.5*N.clientHeight,t.map.value=e.map,null!==e.map){var i=e.map.offset,n=e.map.repeat;t.offsetRepeat.value.set(i.x,i.y,n.x,n.y)}}function P(t,e){t.fogColor.value=e.color,e.isFog?(t.fogNear.value=e.near,t.fogFar.value=e.far):e.isFogExp2&&(t.fogDensity.value=e.density)}function E(t,e){e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap)}function C(t,e){t.specular.value=e.specular,t.shininess.value=Math.max(e.shininess,1e-4),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias)}function T(t,e){t.roughness.value=e.roughness,t.metalness.value=e.metalness,e.roughnessMap&&(t.roughnessMap.value=e.roughnessMap),e.metalnessMap&&(t.metalnessMap.value=e.metalnessMap),e.lightMap&&(t.lightMap.value=e.lightMap,t.lightMapIntensity.value=e.lightMapIntensity),e.emissiveMap&&(t.emissiveMap.value=e.emissiveMap),e.bumpMap&&(t.bumpMap.value=e.bumpMap,t.bumpScale.value=e.bumpScale),e.normalMap&&(t.normalMap.value=e.normalMap,t.normalScale.value.copy(e.normalScale)),e.displacementMap&&(t.displacementMap.value=e.displacementMap,t.displacementScale.value=e.displacementScale,t.displacementBias.value=e.displacementBias),e.envMap&&(t.envMapIntensity.value=e.envMapIntensity)}function I(t,e){t.clearCoat.value=e.clearCoat,t.clearCoatRoughness.value=e.clearCoatRoughness,T(t,e)}function L(t,e){t.ambientLightColor.needsUpdate=e,t.directionalLights.needsUpdate=e,t.pointLights.needsUpdate=e,t.spotLights.needsUpdate=e,t.hemisphereLights.needsUpdate=e}function O(t){for(var e=0,i=0,n=t.length;i=Rt.maxTextures&&console.warn(\"WebGLRenderer: trying to use \"+t+\" texture units while this GPU supports only \"+Rt.maxTextures),ct+=1,t}function D(t){var e;if(t===ad)return It.REPEAT;if(t===sd)return It.CLAMP_TO_EDGE;if(t===cd)return It.MIRRORED_REPEAT;if(t===ud)return It.NEAREST;if(t===hd)return It.NEAREST_MIPMAP_NEAREST;if(t===ld)return It.NEAREST_MIPMAP_LINEAR;if(t===dd)return It.LINEAR;if(t===fd)return It.LINEAR_MIPMAP_NEAREST;if(t===pd)return It.LINEAR_MIPMAP_LINEAR;if(t===md)return It.UNSIGNED_BYTE;if(t===Sd)return It.UNSIGNED_SHORT_4_4_4_4;if(t===Ad)return It.UNSIGNED_SHORT_5_5_5_1;if(t===Md)return It.UNSIGNED_SHORT_5_6_5;if(t===gd)return It.BYTE;if(t===vd)return It.SHORT;if(t===yd)return It.UNSIGNED_SHORT;if(t===bd)return It.INT;if(t===xd)return It.UNSIGNED_INT;if(t===_d)return It.FLOAT;if(e=Ot.get(\"OES_texture_half_float\"),null!==e&&t===wd)return e.HALF_FLOAT_OES;if(t===Ed)return It.ALPHA;if(t===Cd)return It.RGB;if(t===Td)return It.RGBA;if(t===Id)return It.LUMINANCE;if(t===Ld)return It.LUMINANCE_ALPHA;if(t===Od)return It.DEPTH_COMPONENT;if(t===Rd)return It.DEPTH_STENCIL;if(t===xl)return It.FUNC_ADD;if(t===_l)return It.FUNC_SUBTRACT;if(t===wl)return It.FUNC_REVERSE_SUBTRACT;if(t===Ml)return It.ZERO;if(t===Pl)return It.ONE;if(t===El)return It.SRC_COLOR;if(t===Cl)return It.ONE_MINUS_SRC_COLOR;if(t===Tl)return It.SRC_ALPHA;if(t===Il)return It.ONE_MINUS_SRC_ALPHA;if(t===Ll)return It.DST_ALPHA;if(t===Ol)return It.ONE_MINUS_DST_ALPHA;if(t===Rl)return It.DST_COLOR;if(t===kl)return It.ONE_MINUS_DST_COLOR;if(t===Dl)return It.SRC_ALPHA_SATURATE;if(e=Ot.get(\"WEBGL_compressed_texture_s3tc\"),null!==e){if(t===kd)return e.COMPRESSED_RGB_S3TC_DXT1_EXT;if(t===Dd)return e.COMPRESSED_RGBA_S3TC_DXT1_EXT;if(t===Nd)return e.COMPRESSED_RGBA_S3TC_DXT3_EXT;if(t===Fd)return e.COMPRESSED_RGBA_S3TC_DXT5_EXT}if(e=Ot.get(\"WEBGL_compressed_texture_pvrtc\"),null!==e){if(t===zd)return e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG;if(t===Bd)return e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG;if(t===Ud)return e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG;if(t===jd)return e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG}if(e=Ot.get(\"WEBGL_compressed_texture_etc1\"),null!==e&&t===$d)return e.COMPRESSED_RGB_ETC1_WEBGL;if(e=Ot.get(\"EXT_blend_minmax\"),null!==e){if(t===Sl)return e.MIN_EXT;if(t===Al)return e.MAX_EXT}return e=Ot.get(\"WEBGL_depth_texture\"),null!==e&&t===Pd?e.UNSIGNED_INT_24_8_WEBGL:0}console.log(\"THREE.WebGLRenderer\",Jh),t=t||{};var N=void 0!==t.canvas?t.canvas:document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),F=void 0!==t.context?t.context:null,z=void 0!==t.alpha&&t.alpha,B=void 0===t.depth||t.depth,U=void 0===t.stencil||t.stencil,j=void 0!==t.antialias&&t.antialias,$=void 0===t.premultipliedAlpha||t.premultipliedAlpha,V=void 0!==t.preserveDrawingBuffer&&t.preserveDrawingBuffer,G=[],H=[],W=-1,X=[],q=-1,Y=new Float32Array(8),Z=[],K=[];this.domElement=N,this.context=null,this.autoClear=!0,this.autoClearColor=!0,this.autoClearDepth=!0,this.autoClearStencil=!0,this.sortObjects=!0,this.clippingPlanes=[],this.localClippingEnabled=!1,this.gammaFactor=2,this.gammaInput=!1,this.gammaOutput=!1,this.physicallyCorrectLights=!1,this.toneMapping=ql,this.toneMappingExposure=1,this.toneMappingWhitePoint=1,this.maxMorphTargets=8,this.maxMorphNormals=4;var Q=this,J=null,tt=null,et=null,it=-1,nt=\"\",rt=null,ot=new Qt,at=null,st=new Qt,ct=0,ut=new re(0),lt=0,pt=N.width,gt=N.height,vt=1,yt=new Qt(0,0,pt,gt),bt=!1,xt=new Qt(0,0,pt,gt),_t=new he,wt=new Xe,St=!1,At=!1,Mt=new se,Pt=new ht,Et=new dt,Ct={hash:\"\",ambient:[0,0,0],directional:[],directionalShadowMap:[],directionalShadowMatrix:[],spot:[],spotShadowMap:[],spotShadowMatrix:[],point:[],pointShadowMap:[],pointShadowMatrix:[],hemi:[],shadows:[]},Tt={calls:0,vertices:0,faces:0,points:0};this.info={render:Tt,memory:{geometries:0,textures:0},programs:null};var It;try{var Lt={alpha:z,depth:B,stencil:U,antialias:j,premultipliedAlpha:$,preserveDrawingBuffer:V};if(It=F||N.getContext(\"webgl\",Lt)||N.getContext(\"experimental-webgl\",Lt),null===It)throw null!==N.getContext(\"webgl\")?\"Error creating WebGL context with your selected attributes.\":\"Error creating WebGL context.\";void 0===It.getShaderPrecisionFormat&&(It.getShaderPrecisionFormat=function(){return{rangeMin:1,rangeMax:1,precision:1}}),N.addEventListener(\"webglcontextlost\",o,!1)}catch(t){console.error(\"THREE.WebGLRenderer: \"+t)}var Ot=new He(It);Ot.get(\"WEBGL_depth_texture\"),Ot.get(\"OES_texture_float\"),Ot.get(\"OES_texture_float_linear\"),Ot.get(\"OES_texture_half_float\"),Ot.get(\"OES_texture_half_float_linear\"),Ot.get(\"OES_standard_derivatives\"),Ot.get(\"ANGLE_instanced_arrays\"),Ot.get(\"OES_element_index_uint\")&&(Ue.MaxIndex=4294967296);var Rt=new Ge(It,Ot,t),kt=new Jt(It,Ot,D),Dt=new pe,Nt=new Kt(It,Ot,kt,Dt,Rt,D,this.info),Ft=new $e(It,Dt,this.info),zt=new Ee(this,Rt),Bt=new Ve;this.info.programs=zt.programs;var Ut=new qe(It,Ot,Tt),jt=new We(It,Ot,Tt),$t=new ri(-1,1,1,-1,0,1),Vt=new ni,Gt=new ti(new ei(2,2),new Je({depthTest:!1,depthWrite:!1,fog:!1})),Ht=xm.cube,Wt=new ti(new Ye(5,5,5),new ne({uniforms:Ht.uniforms,vertexShader:Ht.vertexShader,fragmentShader:Ht.fragmentShader,side:sl,depthTest:!1,depthWrite:!1,fog:!1}));n(),this.context=It,this.capabilities=Rt,this.extensions=Ot,this.properties=Dt,this.state=kt;var Xt=new le(this,Ct,Ft,Rt);this.shadowMap=Xt;var qt=new ft(this,Z),Yt=new mt(this,K);this.getContext=function(){return It},this.getContextAttributes=function(){return It.getContextAttributes()},this.forceContextLoss=function(){Ot.get(\"WEBGL_lose_context\").loseContext()},this.getMaxAnisotropy=function(){return Rt.getMaxAnisotropy()},this.getPrecision=function(){return Rt.precision},this.getPixelRatio=function(){return vt},this.setPixelRatio=function(t){void 0!==t&&(vt=t,this.setSize(xt.z,xt.w,!1))},this.getSize=function(){return{width:pt,height:gt}},this.setSize=function(t,e,i){pt=t,gt=e,N.width=t*vt,N.height=e*vt,i!==!1&&(N.style.width=t+\"px\",N.style.height=e+\"px\"),this.setViewport(0,0,t,e)},this.setViewport=function(t,e,i,n){kt.viewport(xt.set(t,e,i,n))},this.setScissor=function(t,e,i,n){kt.scissor(yt.set(t,e,i,n))},this.setScissorTest=function(t){kt.setScissorTest(bt=t)},this.getClearColor=function(){return ut},this.setClearColor=function(t,e){ut.set(t),lt=void 0!==e?e:1,i(ut.r,ut.g,ut.b,lt)},this.getClearAlpha=function(){return lt},this.setClearAlpha=function(t){lt=t,i(ut.r,ut.g,ut.b,lt)},this.clear=function(t,e,i){var n=0;(void 0===t||t)&&(n|=It.COLOR_BUFFER_BIT),(void 0===e||e)&&(n|=It.DEPTH_BUFFER_BIT),(void 0===i||i)&&(n|=It.STENCIL_BUFFER_BIT),It.clear(n)},this.clearColor=function(){this.clear(!0,!1,!1)},this.clearDepth=function(){this.clear(!1,!0,!1)},this.clearStencil=function(){this.clear(!1,!1,!0)},this.clearTarget=function(t,e,i,n){this.setRenderTarget(t),this.clear(e,i,n)},this.resetGLState=r,this.dispose=function(){X=[],q=-1,H=[],W=-1,N.removeEventListener(\"webglcontextlost\",o,!1)},this.renderBufferImmediate=function(t,e,i){kt.initAttributes();var n=Dt.get(t);t.hasPositions&&!n.position&&(n.position=It.createBuffer()),t.hasNormals&&!n.normal&&(n.normal=It.createBuffer()),t.hasUvs&&!n.uv&&(n.uv=It.createBuffer()),t.hasColors&&!n.color&&(n.color=It.createBuffer());var r=e.getAttributes();if(t.hasPositions&&(It.bindBuffer(It.ARRAY_BUFFER,n.position),It.bufferData(It.ARRAY_BUFFER,t.positionArray,It.DYNAMIC_DRAW),kt.enableAttribute(r.position),It.vertexAttribPointer(r.position,3,It.FLOAT,!1,0,0)),t.hasNormals){if(It.bindBuffer(It.ARRAY_BUFFER,n.normal),!i.isMeshPhongMaterial&&!i.isMeshStandardMaterial&&i.shading===ul)for(var o=0,a=3*t.count;o8&&(f.length=8);for(var v=n.morphAttributes,p=0,m=f.length;p0&&w.renderInstances(n,T,L):w.render(T,L)},this.render=function(t,e,n,r){if((e&&e.isCamera)===!1)return void console.error(\"THREE.WebGLRenderer.render: camera is not an instance of THREE.Camera.\");var o=t.fog;nt=\"\",it=-1,rt=null,t.autoUpdate===!0&&t.updateMatrixWorld(),null===e.parent&&e.updateMatrixWorld(),e.matrixWorldInverse.getInverse(e.matrixWorld),Pt.multiplyMatrices(e.projectionMatrix,e.matrixWorldInverse),_t.setFromMatrix(Pt),G.length=0,W=-1,q=-1,Z.length=0,K.length=0,At=this.localClippingEnabled,St=wt.init(this.clippingPlanes,At,e),v(t,e),H.length=W+1,X.length=q+1,Q.sortObjects===!0&&(H.sort(l),X.sort(d)),St&&wt.beginShadows(),O(G),Xt.render(t,e),R(G,e),St&&wt.endShadows(),Tt.calls=0,Tt.vertices=0,Tt.faces=0,Tt.points=0,void 0===n&&(n=null),this.setRenderTarget(n);var a=t.background;if(null===a?i(ut.r,ut.g,ut.b,lt):a&&a.isColor&&(i(a.r,a.g,a.b,1),r=!0),(this.autoClear||r)&&this.clear(this.autoClearColor,this.autoClearDepth,this.autoClearStencil),a&&a.isCubeTexture?(Vt.projectionMatrix.copy(e.projectionMatrix),Vt.matrixWorld.extractRotation(e.matrixWorld),Vt.matrixWorldInverse.getInverse(Vt.matrixWorld),Wt.material.uniforms.tCube.value=a,Wt.modelViewMatrix.multiplyMatrices(Vt.matrixWorldInverse,Wt.matrixWorld),Ft.update(Wt),Q.renderBufferDirect(Vt,null,Wt.geometry,Wt.material,Wt,null)):a&&a.isTexture&&(Gt.material.map=a,Ft.update(Gt),Q.renderBufferDirect($t,null,Gt.geometry,Gt.material,Gt,null)),t.overrideMaterial){var s=t.overrideMaterial;y(H,e,o,s),y(X,e,o,s)}else kt.setBlending(pl),y(H,e,o),y(X,e,o);qt.render(t,e),Yt.render(t,e,st),n&&Nt.updateRenderTargetMipmap(n),kt.setDepthTest(!0),kt.setDepthWrite(!0),kt.setColorWrite(!0)},this.setFaceCulling=function(t,e){kt.setCullFace(t),kt.setFlipSided(e===nl)},this.allocTextureUnit=k,this.setTexture2D=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTarget&&(t||(console.warn(\"THREE.WebGLRenderer.setTexture2D: don't use render targets as textures. Use their .texture property instead.\"),t=!0),e=e.texture),Nt.setTexture2D(e,i)}}(),this.setTexture=function(){var t=!1;return function(e,i){t||(console.warn(\"THREE.WebGLRenderer: .setTexture is deprecated, use setTexture2D instead.\"),t=!0),Nt.setTexture2D(e,i)}}(),this.setTextureCube=function(){var t=!1;return function(e,i){e&&e.isWebGLRenderTargetCube&&(t||(console.warn(\"THREE.WebGLRenderer.setTextureCube: don't use cube render targets as textures. Use their .texture property instead.\"),t=!0),e=e.texture),e&&e.isCubeTexture||Array.isArray(e.image)&&6===e.image.length?Nt.setTextureCube(e,i):Nt.setTextureCubeDynamic(e,i)}}(),this.getCurrentRenderTarget=function(){return tt},this.setRenderTarget=function(t){tt=t,t&&void 0===Dt.get(t).__webglFramebuffer&&Nt.setupRenderTarget(t);var e,i=t&&t.isWebGLRenderTargetCube;if(t){var n=Dt.get(t);e=i?n.__webglFramebuffer[t.activeCubeFace]:n.__webglFramebuffer,ot.copy(t.scissor),at=t.scissorTest,st.copy(t.viewport)}else e=null,ot.copy(yt).multiplyScalar(vt),at=bt,st.copy(xt).multiplyScalar(vt);if(et!==e&&(It.bindFramebuffer(It.FRAMEBUFFER,e),et=e),kt.scissor(ot),kt.setScissorTest(at),kt.viewport(st),i){var r=Dt.get(t.texture);It.framebufferTexture2D(It.FRAMEBUFFER,It.COLOR_ATTACHMENT0,It.TEXTURE_CUBE_MAP_POSITIVE_X+t.activeCubeFace,r.__webglTexture,t.activeMipMapLevel)}},this.readRenderTargetPixels=function(t,e,i,n,r,o){if((t&&t.isWebGLRenderTarget)===!1)return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not THREE.WebGLRenderTarget.\");var a=Dt.get(t).__webglFramebuffer;if(a){var s=!1;a!==et&&(It.bindFramebuffer(It.FRAMEBUFFER,a),s=!0);try{var c=t.texture,u=c.format,h=c.type;if(u!==Td&&D(u)!==It.getParameter(It.IMPLEMENTATION_COLOR_READ_FORMAT))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in RGBA or implementation defined format.\");if(!(h===md||D(h)===It.getParameter(It.IMPLEMENTATION_COLOR_READ_TYPE)||h===_d&&(Ot.get(\"OES_texture_float\")||Ot.get(\"WEBGL_color_buffer_float\"))||h===wd&&Ot.get(\"EXT_color_buffer_half_float\")))return void console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: renderTarget is not in UnsignedByteType or implementation defined type.\");It.checkFramebufferStatus(It.FRAMEBUFFER)===It.FRAMEBUFFER_COMPLETE?e>=0&&e<=t.width-n&&i>=0&&i<=t.height-r&&It.readPixels(e,i,n,r,D(u),D(h),o):console.error(\"THREE.WebGLRenderer.readRenderTargetPixels: readPixels from renderTarget failed. Framebuffer not complete.\")}finally{s&&It.bindFramebuffer(It.FRAMEBUFFER,et)}}}}function ai(t,e){this.name=\"\",this.color=new re(t),this.density=void 0!==e?e:25e-5}function si(t,e,i){this.name=\"\",this.color=new re(t),this.near=void 0!==e?e:1,this.far=void 0!==i?i:1e3}function ci(){De.call(this),this.type=\"Scene\",this.background=null,this.fog=null,this.overrideMaterial=null,this.autoUpdate=!0}function ui(t,e,i,n,r){De.call(this),this.lensFlares=[],this.positionScreen=new dt,this.customUpdateCallback=void 0,void 0!==t&&this.add(t,e,i,n,r)}function hi(t){ee.call(this),this.type=\"SpriteMaterial\",this.color=new re(16777215),this.map=null,this.rotation=0,this.fog=!1,this.lights=!1,this.setValues(t)}function li(t){De.call(this),this.type=\"Sprite\",this.material=void 0!==t?t:new hi}function di(){De.call(this),this.type=\"LOD\",Object.defineProperties(this,{levels:{enumerable:!0,value:[]}})}function fi(t,e,i,n,r,o,a,s,c,u,h,l){ct.call(this,null,o,a,s,c,u,n,r,h,l),this.image={data:t,width:e,height:i},this.magFilter=void 0!==c?c:ud,this.minFilter=void 0!==u?u:ud,this.flipY=!1,this.generateMipmaps=!1}function pi(t,e,i){if(this.useVertexTexture=void 0===i||i,this.identityMatrix=new ht,t=t||[],this.bones=t.slice(0),this.useVertexTexture){var n=Math.sqrt(4*this.bones.length);n=lf.nextPowerOfTwo(Math.ceil(n)),n=Math.max(n,4),this.boneTextureWidth=n,this.boneTextureHeight=n,this.boneMatrices=new Float32Array(this.boneTextureWidth*this.boneTextureHeight*4),this.boneTexture=new fi(this.boneMatrices,this.boneTextureWidth,this.boneTextureHeight,Td,_d)}else this.boneMatrices=new Float32Array(16*this.bones.length);if(void 0===e)this.calculateInverses();else if(this.bones.length===e.length)this.boneInverses=e.slice(0);else{console.warn(\"THREE.Skeleton bonInverses is the wrong length.\"),this.boneInverses=[];for(var r=0,o=this.bones.length;r0)&&S.push(A,M,E),(m!==i-1||s65535?Ie:Te)(S,1)),this.addAttribute(\"position\",u),this.addAttribute(\"normal\",h),this.addAttribute(\"uv\",l),this.boundingSphere=new se(new dt,t)}function Fn(t,e,i,n,r,o,a){Fe.call(this),this.type=\"SphereGeometry\",this.parameters={radius:t,widthSegments:e,heightSegments:i,phiStart:n,phiLength:r,thetaStart:o,thetaLength:a},this.fromBufferGeometry(new Nn(t,e,i,n,r,o,a))}function zn(t,e){De.call(this),this.light=t,this.light.updateMatrixWorld(),this.matrix=t.matrixWorld,this.matrixAutoUpdate=!1,this.colors=[new re,new re];var i=new Fn(e,4,2);i.rotateX(-Math.PI/2);for(var n=0,r=8;n0&&f++,e>0&&f++);var p=c(),m=u(),g=new Ce(new(m>65535?Uint32Array:Uint16Array)(m),1),v=new Ce(new Float32Array(3*p),3),y=new Ce(new Float32Array(3*p),3),b=new Ce(new Float32Array(2*p),2),x=0,_=0,w=[],S=i/2,A=0;h(),o===!1&&(t>0&&l(!0),e>0&&l(!1)),this.setIndex(g),this.addAttribute(\"position\",v),this.addAttribute(\"normal\",y),this.addAttribute(\"uv\",b)}function Gn(t,e,i,n,r,o){De.call(this),void 0===n&&(n=16776960),void 0===i&&(i=1),void 0===r&&(r=.2*i),void 0===o&&(o=.2*r),this.position.copy(e),this.line=new yi(Om,new vi({color:n})),this.line.matrixAutoUpdate=!1,this.add(this.line),this.cone=new ti(Rm,new Je({color:n})),this.cone.matrixAutoUpdate=!1,this.add(this.cone),this.setDirection(t),this.setLength(i,r,o)}function Hn(t,e,i,n){function r(t){var e=t.normalize().clone();e.index=h.vertices.push(e)-1;var i=s(t)/2/Math.PI+.5,n=c(t)/Math.PI+.5;return e.uv=new st(i,1-n),e}function o(t,e,i){var n=new Oe(t.index,e.index,i.index,[t.clone(),e.clone(),i.clone()]);h.faces.push(n),b.copy(t).add(e).add(i).divideScalar(3);var r=s(b);h.faceVertexUvs[0].push([u(t.uv,t,r),u(e.uv,e,r),u(i.uv,i,r)])}function a(t,e){for(var i=Math.pow(2,e),n=r(h.vertices[t.a]),a=r(h.vertices[t.b]),s=r(h.vertices[t.c]),c=[],u=0;u<=i;u++){c[u]=[];for(var l=r(n.clone().lerp(s,u/i)),d=r(a.clone().lerp(s,u/i)),f=i-u,p=0;p<=f;p++)0===p&&u===i?c[u][p]=l:c[u][p]=r(l.clone().lerp(d,p/f))}for(var u=0;u.9&&M<.1&&(_<.2&&(x[0].x+=1),w<.2&&(x[1].x+=1),S<.2&&(x[2].x+=1))}for(var l=0,d=this.vertices.length;l=0&&e<=7&&hy[t]?hy[t][e]:Array(e+1).join(t)}function zr(t,e){function i(){f=[],r(),o(),a()}function n(t,e){return void 0!==t?t:e}function r(){f.push(Dr(\"TITEL %-74s\",t.name))}function o(){d.forEach(function(t){f.push(Dr(\"REMARK %-73s\",t))}),t.trajectory&&(f.push(Dr(\"REMARK %-73s\",\"Trajectory '\"+t.trajectory.name+\"'\")),f.push(Dr(\"REMARK %-73s\",\"Frame \"+t.trajectory.frame)))}function a(){var e=1,i=1;t.eachModel(function(t){f.push(Dr(\"MODEL %-74d\",i++)),t.eachAtom(function(t){var i=t.hetero?m:p,r=l?e:t.serial,o=t.atomname;1===o.length&&(o=\" \"+o),f.push(Dr(i,r,o,t.resname,n(t.chainname,\" \"),t.resno,t.x,t.y,t.z,n(t.occurence,1),n(t.bfactor,0),n(t.segid,\"\"),n(t.element,\"\"))),e+=1}),f.push(Dr(\"%-80s\",\"ENDMDL\")),i+=1}),f.push(Dr(\"%-80s\",\"END\"))}function s(){return i(),f.join(\"\\n\")}function c(){return new Blob([s()],{type:\"text/plain\"})}function u(t,e){t=t||\"structure\",e=e||\"pdb\";var i=t+\".\"+e,n=c();W(n,i)}var h=Object.assign({},e),l=void 0===h.renumberSerial||h.renumberSerial,d=h.remarks||[];Array.isArray(d)||(d=[d]);var f,p=\"ATOM %5d %-4s %3s %1s%4d %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s\",m=\"HETATM%5d %-4s %3s %1s%4d %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s\";this.getString=s,this.getBlob=c,this.download=u}function Br(){this.count=0,this.signals={countChanged:new Kn}}function Ur(){this.signals={updated:new Kn},this.begin(),this.maxDuration=-(1/0),this.minDuration=1/0,this.avgDuration=14,this.lastDuration=1/0,this.prevFpsTime=0,this.lastFps=1/0,this.lastFrames=1,this.frames=0,this.count=0}function jr(t,e){function i(t){d.enabled!==!1&&(v=g,g===f.NONE&&(t.keyCode!==d.keys[f.ROTATE]||d.noRotate?t.keyCode!==d.keys[f.ZOOM]||d.noZoom?t.keyCode!==d.keys[f.PAN]||d.noPan||(g=f.PAN):g=f.ZOOM:g=f.ROTATE))}function n(){d.enabled!==!1&&(g=v)}function r(t){d.enabled!==!1&&(g===f.NONE&&(g=t.button),g!==f.ROTATE||d.noRotate?g!==f.ZOOM||d.noZoom?g!==f.PAN||d.noPan||(E.copy(O(t.pageX,t.pageY)),C.copy(E)):(S.copy(O(t.pageX,t.pageY)),A.copy(S)):(x.copy(R(t.pageX,t.pageY)),b.copy(x)),document.addEventListener(\"mousemove\",o,!1),document.addEventListener(\"mouseup\",a,!1),d.dispatchEvent(I))}function o(t){d.enabled!==!1&&(g!==f.ROTATE||d.noRotate?g!==f.ZOOM||d.noZoom?g!==f.PAN||d.noPan||C.copy(O(t.pageX,t.pageY)):A.copy(O(t.pageX,t.pageY)):(b.copy(x),x.copy(R(t.pageX,t.pageY))))}function a(){d.enabled!==!1&&(g=f.NONE,document.removeEventListener(\"mousemove\",o),document.removeEventListener(\"mouseup\",a),d.dispatchEvent(L))}function s(t){if(d.enabled!==!1){var e=0;e=t.wheelDelta?t.wheelDelta/40:t.detail?-t.detail/3:3*-t.deltaY,S.y+=.01*e,d.dispatchEvent(I),d.dispatchEvent(L)}}function c(t){if(d.enabled!==!1){switch(t.touches.length){case 1:g=f.TOUCH_ROTATE,x.copy(R(t.touches[0].pageX,t.touches[0].pageY)),b.copy(x);break;default:g=f.TOUCH_ZOOM_PAN;var e=t.touches[0].pageX-t.touches[1].pageX,i=t.touches[0].pageY-t.touches[1].pageY;P=M=Math.sqrt(e*e+i*i);var n=(t.touches[0].pageX+t.touches[1].pageX)/2,r=(t.touches[0].pageY+t.touches[1].pageY)/2;E.copy(O(n,r)),C.copy(E)}d.dispatchEvent(I)}}function u(t){if(d.enabled!==!1)switch(t.touches.length){case 1:b.copy(x),x.copy(R(t.touches[0].pageX,t.touches[0].pageY));break;default:var e=t.touches[0].pageX-t.touches[1].pageX,i=t.touches[0].pageY-t.touches[1].pageY;P=Math.sqrt(e*e+i*i);var n=(t.touches[0].pageX+t.touches[1].pageX)/2,r=(t.touches[0].pageY+t.touches[1].pageY)/2;C.copy(O(n,r))}}function h(t){if(d.enabled!==!1){switch(t.touches.length){case 0:g=f.NONE;break;case 1:g=f.TOUCH_ROTATE,x.copy(R(t.touches[0].pageX,t.touches[0].pageY)),b.copy(x)}d.dispatchEvent(L)}}function l(t){t.preventDefault()}var d=this,f={NONE:-1,ROTATE:0,ZOOM:1,PAN:2,TOUCH_ROTATE:3,TOUCH_ZOOM_PAN:4};this.object=t,this.domElement=void 0!==e?e:document,this.enabled=!0,this.screen={left:0,top:0,width:0,height:0},this.rotateSpeed=1,this.zoomSpeed=1.2,this.panSpeed=.3,this.noRotate=!1,this.noZoom=!1,this.noPan=!1,this.staticMoving=!1,this.dynamicDampingFactor=.2,this.minDistance=0,this.maxDistance=1/0,this.keys=[65,83,68],this.target=new dt;var p=1e-6,m=new dt,g=f.NONE,v=f.NONE,y=new dt,b=new st,x=new st,_=new dt,w=0,S=new st,A=new st,M=0,P=0,E=new st,C=new st;this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.up0=this.object.up.clone();var T={type:\"change\"},I={type:\"start\"},L={type:\"end\"};this.handleResize=function(){if(this.domElement===document)this.screen.left=0,this.screen.top=0,this.screen.width=window.innerWidth,this.screen.height=window.innerHeight;else{var t=this.domElement.getBoundingClientRect(),e=this.domElement.ownerDocument.documentElement;this.screen.left=t.left+window.pageXOffset-e.clientLeft,this.screen.top=t.top+window.pageYOffset-e.clientTop,this.screen.width=t.width,this.screen.height=t.height}},this.handleEvent=function(t){\"function\"==typeof this[t.type]&&this[t.type](t)};var O=function(){var t=new st;return function(e,i){return t.set((e-d.screen.left)/d.screen.width,(i-d.screen.top)/d.screen.height),t}}(),R=function(){var t=new st;return function(e,i){return t.set((e-.5*d.screen.width-d.screen.left)/(.5*d.screen.width),(d.screen.height+2*(d.screen.top-i))/d.screen.width),t}}();this.rotateCamera=function(){var t,e=new dt,i=new lt,n=new dt,r=new dt,o=new dt,a=new dt;return function(){a.set(x.x-b.x,x.y-b.y,0),t=a.length(),t?(y.copy(d.object.position).sub(d.target),n.copy(y).normalize(),r.copy(d.object.up).normalize(),o.crossVectors(r,n).normalize(),r.setLength(x.y-b.y),o.setLength(x.x-b.x),a.copy(r.add(o)),e.crossVectors(a,y).normalize(),t*=d.rotateSpeed,i.setFromAxisAngle(e,t),y.applyQuaternion(i),d.object.up.applyQuaternion(i),_.copy(e),w=t):!d.staticMoving&&w&&(w*=Math.sqrt(1-d.dynamicDampingFactor),y.copy(d.object.position).sub(d.target),i.setFromAxisAngle(_,w),y.applyQuaternion(i),d.object.up.applyQuaternion(i)),b.copy(x)}}(),this.zoomCamera=function(){var t;g===f.TOUCH_ZOOM_PAN?(t=M/P,M=P,y.multiplyScalar(t),void 0===d.object.fov&&(d.object.zoom*=t)):(t=1+(A.y-S.y)*d.zoomSpeed,1!==t&&t>0&&(y.multiplyScalar(t),void 0===d.object.fov&&(d.object.zoom/=t),d.staticMoving?S.copy(A):S.y+=(A.y-S.y)*this.dynamicDampingFactor))},this.panCamera=function(){var t=new st,e=new dt,i=new dt;return function(){if(t.copy(C).sub(E),t.lengthSq()){if(void 0===d.object.fov){var n=(d.object.right-d.object.left)/d.object.zoom,r=(d.object.top-d.object.bottom)/d.object.zoom;t.x*=n,t.y*=r}else t.multiplyScalar(y.length()*d.panSpeed);i.copy(y).cross(d.object.up).setLength(t.x),i.add(e.copy(d.object.up).setLength(t.y)),d.object.position.add(i),d.target.add(i),d.staticMoving?E.copy(C):E.add(t.subVectors(C,E).multiplyScalar(d.dynamicDampingFactor))}}}(),this.checkDistances=function(){d.noZoom&&d.noPan||(y.lengthSq()>d.maxDistance*d.maxDistance&&(d.object.position.addVectors(d.target,y.setLength(d.maxDistance)),S.copy(A)),y.lengthSq()p&&(d.dispatchEvent(T),m.copy(d.object.position))},this.reset=function(){g=f.NONE,v=f.NONE,d.target.copy(d.target0),d.object.position.copy(d.position0),d.object.up.copy(d.up0),y.subVectors(d.object.position,d.target),d.object.lookAt(d.target),d.dispatchEvent(T),m.copy(d.object.position)},this.dispose=function(){this.domElement.removeEventListener(\"contextmenu\",l,!1),this.domElement.removeEventListener(\"mousedown\",r,!1),this.domElement.removeEventListener(\"mousewheel\",s,!1),this.domElement.removeEventListener(\"wheel\",s,!1),this.domElement.removeEventListener(\"MozMousePixelScroll\",s,!1),this.domElement.removeEventListener(\"touchstart\",c,!1),this.domElement.removeEventListener(\"touchend\",h,!1),this.domElement.removeEventListener(\"touchmove\",u,!1),document.removeEventListener(\"mousemove\",o,!1),document.removeEventListener(\"mouseup\",a,!1),window.removeEventListener(\"keydown\",i,!1),window.removeEventListener(\"keyup\",n,!1)},this.domElement.addEventListener(\"contextmenu\",l,!1),this.domElement.addEventListener(\"mousedown\",r,!1),this.domElement.addEventListener(\"mousewheel\",s,!1),this.domElement.addEventListener(\"wheel\",s,!1),this.domElement.addEventListener(\"MozMousePixelScroll\",s,!1),this.domElement.addEventListener(\"touchstart\",c,!1),this.domElement.addEventListener(\"touchend\",h,!1),this.domElement.addEventListener(\"touchmove\",u,!1),window.addEventListener(\"keydown\",i,!1),window.addEventListener(\"keyup\",n,!1),this.handleResize(),this.update()}function $r(t){if(void 0===t)return\"\";var e=[];for(var i in t){var n=t[i];n!==!1&&e.push(\"#define \"+i+\" \"+n)}return e.join(\"\\n\")+\"\\n\"}function Vr(t,e){e=e||{};var i=t+\"|\";for(var n in e)i+=n+\":\"+e[n];if(!Fy[i]){var r=$r(e),o=Dy[\"shader/\"+t];if(!o)throw\"empty shader, '\"+t+\"'\";o=o.replace(Ny,function(t,e){var i=\"shader/chunk/\"+e+\".glsl\",n=Dy[i]||vm[e];return n?n:\"\"}),Fy[i]=r+o}return Fy[i]}function Gr(t,e,i,n){function r(e){var n=e%u,r=Math.floor(e/u),o=n*m,a=r*g;i.camera.setViewOffset(m*u,g*u,o,a,m,g),i.render(),h?v.drawImage(t.domElement,Math.floor(o/2),Math.floor(a/2),Math.ceil(m/2),Math.ceil(g/2)):v.drawImage(t.domElement,Math.floor(o),Math.floor(a),Math.ceil(m),Math.ceil(g)),\"function\"==typeof l&&l(e+1,f,!1)}function o(){i.setSampling(y),i.camera.view=null,\"function\"==typeof d&&d(f+1,f,!1)}function a(){for(var t=0;t<=f;++t)t===f?o():r(t)}function s(){function t(){e===f?o():r(e),e+=1}for(var e=0,i=0;i<=f;++i)setTimeout(t,0,i)}var c=n||{},u=void 0!==c.factor?c.factor:2,h=void 0!==c.antialias&&c.antialias,l=c.onProgress,d=c.onFinish;h&&(u*=2);var f=u*u,p=document.createElement(\"canvas\"),m=i.width,g=i.height;h?(p.width=m*u/2,p.height=g*u/2):(p.width=m*u,p.height=g*u);var v=p.getContext(\"2d\"),y=i.sampleLevel;i.setSampling(-1),this.render=a,this.renderAsync=s,this.canvas=p}function Hr(t,e,i,n,r){i=i||1,n=n||0;var o,a,s,c=r?r.length:t.length/i,u=0,h=0;if(r)for(a=0;ae?1:t=u&&e(t[o],l)>0;)t[o+1]=t[o],--o;t[o+1]=l}if(c===-1)break;h=s[c--],u=s[c--]}else{var f=u+h>>1;for(o=u+1,a=h,r(f,o),e(t[u],t[h])>0&&r(u,h),e(t[o],t[h])>0&&r(o,h),e(t[u],t[o])>0&&r(u,o),l=t[o];;){do o++;while(e(t[o],l)<0);do a--;while(e(t[a],l)>0);if(a=a-u?(s[++c]=o,s[++c]=h,h=a-1):(s[++c]=u,s[++c]=a-1,u=o)}return t}function Jr(t,e,i,n,r){var o,a,s,c,u=t.height,h=t.width,l=t.getContext(\"2d\"),d=l.getImageData(0,0,h,u).data;for(s=!1,a=0;a=0;a--){for(o=h-1;o>=0;o--)if(c=4*(a*h+o),d[c]!==e||d[c+1]!==i||d[c+2]!==n||d[c+3]!==r){s=!0;break}if(s)break;\n}var m=a;for(s=!1,o=h-1;o>=0;o--){for(a=u-1;a>=0;a--)if(c=4*(a*h+o),d[c]!==e||d[c+1]!==i||d[c+2]!==n||d[c+3]!==r){s=!0;break}if(s)break}var g=o,v=document.createElement(\"canvas\");v.width=g-p,v.height=m-f;var y=v.getContext(\"2d\");return y.drawImage(t,p,f,v.width,v.height,0,0,v.width,v.height),v}function to(t,e){function i(e){var i=s;c&&(i*=2),e&&(i=1/i),t.scene.traverse(function(t){var e=t.material;e&&e.linewidth&&(e.linewidth*=i),e&&e.uniforms&&e.uniforms.size&&void 0===e.uniforms.size.__seen&&(e.uniforms.size.value*=i,e.uniforms.size.__seen=!0)}),t.scene.traverse(function(t){var e=t.material;e&&e.uniforms&&e.uniforms.size&&delete e.uniforms.size.__seen})}function n(t){if(a){var e=f,i=0|(u?0:255*e.r),n=0|(u?0:255*e.g),r=0|(u?0:255*e.b),o=0|(u?0:255);return Jr(t,i,n,r,o)}return t}function r(t,e,i){\"function\"==typeof o.onProgress&&o.onProgress(t,e,i)}var o=e||{},a=void 0!==o.trim&&o.trim,s=void 0!==o.factor?o.factor:1,c=void 0!==o.antialias&&o.antialias,u=void 0!==o.transparent&&o.transparent,h=t.renderer,l=t.camera,d=h.getClearAlpha(),f=h.getClearColor();return new Promise(function(e){function o(o,s){var c=n(a.canvas);c.toBlob(function(n){h.setClearAlpha(d),i(!0),t.requestRender(),r(s,s,!0),e(n)},\"image/png\")}var a=new Gr(h,l,t,{factor:s,antialias:c,onProgress:r,onFinish:o});h.setClearAlpha(u?0:1),i(),a.renderAsync()})}function eo(t,e){var i;t.traverseVisible(function(t){if(t instanceof _i&&t.sortParticles){var n=t.geometry.attributes,r=n.position.count;if(0!==r){Uy.multiplyMatrices(e.matrixWorldInverse,t.matrixWorld),jy.multiplyMatrices(e.projectionMatrix,Uy);var o,a,s,c;for(t.userData.sortData?(o=t.userData.sortData,s=o.__zArray,a=o.__sortArray,c=o.__cmpFn):(s=new Float32Array(r),a=new Uint32Array(r),c=function(t,e){var i=s[t],n=s[e];return i>n?1:i500&&!Z&&Y<3&&Y!==-1){var i=Y;Y=3,q=!0,F(),Z=!0,Y=i,t.Debug&&ty.log(\"rendered still frame\")}var n=J;n.spinAxis&&n.spinAngle&&(It(n.spinAxis,n.spinAngle*tt.lastDuration/16),C()),requestAnimationFrame(E)}function C(){q||(performance.now()-tt.startTime>22&&(tt.begin(),Z=!1),q=!0,requestAnimationFrame(function(){F(),tt.update()}))}function T(){var t=J;K=Ct.copy(nt.position).sub(St.target).length(),K||(nt.position.set(0,0,t.cameraZ),K=Math.abs(t.cameraZ)),Q=Math.max(10,.5*Et),Q+=Mt.center(Ct).length(),(Q===1/0||Q===-(1/0)||isNaN(Q))&&(Q=50);var e=(50-t.clipNear)/50,i=-(50-t.clipFar)/50;nt.near=Math.max(.1,t.clipDist,K-Q*e),nt.far=Math.max(1,K+Q*i);var n=(50-t.fogNear)/50,r=-(50-t.fogFar)/50,o=rt.fog;o.color.set(t.fogColor),o.near=Math.max(.1,K-Q*n),o.far=Math.max(1,K+Q*r)}function I(){T();var t=Jn(et.fov),e=(nt.near+nt.far)/2,i=2*Math.tan(t/2)*e;it.zoom=H/i}function L(){nt.updateMatrix(),nt.updateMatrixWorld(!0),nt.matrixWorldInverse.getInverse(nt.matrixWorld),nt.updateProjectionMatrix(),io(rt,nt,pt,K,Q),eo(rt,nt)}function O(t,e,i,n){ct.visible=t,ut.visible=e,ht.visible=i,ft.visible=n}function R(){Ct.copy(nt.position).sub(St.target).setLength(10*Et),ot.position.copy(nt.position).add(Ct),ot.color.set(J.lightColor),ot.intensity=J.lightIntensity,at.color.set(J.ambientColor),at.intensity=J.ambientIntensity}function k(){pt.clearTarget(gt),O(!1,!0,!1,!1),pt.render(rt,nt,gt),M(),pt.setRenderTarget(null)}function D(e){e?pt.clearTarget(e):pt.clear(),O(!1,!1,!0,!1),pt.render(rt,nt,e),e?pt.clearTarget(e,!1,!0,!1):pt.clearDepth(),M(),O(!0,!1,!1,t.Debug),pt.render(rt,nt,e),M()}function N(){var t=Gy[Math.max(0,Math.min(Y,5))],e=1/t.length,i=1/32;bt.tForeground.value=vt.texture;for(var n=vt.width,r=vt.height,o=0;o0?N():D(),X=!1,void(q=!1))}function z(){ty.log(\"scene cleared\"),rt.remove(st),o(),pt.clear()}function B(t,e){if(void 0===e?Mt.isEmpty()||Ot(Mt.center()):Ot(e),t){var i;if(t===!0){var n=Pt,r=Math.max(n.x,n.y,n.z),o=Math.min(n.x,n.y,n.z);i=r+Math.sqrt(o)}else i=t;var a=Jn(et.fov),s=G/H,c=Hr&&(r=u),h>o&&(o=h),l>a&&(a=l)}return[lo([e,i,n]),lo([r,o,a])]}function co(t,e){for(var i=0,n=e.length;ie?(e/=t,t*Math.sqrt(1+e*e)):e>0?(t/=e,e*Math.sqrt(1+t*t)):0}function ko(t,e,i,n,r,o,a,s){for(var c=2*Zy,u=Ky,h=0,l=0,d=0,f=0,p=Math.max(o,30),m=0,g=0,v=0,y=0,b=0,x=0,_=0,w=0,S=0,A=0,M=0,P=0,E=0,C=0,T=0,I=0,L=0,O=4660,R=0,k=0,D=0,N=new Float64Array(a<<3);h>16&32767&256)?k:-k,t[h*e+d]=R;for(f=0;f<2;f++)for(l=0;ls&&(s=e);var a=o-r;if(0===a)return-1;var u=4*l;if(l+=1,1===a)return h[u]=r,h[u+1]=-1,h[u+2]=-1,h[u+3]=n,u;var f=r+Math.floor(a/2);d=e%3;for(var p,m,g,v,y,b=r,x=o-1;x>b;){for(g=b+x>>1,v=t[3*c[g]+d],m=c[g],c[g]=c[x],c[x]=m,y=b,p=b;pr&&s.pop()}var d,f,p=n(u)%3,m=3*c[h[u]],g=[t[m+0],t[m+1],t[m+2]],v=e(i,g),y=h[u+1],b=h[u+2];if(b===-1&&y===-1)return void((s.size()t[3*c[h[e]]+r])throw\"left child is > parent!\";n+=o(a,i+1)}if(s!==-1){if(t[3*c[h[s]]+r]0&&(e=\":\"+Y(t).join(\" OR :\")),new Qn(e)}function oa(t){this.name=t||\"\",this.partList=[]}function aa(t,e){this.matrixList=t||[],this.chainList=e||[]}function sa(e){function i(t,e){return n.index=t,r.index=e,n.modelindexr.modelindex?1:n.chainnamer.chainname?1:n.resnor.resno?1:0}t.Debug&&ty.time(\"reorderAtoms\");var n=e.getAtomProxy(),r=e.getAtomProxy();e.atomStore.sort(i),t.Debug&&ty.timeEnd(\"reorderAtoms\")}function ca(e){t.Debug&&ty.time(\"assignSecondaryStructure\");var i=[];e.eachModel(function(t){t.eachChain(function(t){i.push(t.chainname)})});var n=i.slice().sort(),r=[];n.forEach(function(t){r.push(i.indexOf(t))});var o=e.helices||[];o=o.filter(function(t){return Qh(n,t[0])>=0}),o.sort(function(t,e){var i=t[0],o=e[0],a=t[1],s=e[1];if(i===o)return a===s?0:a=0}),s.sort(function(t,e){var i=t[0],o=e[0];if(i===o)return 0;var a=Qh(n,i),s=Qh(n,o);return r[a]=r;)e=Math.floor(e/r),o+=n[e%r],i+=1;return i>=5&&ty.warn(\"chainname overflow\"),o},h=e.getAtomProxy(),l=e.getAtomProxy(),d=0,f=0,p=0,m=0,g=[];1===s.count?g.push({mIndex:0,chainname:\"A\",rStart:0,rCount:1}):e.eachResidueN(2,function(t,e){var i=!1,n=t.backboneType,r=e.backboneType,o=Vm;m=t.index,t.modelIndex!==e.modelIndex?i=!0:t.moleculeType!==e.moleculeType?i=!0:n!==o&&n===r&&(h.index=t.backboneEndAtomIndex,l.index=e.backboneStartAtomIndex,h.connectedTo(l)||(i=!0)),i||e.index!==s.count-1||(i=!0,m=e.index),i&&(g.push({mIndex:f,chainname:u(d),rStart:p,rCount:m-p+1}),d+=1,t.modelIndex!==e.modelIndex&&(d=0,f+=1),e.index===s.count-1&&g.push({mIndex:f,chainname:u(d),rStart:s.count-1,rCount:1}),p=e.index,m=e.index)}),a.count=0,g.forEach(function(t){c(t.mIndex,t.chainname,t.rStart,t.rCount)});var v=0;e.eachModel(function(t){o.chainOffset[t.index]=v,o.chainCount[t.index]-=1,v+=o.chainCount[t.index]})}t.Debug&&ty.timeEnd(\"calculateChainnames\")}function ha(e){t.Debug&&ty.time(\"calculateBonds\"),fa(e),pa(e),t.Debug&&ty.timeEnd(\"calculateBonds\")}function la(e){var i=e.structure,n=i.getAtomProxy(),r=i.getAtomProxy(),o=e.atomCount,a=e.atomOffset,s=a+o,c=s-1;if(o>500)return void(t.Debug&&ty.warn(\"more than 500 atoms, skip residue for auto-bonding\",e.qualifiedName()));var u,h,l=[],d=[],f=[];if(o>50){var p=new ia(e,!0),m=e.isCg()?1.2:2.3;for(u=a;u500)return void ty.warn(\"more than 500 atoms, skip residue for auto-bonding\",t.qualifiedName());for(var l=t.getBonds(),d=l.atomIndices1,f=l.atomIndices2,p=l.bondOrders,m=d.length,g=0;g1&&(c.x-=1),s.x<0&&(c.x+=1),s.y>1&&(c.y-=1),s.y<0&&(c.y+=1),s.z>1&&(c.z-=1),s.z<0&&(c.z+=1),t&&c.add(t),u.setPosition(c),u.multiplyMatrices(n.fracToCart,u),u.multiply(n.cartToFrac),e.push(u)}),e}t.Debug&&ty.time(\"buildUnitcellAssembly\");var n=e.unitcell,r=e.center.clone().applyMatrix4(n.cartToFrac),o=na(n.spacegroup),a=new dt,s=new dt,c=new dt;r.x>1&&(a.x-=1),r.x<0&&(a.x+=1),r.y>1&&(a.y-=1),r.y<0&&(a.y+=1),r.z>1&&(a.z-=1),r.z<0&&(a.z+=1);var u,h=new oa(\"UNITCELL\"),l=i();if(e.biomolDict.NCS){u=[new ht].concat(e.biomolDict.NCS.partList[0].matrixList);var d=[];l.forEach(function(t){u.forEach(function(e){d.push(t.clone().multiply(e))})}),h.addPart(d)}else h.addPart(l);var f=new dt,p=new oa(\"SUPERCELL\"),m=Array.prototype.concat.call(i(),i(f.set(1,1,1)),i(f.set(-1,-1,-1)),i(f.set(1,0,0)),i(f.set(1,1,0)),i(f.set(1,0,1)),i(f.set(0,1,0)),i(f.set(0,1,1)),i(f.set(0,0,1)),i(f.set(-1,0,0)),i(f.set(-1,-1,0)),i(f.set(-1,0,-1)),i(f.set(0,-1,0)),i(f.set(0,-1,-1)),i(f.set(0,0,-1)),i(f.set(1,-1,-1)),i(f.set(1,1,-1)),i(f.set(1,-1,1)),i(f.set(-1,1,1)),i(f.set(-1,-1,1)),i(f.set(-1,1,-1)),i(f.set(0,1,-1)),i(f.set(0,-1,1)),i(f.set(1,0,-1)),i(f.set(-1,0,1)),i(f.set(1,-1,0)),i(f.set(-1,1,0)));if(e.biomolDict.NCS){var g=[];m.forEach(function(t){u.forEach(function(e){g.push(t.clone().multiply(e))})}),p.addPart(g)}else p.addPart(m);e.biomolDict.UNITCELL=h,e.biomolDict.SUPERCELL=p,t.Debug&&ty.timeEnd(\"buildUnitcellAssembly\")}function ga(t){var e=t.bondHash,i=e.countArray,n=e.offsetArray,r=e.indexArray,o=t.getBondProxy();t.eachResidue(function(t){var e=t.residueType;if(void 0===e.bonds){var a=t.atomOffset,s=[],c=[],u=[],h={};t.eachAtom(function(t){for(var e=t.index,l=n[e],d=i[e],f=0,p=d;fg){var v=g;g=m,m=v}var y=m+\"|\"+g;void 0===h[y]&&(h[y]=!0,s.push(m-a),c.push(g-a),u.push(o.bondOrder))}}),e.bonds={atomIndices1:s,atomIndices2:c,bondOrders:u}}})}function va(t,e,i){this.structure=t,i=i||eb(e),this.atomname=e,this.element=i,this.vdw=ng[i],this.covalent=og[i]}function ya(t){function e(t,e){return t+\"|\"+e}function i(i,n){n=n||eb(i);var a=e(i,n),s=r[a];if(void 0===s){var c=new va(t,i,n);s=o.length,r[a]=s,o.push(c)}return s}function n(t){return o[t]}var r={},o=[];this.add=i,this.get=n,this.list=o,this.dict=r,this.toJSON=function(){var t={metadata:{version:.1,type:\"AtomMap\",generator:\"AtomMapExporter\"},idDict:r,typeList:o.map(function(t){return t.toJSON()})};return t},this.fromJSON=function(e){r=e.idDict,o=e.typeList.map(function(e){return new va(t,e.atomname,e.element)}),this.list=o,this.dict=r}}function ba(t,e,i,n,r,o){this.structure=t,this.resname=e,this.atomTypeIdList=i,this.hetero=n?1:0,this.chemCompType=r,this.bonds=o,this.rings=void 0,this.atomCount=i.length,this.moleculeType=this.getMoleculeType(),this.backboneType=this.getBackboneType(0),this.backboneEndType=this.getBackboneType(-1),this.backboneStartType=this.getBackboneType(1),this.backboneIndexList=this.getBackboneIndexList();var a=yg[this.backboneType],s=yg[this.backboneStartType],c=yg[this.backboneEndType],u=this.getAtomIndexByName(a.trace);this.traceAtomIndex=void 0!==u?u:-1;var h=this.getAtomIndexByName(a.direction1);this.direction1AtomIndex=void 0!==h?h:-1;var l=this.getAtomIndexByName(a.direction2);this.direction2AtomIndex=void 0!==l?l:-1;var d=this.getAtomIndexByName(s.backboneStart);this.backboneStartAtomIndex=void 0!==d?d:-1;var f=this.getAtomIndexByName(c.backboneEnd);this.backboneEndAtomIndex=void 0!==f?f:-1;var p;p=fg.indexOf(e)!==-1?this.getAtomIndexByName(\"N1\"):this.getAtomIndexByName(\"N3\"),this.rungEndAtomIndex=void 0!==p?p:-1,this.bondReferenceAtomIndices=[]}function xa(t){function e(t,e,i,n){return t+\"|\"+e.join(\",\")+\"|\"+(i?1:0)+\"|\"+(n?n:\"\")}function i(i,n,a,s,c){i=i.toUpperCase();var u=e(i,n,a,s),h=r[u];if(void 0===h){var l=new ba(t,i,n,a,s,c);h=o.length,r[u]=h,o.push(l)}return h}function n(t){return o[t]}var r={},o=[];this.add=i,this.get=n,this.list=o,this.dict=r}function _a(t,e){this.structure=t,this.bondStore=t.bondStore,this.index=e,this._v12=new dt,this._v13=new dt,this._ap1=this.structure.getAtomProxy(),this._ap2=this.structure.getAtomProxy(),this._ap3=this.structure.getAtomProxy()}function wa(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueMap=t.residueMap,this.atomMap=t.atomMap,this.bondHash=t.bondHash,this.index=e}function Sa(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueMap=t.residueMap,this.atomMap=t.atomMap,this.index=e}function Aa(t,e,i){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.atomStore=t.atomStore,this.residueIndexStart=e,this.residueIndexEnd=i,this.residueCount=i-e+1;var n=this.structure.getResidueProxy(this.residueIndexStart),r=this.structure.getResidueProxy(this.residueIndexEnd);this.isPrevConnected=void 0!==n.getPreviousConnectedResidue();var o=r.getNextConnectedResidue();this.isNextConnected=void 0!==o,this.isNextNextConnected=this.isNextConnected&&void 0!==o.getNextConnectedResidue(),this.isCyclic=r.connectedTo(n),this.__residueProxy=this.structure.getResidueProxy()}function Ma(t,e){this.structure=t,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.index=e}function Pa(t,e){this.structure=t,this.modelStore=t.modelStore,this.chainStore=t.chainStore,this.residueStore=t.residueStore,this.index=e}function Ea(t,e){this.signals={refreshed:new Kn},this.name=t,this.path=e,this.title=\"\",this.id=\"\",this.atomSetCache={},this.atomSetDict={},this.biomolDict={},this.helices=[],this.sheets=[],this.unitcell=void 0,this.frames=[],this.boxes=[],this.bondStore=new Xo(0),this.backboneBondStore=new Xo(0),this.rungBondStore=new Xo(0),this.atomStore=new qo(0),this.residueStore=new Yo(0),this.chainStore=new Zo(0),this.modelStore=new Ko(0),this.atomMap=new ya(this),this.residueMap=new xa(this),this.bondHash=new Ho(this.bondStore,this.atomStore.count),this.atomSet=this.getAtomSet(),this.bondSet=this.getBondSet(),this.center=new dt,this.boundingBox=new ae,ey.addObject(this),this._bp=this.getBondProxy(),this._ap=this.getAtomProxy(),this._rp=this.getResidueProxy(),this._cp=this.getChainProxy()}function Ca(t,e,i){this.name=t,this.path=e,this.info={},this.center=new dt,this.boundingBox=new ae,i instanceof Fe||i instanceof Ue||i instanceof wi?this.fromGeometry(i):i&&this.set(i.position,i.index,i.normal,i.color,i.atomindex)}function Ta(e){var i=0,n=0,r={},o={},a=URL.createObjectURL(ny.get(e)),s=new window.Worker(a);ny.activeWorkerCount+=1,s.onmessage=function(n){i-=1;var a=n.data.__postId;t.Debug&&ty.timeEnd(\"Worker.postMessage \"+e+\" #\"+a),r[a]&&r[a].call(s,n),delete r[a],delete o[a]},s.onerror=function(t){if(i-=1,t.data){var n=t.data.__postId;o[n]?o[n].call(s,t):ty.error(\"Worker.onerror\",n,e,t),delete r[n],delete o[n]}else ty.error(\"Worker.onerror\",e,t)},this.name=e,this.post=function(a,c,u,h){r[n]=u,o[n]=h,a=a||{},a.__name=e,a.__postId=n,a.__debug=t.Debug,t.Debug&&ty.time(\"Worker.postMessage \"+e+\" #\"+n);try{s.postMessage(a,c)}catch(t){ty.error(\"worker.post:\",t),s.postMessage(a)}return i+=1,n+=1,this},this.terminate=function(){s?(s.terminate(),URL.revokeObjectURL(a),ny.activeWorkerCount-=1):ty.log(\"no worker to terminate\")},Object.defineProperties(this,{postCount:{get:function(){return n}},pending:{get:function(){return i}}})}function Ia(t,e){e=Math.min(8,e||2);var i=[],n=0;this.name=t,this.maxCount=e,this.post=function(t,e,i,n){var r=this.getNextWorker();return r.post(t,e,i,n),this},this.terminate=function(){i.forEach(function(t){t.terminate()})},this.getNextWorker=function(){for(var r,o=1/0,a=0;a=n){r=new Ta(t),i.push(r),n+=1;break}var s=i[a];if(0===s.pending){o=s.pending,r=s;break}s.pending=g){L=m,C=!0;break}if(C)break}if(C)break}for(C=!1,p=o;p=g){I=p,C=!0;break}if(C)break}if(C)break}for(C=!1,d=r;d=g){T=d,C=!0;break}if(C)break}if(C)break}for(C=!1,m=u;m>=a;--m){for(p=c;p>=o;--p){for(d=s;d>=r;--d)if(l=e*i*m+e*p+d,t[l]>=g){k=m,C=!0;break}if(C)break}if(C)break}for(C=!1,p=c;p>=o;--p){for(m=k;m>=a;--m){for(d=s;d>=r;--d)if(l=e*i*m+e*p+d,t[l]>=g){R=p,C=!0;break}if(C)break}if(C)break}for(C=!1,d=s;d>=r;--d){for(p=R;p>=o;--p){for(m=k;m>=a;--m)if(l=e*i*m+e*p+d,t[l]>=g){O=d,C=!0;break}if(C)break}if(C)break}for(v?(r=Math.max(0,T-1),o=Math.max(0,I-1),a=Math.max(0,L-1),s=Math.min(e-1,O+1),c=Math.min(i-1,R+1),u=Math.min(n-1,k+1)):(r=Math.max(1,T-1),o=Math.max(1,I-1),a=Math.max(1,L-1),s=Math.min(e-2,O+1),c=Math.min(i-2,R+1),u=Math.min(n-2,k+1)),m=a;m65535?Uint32Array:Uint16Array;return{position:new Float32Array(w),normal:v?void 0:new Float32Array(S),index:new a(A),atomindex:r?new Int32Array(M):void 0}}}function ka(t,e,i,n){i=i||1,n=n||!0;var r,o=t.length/3,a=e.length/3;n&&(r=new Float32Array(3*o));var s,c=new Float32Array(3*o),u=20,h=new Array(u);for(s=0;s65535?Uint32Array:Uint16Array,a=new o(3*r),s=0;s65535?Uint32Array:Uint16Array;this.meshIndex=new u(c*o*3),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,a),this.initNormals=!0,this.setAttributes({position:t,color:e,pickingColor:i}),this.initNormals=!1}function qa(t,e,i,n,r){var o=r||{},a=$(o.sphereDetail,1);this.geo=new Wn(1,a),this._radius=i,Xa.call(this,t,e,n,o)}function Ya(t){this.size=this.count,this.attributeSize=this.count*this.mappingSize;var e=this.count*this.mappingIndicesSize,i=this.attributeSize>65535?Uint32Array:Uint16Array;this.index=new i(e),this.makeIndex(),$a.call(this,null,null,this.index,null,t),this.addAttributes({mapping:{type:this.mappingType,value:null}})}function Za(t){this.mapping=new Float32Array([-1,1,-1,-1,1,1,1,-1]),this.mappingIndices=new Uint16Array([0,1,2,1,3,2]),this.mappingIndicesSize=6,this.mappingType=\"v2\",this.mappingSize=4,this.mappingItemSize=2,Ya.call(this,t)}function Ka(t,e,i,n,r){this.impostor=!0,this.count=t.length/3,this.vertexShader=\"SphereImpostor.vert\",this.fragmentShader=\"SphereImpostor.frag\",Za.call(this,r),this.addUniforms({projectionMatrixInverse:{value:new ht},ortho:{value:0}}),this.addAttributes({radius:{type:\"f\",value:null}}),this.setAttributes({position:t,color:e,radius:i}),n&&(this.addAttributes({pickingColor:{type:\"c\",value:null}}),this.setAttributes({pickingColor:n}),this.pickable=!0),this.makeMapping();\n}function Qa(t,e,i,n,r){var o=r||{};return!Jv||o.disableImpostor?new qa(t,e,i,n,r):new Ka(t,e,i,n,r)}function Ja(t,e,i,n,r,o,a){var s=a||{},c=$(s.sphereDetail,2);this.updateNormals=!0,this.geo=new Wn(1,c),this._radius=i,this._majorAxis=n,this._minorAxis=r,Xa.call(this,t,e,o,s)}function ts(t,e,i,n,r,o,a){return new Ja(t,e,i,n,r,o,a)}function es(t,e,i,n,r,o,a,s){var c=s||{},u=$(c.radialSegments,10),h=$(c.openEnded,!0);this.updateNormals=!0;var l=(new ht).makeRotationX(Math.PI/2);this.geo=new Vn(1,1,1,u,1,h),this.geo.applyMatrix(l);var d=t.length,f=r.length;this._position=new Float32Array(2*d),this._color=new Float32Array(2*d),this._pickingColor=new Float32Array(2*d),this._from=new Float32Array(2*d),this._to=new Float32Array(2*d),this._radius=new Float32Array(2*f),this.__center=new Float32Array(d),Xa.call(this,this._position,this._color,this._pickingColor,c),this.setAttributes({position1:t,position2:e,color:i,color2:n,radius:r,pickingColor:o,pickingColor2:a})}function is(t){this.mapping=new Float32Array([-1,1,-1,-1,-1,-1,1,1,-1,1,1,1,1,-1,-1,1,-1,1]),this.mappingIndices=new Uint16Array([0,1,2,1,4,2,2,4,3,4,5,3]),this.mappingIndicesSize=12,this.mappingType=\"v3\",this.mappingSize=6,this.mappingItemSize=3,Ya.call(this,t)}function ns(t,e,i,n,r,o,a,s){var c=s||{};this.openEnded=$(c.openEnded,!1),this.impostor=!0,this.count=t.length/3,this.vertexShader=\"CylinderImpostor.vert\",this.fragmentShader=\"CylinderImpostor.frag\",is.call(this,c);var u=new Rn(new ht).onUpdate(function(t){this.value.getInverse(t.modelViewMatrix)});this.addUniforms({modelViewMatrixInverse:u,ortho:{value:0}}),this.addAttributes({position1:{type:\"v3\",value:null},position2:{type:\"v3\",value:null},color2:{type:\"c\",value:null},radius:{type:\"f\",value:null}}),this.setAttributes({position1:t,position2:e,color:i,color2:n,radius:r}),o&&(this.addAttributes({pickingColor:{type:\"c\",value:null},pickingColor2:{type:\"c\",value:null}}),this.setAttributes({pickingColor:o,pickingColor2:a}),this.pickable=!0),this.makeMapping()}function rs(t,e,i,n,r,o,a,s){var c=s||{};return!Jv||c.disableImpostor?new es(t,e,i,n,r,o,a,s):new ns(t,e,i,n,r,o,a,s)}function os(t,e,i,n,r,o){var a=o||{},s=$(a.radialSegments,60),c=$(a.openEnded,!1);this.updateNormals=!0;var u=(new ht).makeRotationX(-Math.PI/2);this.geo=new qn(1,1,s,1,c),this.geo.applyMatrix(u);var h=t.length,l=n.length;this._position=new Float32Array(h),this._from=new Float32Array(h),this._to=new Float32Array(h),this._radius=new Float32Array(l),Xa.call(this,this._position,i,r,a),this.setAttributes({position1:t,position2:e,color:i,radius:n,pickingColor:r})}function as(t,e,i,n,r,o){return new os(t,e,i,n,r,o)}function ss(t,e,i,n,r,o){function a(t){var e,i,n={};if(t.radius){for(e=0,i=f.length;e65535?Uint32Array:Uint16Array;i=new r(i)}Array.isArray(n)&&(n=new Float32Array(n));var o=new Va(t,e,i,n);y.push(o)}function o(t,e,n){i(t,b),i(e,x),_.push(n)}function a(t,e,n,r,o){i(t,w),i(e,S),A.push(n),i(r,M),i(o,P)}function s(t,e,n,r){i(t,E),i(e,C),i(n,T),I.push(r)}function c(t,e,n,r){i(t,L),i(e,O),i(n,R),k.push(r)}function u(t,e,n,r){i(t,D),i(e,N),i(n,F),z.push(r)}function h(){var t=[];if(b.length){var e=new Qa(new Float32Array(b),new Float32Array(x),new Float32Array(_),void 0,{sphereDetail:p,disableImpostor:g});t.push(e)}if(w.length){var i=new ts(new Float32Array(w),new Float32Array(S),new Float32Array(A),new Float32Array(M),new Float32Array(P),void 0,{sphereDetail:p,disableImpostor:g});t.push(i)}if(E.length){var n=new rs(new Float32Array(E),new Float32Array(C),new Float32Array(T),new Float32Array(T),new Float32Array(I),void 0,void 0,{radialSegments:m,disableImpostor:g,openEnded:v});t.push(n)}if(L.length){var r=new as(new Float32Array(L),new Float32Array(O),new Float32Array(R),new Float32Array(k),void 0,{radialSegments:m,disableImpostor:g,openEnded:v});t.push(r)}if(D.length){var o=new ss(new Float32Array(D),new Float32Array(N),new Float32Array(F),new Float32Array(z),void 0,{aspectRatio:f,radialSegments:m,disableImpostor:g,openEnded:v});t.push(o)}return y.concat(t)}function l(){y.forEach(function(t){t.dispose()}),y.length=0,b.length=0,x.length=0,_.length=0,w.length=0,S.length=0,A.length=0,M.length=0,P.length=0,E.length=0,C.length=0,T.length=0,I.length=0,L.length=0,O.length=0,R.length=0,k.length=0,D.length=0,N.length=0,F.length=0,z.length=0}this.name=$(t,\"shape\");var d=e||{},f=$(d.aspectRatio,1.5),p=$(d.sphereDetail,2),m=$(d.radialSegments,50),g=$(d.disableImpostor,!1),v=$(d.openEnded,!1),y=[],b=[],x=[],_=[],w=[],S=[],A=[],M=[],P=[],E=[],C=[],T=[],I=[],L=[],O=[],R=[],k=[],D=[],N=[],F=[],z=[];this.addBuffer=n,this.addMesh=r,this.addSphere=o,this.addEllipsoid=a,this.addCylinder=s,this.addCone=c,this.addArrow=u,this.getBufferList=h,this.dispose=l}function us(t,e,i){this.viewer=e,this.tasks=new Br,this.queue=new za(this.make.bind(this)),this.bufferList=[],this.init(i)}function hs(t,e,i){Array.isArray(t)||(t=[t]),us.call(this,t,e,i),this.buffer=t,this.build()}function ls(){Va.apply(this,arguments)}function ds(t){this.size=t.size,this.side=t.side,this.wireframe=t.wireframe,this.visible=t.visible,this.geometry=t.geometry,this.pickable=t.pickable,this.background=t.background,this.group=new wi,this.wireframeGroup=new wi,this.pickingGroup=new wi;var e=[],i=[],n=t,r=new t.constructor;n.makeMaterial(),r.makeMaterial(),r.geometry=t.geometry,r.wireframeGeometry=t.wireframeGeometry,r.size=t.size,r.attributeSize=t.attributeSize,r.pickable=t.pickable,r.setParameters(t.getParameters()),r.updateShader(),n.setParameters({side:\"front\"}),r.setParameters({side:\"back\",opacity:r.opacity}),this.getMesh=function(t){var o,a;return t?(a=r.getPickingMesh(),o=n.getPickingMesh()):(a=r.getMesh(),o=n.getMesh()),e.push(o),i.push(a),this.setParameters({side:this.side}),(new wi).add(a,o)},this.getWireframeMesh=function(){return t.getWireframeMesh()},this.getPickingMesh=function(){return this.getMesh(!0)},this.setAttributes=function(e){t.setAttributes(e)},this.setParameters=function(t){t=Object.assign({},t),\"front\"===t.side?(e.forEach(function(t){t.visible=!0}),i.forEach(function(t){t.visible=!1})):\"back\"===t.side?(e.forEach(function(t){t.visible=!1}),i.forEach(function(t){t.visible=!0})):\"double\"===t.side&&(e.forEach(function(t){t.visible=!0}),i.forEach(function(t){t.visible=!0})),void 0!==t.side&&(this.side=t.side),delete t.side,n.setParameters(t),void 0!==t.wireframe&&(this.wireframe=t.wireframe,this.setVisibility(this.visible)),delete t.wireframe,r.setParameters(t)},this.setVisibility=$a.prototype.setVisibility,this.dispose=function(){n.dispose(),r.dispose()}}function fs(t,e,i){us.call(this,t,e,i),t instanceof Fa?(this.surface=void 0,this.volume=t):(this.surface=t,this.volume=void 0),this.boxCenter=new dt,this.__boxCenter=new dt,this.box=new ae,this.__box=new ae,this.setBox=function(){var t=new dt;return function(){var i=e.controls.target,n=e.rotationGroup.position;t.copy(n).negate().add(i),t.equals(this.boxCenter)||this.setParameters({boxCenter:t})}.bind(this)}.bind(this)(),this.viewer.signals.orientationChanged.add(this.setBox),this.build()}function ps(t){function e(t,e,i){return Math.min(Math.max(t,e),i)}function i(t,e,i,n){var r=i-t,o=n-e;return Math.sqrt(r*r+o*o)}function n(t,i,n){return n=e((n-t)/(i-t),0,1),n*n*(3-2*n)}for(var r=Object.assign({},t),o=$(r.width,256),a=$(r.height,256),s=[o/2,a/2],c=Math.min(o/2,a/2),u=$(r.delta,1/(c+1))*c,h=0,l=0,d=new Uint8Array(o*a*4),f=0,p=d.length;f1&&(l=1),r(e,i,n,o,h,p),r(e,i,n,o,l,m),m.sub(p).normalize(),m.toArray(a,g)}}function s(e,i,n,r,o){for(var a,s=i.next(),c=i.next(),u=i.next(),h=i.size,l=h-1,d=r||0,f=0;f65535?Uint32Array:Uint16Array;this.meshIndex=new f(d),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,c),this.setAttributes({position:t,normal:e,binormal:i,tangent:n,color:r,size:o,pickingColor:a})}function qs(t,e,i){vs.call(this,t,e,i)}function Ys(t,e){this.sview1=t,this.sview2=e,this.kdtree2=new ia(e)}function Zs(t,e,i){e=e||3.5,i=i||40;for(var n=new Qn(\"( ARG and ( .NE or .NH1 or .NH2 ) ) or ( ASP and .ND2 ) or ( GLN and .NE2 ) or ( HIS and ( .ND1 or .NE2 ) ) or ( LYS and .NZ ) or ( SER and .OG ) or ( THR and .OG1 ) or ( TRP and .NE1 ) or ( TYR and .OH ) or ( PROTEIN and .N )\"),r=new Qn(\"( ASN and .OD1 ) or ( ASP and ( OD1 or .OD2 ) ) or ( GLN and .OE1 ) or ( GLU and ( .OE1 or .OE2 ) ) or ( HIS and ( .ND1 or .NE2 ) ) or ( SER and .OG ) or ( THR and .OG1 ) or ( TYR and .OH ) or ( PROTEIN and .O )\"),o=t.getView(n),a=t.getView(r),s=new Ys(o,a),c=s.within(e),u=c.bondStore,h=t.getAtomProxy(),l=t.getAtomProxy(),d=t.getAtomProxy(),f=t.getAtomProxy(),p=t.getResidueProxy(),m=t.getResidueProxy(),g=new dt,v=new dt,y=function(t,e,n,r){var o,a;t.atomname===n?(o=t,a=e):(o=e,a=t),p.index=o.residueIndex;var s=p.getAtomIndexByName(r);return g.subVectors(s,o),v.subVectors(s,a),tr(g.angleTo(v))i&&c.bondSet.flip_unsafe(b)}else(\"OH\"===h.atomname&&\"TYR\"===h.resname||\"OH\"===l.atomname&&\"TYR\"===l.resname)&&(y(h,l,\"OH\",\"CZ\")||c.bondSet.flip_unsafe(b));return{atomSet:c.atomSet,bondSet:c.bondSet,bondStore:c.bondStore}}function Ks(t,e,i){e=e||3.5,i=i||40;for(var n=new Qn(\"( PROTEIN and .N )\"),r=new Qn(\"( PROTEIN and .O )\"),o=t.getView(n),a=t.getView(r),s=new Ys(o,a),c=s.within(e),u=c.bondStore,h=t.getAtomProxy(),l=t.getAtomProxy(),d=t.getAtomProxy(),f=t.getAtomProxy(),p=t.getResidueProxy(),m=t.getResidueProxy(),g=new dt,v=new dt,y=0,b=u.count;yi&&c.bondSet.flip_unsafe(y)))}}return{atomSet:c.atomSet,bondSet:c.bondSet,bondStore:c.bondStore}}function Qs(t,e,i){vs.call(this,t,e,i)}function Js(t){var e=Object.assign({},t);if(this.font=$(e.font,[\"sans-serif\"]),this.size=$(e.size,36),this.style=$(e.style,\"normal\"),this.variant=$(e.variant,\"normal\"),this.weight=$(e.weight,\"normal\"),this.outline=$(e.outline,0),this.width=$(e.width,1024),this.height=$(e.height,1024),this.gamma=1,\"undefined\"!=typeof navigator){var i=navigator.userAgent;i.match(/Chrome/)&&i.match(/OS X/)&&(this.gamma=.5)}this.mapped={},this.scratchW=0,this.scratchH=0,this.currentX=0,this.currentY=0,this.build(),this.populate(),this.texture=new Ai(this.canvas2),this.texture.flipY=!1,this.texture.needsUpdate=!0}function tc(t,e,i,n,r){var o=r||{};o.forceTransparent=!0,this.fontFamily=$(o.fontFamily,\"sans-serif\"),this.fontStyle=$(o.fontStyle,\"normal\"),this.fontWeight=$(o.fontWeight,\"bold\"),this.fontSize=$(o.fontSize,48),this.sdf=$(o.sdf,\"Chrome\"===Kv),this.xOffset=$(o.xOffset,0),this.yOffset=$(o.yOffset,0),this.zOffset=$(o.zOffset,.5),this.attachment=$(o.attachment,\"bottom-left\"),this.showBorder=$(o.showBorder,!1),this.borderColor=$(o.borderColor,\"lightgrey\"),this.borderWidth=$(o.borderWidth,.15),this.showBackground=$(o.showBackground,!1),this.backgroundColor=$(o.backgroundColor,\"lightgrey\"),this.backgroundMargin=$(o.backgroundMargin,.5),this.backgroundOpacity=$(o.backgroundOpacity,1);for(var a=t.length/3,s=0,c=0;ca?u[h]=-1:(o=Math.sqrt(a-r),u[h]=Math.floor(o)),++h;w[l]=c,_[l]=u}}function o(i){var n,r,o,a,s,c,u,h,l,d,f,m,b,S,P,C,T,I,L=3*i,R=i;n=Math.floor(.5+p*(t[L]+x[0])),r=Math.floor(.5+p*(t[L+1]+x[1])),o=Math.floor(.5+p*(t[L+2]+x[2]));var k,D=e[R],N=_[D],F=0,z=v*y,B=w[D];for(d=0;d=g||S>=v||P>=y)){var U=b*z+S*y+P;if(A)if(M[U]&O){if(M[U]&O){var j=E[U];j!==L&&(a=n+u-Math.floor(.5+p*(t[j]+x[0])),s=r+h-Math.floor(.5+p*(t[j+1]+x[1])),c=o+l-Math.floor(.5+p*(t[j+2]+x[2])),u*u+h*h+l*l=g||f>=v||m>=y)){var z=d*F+f*y+m;if(M[z]&R){if(A){var B=E[z];a=Math.floor(.5+p*(t[B]+x[0])),s=Math.floor(.5+p*(t[B+1]+x[1])),c=Math.floor(.5+p*(t[B+2]+x[2])),u*u+h*h+l*l-1&&a-1&&c-1&&s0);var b,x=m*m,_=new Uint16Array(3);for(t=0;t=x)||(M[r]|=k,A&&M[r]&R&&(o.toArray(t,e,i,_),b=_[0]*a+_[1]*y+_[2],E[r]=E[b])));console.timeEnd(\"EDTSurface fastdistancemap\")}function l(t,e,i,n){console.log(\"positin\",i/3);var r,o,a,s,c,u,h,l,d,f,p,m,b=new Uint16Array(3),x=0;if(0===i)return x;var _=-1,w=-1,S=-1,A=v*y;for(h=0,d=i;h-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f-1&&w-1&&S-1&&(p=_*A+y*w+S,M[p]&O&&!(M[p]&R)?(e.fromArray(_,w,S,b),s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,P[p]=f,M[p]|=R,M[p]|=k,n[x]=_,n[x+1]=w,n[x+2]=S,x+=3):M[p]&O&&M[p]&R&&(s=_-b[0],c=w-b[1],u=S-b[2],f=s*s+c*c+u*u,f65535?Uint32Array:Uint16Array;this.meshIndex=new l(h),this.makeIndex(),Va.call(this,this.meshPosition,this.meshColor,this.meshIndex,this.meshNormal,this.meshPickingColor,s),this.vertexShader=\"Ribbon.vert\",this.fragmentShader=\"Mesh.frag\",this.geometry.addAttribute(\"dir\",new Ce(new Float32Array(h),3)),this.geometry.addAttribute(\"size\",new Ce(new Float32Array(u),1)),this.setAttributes({position:t,normal:e,dir:i,color:n,size:r,pickingColor:o})}function _c(t,e,i){vs.call(this,t,e,i),this.defaultScale.sstruc*=3}function wc(t,e,i){this.helixbundleList=[],vs.call(this,t,e,i)}function Sc(t,e,i){qs.call(this,t,e,i)}function Ac(t,e,i){vs.call(this,t,e,i)}function Mc(t,e,i){var n=i||{};this.size=t.length/3,this.vertexShader=\"Line.vert\",this.fragmentShader=\"Line.frag\",this.line=!0;var r=this.size,o=r-1;this.attributeSize=2*o,this.linePosition=new Float32Array(3*o*2),this.lineColor=new Float32Array(3*o*2),$a.call(this,this.linePosition,this.lineColor,void 0,void 0,n),this.setAttributes({position:t,color:e})}function Pc(t,e,i){vs.call(this,t,e,i)}function Ec(t,e,i){qs.call(this,t,e,i)}function Cc(t,e,i){vs.call(this,t,e,i)}function Tc(t,e){var i=e||{};this.streamer=t,this.name=$(i.name,\"\"),this.path=$(i.path,\"\")}function Ic(t){function e(t){for(var e=l.atomCount[t],r=l.atomOffset[t],o=new Array(e),a=0;a0&&e(g-1),l.growIfFull(),l.resno[g]=x,void 0!==w&&(l.sstruc[g]=w.charCodeAt(0)),void 0!==S&&(l.inscode[g]=S.charCodeAt(0)),l.atomOffset[g]=m,l.atomCount[g]=0,l.count+=1,l.chainIndex[g]=v,d.residueCount[v]+=1),h.count+=1,h.residueIndex[m]=g,l.atomCount[g]+=1,r=t,o=p,a=b,s=x,c=S,u=_},this.finalize=function(){i=a,n=u,g>-1&&e(g)}}function Lc(t,e){var i=e||{};this.firstModelOnly=$(i.firstModelOnly,!1),this.asTrajectory=$(i.asTrajectory,!1),this.cAlphaOnly=$(i.cAlphaOnly,!1),this.reorderAtoms=$(i.reorderAtoms,!1),this.dontAutoBond=$(i.dontAutoBond,!1),this.autoBondBetween=$(i.autoBondBetween,!1),this.doAutoSS=$(i.doAutoSS,!0),Tc.call(this,t,i),this.structure=new Ea(this.name,this.path),this.structureBuilder=new Ic(this.structure)}function Oc(t,e,i,n,r,o,a,s){this.a=t||1,this.b=e||1,this.c=i||1,this.alpha=n||90,this.beta=r||90,this.gamma=o||90,this.spacegroup=a||\"P 1\";var c=Jn(this.alpha),u=Jn(this.beta),h=Jn(this.gamma),l=Math.cos(c),d=Math.cos(u),f=Math.cos(h),p=Math.sin(u),m=Math.sin(h);if(this.volume=this.a*this.b*this.c*Math.sqrt(1-l*l-d*d-f*f+2*l*d*f),void 0===s){var g=this.a*this.b*m/this.volume,v=(d*f-l)/(p*m);this.fracToCart=(new ht).set(this.a,0,0,0,this.b*f,this.b*m,0,0,this.c*d,-this.c*p*v,1/g,0,0,0,0,1).transpose(),this.cartToFrac=(new ht).getInverse(this.fracToCart)}else this.cartToFrac=s,this.fracToCart=(new ht).getInverse(this.cartToFrac)}function Rc(t,e){var i=e||{};i.doAutoSS=$(i.doAutoSS,!0),Lc.call(this,t,i)}function kc(t,e){Lc.call(this,t,e)}function Dc(t,e){Lc.call(this,t,e)}function Nc(t,e){Lc.call(this,t,e)}function Fc(t,e){var i=e||{};i.dontAutoBond=$(i.dontAutoBond,!0),Lc.call(this,t,i)}function zc(t,e){var i=e||{};i.dontAutoBond=$(i.dontAutoBond,!0),Lc.call(this,t,i)}function Bc(t,e,i){return e?new t(e.buffer,e.byteOffset,e.byteLength/(i||1)):void 0}function Uc(t){return Bc(DataView,t)}function jc(t){return Bc(Uint8Array,t)}function $c(t){return Bc(Int8Array,t)}function Vc(t){return Bc(Int32Array,t,4)}function Gc(t){return Bc(Float32Array,t,4)}function Hc(t,e){var i=t.length/2;e||(e=new Int16Array(i));for(var n=0,r=0;no&&++s;e=new Int32Array(s)}for(i=0,n=0;in){for(var r=[],o=0;o>a),s=Math.max(0,e-n-u>>a),p=Math.max(0,i-n-h>>a),m=Math.min(l,t+n-c>>a),b=Math.min(d,e+n-u>>a),_=Math.min(f,i+n-h>>a),w=[],S=o;S<=m;++S)for(var A=s;A<=b;++A)for(var M=p;M<=_;++M){var E=(S*d+A)*f+M,T=x[E];if(T>0)for(var L=T-1,O=C[L],R=P[L],k=O+R,D=O;D>a)+1,d=(s.max.y-u>>a)+1,f=(s.max.z-h>>a)+1,p=l*d*f,m=e.count,g=e.x,v=e.y,y=e.z,b=0,x=new Uint32Array(p),_=new Int32Array(m);for(r=0;r>a,S=v[r]-u>>a,A=y[r]-h>>a,M=(w*d+S)*f+A;1===(x[M]+=1)&&(b+=1),_[r]=M}var P=new Uint16Array(b);for(r=0,o=0;r0&&(x[r]=o+1,P[o]=E,o+=1)}var C=new Uint32Array(b);for(r=1;r0){var O=L-1;I[C[O]+T[O]]=r,T[O]+=1}}t.Debug&&ty.timeEnd(\"SpatialHash init\"),this.within=n}var Pu=setTimeout,Eu=\"function\"==typeof setImmediate&&setImmediate||function(t){Pu(t,0)},Cu=function(t){\"undefined\"!=typeof console&&console&&console.warn(\"Possible Unhandled Promise Rejection:\",t)};n.prototype.catch=function(t){return this.then(null,t)},n.prototype.then=function(t,i){var n=new this.constructor(e);return r(this,new c(t,i,n)),n},n.all=function(t){var e=Array.prototype.slice.call(t);return new n(function(t,i){function n(o,a){try{if(a&&(\"object\"==typeof a||\"function\"==typeof a)){var s=a.then;if(\"function\"==typeof s)return void s.call(a,function(t){n(o,t)},i)}e[o]=a,0===--r&&t(e)}catch(t){i(t)}}if(0===e.length)return t([]);for(var r=e.length,o=0;o=252?6:$h>=248?5:$h>=240?4:$h>=224?3:$h>=192?2:1;jh[254]=jh[254]=1;var Vh=0,Gh=2,Hh=4,Wh=0,Xh=1,qh=2,Yh=-5,Zh={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},Kh=Object.prototype.toString;z.prototype.push=function(t,e){var i,n,r,o,a,s,c=this.strm,u=this.options.chunkSize,h=this.options.dictionary,f=!1;if(this.ended)return!1;n=e===~~e?e:e===!0?Hh:Vh,\"string\"==typeof t?c.input=R(t):\"[object ArrayBuffer]\"===Kh.call(t)?c.input=new Uint8Array(t):c.input=t,c.next_in=0,c.avail_in=c.input.length;do{if(0===c.avail_out&&(c.output=new Uint8Array(u),c.next_out=0,c.avail_out=u),i=E(c,Vh),i===qh&&h&&(s=\"string\"==typeof h?L(h):\"[object ArrayBuffer]\"===Kh.call(h)?new Uint8Array(h):h,i=I(this.strm,s)),i===Yh&&f===!0&&(i=Wh,f=!1),i!==Xh&&i!==Wh)return this.onEnd(i),this.ended=!0,!1;c.next_out&&(0!==c.avail_out&&i!==Xh&&(0!==c.avail_in||n!==Hh&&n!==Gh)||(\"string\"===this.options.to?(r=D(c.output,c.next_out),o=c.next_out-r,a=k(c.output,r),c.next_out=o,c.avail_out=u-o,o&&d(c.output,c.output,r,o,0),this.onData(a)):this.onData(l(c.output,c.next_out)))),0===c.avail_in&&0===c.avail_out&&(f=!0)}while((c.avail_in>0||0===c.avail_out)&&i!==Xh);return i===Xh&&(n=Hh),n===Hh?(i=C(this.strm),this.onEnd(i),this.ended=!0,i===Wh):n!==Gh||(this.onEnd(Wh),c.avail_out=0,!0)},z.prototype.onData=function(t){this.chunks.push(t)},z.prototype.onEnd=function(t){t===Wh&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=f(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Qh=function(){function t(t,e){return te?1:0}return function(e,i,n){var r=0,o=e.length-1;for(n||(n=t);r<=o;){var a=r+o>>1,s=n(i,e[a]);if(s>0)r=a+1;else{if(!(s<0))return a;o=a-1}}return-r-1}}();tt.prototype={constructor:tt,nextGid:1,objectList:[],rangeList:[],getBaseObject:function(t){return\"StructureView\"===t.type&&(t=t.getStructure()),t},addObject:function(t){return t=this.getBaseObject(t),this.objectList.push(t),this.rangeList.push(this.allocateGidRange(t)),this},removeObject:function(t){t=this.getBaseObject(t);var e=this.objectList.indexOf(t);return e!==-1&&(this.objectList.splice(e,1),this.rangeList.splice(e,1),0===this.objectList.length&&(this.nextGid=1)),this},updateObject:function(t,e){t=this.getBaseObject(t);var i=this.objectList.indexOf(t);if(i!==-1){var n=this.rangeList[i];if(n[1]===this.nextGid){var r=this.getGidCount(t);this.nextGid+=r-(n[1]-n[0]),n[1]=this.nextGid}else this.rangeList[i]=this.allocateGidRange(t)}else e||ty.warn(\"GidPool.updateObject: object not found.\");return this},getGidCount:function(t){t=this.getBaseObject(t);var e=0;return\"Structure\"===t.type?e=t.atomStore.count+t.bondStore.count+t.backboneBondStore.count+t.rungBondStore.count:\"Volume\"===t.type?e=t.__data.length:ty.warn(\"GidPool.getGidCount: unknown object type\"),e},allocateGidRange:function(t){t=this.getBaseObject(t);var e=this.nextGid;return this.nextGid+=this.getGidCount(t),this.nextGid>Math.pow(2,24)&&ty.error(\"GidPool.allocateGidRange: GidPool overflown\"),[e,this.nextGid]},getNextGid:function(){return this.nextGid++},getGid:function(t,e){t=this.getBaseObject(t),e=e||0;var i=0,n=this.objectList.indexOf(t);if(n!==-1){var r=this.rangeList[n],o=r[0];i=o+e}else ty.warn(\"GidPool.getGid: object not found.\");return i},getByGid:function(t){var e;return this.objectList.forEach(function(i,n){var r=this.rangeList[n];if(!(t=r[1])){var o=t-r[0];\"Structure\"===i.type?o<=i.atomStore.count?e=i.getAtomProxy(o):o<=i.atomStore.count+i.bondStore.count?(o-=i.atomStore.count,e=i.getBondProxy(o)):o<=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count?(o-=i.atomStore.count+i.bondStore.count,e=i.getBondProxy(o),e.bondStore=i.backboneBondStore):o<=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count+i.rungBondStore.count?(o-=i.atomStore.count+i.bondStore.count+i.backboneBondStore.count,e=i.getBondProxy(o),e.bondStore=i.rungBondStore):ty.warn(\"GidPool.getByGid: invalid Structure gid\",t):\"Volume\"===i.type?e={volume:i,index:o,value:i.data[o],x:i.dataPosition[3*o],y:i.dataPosition[3*o+1],z:i.dataPosition[3*o+2]}:ty.warn(\"GidPool.getByGid: unknown object type for gid\",t)}},this),e}},void 0===Number.EPSILON&&(Number.EPSILON=Math.pow(2,-52)),void 0===Math.sign&&(Math.sign=function(t){return t<0?-1:t>0?1:+t}),void 0===Function.prototype.name&&Object.defineProperty(Function.prototype,\"name\",{get:function(){return this.toString().match(/^\\s*function\\s*(\\S*)\\s*\\(/)[1]}}),void 0===Object.assign&&!function(){Object.assign=function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert undefined or null to object\");for(var e=Object(t),i=1;i>=4,i[r]=e[19===r?3&t|8:t]);return i.join(\"\")}}(),clamp:function(t,e,i){return Math.max(e,Math.min(i,t))},euclideanModulo:function(t,e){return(t%e+e)%e},mapLinear:function(t,e,i,n,r){return n+(t-e)*(r-n)/(i-e)},smoothstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*(3-2*t))},smootherstep:function(t,e,i){return t<=e?0:t>=i?1:(t=(t-e)/(i-e),t*t*t*(t*(6*t-15)+10))},random16:function(){return console.warn(\"THREE.Math.random16() has been deprecated. Use Math.random() instead.\"),Math.random()},randInt:function(t,e){return t+Math.floor(Math.random()*(e-t+1))},randFloat:function(t,e){return t+Math.random()*(e-t)},randFloatSpread:function(t){return t*(.5-Math.random())},degToRad:function(t){return t*lf.DEG2RAD},radToDeg:function(t){return t*lf.RAD2DEG},isPowerOfTwo:function(t){return 0===(t&t-1)&&0!==t},nearestPowerOfTwo:function(t){return Math.pow(2,Math.round(Math.log(t)/Math.LN2))},nextPowerOfTwo:function(t){return t--,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t++,t}};st.prototype={constructor:st,isVector2:!0,get width(){return this.x},set width(t){this.x=t},get height(){return this.y},set height(t){this.y=t},set:function(t,e){return this.x=t,this.y=e,this},setScalar:function(t){return this.x=t,this.y=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;default:throw new Error(\"index is out of range: \"+t)}},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y)},copy:function(t){return this.x=t.x,this.y=t.y,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this)},addScalar:function(t){return this.x+=t,this.y+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector2: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this)},subScalar:function(t){return this.x-=t,this.y-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this},multiply:function(t){return this.x*=t.x,this.y*=t.y,this},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t):(this.x=0,this.y=0),this},divide:function(t){return this.x/=t.x,this.y/=t.y,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this},clampScalar:function(){var t,e;return function(i,n){return void 0===t&&(t=new st,e=new st),t.set(i,i),e.set(n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,i))/i)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this},negate:function(){return this.x=-this.x,this.y=-this.y,this},dot:function(t){return this.x*t.x+this.y*t.y},lengthSq:function(){return this.x*this.x+this.y*this.y},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)},normalize:function(){return this.divideScalar(this.length())},angle:function(){var t=Math.atan2(this.y,this.x);return t<0&&(t+=2*Math.PI),t},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y;return e*e+i*i},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},equals:function(t){return t.x===this.x&&t.y===this.y},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t},fromAttribute:function(t,e,i){return void 0===i&&(i=0),e=e*t.itemSize+i,this.x=t.array[e],this.y=t.array[e+1],this},rotateAround:function(t,e){var i=Math.cos(e),n=Math.sin(e),r=this.x-t.x,o=this.y-t.y;return this.x=r*i-o*n+t.x,this.y=r*n+o*i+t.y,this}},ct.DEFAULT_IMAGE=void 0,ct.DEFAULT_MAPPING=Ql,ct.prototype={constructor:ct,isTexture:!0,set needsUpdate(t){t===!0&&this.version++},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.image=t.image,this.mipmaps=t.mipmaps.slice(0),this.mapping=t.mapping,this.wrapS=t.wrapS,this.wrapT=t.wrapT,this.magFilter=t.magFilter,this.minFilter=t.minFilter,this.anisotropy=t.anisotropy,this.format=t.format,this.type=t.type,this.offset.copy(t.offset),this.repeat.copy(t.repeat),this.generateMipmaps=t.generateMipmaps,this.premultiplyAlpha=t.premultiplyAlpha,this.flipY=t.flipY,this.unpackAlignment=t.unpackAlignment,this.encoding=t.encoding,this},toJSON:function(t){function e(t){var e;return void 0!==t.toDataURL?e=t:(e=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"canvas\"),e.width=t.width,e.height=t.height,e.getContext(\"2d\").drawImage(t,0,0,t.width,t.height)),e.width>2048||e.height>2048?e.toDataURL(\"image/jpeg\",.6):e.toDataURL(\"image/png\")}if(void 0!==t.textures[this.uuid])return t.textures[this.uuid];var i={metadata:{version:4.4,type:\"Texture\",generator:\"Texture.toJSON\"},uuid:this.uuid,name:this.name,mapping:this.mapping,repeat:[this.repeat.x,this.repeat.y],offset:[this.offset.x,this.offset.y],wrap:[this.wrapS,this.wrapT],minFilter:this.minFilter,magFilter:this.magFilter,anisotropy:this.anisotropy,flipY:this.flipY};if(void 0!==this.image){var n=this.image;void 0===n.uuid&&(n.uuid=lf.generateUUID()),void 0===t.images[n.uuid]&&(t.images[n.uuid]={uuid:n.uuid,url:e(n)}),i.image=n.uuid}return t.textures[this.uuid]=i,i},dispose:function(){this.dispatchEvent({type:\"dispose\"})},transformUv:function(t){if(this.mapping===Ql){if(t.multiply(this.repeat),t.add(this.offset),t.x<0||t.x>1)switch(this.wrapS){case ad:t.x=t.x-Math.floor(t.x);break;case sd:t.x=t.x<0?0:1;break;case cd:1===Math.abs(Math.floor(t.x)%2)?t.x=Math.ceil(t.x)-t.x:t.x=t.x-Math.floor(t.x)}if(t.y<0||t.y>1)switch(this.wrapT){case ad:t.y=t.y-Math.floor(t.y);break;case sd:t.y=t.y<0?0:1;break;case cd:1===Math.abs(Math.floor(t.y)%2)?t.y=Math.ceil(t.y)-t.y:t.y=t.y-Math.floor(t.y)}this.flipY&&(t.y=1-t.y)}}},Object.assign(ct.prototype,at.prototype);var df=0;ht.prototype={constructor:ht,isMatrix4:!0,\nset:function(t,e,i,n,r,o,a,s,c,u,h,l,d,f,p,m){var g=this.elements;return g[0]=t,g[4]=e,g[8]=i,g[12]=n,g[1]=r,g[5]=o,g[9]=a,g[13]=s,g[2]=c,g[6]=u,g[10]=h,g[14]=l,g[3]=d,g[7]=f,g[11]=p,g[15]=m,this},identity:function(){return this.set(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1),this},clone:function(){return(new ht).fromArray(this.elements)},copy:function(t){return this.elements.set(t.elements),this},copyPosition:function(t){var e=this.elements,i=t.elements;return e[12]=i[12],e[13]=i[13],e[14]=i[14],this},extractBasis:function(t,e,i){return t.setFromMatrixColumn(this,0),e.setFromMatrixColumn(this,1),i.setFromMatrixColumn(this,2),this},makeBasis:function(t,e,i){return this.set(t.x,e.x,i.x,0,t.y,e.y,i.y,0,t.z,e.z,i.z,0,0,0,0,1),this},extractRotation:function(){var t;return function(e){void 0===t&&(t=new dt);var i=this.elements,n=e.elements,r=1/t.setFromMatrixColumn(e,0).length(),o=1/t.setFromMatrixColumn(e,1).length(),a=1/t.setFromMatrixColumn(e,2).length();return i[0]=n[0]*r,i[1]=n[1]*r,i[2]=n[2]*r,i[4]=n[4]*o,i[5]=n[5]*o,i[6]=n[6]*o,i[8]=n[8]*a,i[9]=n[9]*a,i[10]=n[10]*a,this}}(),makeRotationFromEuler:function(t){(t&&t.isEuler)===!1&&console.error(\"THREE.Matrix: .makeRotationFromEuler() now expects a Euler rotation rather than a Vector3 and order.\");var e=this.elements,i=t.x,n=t.y,r=t.z,o=Math.cos(i),a=Math.sin(i),s=Math.cos(n),c=Math.sin(n),u=Math.cos(r),h=Math.sin(r);if(\"XYZ\"===t.order){var l=o*u,d=o*h,f=a*u,p=a*h;e[0]=s*u,e[4]=-s*h,e[8]=c,e[1]=d+f*c,e[5]=l-p*c,e[9]=-a*s,e[2]=p-l*c,e[6]=f+d*c,e[10]=o*s}else if(\"YXZ\"===t.order){var m=s*u,g=s*h,v=c*u,y=c*h;e[0]=m+y*a,e[4]=v*a-g,e[8]=o*c,e[1]=o*h,e[5]=o*u,e[9]=-a,e[2]=g*a-v,e[6]=y+m*a,e[10]=o*s}else if(\"ZXY\"===t.order){var m=s*u,g=s*h,v=c*u,y=c*h;e[0]=m-y*a,e[4]=-o*h,e[8]=v+g*a,e[1]=g+v*a,e[5]=o*u,e[9]=y-m*a,e[2]=-o*c,e[6]=a,e[10]=o*s}else if(\"ZYX\"===t.order){var l=o*u,d=o*h,f=a*u,p=a*h;e[0]=s*u,e[4]=f*c-d,e[8]=l*c+p,e[1]=s*h,e[5]=p*c+l,e[9]=d*c-f,e[2]=-c,e[6]=a*s,e[10]=o*s}else if(\"YZX\"===t.order){var b=o*s,x=o*c,_=a*s,w=a*c;e[0]=s*u,e[4]=w-b*h,e[8]=_*h+x,e[1]=h,e[5]=o*u,e[9]=-a*u,e[2]=-c*u,e[6]=x*h+_,e[10]=b-w*h}else if(\"XZY\"===t.order){var b=o*s,x=o*c,_=a*s,w=a*c;e[0]=s*u,e[4]=-h,e[8]=c*u,e[1]=b*h+w,e[5]=o*u,e[9]=x*h-_,e[2]=_*h-x,e[6]=a*u,e[10]=w*h+b}return e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},makeRotationFromQuaternion:function(t){var e=this.elements,i=t.x,n=t.y,r=t.z,o=t.w,a=i+i,s=n+n,c=r+r,u=i*a,h=i*s,l=i*c,d=n*s,f=n*c,p=r*c,m=o*a,g=o*s,v=o*c;return e[0]=1-(d+p),e[4]=h-v,e[8]=l+g,e[1]=h+v,e[5]=1-(u+p),e[9]=f-m,e[2]=l-g,e[6]=f+m,e[10]=1-(u+d),e[3]=0,e[7]=0,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,this},lookAt:function(){var t,e,i;return function(n,r,o){void 0===t&&(t=new dt,e=new dt,i=new dt);var a=this.elements;return i.subVectors(n,r).normalize(),0===i.lengthSq()&&(i.z=1),t.crossVectors(o,i).normalize(),0===t.lengthSq()&&(i.z+=1e-4,t.crossVectors(o,i).normalize()),e.crossVectors(i,t),a[0]=t.x,a[4]=e.x,a[8]=i.x,a[1]=t.y,a[5]=e.y,a[9]=i.y,a[2]=t.z,a[6]=e.z,a[10]=i.z,this}}(),multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Matrix4: .multiply() now only accepts one argument. Use .multiplyMatrices( a, b ) instead.\"),this.multiplyMatrices(t,e)):this.multiplyMatrices(this,t)},premultiply:function(t){return this.multiplyMatrices(t,this)},multiplyMatrices:function(t,e){var i=t.elements,n=e.elements,r=this.elements,o=i[0],a=i[4],s=i[8],c=i[12],u=i[1],h=i[5],l=i[9],d=i[13],f=i[2],p=i[6],m=i[10],g=i[14],v=i[3],y=i[7],b=i[11],x=i[15],_=n[0],w=n[4],S=n[8],A=n[12],M=n[1],P=n[5],E=n[9],C=n[13],T=n[2],I=n[6],L=n[10],O=n[14],R=n[3],k=n[7],D=n[11],N=n[15];return r[0]=o*_+a*M+s*T+c*R,r[4]=o*w+a*P+s*I+c*k,r[8]=o*S+a*E+s*L+c*D,r[12]=o*A+a*C+s*O+c*N,r[1]=u*_+h*M+l*T+d*R,r[5]=u*w+h*P+l*I+d*k,r[9]=u*S+h*E+l*L+d*D,r[13]=u*A+h*C+l*O+d*N,r[2]=f*_+p*M+m*T+g*R,r[6]=f*w+p*P+m*I+g*k,r[10]=f*S+p*E+m*L+g*D,r[14]=f*A+p*C+m*O+g*N,r[3]=v*_+y*M+b*T+x*R,r[7]=v*w+y*P+b*I+x*k,r[11]=v*S+y*E+b*L+x*D,r[15]=v*A+y*C+b*O+x*N,this},multiplyToArray:function(t,e,i){var n=this.elements;return this.multiplyMatrices(t,e),i[0]=n[0],i[1]=n[1],i[2]=n[2],i[3]=n[3],i[4]=n[4],i[5]=n[5],i[6]=n[6],i[7]=n[7],i[8]=n[8],i[9]=n[9],i[10]=n[10],i[11]=n[11],i[12]=n[12],i[13]=n[13],i[14]=n[14],i[15]=n[15],this},multiplyScalar:function(t){var e=this.elements;return e[0]*=t,e[4]*=t,e[8]*=t,e[12]*=t,e[1]*=t,e[5]*=t,e[9]*=t,e[13]*=t,e[2]*=t,e[6]*=t,e[10]*=t,e[14]*=t,e[3]*=t,e[7]*=t,e[11]*=t,e[15]*=t,this},applyToVector3Array:function(){var t;return function(e,i,n){void 0===t&&(t=new dt),void 0===i&&(i=0),void 0===n&&(n=e.length);for(var r=0,o=i;r0?(e=.5/Math.sqrt(d+1),this._w=.25/e,this._x=(h-c)*e,this._y=(o-u)*e,this._z=(a-r)*e):n>s&&n>l?(e=2*Math.sqrt(1+n-s-l),this._w=(h-c)/e,this._x=.25*e,this._y=(r+a)/e,this._z=(o+u)/e):s>l?(e=2*Math.sqrt(1+s-n-l),this._w=(o-u)/e,this._x=(r+a)/e,this._y=.25*e,this._z=(c+h)/e):(e=2*Math.sqrt(1+l-n-s),this._w=(a-r)/e,this._x=(o+u)/e,this._y=(c+h)/e,this._z=.25*e),this.onChangeCallback(),this},setFromUnitVectors:function(){var t,e,i=1e-6;return function(n,r){return void 0===t&&(t=new dt),e=n.dot(r)+1,eMath.abs(n.z)?t.set(-n.y,n.x,0):t.set(0,-n.z,n.y)):t.crossVectors(n,r),this._x=t.x,this._y=t.y,this._z=t.z,this._w=e,this.normalize()}}(),inverse:function(){return this.conjugate().normalize()},conjugate:function(){return this._x*=-1,this._y*=-1,this._z*=-1,this.onChangeCallback(),this},dot:function(t){return this._x*t._x+this._y*t._y+this._z*t._z+this._w*t._w},lengthSq:function(){return this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w},length:function(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)},normalize:function(){var t=this.length();return 0===t?(this._x=0,this._y=0,this._z=0,this._w=1):(t=1/t,this._x=this._x*t,this._y=this._y*t,this._z=this._z*t,this._w=this._w*t),this.onChangeCallback(),this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Quaternion: .multiply() now only accepts one argument. Use .multiplyQuaternions( a, b ) instead.\"),this.multiplyQuaternions(t,e)):this.multiplyQuaternions(this,t)},premultiply:function(t){return this.multiplyQuaternions(t,this)},multiplyQuaternions:function(t,e){var i=t._x,n=t._y,r=t._z,o=t._w,a=e._x,s=e._y,c=e._z,u=e._w;return this._x=i*u+o*a+n*c-r*s,this._y=n*u+o*s+r*a-i*c,this._z=r*u+o*c+i*s-n*a,this._w=o*u-i*a-n*s-r*c,this.onChangeCallback(),this},slerp:function(t,e){if(0===e)return this;if(1===e)return this.copy(t);var i=this._x,n=this._y,r=this._z,o=this._w,a=o*t._w+i*t._x+n*t._y+r*t._z;if(a<0?(this._w=-t._w,this._x=-t._x,this._y=-t._y,this._z=-t._z,a=-a):this.copy(t),a>=1)return this._w=o,this._x=i,this._y=n,this._z=r,this;var s=Math.sqrt(1-a*a);if(Math.abs(s)<.001)return this._w=.5*(o+this._w),this._x=.5*(i+this._x),this._y=.5*(n+this._y),this._z=.5*(r+this._z),this;var c=Math.atan2(s,a),u=Math.sin((1-e)*c)/s,h=Math.sin(e*c)/s;return this._w=o*u+this._w*h,this._x=i*u+this._x*h,this._y=n*u+this._y*h,this._z=r*u+this._z*h,this.onChangeCallback(),this},equals:function(t){return t._x===this._x&&t._y===this._y&&t._z===this._z&&t._w===this._w},fromArray:function(t,e){return void 0===e&&(e=0),this._x=t[e],this._y=t[e+1],this._z=t[e+2],this._w=t[e+3],this.onChangeCallback(),this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this._x,t[e+1]=this._y,t[e+2]=this._z,t[e+3]=this._w,t},onChange:function(t){return this.onChangeCallback=t,this},onChangeCallback:function(){}},Object.assign(lt,{slerp:function(t,e,i,n){return i.copy(t).slerp(e,n)},slerpFlat:function(t,e,i,n,r,o,a){var s=i[n+0],c=i[n+1],u=i[n+2],h=i[n+3],l=r[o+0],d=r[o+1],f=r[o+2],p=r[o+3];if(h!==p||s!==l||c!==d||u!==f){var m=1-a,g=s*l+c*d+u*f+h*p,v=g>=0?1:-1,y=1-g*g;if(y>Number.EPSILON){var b=Math.sqrt(y),x=Math.atan2(b,g*v);m=Math.sin(m*x)/b,a=Math.sin(a*x)/b}var _=a*v;if(s=s*m+l*_,c=c*m+d*_,u=u*m+f*_,h=h*m+p*_,m===1-a){var w=1/Math.sqrt(s*s+c*c+u*u+h*h);s*=w,c*=w,u*=w,h*=w}}t[e]=s,t[e+1]=c,t[e+2]=u,t[e+3]=h}}),dt.prototype={constructor:dt,isVector3:!0,set:function(t,e,i){return this.x=t,this.y=e,this.z=i,this},setScalar:function(t){return this.x=t,this.y=t,this.z=t,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setZ:function(t){return this.z=t,this},setComponent:function(t,e){switch(t){case 0:this.x=e;break;case 1:this.y=e;break;case 2:this.z=e;break;default:throw new Error(\"index is out of range: \"+t)}},getComponent:function(t){switch(t){case 0:return this.x;case 1:return this.y;case 2:return this.z;default:throw new Error(\"index is out of range: \"+t)}},clone:function(){return new this.constructor(this.x,this.y,this.z)},copy:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},add:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .add() now only accepts one argument. Use .addVectors( a, b ) instead.\"),this.addVectors(t,e)):(this.x+=t.x,this.y+=t.y,this.z+=t.z,this)},addScalar:function(t){return this.x+=t,this.y+=t,this.z+=t,this},addVectors:function(t,e){return this.x=t.x+e.x,this.y=t.y+e.y,this.z=t.z+e.z,this},addScaledVector:function(t,e){return this.x+=t.x*e,this.y+=t.y*e,this.z+=t.z*e,this},sub:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .sub() now only accepts one argument. Use .subVectors( a, b ) instead.\"),this.subVectors(t,e)):(this.x-=t.x,this.y-=t.y,this.z-=t.z,this)},subScalar:function(t){return this.x-=t,this.y-=t,this.z-=t,this},subVectors:function(t,e){return this.x=t.x-e.x,this.y=t.y-e.y,this.z=t.z-e.z,this},multiply:function(t,e){return void 0!==e?(console.warn(\"THREE.Vector3: .multiply() now only accepts one argument. Use .multiplyVectors( a, b ) instead.\"),this.multiplyVectors(t,e)):(this.x*=t.x,this.y*=t.y,this.z*=t.z,this)},multiplyScalar:function(t){return isFinite(t)?(this.x*=t,this.y*=t,this.z*=t):(this.x=0,this.y=0,this.z=0),this},multiplyVectors:function(t,e){return this.x=t.x*e.x,this.y=t.y*e.y,this.z=t.z*e.z,this},applyEuler:function(){var t;return function(e){return(e&&e.isEuler)===!1&&console.error(\"THREE.Vector3: .applyEuler() now expects an Euler rotation rather than a Vector3 and order.\"),void 0===t&&(t=new lt),this.applyQuaternion(t.setFromEuler(e))}}(),applyAxisAngle:function(){var t;return function(e,i){return void 0===t&&(t=new lt),this.applyQuaternion(t.setFromAxisAngle(e,i))}}(),applyMatrix3:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[3]*i+r[6]*n,this.y=r[1]*e+r[4]*i+r[7]*n,this.z=r[2]*e+r[5]*i+r[8]*n,this},applyMatrix4:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n+r[12],this.y=r[1]*e+r[5]*i+r[9]*n+r[13],this.z=r[2]*e+r[6]*i+r[10]*n+r[14],this},applyProjection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements,o=1/(r[3]*e+r[7]*i+r[11]*n+r[15]);return this.x=(r[0]*e+r[4]*i+r[8]*n+r[12])*o,this.y=(r[1]*e+r[5]*i+r[9]*n+r[13])*o,this.z=(r[2]*e+r[6]*i+r[10]*n+r[14])*o,this},applyQuaternion:function(t){var e=this.x,i=this.y,n=this.z,r=t.x,o=t.y,a=t.z,s=t.w,c=s*e+o*n-a*i,u=s*i+a*e-r*n,h=s*n+r*i-o*e,l=-r*e-o*i-a*n;return this.x=c*s+l*-r+u*-a-h*-o,this.y=u*s+l*-o+h*-r-c*-a,this.z=h*s+l*-a+c*-o-u*-r,this},project:function(){var t;return function(e){return void 0===t&&(t=new ht),t.multiplyMatrices(e.projectionMatrix,t.getInverse(e.matrixWorld)),this.applyProjection(t)}}(),unproject:function(){var t;return function(e){return void 0===t&&(t=new ht),t.multiplyMatrices(e.matrixWorld,t.getInverse(e.projectionMatrix)),this.applyProjection(t)}}(),transformDirection:function(t){var e=this.x,i=this.y,n=this.z,r=t.elements;return this.x=r[0]*e+r[4]*i+r[8]*n,this.y=r[1]*e+r[5]*i+r[9]*n,this.z=r[2]*e+r[6]*i+r[10]*n,this.normalize()},divide:function(t){return this.x/=t.x,this.y/=t.y,this.z/=t.z,this},divideScalar:function(t){return this.multiplyScalar(1/t)},min:function(t){return this.x=Math.min(this.x,t.x),this.y=Math.min(this.y,t.y),this.z=Math.min(this.z,t.z),this},max:function(t){return this.x=Math.max(this.x,t.x),this.y=Math.max(this.y,t.y),this.z=Math.max(this.z,t.z),this},clamp:function(t,e){return this.x=Math.max(t.x,Math.min(e.x,this.x)),this.y=Math.max(t.y,Math.min(e.y,this.y)),this.z=Math.max(t.z,Math.min(e.z,this.z)),this},clampScalar:function(){var t,e;return function(i,n){return void 0===t&&(t=new dt,e=new dt),t.set(i,i,i),e.set(n,n,n),this.clamp(t,e)}}(),clampLength:function(t,e){var i=this.length();return this.multiplyScalar(Math.max(t,Math.min(e,i))/i)},floor:function(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this},ceil:function(){return this.x=Math.ceil(this.x),this.y=Math.ceil(this.y),this.z=Math.ceil(this.z),this},round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this},roundToZero:function(){return this.x=this.x<0?Math.ceil(this.x):Math.floor(this.x),this.y=this.y<0?Math.ceil(this.y):Math.floor(this.y),this.z=this.z<0?Math.ceil(this.z):Math.floor(this.z),this},negate:function(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this},dot:function(t){return this.x*t.x+this.y*t.y+this.z*t.z},lengthSq:function(){return this.x*this.x+this.y*this.y+this.z*this.z},length:function(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)},lengthManhattan:function(){return Math.abs(this.x)+Math.abs(this.y)+Math.abs(this.z)},normalize:function(){return this.divideScalar(this.length())},setLength:function(t){return this.multiplyScalar(t/this.length())},lerp:function(t,e){return this.x+=(t.x-this.x)*e,this.y+=(t.y-this.y)*e,this.z+=(t.z-this.z)*e,this},lerpVectors:function(t,e,i){return this.subVectors(e,t).multiplyScalar(i).add(t)},cross:function(t,e){if(void 0!==e)return console.warn(\"THREE.Vector3: .cross() now only accepts one argument. Use .crossVectors( a, b ) instead.\"),this.crossVectors(t,e);var i=this.x,n=this.y,r=this.z;return this.x=n*t.z-r*t.y,this.y=r*t.x-i*t.z,this.z=i*t.y-n*t.x,this},crossVectors:function(t,e){var i=t.x,n=t.y,r=t.z,o=e.x,a=e.y,s=e.z;return this.x=n*s-r*a,this.y=r*o-i*s,this.z=i*a-n*o,this},projectOnVector:function(t){var e=t.dot(this)/t.lengthSq();return this.copy(t).multiplyScalar(e)},projectOnPlane:function(){var t;return function(e){return void 0===t&&(t=new dt),t.copy(this).projectOnVector(e),this.sub(t)}}(),reflect:function(){var t;return function(e){return void 0===t&&(t=new dt),this.sub(t.copy(e).multiplyScalar(2*this.dot(e)))}}(),angleTo:function(t){var e=this.dot(t)/Math.sqrt(this.lengthSq()*t.lengthSq());return Math.acos(lf.clamp(e,-1,1))},distanceTo:function(t){return Math.sqrt(this.distanceToSquared(t))},distanceToSquared:function(t){var e=this.x-t.x,i=this.y-t.y,n=this.z-t.z;return e*e+i*i+n*n},distanceToManhattan:function(t){return Math.abs(this.x-t.x)+Math.abs(this.y-t.y)+Math.abs(this.z-t.z)},setFromSpherical:function(t){var e=Math.sin(t.phi)*t.radius;return this.x=e*Math.sin(t.theta),this.y=Math.cos(t.phi)*t.radius,this.z=e*Math.cos(t.theta),this},setFromMatrixPosition:function(t){return this.setFromMatrixColumn(t,3)},setFromMatrixScale:function(t){var e=this.setFromMatrixColumn(t,0).length(),i=this.setFromMatrixColumn(t,1).length(),n=this.setFromMatrixColumn(t,2).length();return this.x=e,this.y=i,this.z=n,this},setFromMatrixColumn:function(t,e){if(\"number\"==typeof t){console.warn(\"THREE.Vector3: setFromMatrixColumn now expects ( matrix, index ).\");var i=t;t=e,e=i}return this.fromArray(t.elements,4*e)},equals:function(t){return t.x===this.x&&t.y===this.y&&t.z===this.z},fromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e],this.y=t[e+1],this.z=t[e+2],this},toArray:function(t,e){return void 0===t&&(t=[]),void 0===e&&(e=0),t[e]=this.x,t[e+1]=this.y,t[e+2]=this.z,t},fromAttribute:function(t,e,i){return void 0===i&&(i=0),e=e*t.itemSize+i,this.x=t.array[e],this.y=t.array[e+1],this.z=t.array[e+2],this}},pt.prototype={constructor:pt,set:function(t,e){return this.min.copy(t),this.max.copy(e),this},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y},getParameter:function(t,e){var i=e||new st;return i.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y)},clampPoint:function(t,e){var i=e||new st;return i.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new st;return function(e){var i=t.copy(e).clamp(this.min,this.max);return i.sub(e).length()}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},gt.prototype=Object.create(ct.prototype),gt.prototype.constructor=gt,gt.prototype.isCubeTexture=!0,Object.defineProperty(gt.prototype,\"images\",{get:function(){return this.image},set:function(t){this.image=t}});var ff=new ct,pf=new gt,mf=[],gf=[];Xt.prototype.setValue=function(t,e){for(var i=this.seq,n=0,r=i.length;n!==r;++n){var o=i[n];o.setValue(t,e[o.id])}};var vf=/([\\w\\d_]+)(\\])?(\\[|\\.)?/g;Zt.prototype.setValue=function(t,e,i){var n=this.map[e];void 0!==n&&n.setValue(t,i,this.renderer)},Zt.prototype.set=function(t,e,i){var n=this.map[i];void 0!==n&&n.setValue(t,e[i],this.renderer)},Zt.prototype.setOptional=function(t,e,i){var n=e[i];void 0!==n&&this.setValue(t,i,n)},Zt.upload=function(t,e,i,n){for(var r=0,o=e.length;r!==o;++r){var a=e[r],s=i[a.id];s.needsUpdate!==!1&&a.setValue(t,s.value,n)}},Zt.seqWithValue=function(t,e){for(var i=[],n=0,r=t.length;n!==r;++n){var o=t[n];o.id in e&&i.push(o)}return i},Zt.splitDynamic=function(t,e){for(var i=null,n=t.length,r=0,o=0;o!==n;++o){var a=t[o],s=e[a.id];s&&s.dynamic===!0?(null===i&&(i=[]),i.push(a)):(ry&&v>b?vb?y0&&(n.alphaTest=this.alphaTest),this.premultipliedAlpha===!0&&(n.premultipliedAlpha=this.premultipliedAlpha),this.wireframe===!0&&(n.wireframe=this.wireframe),this.wireframeLinewidth>1&&(n.wireframeLinewidth=this.wireframeLinewidth),\"round\"!==this.wireframeLinecap&&(n.wireframeLinecap=this.wireframeLinecap),\"round\"!==this.wireframeLinejoin&&(n.wireframeLinejoin=this.wireframeLinejoin),n.skinning=this.skinning,n.morphTargets=this.morphTargets,i){var r=e(t.textures),o=e(t.images);r.length>0&&(n.textures=r),o.length>0&&(n.images=o)}return n},clone:function(){return(new this.constructor).copy(this)},copy:function(t){this.name=t.name,this.fog=t.fog,this.lights=t.lights,this.blending=t.blending,this.side=t.side,this.shading=t.shading,this.vertexColors=t.vertexColors,this.opacity=t.opacity,this.transparent=t.transparent,this.blendSrc=t.blendSrc,this.blendDst=t.blendDst,this.blendEquation=t.blendEquation,this.blendSrcAlpha=t.blendSrcAlpha,this.blendDstAlpha=t.blendDstAlpha,this.blendEquationAlpha=t.blendEquationAlpha,this.depthFunc=t.depthFunc,this.depthTest=t.depthTest,this.depthWrite=t.depthWrite,this.colorWrite=t.colorWrite,this.precision=t.precision,this.polygonOffset=t.polygonOffset,this.polygonOffsetFactor=t.polygonOffsetFactor,this.polygonOffsetUnits=t.polygonOffsetUnits,this.alphaTest=t.alphaTest,this.premultipliedAlpha=t.premultipliedAlpha,this.overdraw=t.overdraw,this.visible=t.visible,this.clipShadows=t.clipShadows;var e=t.clippingPlanes,i=null;if(null!==e){var n=e.length;i=new Array(n);for(var r=0;r!==n;++r)i[r]=e[r].clone()}return this.clippingPlanes=i,this},update:function(){this.dispatchEvent({type:\"update\"})},dispose:function(){this.dispatchEvent({type:\"dispose\"})}},Object.assign(ee.prototype,at.prototype);var yf=0,bf={merge:function(t){for(var e={},i=0;i 0.0 ) {\\n#if defined ( PHYSICALLY_CORRECT_LIGHTS )\\n\\t\\t\\tfloat distanceFalloff = 1.0 / max( pow( lightDistance, decayExponent ), 0.01 );\\n\\t\\t\\tfloat maxDistanceCutoffFactor = pow2( saturate( 1.0 - pow4( lightDistance / cutoffDistance ) ) );\\n\\t\\t\\treturn distanceFalloff * maxDistanceCutoffFactor;\\n#else\\n\\t\\t\\treturn pow( saturate( -lightDistance / cutoffDistance + 1.0 ), decayExponent );\\n#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n}\\nvec3 BRDF_Diffuse_Lambert( const in vec3 diffuseColor ) {\\n\\treturn RECIPROCAL_PI * diffuseColor;\\n}\\nvec3 F_Schlick( const in vec3 specularColor, const in float dotLH ) {\\n\\tfloat fresnel = exp2( ( -5.55473 * dotLH - 6.98316 ) * dotLH );\\n\\treturn ( 1.0 - specularColor ) * fresnel + specularColor;\\n}\\nfloat G_GGX_Smith( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gl = dotNL + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\tfloat gv = dotNV + sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\treturn 1.0 / ( gl * gv );\\n}\\nfloat G_GGX_SmithCorrelated( const in float alpha, const in float dotNL, const in float dotNV ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat gv = dotNL * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNV ) );\\n\\tfloat gl = dotNV * sqrt( a2 + ( 1.0 - a2 ) * pow2( dotNL ) );\\n\\treturn 0.5 / max( gv + gl, EPSILON );\\n}\\nfloat D_GGX( const in float alpha, const in float dotNH ) {\\n\\tfloat a2 = pow2( alpha );\\n\\tfloat denom = pow2( dotNH ) * ( a2 - 1.0 ) + 1.0;\\n\\treturn RECIPROCAL_PI * a2 / pow2( denom );\\n}\\nvec3 BRDF_Specular_GGX( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat alpha = pow2( roughness );\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNL = saturate( dot( geometry.normal, incidentLight.direction ) );\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_GGX_SmithCorrelated( alpha, dotNL, dotNV );\\n\\tfloat D = D_GGX( alpha, dotNH );\\n\\treturn F * ( G * D );\\n}\\nvec3 BRDF_Specular_GGX_Environment( const in GeometricContext geometry, const in vec3 specularColor, const in float roughness ) {\\n\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\tconst vec4 c0 = vec4( - 1, - 0.0275, - 0.572, 0.022 );\\n\\tconst vec4 c1 = vec4( 1, 0.0425, 1.04, - 0.04 );\\n\\tvec4 r = roughness * c0 + c1;\\n\\tfloat a004 = min( r.x * r.x, exp2( - 9.28 * dotNV ) ) * r.x + r.y;\\n\\tvec2 AB = vec2( -1.04, 1.04 ) * a004 + r.zw;\\n\\treturn specularColor * AB.x + AB.y;\\n}\\nfloat G_BlinnPhong_Implicit( ) {\\n\\treturn 0.25;\\n}\\nfloat D_BlinnPhong( const in float shininess, const in float dotNH ) {\\n\\treturn RECIPROCAL_PI * ( shininess * 0.5 + 1.0 ) * pow( dotNH, shininess );\\n}\\nvec3 BRDF_Specular_BlinnPhong( const in IncidentLight incidentLight, const in GeometricContext geometry, const in vec3 specularColor, const in float shininess ) {\\n\\tvec3 halfDir = normalize( incidentLight.direction + geometry.viewDir );\\n\\tfloat dotNH = saturate( dot( geometry.normal, halfDir ) );\\n\\tfloat dotLH = saturate( dot( incidentLight.direction, halfDir ) );\\n\\tvec3 F = F_Schlick( specularColor, dotLH );\\n\\tfloat G = G_BlinnPhong_Implicit( );\\n\\tfloat D = D_BlinnPhong( shininess, dotNH );\\n\\treturn F * ( G * D );\\n}\\nfloat GGXRoughnessToBlinnExponent( const in float ggxRoughness ) {\\n\\treturn ( 2.0 / pow2( ggxRoughness + 0.0001 ) - 2.0 );\\n}\\nfloat BlinnExponentToGGXRoughness( const in float blinnExponent ) {\\n\\treturn sqrt( 2.0 / ( blinnExponent + 2.0 ) );\\n}\\n\",Cf=\"#ifdef USE_BUMPMAP\\n\\tuniform sampler2D bumpMap;\\n\\tuniform float bumpScale;\\n\\tvec2 dHdxy_fwd() {\\n\\t\\tvec2 dSTdx = dFdx( vUv );\\n\\t\\tvec2 dSTdy = dFdy( vUv );\\n\\t\\tfloat Hll = bumpScale * texture2D( bumpMap, vUv ).x;\\n\\t\\tfloat dBx = bumpScale * texture2D( bumpMap, vUv + dSTdx ).x - Hll;\\n\\t\\tfloat dBy = bumpScale * texture2D( bumpMap, vUv + dSTdy ).x - Hll;\\n\\t\\treturn vec2( dBx, dBy );\\n\\t}\\n\\tvec3 perturbNormalArb( vec3 surf_pos, vec3 surf_norm, vec2 dHdxy ) {\\n\\t\\tvec3 vSigmaX = dFdx( surf_pos );\\n\\t\\tvec3 vSigmaY = dFdy( surf_pos );\\n\\t\\tvec3 vN = surf_norm;\\n\\t\\tvec3 R1 = cross( vSigmaY, vN );\\n\\t\\tvec3 R2 = cross( vN, vSigmaX );\\n\\t\\tfloat fDet = dot( vSigmaX, R1 );\\n\\t\\tvec3 vGrad = sign( fDet ) * ( dHdxy.x * R1 + dHdxy.y * R2 );\\n\\t\\treturn normalize( abs( fDet ) * surf_norm - vGrad );\\n\\t}\\n#endif\\n\",Tf=\"#if NUM_CLIPPING_PLANES > 0\\n\\tfor ( int i = 0; i < NUM_CLIPPING_PLANES; ++ i ) {\\n\\t\\tvec4 plane = clippingPlanes[ i ];\\n\\t\\tif ( dot( vViewPosition, plane.xyz ) > plane.w ) discard;\\n\\t}\\n#endif\\n\",If=\"#if NUM_CLIPPING_PLANES > 0\\n\\t#if ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\t\\tvarying vec3 vViewPosition;\\n\\t#endif\\n\\tuniform vec4 clippingPlanes[ NUM_CLIPPING_PLANES ];\\n#endif\\n\",Lf=\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvarying vec3 vViewPosition;\\n#endif\\n\",Of=\"#if NUM_CLIPPING_PLANES > 0 && ! defined( PHYSICAL ) && ! defined( PHONG )\\n\\tvViewPosition = - mvPosition.xyz;\\n#endif\\n\",Rf=\"#ifdef USE_COLOR\\n\\tdiffuseColor.rgb *= vColor;\\n#endif\",kf=\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\\n\",Df=\"#ifdef USE_COLOR\\n\\tvarying vec3 vColor;\\n#endif\",Nf=\"#ifdef USE_COLOR\\n\\tvColor.xyz = color.xyz;\\n#endif\",Ff=\"#define PI 3.14159265359\\n#define PI2 6.28318530718\\n#define RECIPROCAL_PI 0.31830988618\\n#define RECIPROCAL_PI2 0.15915494\\n#define LOG2 1.442695\\n#define EPSILON 1e-6\\n#define saturate(a) clamp( a, 0.0, 1.0 )\\n#define whiteCompliment(a) ( 1.0 - saturate( a ) )\\nfloat pow2( const in float x ) { return x*x; }\\nfloat pow3( const in float x ) { return x*x*x; }\\nfloat pow4( const in float x ) { float x2 = x*x; return x2*x2; }\\nfloat average( const in vec3 color ) { return dot( color, vec3( 0.3333 ) ); }\\nhighp float rand( const in vec2 uv ) {\\n\\tconst highp float a = 12.9898, b = 78.233, c = 43758.5453;\\n\\thighp float dt = dot( uv.xy, vec2( a,b ) ), sn = mod( dt, PI );\\n\\treturn fract(sin(sn) * c);\\n}\\nstruct IncidentLight {\\n\\tvec3 color;\\n\\tvec3 direction;\\n\\tbool visible;\\n};\\nstruct ReflectedLight {\\n\\tvec3 directDiffuse;\\n\\tvec3 directSpecular;\\n\\tvec3 indirectDiffuse;\\n\\tvec3 indirectSpecular;\\n};\\nstruct GeometricContext {\\n\\tvec3 position;\\n\\tvec3 normal;\\n\\tvec3 viewDir;\\n};\\nvec3 transformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( matrix * vec4( dir, 0.0 ) ).xyz );\\n}\\nvec3 inverseTransformDirection( in vec3 dir, in mat4 matrix ) {\\n\\treturn normalize( ( vec4( dir, 0.0 ) * matrix ).xyz );\\n}\\nvec3 projectOnPlane(in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\tfloat distance = dot( planeNormal, point - pointOnPlane );\\n\\treturn - distance * planeNormal + point;\\n}\\nfloat sideOfPlane( in vec3 point, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn sign( dot( point - pointOnPlane, planeNormal ) );\\n}\\nvec3 linePlaneIntersect( in vec3 pointOnLine, in vec3 lineDirection, in vec3 pointOnPlane, in vec3 planeNormal ) {\\n\\treturn lineDirection * ( dot( planeNormal, pointOnPlane - pointOnLine ) / dot( planeNormal, lineDirection ) ) + pointOnLine;\\n}\\n\",zf=\"#ifdef ENVMAP_TYPE_CUBE_UV\\n#define cubeUV_textureSize (1024.0)\\nint getFaceFromDirection(vec3 direction) {\\n\\tvec3 absDirection = abs(direction);\\n\\tint face = -1;\\n\\tif( absDirection.x > absDirection.z ) {\\n\\t\\tif(absDirection.x > absDirection.y )\\n\\t\\t\\tface = direction.x > 0.0 ? 0 : 3;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\telse {\\n\\t\\tif(absDirection.z > absDirection.y )\\n\\t\\t\\tface = direction.z > 0.0 ? 2 : 5;\\n\\t\\telse\\n\\t\\t\\tface = direction.y > 0.0 ? 1 : 4;\\n\\t}\\n\\treturn face;\\n}\\n#define cubeUV_maxLods1 (log2(cubeUV_textureSize*0.25) - 1.0)\\n#define cubeUV_rangeClamp (exp2((6.0 - 1.0) * 2.0))\\nvec2 MipLevelInfo( vec3 vec, float roughnessLevel, float roughness ) {\\n\\tfloat scale = exp2(cubeUV_maxLods1 - roughnessLevel);\\n\\tfloat dxRoughness = dFdx(roughness);\\n\\tfloat dyRoughness = dFdy(roughness);\\n\\tvec3 dx = dFdx( vec * scale * dxRoughness );\\n\\tvec3 dy = dFdy( vec * scale * dyRoughness );\\n\\tfloat d = max( dot( dx, dx ), dot( dy, dy ) );\\n\\td = clamp(d, 1.0, cubeUV_rangeClamp);\\n\\tfloat mipLevel = 0.5 * log2(d);\\n\\treturn vec2(floor(mipLevel), fract(mipLevel));\\n}\\n#define cubeUV_maxLods2 (log2(cubeUV_textureSize*0.25) - 2.0)\\n#define cubeUV_rcpTextureSize (1.0 / cubeUV_textureSize)\\nvec2 getCubeUV(vec3 direction, float roughnessLevel, float mipLevel) {\\n\\tmipLevel = roughnessLevel > cubeUV_maxLods2 - 3.0 ? 0.0 : mipLevel;\\n\\tfloat a = 16.0 * cubeUV_rcpTextureSize;\\n\\tvec2 exp2_packed = exp2( vec2( roughnessLevel, mipLevel ) );\\n\\tvec2 rcp_exp2_packed = vec2( 1.0 ) / exp2_packed;\\n\\tfloat powScale = exp2_packed.x * exp2_packed.y;\\n\\tfloat scale = rcp_exp2_packed.x * rcp_exp2_packed.y * 0.25;\\n\\tfloat mipOffset = 0.75*(1.0 - rcp_exp2_packed.y) * rcp_exp2_packed.x;\\n\\tbool bRes = mipLevel == 0.0;\\n\\tscale = bRes && (scale < a) ? a : scale;\\n\\tvec3 r;\\n\\tvec2 offset;\\n\\tint face = getFaceFromDirection(direction);\\n\\tfloat rcpPowScale = 1.0 / powScale;\\n\\tif( face == 0) {\\n\\t\\tr = vec3(direction.x, -direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 1) {\\n\\t\\tr = vec3(direction.y, direction.x, direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 2) {\\n\\t\\tr = vec3(direction.z, direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.75 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? a : offset.y;\\n\\t}\\n\\telse if( face == 3) {\\n\\t\\tr = vec3(direction.x, direction.z, direction.y);\\n\\t\\toffset = vec2(0.0+mipOffset,0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse if( face == 4) {\\n\\t\\tr = vec3(direction.y, direction.x, -direction.z);\\n\\t\\toffset = vec2(scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\telse {\\n\\t\\tr = vec3(direction.z, -direction.x, direction.y);\\n\\t\\toffset = vec2(2.0*scale+mipOffset, 0.5 * rcpPowScale);\\n\\t\\toffset.y = bRes && (offset.y < 2.0*a) ? 0.0 : offset.y;\\n\\t}\\n\\tr = normalize(r);\\n\\tfloat texelOffset = 0.5 * cubeUV_rcpTextureSize;\\n\\tvec2 s = ( r.yz / abs( r.x ) + vec2( 1.0 ) ) * 0.5;\\n\\tvec2 base = offset + vec2( texelOffset );\\n\\treturn base + s * ( scale - 2.0 * texelOffset );\\n}\\n#define cubeUV_maxLods3 (log2(cubeUV_textureSize*0.25) - 3.0)\\nvec4 textureCubeUV(vec3 reflectedDirection, float roughness ) {\\n\\tfloat roughnessVal = roughness* cubeUV_maxLods3;\\n\\tfloat r1 = floor(roughnessVal);\\n\\tfloat r2 = r1 + 1.0;\\n\\tfloat t = fract(roughnessVal);\\n\\tvec2 mipInfo = MipLevelInfo(reflectedDirection, r1, roughness);\\n\\tfloat s = mipInfo.y;\\n\\tfloat level0 = mipInfo.x;\\n\\tfloat level1 = level0 + 1.0;\\n\\tlevel1 = level1 > 5.0 ? 5.0 : level1;\\n\\tlevel0 += min( floor( s + 0.5 ), 5.0 );\\n\\tvec2 uv_10 = getCubeUV(reflectedDirection, r1, level0);\\n\\tvec4 color10 = envMapTexelToLinear(texture2D(envMap, uv_10));\\n\\tvec2 uv_20 = getCubeUV(reflectedDirection, r2, level0);\\n\\tvec4 color20 = envMapTexelToLinear(texture2D(envMap, uv_20));\\n\\tvec4 result = mix(color10, color20, t);\\n\\treturn vec4(result.rgb, 1.0);\\n}\\n#endif\\n\",Bf=\"#ifdef FLIP_SIDED\\n\\tobjectNormal = -objectNormal;\\n#endif\\nvec3 transformedNormal = normalMatrix * objectNormal;\\n\",Uf=\"#ifdef USE_DISPLACEMENTMAP\\n\\tuniform sampler2D displacementMap;\\n\\tuniform float displacementScale;\\n\\tuniform float displacementBias;\\n#endif\\n\",jf=\"#ifdef USE_DISPLACEMENTMAP\\n\\ttransformed += normal * ( texture2D( displacementMap, uv ).x * displacementScale + displacementBias );\\n#endif\\n\",$f=\"#ifdef USE_EMISSIVEMAP\\n\\tvec4 emissiveColor = texture2D( emissiveMap, vUv );\\n\\temissiveColor.rgb = emissiveMapTexelToLinear( emissiveColor ).rgb;\\n\\ttotalEmissiveRadiance *= emissiveColor.rgb;\\n#endif\\n\",Vf=\"#ifdef USE_EMISSIVEMAP\\n\\tuniform sampler2D emissiveMap;\\n#endif\\n\",Gf=\" gl_FragColor = linearToOutputTexel( gl_FragColor );\\n\",Hf=\"\\nvec4 LinearToLinear( in vec4 value ) {\\n return value;\\n}\\nvec4 GammaToLinear( in vec4 value, in float gammaFactor ) {\\n return vec4( pow( value.xyz, vec3( gammaFactor ) ), value.w );\\n}\\nvec4 LinearToGamma( in vec4 value, in float gammaFactor ) {\\n return vec4( pow( value.xyz, vec3( 1.0 / gammaFactor ) ), value.w );\\n}\\nvec4 sRGBToLinear( in vec4 value ) {\\n return vec4( mix( pow( value.rgb * 0.9478672986 + vec3( 0.0521327014 ), vec3( 2.4 ) ), value.rgb * 0.0773993808, vec3( lessThanEqual( value.rgb, vec3( 0.04045 ) ) ) ), value.w );\\n}\\nvec4 LinearTosRGB( in vec4 value ) {\\n return vec4( mix( pow( value.rgb, vec3( 0.41666 ) ) * 1.055 - vec3( 0.055 ), value.rgb * 12.92, vec3( lessThanEqual( value.rgb, vec3( 0.0031308 ) ) ) ), value.w );\\n}\\nvec4 RGBEToLinear( in vec4 value ) {\\n return vec4( value.rgb * exp2( value.a * 255.0 - 128.0 ), 1.0 );\\n}\\nvec4 LinearToRGBE( in vec4 value ) {\\n float maxComponent = max( max( value.r, value.g ), value.b );\\n float fExp = clamp( ceil( log2( maxComponent ) ), -128.0, 127.0 );\\n return vec4( value.rgb / exp2( fExp ), ( fExp + 128.0 ) / 255.0 );\\n}\\nvec4 RGBMToLinear( in vec4 value, in float maxRange ) {\\n return vec4( value.xyz * value.w * maxRange, 1.0 );\\n}\\nvec4 LinearToRGBM( in vec4 value, in float maxRange ) {\\n float maxRGB = max( value.x, max( value.g, value.b ) );\\n float M = clamp( maxRGB / maxRange, 0.0, 1.0 );\\n M = ceil( M * 255.0 ) / 255.0;\\n return vec4( value.rgb / ( M * maxRange ), M );\\n}\\nvec4 RGBDToLinear( in vec4 value, in float maxRange ) {\\n return vec4( value.rgb * ( ( maxRange / 255.0 ) / value.a ), 1.0 );\\n}\\nvec4 LinearToRGBD( in vec4 value, in float maxRange ) {\\n float maxRGB = max( value.x, max( value.g, value.b ) );\\n float D = max( maxRange / maxRGB, 1.0 );\\n D = min( floor( D ) / 255.0, 1.0 );\\n return vec4( value.rgb * ( D * ( 255.0 / maxRange ) ), D );\\n}\\nconst mat3 cLogLuvM = mat3( 0.2209, 0.3390, 0.4184, 0.1138, 0.6780, 0.7319, 0.0102, 0.1130, 0.2969 );\\nvec4 LinearToLogLuv( in vec4 value ) {\\n vec3 Xp_Y_XYZp = value.rgb * cLogLuvM;\\n Xp_Y_XYZp = max(Xp_Y_XYZp, vec3(1e-6, 1e-6, 1e-6));\\n vec4 vResult;\\n vResult.xy = Xp_Y_XYZp.xy / Xp_Y_XYZp.z;\\n float Le = 2.0 * log2(Xp_Y_XYZp.y) + 127.0;\\n vResult.w = fract(Le);\\n vResult.z = (Le - (floor(vResult.w*255.0))/255.0)/255.0;\\n return vResult;\\n}\\nconst mat3 cLogLuvInverseM = mat3( 6.0014, -2.7008, -1.7996, -1.3320, 3.1029, -5.7721, 0.3008, -1.0882, 5.6268 );\\nvec4 LogLuvToLinear( in vec4 value ) {\\n float Le = value.z * 255.0 + value.w;\\n vec3 Xp_Y_XYZp;\\n Xp_Y_XYZp.y = exp2((Le - 127.0) / 2.0);\\n Xp_Y_XYZp.z = Xp_Y_XYZp.y / value.y;\\n Xp_Y_XYZp.x = value.x * Xp_Y_XYZp.z;\\n vec3 vRGB = Xp_Y_XYZp.rgb * cLogLuvInverseM;\\n return vec4( max(vRGB, 0.0), 1.0 );\\n}\\n\",Wf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvec3 cameraToVertex = normalize( vWorldPosition - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#else\\n\\t\\tvec3 reflectVec = vReflect;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tvec4 envColor = textureCube( envMap, flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz ) );\\n\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\tvec2 sampleUV;\\n\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\tvec4 envColor = texture2D( envMap, sampleUV );\\n\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0, 0.0, 1.0 ) );\\n\\t\\tvec4 envColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5 );\\n\\t#else\\n\\t\\tvec4 envColor = vec4( 0.0 );\\n\\t#endif\\n\\tenvColor = envMapTexelToLinear( envColor );\\n\\t#ifdef ENVMAP_BLENDING_MULTIPLY\\n\\t\\toutgoingLight = mix( outgoingLight, outgoingLight * envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_MIX )\\n\\t\\toutgoingLight = mix( outgoingLight, envColor.xyz, specularStrength * reflectivity );\\n\\t#elif defined( ENVMAP_BLENDING_ADD )\\n\\t\\toutgoingLight += envColor.xyz * specularStrength * reflectivity;\\n\\t#endif\\n#endif\\n\",Xf=\"#if defined( USE_ENVMAP ) || defined( PHYSICAL )\\n\\tuniform float reflectivity;\\n\\tuniform float envMapIntenstiy;\\n#endif\\n#ifdef USE_ENVMAP\\n\\t#if ! defined( PHYSICAL ) && ( defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#endif\\n\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\tuniform samplerCube envMap;\\n\\t#else\\n\\t\\tuniform sampler2D envMap;\\n\\t#endif\\n\\tuniform float flipEnvMap;\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG ) || defined( PHYSICAL )\\n\\t\\tuniform float refractionRatio;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t#endif\\n#endif\\n\",qf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvarying vec3 vWorldPosition;\\n\\t#else\\n\\t\\tvarying vec3 vReflect;\\n\\t\\tuniform float refractionRatio;\\n\\t#endif\\n#endif\\n\",Yf=\"#ifdef USE_ENVMAP\\n\\t#if defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( PHONG )\\n\\t\\tvWorldPosition = worldPosition.xyz;\\n\\t#else\\n\\t\\tvec3 cameraToVertex = normalize( worldPosition.xyz - cameraPosition );\\n\\t\\tvec3 worldNormal = inverseTransformDirection( transformedNormal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvReflect = reflect( cameraToVertex, worldNormal );\\n\\t\\t#else\\n\\t\\t\\tvReflect = refract( cameraToVertex, worldNormal, refractionRatio );\\n\\t\\t#endif\\n\\t#endif\\n#endif\\n\",Zf=\"#ifdef USE_FOG\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tfloat depth = gl_FragDepthEXT / gl_FragCoord.w;\\n\\t#else\\n\\t\\tfloat depth = gl_FragCoord.z / gl_FragCoord.w;\\n\\t#endif\\n\\t#ifdef FOG_EXP2\\n\\t\\tfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\\n\\t#else\\n\\t\\tfloat fogFactor = smoothstep( fogNear, fogFar, depth );\\n\\t#endif\\n\\tgl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\\n\",Kf=\"#ifdef USE_FOG\\n\\tuniform vec3 fogColor;\\n\\t#ifdef FOG_EXP2\\n\\t\\tuniform float fogDensity;\\n\\t#else\\n\\t\\tuniform float fogNear;\\n\\t\\tuniform float fogFar;\\n\\t#endif\\n#endif\",Qf=\"#ifdef USE_LIGHTMAP\\n\\treflectedLight.indirectDiffuse += PI * texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n#endif\\n\",Jf=\"#ifdef USE_LIGHTMAP\\n\\tuniform sampler2D lightMap;\\n\\tuniform float lightMapIntensity;\\n#endif\",tp=\"vec3 diffuse = vec3( 1.0 );\\nGeometricContext geometry;\\ngeometry.position = mvPosition.xyz;\\ngeometry.normal = normalize( transformedNormal );\\ngeometry.viewDir = normalize( -mvPosition.xyz );\\nGeometricContext backGeometry;\\nbackGeometry.position = geometry.position;\\nbackGeometry.normal = -geometry.normal;\\nbackGeometry.viewDir = geometry.viewDir;\\nvLightFront = vec3( 0.0 );\\n#ifdef DOUBLE_SIDED\\n\\tvLightBack = vec3( 0.0 );\\n#endif\\nIncidentLight directLight;\\nfloat dotNL;\\nvec3 directLightColor_Diffuse;\\n#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tgetPointDirectLightIrradiance( pointLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tgetSpotDirectLightIrradiance( spotLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLights[ i ], geometry, directLight );\\n\\t\\tdotNL = dot( geometry.normal, directLight.direction );\\n\\t\\tdirectLightColor_Diffuse = PI * directLight.color;\\n\\t\\tvLightFront += saturate( dotNL ) * directLightColor_Diffuse;\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += saturate( -dotNL ) * directLightColor_Diffuse;\\n\\t\\t#endif\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\tvLightFront += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t#ifdef DOUBLE_SIDED\\n\\t\\t\\tvLightBack += getHemisphereLightIrradiance( hemisphereLights[ i ], backGeometry );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",ep=\"uniform vec3 ambientLightColor;\\nvec3 getAmbientLightIrradiance( const in vec3 ambientLightColor ) {\\n\\tvec3 irradiance = ambientLightColor;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treturn irradiance;\\n}\\n#if NUM_DIR_LIGHTS > 0\\n\\tstruct DirectionalLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform DirectionalLight directionalLights[ NUM_DIR_LIGHTS ];\\n\\tvoid getDirectionalDirectLightIrradiance( const in DirectionalLight directionalLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tdirectLight.color = directionalLight.color;\\n\\t\\tdirectLight.direction = directionalLight.direction;\\n\\t\\tdirectLight.visible = true;\\n\\t}\\n#endif\\n#if NUM_POINT_LIGHTS > 0\\n\\tstruct PointLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform PointLight pointLights[ NUM_POINT_LIGHTS ];\\n\\tvoid getPointDirectLightIrradiance( const in PointLight pointLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = pointLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tif ( testLightInRange( lightDistance, pointLight.distance ) ) {\\n\\t\\t\\tdirectLight.color = pointLight.color;\\n\\t\\t\\tdirectLight.color *= punctualLightIntensityToIrradianceFactor( lightDistance, pointLight.distance, pointLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_SPOT_LIGHTS > 0\\n\\tstruct SpotLight {\\n\\t\\tvec3 position;\\n\\t\\tvec3 direction;\\n\\t\\tvec3 color;\\n\\t\\tfloat distance;\\n\\t\\tfloat decay;\\n\\t\\tfloat coneCos;\\n\\t\\tfloat penumbraCos;\\n\\t\\tint shadow;\\n\\t\\tfloat shadowBias;\\n\\t\\tfloat shadowRadius;\\n\\t\\tvec2 shadowMapSize;\\n\\t};\\n\\tuniform SpotLight spotLights[ NUM_SPOT_LIGHTS ];\\n\\tvoid getSpotDirectLightIrradiance( const in SpotLight spotLight, const in GeometricContext geometry, out IncidentLight directLight ) {\\n\\t\\tvec3 lVector = spotLight.position - geometry.position;\\n\\t\\tdirectLight.direction = normalize( lVector );\\n\\t\\tfloat lightDistance = length( lVector );\\n\\t\\tfloat angleCos = dot( directLight.direction, spotLight.direction );\\n\\t\\tif ( all( bvec2( angleCos > spotLight.coneCos, testLightInRange( lightDistance, spotLight.distance ) ) ) ) {\\n\\t\\t\\tfloat spotEffect = smoothstep( spotLight.coneCos, spotLight.penumbraCos, angleCos );\\n\\t\\t\\tdirectLight.color = spotLight.color;\\n\\t\\t\\tdirectLight.color *= spotEffect * punctualLightIntensityToIrradianceFactor( lightDistance, spotLight.distance, spotLight.decay );\\n\\t\\t\\tdirectLight.visible = true;\\n\\t\\t} else {\\n\\t\\t\\tdirectLight.color = vec3( 0.0 );\\n\\t\\t\\tdirectLight.visible = false;\\n\\t\\t}\\n\\t}\\n#endif\\n#if NUM_HEMI_LIGHTS > 0\\n\\tstruct HemisphereLight {\\n\\t\\tvec3 direction;\\n\\t\\tvec3 skyColor;\\n\\t\\tvec3 groundColor;\\n\\t};\\n\\tuniform HemisphereLight hemisphereLights[ NUM_HEMI_LIGHTS ];\\n\\tvec3 getHemisphereLightIrradiance( const in HemisphereLight hemiLight, const in GeometricContext geometry ) {\\n\\t\\tfloat dotNL = dot( geometry.normal, hemiLight.direction );\\n\\t\\tfloat hemiDiffuseWeight = 0.5 * dotNL + 0.5;\\n\\t\\tvec3 irradiance = mix( hemiLight.groundColor, hemiLight.skyColor, hemiDiffuseWeight );\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tirradiance *= PI;\\n\\t\\t#endif\\n\\t\\treturn irradiance;\\n\\t}\\n#endif\\n#if defined( USE_ENVMAP ) && defined( PHYSICAL )\\n\\tvec3 getLightProbeIndirectIrradiance( const in GeometricContext geometry, const in int maxMIPLevel ) {\\n\\t\\t#include \\n\\t\\tvec3 worldNormal = inverseTransformDirection( geometry.normal, viewMatrix );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryVec, float( maxMIPLevel ) );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryVec = flipNormal * vec3( flipEnvMap * worldNormal.x, worldNormal.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV( queryVec, 1.0 );\\n\\t\\t#else\\n\\t\\t\\tvec4 envMapColor = vec4( 0.0 );\\n\\t\\t#endif\\n\\t\\treturn PI * envMapColor.rgb * envMapIntensity;\\n\\t}\\n\\tfloat getSpecularMIPLevel( const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\tfloat maxMIPLevelScalar = float( maxMIPLevel );\\n\\t\\tfloat desiredMIPLevel = maxMIPLevelScalar - 0.79248 - 0.5 * log2( pow2( blinnShininessExponent ) + 1.0 );\\n\\t\\treturn clamp( desiredMIPLevel, 0.0, maxMIPLevelScalar );\\n\\t}\\n\\tvec3 getLightProbeIndirectRadiance( const in GeometricContext geometry, const in float blinnShininessExponent, const in int maxMIPLevel ) {\\n\\t\\t#ifdef ENVMAP_MODE_REFLECTION\\n\\t\\t\\tvec3 reflectVec = reflect( -geometry.viewDir, geometry.normal );\\n\\t\\t#else\\n\\t\\t\\tvec3 reflectVec = refract( -geometry.viewDir, geometry.normal, refractionRatio );\\n\\t\\t#endif\\n\\t\\t#include \\n\\t\\treflectVec = inverseTransformDirection( reflectVec, viewMatrix );\\n\\t\\tfloat specularMIPLevel = getSpecularMIPLevel( blinnShininessExponent, maxMIPLevel );\\n\\t\\t#ifdef ENVMAP_TYPE_CUBE\\n\\t\\t\\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = textureCubeLodEXT( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = textureCube( envMap, queryReflectVec, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_CUBE_UV )\\n\\t\\t\\tvec3 queryReflectVec = flipNormal * vec3( flipEnvMap * reflectVec.x, reflectVec.yz );\\n\\t\\t\\tvec4 envMapColor = textureCubeUV(queryReflectVec, BlinnExponentToGGXRoughness(blinnShininessExponent));\\n\\t\\t#elif defined( ENVMAP_TYPE_EQUIREC )\\n\\t\\t\\tvec2 sampleUV;\\n\\t\\t\\tsampleUV.y = saturate( flipNormal * reflectVec.y * 0.5 + 0.5 );\\n\\t\\t\\tsampleUV.x = atan( flipNormal * reflectVec.z, flipNormal * reflectVec.x ) * RECIPROCAL_PI2 + 0.5;\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, sampleUV, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#elif defined( ENVMAP_TYPE_SPHERE )\\n\\t\\t\\tvec3 reflectView = flipNormal * normalize( ( viewMatrix * vec4( reflectVec, 0.0 ) ).xyz + vec3( 0.0,0.0,1.0 ) );\\n\\t\\t\\t#ifdef TEXTURE_LOD_EXT\\n\\t\\t\\t\\tvec4 envMapColor = texture2DLodEXT( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#else\\n\\t\\t\\t\\tvec4 envMapColor = texture2D( envMap, reflectView.xy * 0.5 + 0.5, specularMIPLevel );\\n\\t\\t\\t#endif\\n\\t\\t\\tenvMapColor.rgb = envMapTexelToLinear( envMapColor ).rgb;\\n\\t\\t#endif\\n\\t\\treturn envMapColor.rgb * envMapIntensity;\\n\\t}\\n#endif\\n\",ip=\"BlinnPhongMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb;\\nmaterial.specularColor = specular;\\nmaterial.specularShininess = shininess;\\nmaterial.specularStrength = specularStrength;\\n\",np=\"varying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\nstruct BlinnPhongMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tvec3\\tspecularColor;\\n\\tfloat\\tspecularShininess;\\n\\tfloat\\tspecularStrength;\\n};\\nvoid RE_Direct_BlinnPhong( const in IncidentLight directLight, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\treflectedLight.directDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\treflectedLight.directSpecular += irradiance * BRDF_Specular_BlinnPhong( directLight, geometry, material.specularColor, material.specularShininess ) * material.specularStrength;\\n}\\nvoid RE_IndirectDiffuse_BlinnPhong( const in vec3 irradiance, const in GeometricContext geometry, const in BlinnPhongMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_BlinnPhong\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_BlinnPhong\\n#define Material_LightProbeLOD( material )\\t(0)\\n\",rp=\"PhysicalMaterial material;\\nmaterial.diffuseColor = diffuseColor.rgb * ( 1.0 - metalnessFactor );\\nmaterial.specularRoughness = clamp( roughnessFactor, 0.04, 1.0 );\\n#ifdef STANDARD\\n\\tmaterial.specularColor = mix( vec3( DEFAULT_SPECULAR_COEFFICIENT ), diffuseColor.rgb, metalnessFactor );\\n#else\\n\\tmaterial.specularColor = mix( vec3( MAXIMUM_SPECULAR_COEFFICIENT * pow2( reflectivity ) ), diffuseColor.rgb, metalnessFactor );\\n\\tmaterial.clearCoat = saturate( clearCoat );\\tmaterial.clearCoatRoughness = clamp( clearCoatRoughness, 0.04, 1.0 );\\n#endif\\n\",op=\"struct PhysicalMaterial {\\n\\tvec3\\tdiffuseColor;\\n\\tfloat\\tspecularRoughness;\\n\\tvec3\\tspecularColor;\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoat;\\n\\t\\tfloat clearCoatRoughness;\\n\\t#endif\\n};\\n#define MAXIMUM_SPECULAR_COEFFICIENT 0.16\\n#define DEFAULT_SPECULAR_COEFFICIENT 0.04\\nfloat clearCoatDHRApprox( const in float roughness, const in float dotNL ) {\\n\\treturn DEFAULT_SPECULAR_COEFFICIENT + ( 1.0 - DEFAULT_SPECULAR_COEFFICIENT ) * ( pow( 1.0 - dotNL, 5.0 ) * pow( 1.0 - roughness, 2.0 ) );\\n}\\nvoid RE_Direct_Physical( const in IncidentLight directLight, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\tfloat dotNL = saturate( dot( geometry.normal, directLight.direction ) );\\n\\tvec3 irradiance = dotNL * directLight.color;\\n\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\tirradiance *= PI;\\n\\t#endif\\n\\t#ifndef STANDARD\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.directSpecular += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Specular_GGX( directLight, geometry, material.specularColor, material.specularRoughness );\\n\\treflectedLight.directDiffuse += ( 1.0 - clearCoatDHR ) * irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.directSpecular += irradiance * material.clearCoat * BRDF_Specular_GGX( directLight, geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\nvoid RE_IndirectDiffuse_Physical( const in vec3 irradiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\treflectedLight.indirectDiffuse += irradiance * BRDF_Diffuse_Lambert( material.diffuseColor );\\n}\\nvoid RE_IndirectSpecular_Physical( const in vec3 radiance, const in vec3 clearCoatRadiance, const in GeometricContext geometry, const in PhysicalMaterial material, inout ReflectedLight reflectedLight ) {\\n\\t#ifndef STANDARD\\n\\t\\tfloat dotNV = saturate( dot( geometry.normal, geometry.viewDir ) );\\n\\t\\tfloat dotNL = dotNV;\\n\\t\\tfloat clearCoatDHR = material.clearCoat * clearCoatDHRApprox( material.clearCoatRoughness, dotNL );\\n\\t#else\\n\\t\\tfloat clearCoatDHR = 0.0;\\n\\t#endif\\n\\treflectedLight.indirectSpecular += ( 1.0 - clearCoatDHR ) * radiance * BRDF_Specular_GGX_Environment( geometry, material.specularColor, material.specularRoughness );\\n\\t#ifndef STANDARD\\n\\t\\treflectedLight.indirectSpecular += clearCoatRadiance * material.clearCoat * BRDF_Specular_GGX_Environment( geometry, vec3( DEFAULT_SPECULAR_COEFFICIENT ), material.clearCoatRoughness );\\n\\t#endif\\n}\\n#define RE_Direct\\t\\t\\t\\tRE_Direct_Physical\\n#define RE_IndirectDiffuse\\t\\tRE_IndirectDiffuse_Physical\\n#define RE_IndirectSpecular\\t\\tRE_IndirectSpecular_Physical\\n#define Material_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.specularRoughness )\\n#define Material_ClearCoat_BlinnShininessExponent( material ) GGXRoughnessToBlinnExponent( material.clearCoatRoughness )\\nfloat computeSpecularOcclusion( const in float dotNV, const in float ambientOcclusion, const in float roughness ) {\\n\\treturn saturate( pow( dotNV + ambientOcclusion, exp2( - 16.0 * roughness - 1.0 ) ) - 1.0 + ambientOcclusion );\\n}\\n\",ap=\"\\nGeometricContext geometry;\\ngeometry.position = - vViewPosition;\\ngeometry.normal = normal;\\ngeometry.viewDir = normalize( vViewPosition );\\nIncidentLight directLight;\\n#if ( NUM_POINT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tgetPointDirectLightIrradiance( pointLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( pointLight.shadow, directLight.visible ) ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_SPOT_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tgetSpotDirectLightIrradiance( spotLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( spotLight.shadow, directLight.visible ) ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if ( NUM_DIR_LIGHTS > 0 ) && defined( RE_Direct )\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tgetDirectionalDirectLightIrradiance( directionalLight, geometry, directLight );\\n\\t\\t#ifdef USE_SHADOWMAP\\n\\t\\tdirectLight.color *= all( bvec2( directionalLight.shadow, directLight.visible ) ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t\\t#endif\\n\\t\\tRE_Direct( directLight, geometry, material, reflectedLight );\\n\\t}\\n#endif\\n#if defined( RE_IndirectDiffuse )\\n\\tvec3 irradiance = getAmbientLightIrradiance( ambientLightColor );\\n\\t#ifdef USE_LIGHTMAP\\n\\t\\tvec3 lightMapIrradiance = texture2D( lightMap, vUv2 ).xyz * lightMapIntensity;\\n\\t\\t#ifndef PHYSICALLY_CORRECT_LIGHTS\\n\\t\\t\\tlightMapIrradiance *= PI;\\n\\t\\t#endif\\n\\t\\tirradiance += lightMapIrradiance;\\n\\t#endif\\n\\t#if ( NUM_HEMI_LIGHTS > 0 )\\n\\t\\tfor ( int i = 0; i < NUM_HEMI_LIGHTS; i ++ ) {\\n\\t\\t\\tirradiance += getHemisphereLightIrradiance( hemisphereLights[ i ], geometry );\\n\\t\\t}\\n\\t#endif\\n\\t#if defined( USE_ENVMAP ) && defined( PHYSICAL ) && defined( ENVMAP_TYPE_CUBE_UV )\\n\\t \\tirradiance += getLightProbeIndirectIrradiance( geometry, 8 );\\n\\t#endif\\n\\tRE_IndirectDiffuse( irradiance, geometry, material, reflectedLight );\\n#endif\\n#if defined( USE_ENVMAP ) && defined( RE_IndirectSpecular )\\n\\tvec3 radiance = getLightProbeIndirectRadiance( geometry, Material_BlinnShininessExponent( material ), 8 );\\n\\t#ifndef STANDARD\\n\\t\\tvec3 clearCoatRadiance = getLightProbeIndirectRadiance( geometry, Material_ClearCoat_BlinnShininessExponent( material ), 8 );\\n\\t#else\\n\\t\\tvec3 clearCoatRadiance = vec3( 0.0 );\\n\\t#endif\\n\\t\\t\\n\\tRE_IndirectSpecular( radiance, clearCoatRadiance, geometry, material, reflectedLight );\\n#endif\\n\",sp=\"#if defined(USE_LOGDEPTHBUF) && defined(USE_LOGDEPTHBUF_EXT)\\n\\tgl_FragDepthEXT = log2(vFragDepth) * logDepthBufFC * 0.5;\\n#endif\",cp=\"#ifdef USE_LOGDEPTHBUF\\n\\tuniform float logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n#endif\\n\",up=\"#ifdef USE_LOGDEPTHBUF\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvarying float vFragDepth;\\n\\t#endif\\n\\tuniform float logDepthBufFC;\\n#endif\",hp=\"#ifdef USE_LOGDEPTHBUF\\n\\tgl_Position.z = log2(max( EPSILON, gl_Position.w + 1.0 )) * logDepthBufFC;\\n\\t#ifdef USE_LOGDEPTHBUF_EXT\\n\\t\\tvFragDepth = 1.0 + gl_Position.w;\\n\\t#else\\n\\t\\tgl_Position.z = (gl_Position.z - 1.0) * gl_Position.w;\\n\\t#endif\\n#endif\\n\",lp=\"#ifdef USE_MAP\\n\\tvec4 texelColor = texture2D( map, vUv );\\n\\ttexelColor = mapTexelToLinear( texelColor );\\n\\tdiffuseColor *= texelColor;\\n#endif\\n\",dp=\"#ifdef USE_MAP\\n\\tuniform sampler2D map;\\n#endif\\n\",fp=\"#ifdef USE_MAP\\n\\tvec4 mapTexel = texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) * offsetRepeat.zw + offsetRepeat.xy );\\n\\tdiffuseColor *= mapTexelToLinear( mapTexel );\\n#endif\\n\",pp=\"#ifdef USE_MAP\\n\\tuniform vec4 offsetRepeat;\\n\\tuniform sampler2D map;\\n#endif\\n\",mp=\"float metalnessFactor = metalness;\\n#ifdef USE_METALNESSMAP\\n\\tvec4 texelMetalness = texture2D( metalnessMap, vUv );\\n\\tmetalnessFactor *= texelMetalness.r;\\n#endif\\n\",gp=\"#ifdef USE_METALNESSMAP\\n\\tuniform sampler2D metalnessMap;\\n#endif\",vp=\"#ifdef USE_MORPHNORMALS\\n\\tobjectNormal += ( morphNormal0 - normal ) * morphTargetInfluences[ 0 ];\\n\\tobjectNormal += ( morphNormal1 - normal ) * morphTargetInfluences[ 1 ];\\n\\tobjectNormal += ( morphNormal2 - normal ) * morphTargetInfluences[ 2 ];\\n\\tobjectNormal += ( morphNormal3 - normal ) * morphTargetInfluences[ 3 ];\\n#endif\\n\",yp=\"#ifdef USE_MORPHTARGETS\\n\\t#ifndef USE_MORPHNORMALS\\n\\tuniform float morphTargetInfluences[ 8 ];\\n\\t#else\\n\\tuniform float morphTargetInfluences[ 4 ];\\n\\t#endif\\n#endif\",bp=\"#ifdef USE_MORPHTARGETS\\n\\ttransformed += ( morphTarget0 - position ) * morphTargetInfluences[ 0 ];\\n\\ttransformed += ( morphTarget1 - position ) * morphTargetInfluences[ 1 ];\\n\\ttransformed += ( morphTarget2 - position ) * morphTargetInfluences[ 2 ];\\n\\ttransformed += ( morphTarget3 - position ) * morphTargetInfluences[ 3 ];\\n\\t#ifndef USE_MORPHNORMALS\\n\\ttransformed += ( morphTarget4 - position ) * morphTargetInfluences[ 4 ];\\n\\ttransformed += ( morphTarget5 - position ) * morphTargetInfluences[ 5 ];\\n\\ttransformed += ( morphTarget6 - position ) * morphTargetInfluences[ 6 ];\\n\\ttransformed += ( morphTarget7 - position ) * morphTargetInfluences[ 7 ];\\n\\t#endif\\n#endif\\n\",xp=\"#ifdef DOUBLE_SIDED\\n\\tfloat flipNormal = ( float( gl_FrontFacing ) * 2.0 - 1.0 );\\n#else\\n\\tfloat flipNormal = 1.0;\\n#endif\\n\",_p=\"#ifdef FLAT_SHADED\\n\\tvec3 fdx = vec3( dFdx( vViewPosition.x ), dFdx( vViewPosition.y ), dFdx( vViewPosition.z ) );\\n\\tvec3 fdy = vec3( dFdy( vViewPosition.x ), dFdy( vViewPosition.y ), dFdy( vViewPosition.z ) );\\n\\tvec3 normal = normalize( cross( fdx, fdy ) );\\n#else\\n\\tvec3 normal = normalize( vNormal ) * flipNormal;\\n#endif\\n#ifdef USE_NORMALMAP\\n\\tnormal = perturbNormal2Arb( -vViewPosition, normal );\\n#elif defined( USE_BUMPMAP )\\n\\tnormal = perturbNormalArb( -vViewPosition, normal, dHdxy_fwd() );\\n#endif\\n\",wp=\"#ifdef USE_NORMALMAP\\n\\tuniform sampler2D normalMap;\\n\\tuniform vec2 normalScale;\\n\\tvec3 perturbNormal2Arb( vec3 eye_pos, vec3 surf_norm ) {\\n\\t\\tvec3 q0 = dFdx( eye_pos.xyz );\\n\\t\\tvec3 q1 = dFdy( eye_pos.xyz );\\n\\t\\tvec2 st0 = dFdx( vUv.st );\\n\\t\\tvec2 st1 = dFdy( vUv.st );\\n\\t\\tvec3 S = normalize( q0 * st1.t - q1 * st0.t );\\n\\t\\tvec3 T = normalize( -q0 * st1.s + q1 * st0.s );\\n\\t\\tvec3 N = normalize( surf_norm );\\n\\t\\tvec3 mapN = texture2D( normalMap, vUv ).xyz * 2.0 - 1.0;\\n\\t\\tmapN.xy = normalScale * mapN.xy;\\n\\t\\tmat3 tsn = mat3( S, T, N );\\n\\t\\treturn normalize( tsn * mapN );\\n\\t}\\n#endif\\n\",Sp=\"vec3 packNormalToRGB( const in vec3 normal ) {\\n return normalize( normal ) * 0.5 + 0.5;\\n}\\nvec3 unpackRGBToNormal( const in vec3 rgb ) {\\n return 1.0 - 2.0 * rgb.xyz;\\n}\\nconst float PackUpscale = 256. / 255.;const float UnpackDownscale = 255. / 256.;\\nconst vec3 PackFactors = vec3( 256. * 256. * 256., 256. * 256., 256. );\\nconst vec4 UnpackFactors = UnpackDownscale / vec4( PackFactors, 1. );\\nconst float ShiftRight8 = 1. / 256.;\\nvec4 packDepthToRGBA( const in float v ) {\\n\\tvec4 r = vec4( fract( v * PackFactors ), v );\\n\\tr.yzw -= r.xyz * ShiftRight8;\\treturn r * PackUpscale;\\n}\\nfloat unpackRGBAToDepth( const in vec4 v ) {\\n\\treturn dot( v, UnpackFactors );\\n}\\nfloat viewZToOrthographicDepth( const in float viewZ, const in float near, const in float far ) {\\n return ( viewZ + near ) / ( near - far );\\n}\\nfloat orthographicDepthToViewZ( const in float linearClipZ, const in float near, const in float far ) {\\n return linearClipZ * ( near - far ) - near;\\n}\\nfloat viewZToPerspectiveDepth( const in float viewZ, const in float near, const in float far ) {\\n return (( near + viewZ ) * far ) / (( far - near ) * viewZ );\\n}\\nfloat perspectiveDepthToViewZ( const in float invClipZ, const in float near, const in float far ) {\\n return ( near * far ) / ( ( far - near ) * invClipZ - far );\\n}\\n\",Ap=\"#ifdef PREMULTIPLIED_ALPHA\\n\\tgl_FragColor.rgb *= gl_FragColor.a;\\n#endif\\n\",Mp=\"#ifdef USE_SKINNING\\n\\tvec4 mvPosition = modelViewMatrix * skinned;\\n#else\\n\\tvec4 mvPosition = modelViewMatrix * vec4( transformed, 1.0 );\\n#endif\\ngl_Position = projectionMatrix * mvPosition;\\n\",Pp=\"float roughnessFactor = roughness;\\n#ifdef USE_ROUGHNESSMAP\\n\\tvec4 texelRoughness = texture2D( roughnessMap, vUv );\\n\\troughnessFactor *= texelRoughness.r;\\n#endif\\n\",Ep=\"#ifdef USE_ROUGHNESSMAP\\n\\tuniform sampler2D roughnessMap;\\n#endif\",Cp=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform sampler2D directionalShadowMap[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform sampler2D spotShadowMap[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform sampler2D pointShadowMap[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n\\tfloat texture2DCompare( sampler2D depths, vec2 uv, float compare ) {\\n\\t\\treturn step( compare, unpackRGBAToDepth( texture2D( depths, uv ) ) );\\n\\t}\\n\\tfloat texture2DShadowLerp( sampler2D depths, vec2 size, vec2 uv, float compare ) {\\n\\t\\tconst vec2 offset = vec2( 0.0, 1.0 );\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / size;\\n\\t\\tvec2 centroidUV = floor( uv * size + 0.5 ) / size;\\n\\t\\tfloat lb = texture2DCompare( depths, centroidUV + texelSize * offset.xx, compare );\\n\\t\\tfloat lt = texture2DCompare( depths, centroidUV + texelSize * offset.xy, compare );\\n\\t\\tfloat rb = texture2DCompare( depths, centroidUV + texelSize * offset.yx, compare );\\n\\t\\tfloat rt = texture2DCompare( depths, centroidUV + texelSize * offset.yy, compare );\\n\\t\\tvec2 f = fract( uv * size + 0.5 );\\n\\t\\tfloat a = mix( lb, lt, f.y );\\n\\t\\tfloat b = mix( rb, rt, f.y );\\n\\t\\tfloat c = mix( a, b, f.x );\\n\\t\\treturn c;\\n\\t}\\n\\tfloat getShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tshadowCoord.xyz /= shadowCoord.w;\\n\\t\\tshadowCoord.z += shadowBias;\\n\\t\\tbvec4 inFrustumVec = bvec4 ( shadowCoord.x >= 0.0, shadowCoord.x <= 1.0, shadowCoord.y >= 0.0, shadowCoord.y <= 1.0 );\\n\\t\\tbool inFrustum = all( inFrustumVec );\\n\\t\\tbvec2 frustumTestVec = bvec2( inFrustum, shadowCoord.z <= 1.0 );\\n\\t\\tbool frustumTest = all( frustumTestVec );\\n\\t\\tif ( frustumTest ) {\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#elif defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 texelSize = vec2( 1.0 ) / shadowMapSize;\\n\\t\\t\\tfloat dx0 = - texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy0 = - texelSize.y * shadowRadius;\\n\\t\\t\\tfloat dx1 = + texelSize.x * shadowRadius;\\n\\t\\t\\tfloat dy1 = + texelSize.y * shadowRadius;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy, shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, 0.0 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( 0.0, dy1 ), shadowCoord.z ) +\\n\\t\\t\\t\\ttexture2DShadowLerp( shadowMap, shadowMapSize, shadowCoord.xy + vec2( dx1, dy1 ), shadowCoord.z )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, shadowCoord.xy, shadowCoord.z );\\n\\t\\t#endif\\n\\t\\t}\\n\\t\\treturn 1.0;\\n\\t}\\n\\tvec2 cubeToUV( vec3 v, float texelSizeY ) {\\n\\t\\tvec3 absV = abs( v );\\n\\t\\tfloat scaleToCube = 1.0 / max( absV.x, max( absV.y, absV.z ) );\\n\\t\\tabsV *= scaleToCube;\\n\\t\\tv *= scaleToCube * ( 1.0 - 2.0 * texelSizeY );\\n\\t\\tvec2 planar = v.xy;\\n\\t\\tfloat almostATexel = 1.5 * texelSizeY;\\n\\t\\tfloat almostOne = 1.0 - almostATexel;\\n\\t\\tif ( absV.z >= almostOne ) {\\n\\t\\t\\tif ( v.z > 0.0 )\\n\\t\\t\\t\\tplanar.x = 4.0 - v.x;\\n\\t\\t} else if ( absV.x >= almostOne ) {\\n\\t\\t\\tfloat signX = sign( v.x );\\n\\t\\t\\tplanar.x = v.z * signX + 2.0 * signX;\\n\\t\\t} else if ( absV.y >= almostOne ) {\\n\\t\\t\\tfloat signY = sign( v.y );\\n\\t\\t\\tplanar.x = v.x + 2.0 * signY + 2.0;\\n\\t\\t\\tplanar.y = v.z * signY - 2.0;\\n\\t\\t}\\n\\t\\treturn vec2( 0.125, 0.25 ) * planar + vec2( 0.375, 0.75 );\\n\\t}\\n\\tfloat getPointShadow( sampler2D shadowMap, vec2 shadowMapSize, float shadowBias, float shadowRadius, vec4 shadowCoord ) {\\n\\t\\tvec2 texelSize = vec2( 1.0 ) / ( shadowMapSize * vec2( 4.0, 2.0 ) );\\n\\t\\tvec3 lightToPosition = shadowCoord.xyz;\\n\\t\\tvec3 bd3D = normalize( lightToPosition );\\n\\t\\tfloat dp = ( length( lightToPosition ) - shadowBias ) / 1000.0;\\n\\t\\t#if defined( SHADOWMAP_TYPE_PCF ) || defined( SHADOWMAP_TYPE_PCF_SOFT )\\n\\t\\t\\tvec2 offset = vec2( - 1, 1 ) * shadowRadius * texelSize.y;\\n\\t\\t\\treturn (\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yyx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxy, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.xxx, texelSize.y ), dp ) +\\n\\t\\t\\t\\ttexture2DCompare( shadowMap, cubeToUV( bd3D + offset.yxx, texelSize.y ), dp )\\n\\t\\t\\t) * ( 1.0 / 9.0 );\\n\\t\\t#else\\n\\t\\t\\treturn texture2DCompare( shadowMap, cubeToUV( bd3D, texelSize.y ), dp );\\n\\t\\t#endif\\n\\t}\\n#endif\\n\",Tp=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\t\\tuniform mat4 directionalShadowMatrix[ NUM_DIR_LIGHTS ];\\n\\t\\tvarying vec4 vDirectionalShadowCoord[ NUM_DIR_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\t\\tuniform mat4 spotShadowMatrix[ NUM_SPOT_LIGHTS ];\\n\\t\\tvarying vec4 vSpotShadowCoord[ NUM_SPOT_LIGHTS ];\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\t\\tuniform mat4 pointShadowMatrix[ NUM_POINT_LIGHTS ];\\n\\t\\tvarying vec4 vPointShadowCoord[ NUM_POINT_LIGHTS ];\\n\\t#endif\\n#endif\\n\",Ip=\"#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tvDirectionalShadowCoord[ i ] = directionalShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tvSpotShadowCoord[ i ] = spotShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tvPointShadowCoord[ i ] = pointShadowMatrix[ i ] * worldPosition;\\n\\t}\\n\\t#endif\\n#endif\\n\",Lp=\"float getShadowMask() {\\n\\tfloat shadow = 1.0;\\n\\t#ifdef USE_SHADOWMAP\\n\\t#if NUM_DIR_LIGHTS > 0\\n\\tDirectionalLight directionalLight;\\n\\tfor ( int i = 0; i < NUM_DIR_LIGHTS; i ++ ) {\\n\\t\\tdirectionalLight = directionalLights[ i ];\\n\\t\\tshadow *= bool( directionalLight.shadow ) ? getShadow( directionalShadowMap[ i ], directionalLight.shadowMapSize, directionalLight.shadowBias, directionalLight.shadowRadius, vDirectionalShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_SPOT_LIGHTS > 0\\n\\tSpotLight spotLight;\\n\\tfor ( int i = 0; i < NUM_SPOT_LIGHTS; i ++ ) {\\n\\t\\tspotLight = spotLights[ i ];\\n\\t\\tshadow *= bool( spotLight.shadow ) ? getShadow( spotShadowMap[ i ], spotLight.shadowMapSize, spotLight.shadowBias, spotLight.shadowRadius, vSpotShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#if NUM_POINT_LIGHTS > 0\\n\\tPointLight pointLight;\\n\\tfor ( int i = 0; i < NUM_POINT_LIGHTS; i ++ ) {\\n\\t\\tpointLight = pointLights[ i ];\\n\\t\\tshadow *= bool( pointLight.shadow ) ? getPointShadow( pointShadowMap[ i ], pointLight.shadowMapSize, pointLight.shadowBias, pointLight.shadowRadius, vPointShadowCoord[ i ] ) : 1.0;\\n\\t}\\n\\t#endif\\n\\t#endif\\n\\treturn shadow;\\n}\\n\",Op=\"#ifdef USE_SKINNING\\n\\tmat4 boneMatX = getBoneMatrix( skinIndex.x );\\n\\tmat4 boneMatY = getBoneMatrix( skinIndex.y );\\n\\tmat4 boneMatZ = getBoneMatrix( skinIndex.z );\\n\\tmat4 boneMatW = getBoneMatrix( skinIndex.w );\\n#endif\",Rp=\"#ifdef USE_SKINNING\\n\\tuniform mat4 bindMatrix;\\n\\tuniform mat4 bindMatrixInverse;\\n\\t#ifdef BONE_TEXTURE\\n\\t\\tuniform sampler2D boneTexture;\\n\\t\\tuniform int boneTextureWidth;\\n\\t\\tuniform int boneTextureHeight;\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tfloat j = i * 4.0;\\n\\t\\t\\tfloat x = mod( j, float( boneTextureWidth ) );\\n\\t\\t\\tfloat y = floor( j / float( boneTextureWidth ) );\\n\\t\\t\\tfloat dx = 1.0 / float( boneTextureWidth );\\n\\t\\t\\tfloat dy = 1.0 / float( boneTextureHeight );\\n\\t\\t\\ty = dy * ( y + 0.5 );\\n\\t\\t\\tvec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );\\n\\t\\t\\tvec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );\\n\\t\\t\\tvec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );\\n\\t\\t\\tvec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );\\n\\t\\t\\tmat4 bone = mat4( v1, v2, v3, v4 );\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#else\\n\\t\\tuniform mat4 boneMatrices[ MAX_BONES ];\\n\\t\\tmat4 getBoneMatrix( const in float i ) {\\n\\t\\t\\tmat4 bone = boneMatrices[ int(i) ];\\n\\t\\t\\treturn bone;\\n\\t\\t}\\n\\t#endif\\n#endif\\n\",kp=\"#ifdef USE_SKINNING\\n\\tvec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );\\n\\tvec4 skinned = vec4( 0.0 );\\n\\tskinned += boneMatX * skinVertex * skinWeight.x;\\n\\tskinned += boneMatY * skinVertex * skinWeight.y;\\n\\tskinned += boneMatZ * skinVertex * skinWeight.z;\\n\\tskinned += boneMatW * skinVertex * skinWeight.w;\\n\\tskinned = bindMatrixInverse * skinned;\\n#endif\\n\",Dp=\"#ifdef USE_SKINNING\\n\\tmat4 skinMatrix = mat4( 0.0 );\\n\\tskinMatrix += skinWeight.x * boneMatX;\\n\\tskinMatrix += skinWeight.y * boneMatY;\\n\\tskinMatrix += skinWeight.z * boneMatZ;\\n\\tskinMatrix += skinWeight.w * boneMatW;\\n\\tskinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;\\n\\tobjectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;\\n#endif\\n\",Np=\"float specularStrength;\\n#ifdef USE_SPECULARMAP\\n\\tvec4 texelSpecular = texture2D( specularMap, vUv );\\n\\tspecularStrength = texelSpecular.r;\\n#else\\n\\tspecularStrength = 1.0;\\n#endif\",Fp=\"#ifdef USE_SPECULARMAP\\n\\tuniform sampler2D specularMap;\\n#endif\",zp=\"#if defined( TONE_MAPPING )\\n gl_FragColor.rgb = toneMapping( gl_FragColor.rgb );\\n#endif\\n\",Bp=\"#define saturate(a) clamp( a, 0.0, 1.0 )\\nuniform float toneMappingExposure;\\nuniform float toneMappingWhitePoint;\\nvec3 LinearToneMapping( vec3 color ) {\\n return toneMappingExposure * color;\\n}\\nvec3 ReinhardToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n return saturate( color / ( vec3( 1.0 ) + color ) );\\n}\\n#define Uncharted2Helper( x ) max( ( ( x * ( 0.15 * x + 0.10 * 0.50 ) + 0.20 * 0.02 ) / ( x * ( 0.15 * x + 0.50 ) + 0.20 * 0.30 ) ) - 0.02 / 0.30, vec3( 0.0 ) )\\nvec3 Uncharted2ToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n return saturate( Uncharted2Helper( color ) / Uncharted2Helper( vec3( toneMappingWhitePoint ) ) );\\n}\\nvec3 OptimizedCineonToneMapping( vec3 color ) {\\n color *= toneMappingExposure;\\n color = max( vec3( 0.0 ), color - 0.004 );\\n return pow( ( color * ( 6.2 * color + 0.5 ) ) / ( color * ( 6.2 * color + 1.7 ) + 0.06 ), vec3( 2.2 ) );\\n}\\n\",Up=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n#endif\",jp=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvarying vec2 vUv;\\n\\tuniform vec4 offsetRepeat;\\n#endif\\n\",$p=\"#if defined( USE_MAP ) || defined( USE_BUMPMAP ) || defined( USE_NORMALMAP ) || defined( USE_SPECULARMAP ) || defined( USE_ALPHAMAP ) || defined( USE_EMISSIVEMAP ) || defined( USE_ROUGHNESSMAP ) || defined( USE_METALNESSMAP )\\n\\tvUv = uv * offsetRepeat.zw + offsetRepeat.xy;\\n#endif\",Vp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvarying vec2 vUv2;\\n#endif\",Gp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tattribute vec2 uv2;\\n\\tvarying vec2 vUv2;\\n#endif\",Hp=\"#if defined( USE_LIGHTMAP ) || defined( USE_AOMAP )\\n\\tvUv2 = uv2;\\n#endif\",Wp=\"#if defined( USE_ENVMAP ) || defined( PHONG ) || defined( PHYSICAL ) || defined( LAMBERT ) || defined ( USE_SHADOWMAP )\\n\\t#ifdef USE_SKINNING\\n\\t\\tvec4 worldPosition = modelMatrix * skinned;\\n\\t#else\\n\\t\\tvec4 worldPosition = modelMatrix * vec4( transformed, 1.0 );\\n\\t#endif\\n#endif\\n\",Xp=\"uniform samplerCube tCube;\\nuniform float tFlip;\\nuniform float opacity;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tgl_FragColor = textureCube( tCube, vec3( tFlip * vWorldPosition.x, vWorldPosition.yz ) );\\n\\tgl_FragColor.a *= opacity;\\n}\\n\",qp=\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",Yp=\"#if DEPTH_PACKING == 3200\\n\\tuniform float opacity;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( 1.0 );\\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tdiffuseColor.a = opacity;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#if DEPTH_PACKING == 3200\\n\\t\\tgl_FragColor = vec4( vec3( gl_FragCoord.z ), opacity );\\n\\t#elif DEPTH_PACKING == 3201\\n\\t\\tgl_FragColor = packDepthToRGBA( gl_FragCoord.z );\\n\\t#endif\\n}\\n\",Zp=\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",Kp=\"uniform vec3 lightPos;\\nvarying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\nvoid main () {\\n\\t#include \\n\\tgl_FragColor = packDepthToRGBA( length( vWorldPosition.xyz - lightPos.xyz ) / 1000.0 );\\n}\\n\",Qp=\"varying vec4 vWorldPosition;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvWorldPosition = worldPosition;\\n}\\n\",Jp=\"uniform sampler2D tEquirect;\\nuniform float tFlip;\\nvarying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvec3 direction = normalize( vWorldPosition );\\n\\tvec2 sampleUV;\\n\\tsampleUV.y = saturate( tFlip * direction.y * -0.5 + 0.5 );\\n\\tsampleUV.x = atan( direction.z, direction.x ) * RECIPROCAL_PI2 + 0.5;\\n\\tgl_FragColor = texture2D( tEquirect, sampleUV );\\n}\\n\",tm=\"varying vec3 vWorldPosition;\\n#include \\nvoid main() {\\n\\tvWorldPosition = transformDirection( position, modelMatrix );\\n\\t#include \\n\\t#include \\n}\\n\",em=\"uniform vec3 diffuse;\\nuniform float opacity;\\nuniform float dashSize;\\nuniform float totalSize;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tif ( mod( vLineDistance, totalSize ) > dashSize ) {\\n\\t\\tdiscard;\\n\\t}\\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",im=\"uniform float scale;\\nattribute float lineDistance;\\nvarying float vLineDistance;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvLineDistance = scale * lineDistance;\\n\\tvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\n\\tgl_Position = projectionMatrix * mvPosition;\\n\\t#include \\n\\t#include \\n}\\n\",nm=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tReflectedLight reflectedLight;\\n\\treflectedLight.directDiffuse = vec3( 0.0 );\\n\\treflectedLight.directSpecular = vec3( 0.0 );\\n\\treflectedLight.indirectDiffuse = diffuseColor.rgb;\\n\\treflectedLight.indirectSpecular = vec3( 0.0 );\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.indirectDiffuse;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",rm=\"#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_ENVMAP\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",om=\"uniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float opacity;\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\treflectedLight.indirectDiffuse = getAmbientLightIrradiance( ambientLightColor );\\n\\t#include \\n\\treflectedLight.indirectDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb );\\n\\t#ifdef DOUBLE_SIDED\\n\\t\\treflectedLight.directDiffuse = ( gl_FrontFacing ) ? vLightFront : vLightBack;\\n\\t#else\\n\\t\\treflectedLight.directDiffuse = vLightFront;\\n\\t#endif\\n\\treflectedLight.directDiffuse *= BRDF_Diffuse_Lambert( diffuseColor.rgb ) * getShadowMask();\\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + totalEmissiveRadiance;\\n\\t#include \\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",am=\"#define LAMBERT\\nvarying vec3 vLightFront;\\n#ifdef DOUBLE_SIDED\\n\\tvarying vec3 vLightBack;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",sm=\"#define PHONG\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform vec3 specular;\\nuniform float shininess;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\t#include \\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",cm=\"#define PHONG\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",um=\"#define PHYSICAL\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\n#ifndef STANDARD\\n\\tuniform float clearCoat;\\n\\tuniform float clearCoatRoughness;\\n#endif\\nuniform float envMapIntensity;\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\tReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\n\\tvec3 totalEmissiveRadiance = emissive;\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveRadiance;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",hm=\"#define PHYSICAL\\nvarying vec3 vViewPosition;\\n#ifndef FLAT_SHADED\\n\\tvarying vec3 vNormal;\\n#endif\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n#ifndef FLAT_SHADED\\n\\tvNormal = normalize( transformedNormal );\\n#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\tvViewPosition = - mvPosition.xyz;\\n\\t#include \\n\\t#include \\n}\\n\",lm=\"uniform float opacity;\\nvarying vec3 vNormal;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tgl_FragColor = vec4( packNormalToRGB( vNormal ), opacity );\\n\\t#include \\n}\\n\",dm=\"varying vec3 vNormal;\\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tvNormal = normalize( normalMatrix * normal );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",fm=\"uniform vec3 diffuse;\\nuniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\tvec3 outgoingLight = vec3( 0.0 );\\n\\tvec4 diffuseColor = vec4( diffuse, opacity );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n\\toutgoingLight = diffuseColor.rgb;\\n\\tgl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",pm=\"uniform float size;\\nuniform float scale;\\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#ifdef USE_SIZEATTENUATION\\n\\t\\tgl_PointSize = size * ( scale / - mvPosition.z );\\n\\t#else\\n\\t\\tgl_PointSize = size;\\n\\t#endif\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",mm=\"uniform float opacity;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\nvoid main() {\\n\\tgl_FragColor = vec4( 0.0, 0.0, 0.0, opacity * ( 1.0 - getShadowMask() ) );\\n}\\n\",gm=\"#include \\nvoid main() {\\n\\t#include \\n\\t#include \\n\\t#include \\n\\t#include \\n}\\n\",vm={\nalphamap_fragment:xf,alphamap_pars_fragment:_f,alphatest_fragment:wf,aomap_fragment:Sf,aomap_pars_fragment:Af,begin_vertex:Mf,beginnormal_vertex:Pf,bsdfs:Ef,bumpmap_pars_fragment:Cf,clipping_planes_fragment:Tf,clipping_planes_pars_fragment:If,clipping_planes_pars_vertex:Lf,clipping_planes_vertex:Of,color_fragment:Rf,color_pars_fragment:kf,color_pars_vertex:Df,color_vertex:Nf,common:Ff,cube_uv_reflection_fragment:zf,defaultnormal_vertex:Bf,displacementmap_pars_vertex:Uf,displacementmap_vertex:jf,emissivemap_fragment:$f,emissivemap_pars_fragment:Vf,encodings_fragment:Gf,encodings_pars_fragment:Hf,envmap_fragment:Wf,envmap_pars_fragment:Xf,envmap_pars_vertex:qf,envmap_vertex:Yf,fog_fragment:Zf,fog_pars_fragment:Kf,lightmap_fragment:Qf,lightmap_pars_fragment:Jf,lights_lambert_vertex:tp,lights_pars:ep,lights_phong_fragment:ip,lights_phong_pars_fragment:np,lights_physical_fragment:rp,lights_physical_pars_fragment:op,lights_template:ap,logdepthbuf_fragment:sp,logdepthbuf_pars_fragment:cp,logdepthbuf_pars_vertex:up,logdepthbuf_vertex:hp,map_fragment:lp,map_pars_fragment:dp,map_particle_fragment:fp,map_particle_pars_fragment:pp,metalnessmap_fragment:mp,metalnessmap_pars_fragment:gp,morphnormal_vertex:vp,morphtarget_pars_vertex:yp,morphtarget_vertex:bp,normal_flip:xp,normal_fragment:_p,normalmap_pars_fragment:wp,packing:Sp,premultiplied_alpha_fragment:Ap,project_vertex:Mp,roughnessmap_fragment:Pp,roughnessmap_pars_fragment:Ep,shadowmap_pars_fragment:Cp,shadowmap_pars_vertex:Tp,shadowmap_vertex:Ip,shadowmask_pars_fragment:Lp,skinbase_vertex:Op,skinning_pars_vertex:Rp,skinning_vertex:kp,skinnormal_vertex:Dp,specularmap_fragment:Np,specularmap_pars_fragment:Fp,tonemapping_fragment:zp,tonemapping_pars_fragment:Bp,uv_pars_fragment:Up,uv_pars_vertex:jp,uv_vertex:$p,uv2_pars_fragment:Vp,uv2_pars_vertex:Gp,uv2_vertex:Hp,worldpos_vertex:Wp,cube_frag:Xp,cube_vert:qp,depth_frag:Yp,depth_vert:Zp,distanceRGBA_frag:Kp,distanceRGBA_vert:Qp,equirect_frag:Jp,equirect_vert:tm,linedashed_frag:em,linedashed_vert:im,meshbasic_frag:nm,meshbasic_vert:rm,meshlambert_frag:om,meshlambert_vert:am,meshphong_frag:sm,meshphong_vert:cm,meshphysical_frag:um,meshphysical_vert:hm,normal_frag:lm,normal_vert:dm,points_frag:fm,points_vert:pm,shadow_frag:mm,shadow_vert:gm};re.prototype={constructor:re,isColor:!0,r:1,g:1,b:1,set:function(t){return t&&t.isColor?this.copy(t):\"number\"==typeof t?this.setHex(t):\"string\"==typeof t&&this.setStyle(t),this},setScalar:function(t){this.r=t,this.g=t,this.b=t},setHex:function(t){return t=Math.floor(t),this.r=(t>>16&255)/255,this.g=(t>>8&255)/255,this.b=(255&t)/255,this},setRGB:function(t,e,i){return this.r=t,this.g=e,this.b=i,this},setHSL:function(){function t(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+6*(e-t)*(2/3-i):t}return function(e,i,n){if(e=lf.euclideanModulo(e,1),i=lf.clamp(i,0,1),n=lf.clamp(n,0,1),0===i)this.r=this.g=this.b=n;else{var r=n<=.5?n*(1+i):n+i-n*i,o=2*n-r;this.r=t(o,r,e+1/3),this.g=t(o,r,e),this.b=t(o,r,e-1/3)}return this}}(),setStyle:function(t){function e(e){void 0!==e&&parseFloat(e)<1&&console.warn(\"THREE.Color: Alpha component of \"+t+\" will be ignored.\")}var i;if(i=/^((?:rgb|hsl)a?)\\(\\s*([^\\)]*)\\)/.exec(t)){var n,r=i[1],o=i[2];switch(r){case\"rgb\":case\"rgba\":if(n=/^(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(255,parseInt(n[1],10))/255,this.g=Math.min(255,parseInt(n[2],10))/255,this.b=Math.min(255,parseInt(n[3],10))/255,e(n[5]),this;if(n=/^(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o))return this.r=Math.min(100,parseInt(n[1],10))/100,this.g=Math.min(100,parseInt(n[2],10))/100,this.b=Math.min(100,parseInt(n[3],10))/100,e(n[5]),this;break;case\"hsl\":case\"hsla\":if(n=/^([0-9]*\\.?[0-9]+)\\s*,\\s*(\\d+)\\%\\s*,\\s*(\\d+)\\%\\s*(,\\s*([0-9]*\\.?[0-9]+)\\s*)?$/.exec(o)){var a=parseFloat(n[1])/360,s=parseInt(n[2],10)/100,c=parseInt(n[3],10)/100;return e(n[5]),this.setHSL(a,s,c)}}}else if(i=/^\\#([A-Fa-f0-9]+)$/.exec(t)){var u=i[1],h=u.length;if(3===h)return this.r=parseInt(u.charAt(0)+u.charAt(0),16)/255,this.g=parseInt(u.charAt(1)+u.charAt(1),16)/255,this.b=parseInt(u.charAt(2)+u.charAt(2),16)/255,this;if(6===h)return this.r=parseInt(u.charAt(0)+u.charAt(1),16)/255,this.g=parseInt(u.charAt(2)+u.charAt(3),16)/255,this.b=parseInt(u.charAt(4)+u.charAt(5),16)/255,this}if(t&&t.length>0){var u=ym[t];void 0!==u?this.setHex(u):console.warn(\"THREE.Color: Unknown color \"+t)}return this},clone:function(){return new this.constructor(this.r,this.g,this.b)},copy:function(t){return this.r=t.r,this.g=t.g,this.b=t.b,this},copyGammaToLinear:function(t,e){return void 0===e&&(e=2),this.r=Math.pow(t.r,e),this.g=Math.pow(t.g,e),this.b=Math.pow(t.b,e),this},copyLinearToGamma:function(t,e){void 0===e&&(e=2);var i=e>0?1/e:1;return this.r=Math.pow(t.r,i),this.g=Math.pow(t.g,i),this.b=Math.pow(t.b,i),this},convertGammaToLinear:function(){var t=this.r,e=this.g,i=this.b;return this.r=t*t,this.g=e*e,this.b=i*i,this},convertLinearToGamma:function(){return this.r=Math.sqrt(this.r),this.g=Math.sqrt(this.g),this.b=Math.sqrt(this.b),this},getHex:function(){return 255*this.r<<16^255*this.g<<8^255*this.b<<0},getHexString:function(){return(\"000000\"+this.getHex().toString(16)).slice(-6)},getHSL:function(t){var e,i,n=t||{h:0,s:0,l:0},r=this.r,o=this.g,a=this.b,s=Math.max(r,o,a),c=Math.min(r,o,a),u=(c+s)/2;if(c===s)e=0,i=0;else{var h=s-c;switch(i=u<=.5?h/(s+c):h/(2-s-c),s){case r:e=(o-a)/h+(or&&(r=u),h>o&&(o=h),l>a&&(a=l)}this.min.set(e,i,n),this.max.set(r,o,a)},setFromPoints:function(t){this.makeEmpty();for(var e=0,i=t.length;ethis.max.x||t.ythis.max.y||t.zthis.max.z)},containsBox:function(t){return this.min.x<=t.min.x&&t.max.x<=this.max.x&&this.min.y<=t.min.y&&t.max.y<=this.max.y&&this.min.z<=t.min.z&&t.max.z<=this.max.z},getParameter:function(t,e){var i=e||new dt;return i.set((t.x-this.min.x)/(this.max.x-this.min.x),(t.y-this.min.y)/(this.max.y-this.min.y),(t.z-this.min.z)/(this.max.z-this.min.z))},intersectsBox:function(t){return!(t.max.xthis.max.x||t.max.ythis.max.y||t.max.zthis.max.z)},intersectsSphere:function(){var t;return function(e){return void 0===t&&(t=new dt),this.clampPoint(e.center,t),t.distanceToSquared(e.center)<=e.radius*e.radius}}(),intersectsPlane:function(t){var e,i;return t.normal.x>0?(e=t.normal.x*this.min.x,i=t.normal.x*this.max.x):(e=t.normal.x*this.max.x,i=t.normal.x*this.min.x),t.normal.y>0?(e+=t.normal.y*this.min.y,i+=t.normal.y*this.max.y):(e+=t.normal.y*this.max.y,i+=t.normal.y*this.min.y),t.normal.z>0?(e+=t.normal.z*this.min.z,i+=t.normal.z*this.max.z):(e+=t.normal.z*this.max.z,i+=t.normal.z*this.min.z),e<=t.constant&&i>=t.constant},clampPoint:function(t,e){var i=e||new dt;return i.copy(t).clamp(this.min,this.max)},distanceToPoint:function(){var t=new dt;return function(e){var i=t.copy(e).clamp(this.min,this.max);return i.sub(e).length()}}(),getBoundingSphere:function(){var t=new dt;return function(e){var i=e||new se;return i.center=this.center(),i.radius=.5*this.size(t).length(),i}}(),intersect:function(t){return this.min.max(t.min),this.max.min(t.max),this.isEmpty()&&this.makeEmpty(),this},union:function(t){return this.min.min(t.min),this.max.max(t.max),this},applyMatrix4:function(){var t=[new dt,new dt,new dt,new dt,new dt,new dt,new dt,new dt];return function(e){return this.isEmpty()?this:(t[0].set(this.min.x,this.min.y,this.min.z).applyMatrix4(e),t[1].set(this.min.x,this.min.y,this.max.z).applyMatrix4(e),t[2].set(this.min.x,this.max.y,this.min.z).applyMatrix4(e),t[3].set(this.min.x,this.max.y,this.max.z).applyMatrix4(e),t[4].set(this.max.x,this.min.y,this.min.z).applyMatrix4(e),t[5].set(this.max.x,this.min.y,this.max.z).applyMatrix4(e),t[6].set(this.max.x,this.max.y,this.min.z).applyMatrix4(e),t[7].set(this.max.x,this.max.y,this.max.z).applyMatrix4(e),this.setFromPoints(t),this)}}(),translate:function(t){return this.min.add(t),this.max.add(t),this},equals:function(t){return t.min.equals(this.min)&&t.max.equals(this.max)}},se.prototype={constructor:se,set:function(t,e){return this.center.copy(t),this.radius=e,this},setFromPoints:function(){var t=new ae;return function(e,i){var n=this.center;void 0!==i?n.copy(i):t.setFromPoints(e).center(n);for(var r=0,o=0,a=e.length;othis.radius*this.radius&&(n.sub(this.center).normalize(),n.multiplyScalar(this.radius).add(this.center)),n},getBoundingBox:function(t){var e=t||new ae;return e.set(this.center,this.center),e.expandByScalar(this.radius),e},applyMatrix4:function(t){return this.center.applyMatrix4(t),this.radius=this.radius*t.getMaxScaleOnAxis(),this},translate:function(t){return this.center.add(t),this},equals:function(t){return t.center.equals(this.center)&&t.radius===this.radius}},ce.prototype={constructor:ce,isMatrix3:!0,set:function(t,e,i,n,r,o,a,s,c){var u=this.elements;return u[0]=t,u[1]=n,u[2]=a,u[3]=e,u[4]=r,u[5]=s,u[6]=i,u[7]=o,u[8]=c,this},identity:function(){return this.set(1,0,0,0,1,0,0,0,1),this},clone:function(){return(new this.constructor).fromArray(this.elements)},copy:function(t){var e=t.elements;return this.set(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8]),this},setFromMatrix4:function(t){var e=t.elements;return this.set(e[0],e[4],e[8],e[1],e[5],e[9],e[2],e[6],e[10]),this},applyToVector3Array:function(){var t;return function(e,i,n){void 0===t&&(t=new dt),void 0===i&&(i=0),void 0===n&&(n=e.length);for(var r=0,o=i;r1))return n.copy(r).multiplyScalar(a).add(e.start)}else if(0===this.distanceToPoint(e.start))return n.copy(e.start)}}(),intersectsLine:function(t){var e=this.distanceToPoint(t.start),i=this.distanceToPoint(t.end);return e<0&&i>0||i<0&&e>0},intersectsBox:function(t){return t.intersectsPlane(this)},intersectsSphere:function(t){return t.intersectsPlane(this)},coplanarPoint:function(t){var e=t||new dt;return e.copy(this.normal).multiplyScalar(-this.constant)},applyMatrix4:function(){var t=new dt,e=new ce;return function(i,n){var r=this.coplanarPoint(t).applyMatrix4(i),o=n||e.getNormalMatrix(i),a=this.normal.applyMatrix3(o).normalize();return this.constant=-r.dot(a),this}}(),translate:function(t){return this.constant=this.constant-t.dot(this.normal),this},equals:function(t){return t.normal.equals(this.normal)&&t.constant===this.constant}},he.prototype={constructor:he,set:function(t,e,i,n,r,o){var a=this.planes;return a[0].copy(t),a[1].copy(e),a[2].copy(i),a[3].copy(n),a[4].copy(r),a[5].copy(o),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){for(var e=this.planes,i=0;i<6;i++)e[i].copy(t.planes[i]);return this},setFromMatrix:function(t){var e=this.planes,i=t.elements,n=i[0],r=i[1],o=i[2],a=i[3],s=i[4],c=i[5],u=i[6],h=i[7],l=i[8],d=i[9],f=i[10],p=i[11],m=i[12],g=i[13],v=i[14],y=i[15];return e[0].setComponents(a-n,h-s,p-l,y-m).normalize(),e[1].setComponents(a+n,h+s,p+l,y+m).normalize(),e[2].setComponents(a+r,h+c,p+d,y+g).normalize(),e[3].setComponents(a-r,h-c,p-d,y-g).normalize(),e[4].setComponents(a-o,h-u,p-f,y-v).normalize(),e[5].setComponents(a+o,h+u,p+f,y+v).normalize(),this},intersectsObject:function(){var t=new se;return function(e){var i=e.geometry;return null===i.boundingSphere&&i.computeBoundingSphere(),t.copy(i.boundingSphere).applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSprite:function(){var t=new se;return function(e){return t.center.set(0,0,0),t.radius=.7071067811865476,t.applyMatrix4(e.matrixWorld),this.intersectsSphere(t)}}(),intersectsSphere:function(t){for(var e=this.planes,i=t.center,n=-t.radius,r=0;r<6;r++){var o=e[r].distanceToPoint(i);if(o0?i.min.x:i.max.x,e.x=o.normal.x>0?i.max.x:i.min.x,t.y=o.normal.y>0?i.min.y:i.max.y,e.y=o.normal.y>0?i.max.y:i.min.y,t.z=o.normal.z>0?i.min.z:i.max.z,e.z=o.normal.z>0?i.max.z:i.min.z;var a=o.distanceToPoint(t),s=o.distanceToPoint(e);if(a<0&&s<0)return!1}return!0}}(),containsPoint:function(t){for(var e=this.planes,i=0;i<6;i++)if(e[i].distanceToPoint(t)<0)return!1;return!0}};var _m=0;Ce.prototype={constructor:Ce,isBufferAttribute:!0,get count(){return this.array.length/this.itemSize},set needsUpdate(t){t===!0&&this.version++},setDynamic:function(t){return this.dynamic=t,this},copy:function(t){return this.array=new t.array.constructor(t.array),this.itemSize=t.itemSize,this.normalized=t.normalized,this.dynamic=t.dynamic,this},copyAt:function(t,e,i){t*=this.itemSize,i*=e.itemSize;for(var n=0,r=this.itemSize;n1){for(var e=0;e1)for(var e=0;e0){r.children=[];for(var o=0;o0&&(n.geometries=a),s.length>0&&(n.materials=s),c.length>0&&(n.textures=c),u.length>0&&(n.images=u)}return n.object=r,n},clone:function(t){return(new this.constructor).copy(this,t)},copy:function(t,e){if(void 0===e&&(e=!0),this.name=t.name,this.up.copy(t.up),this.position.copy(t.position),this.quaternion.copy(t.quaternion),this.scale.copy(t.scale),this.matrix.copy(t.matrix),this.matrixWorld.copy(t.matrixWorld),this.matrixAutoUpdate=t.matrixAutoUpdate,this.matrixWorldNeedsUpdate=t.matrixWorldNeedsUpdate,this.visible=t.visible,this.castShadow=t.castShadow,this.receiveShadow=t.receiveShadow,this.frustumCulled=t.frustumCulled,this.renderOrder=t.renderOrder,this.userData=JSON.parse(JSON.stringify(t.userData)),e===!0)for(var i=0;i0)for(var f=0;f0&&(this.normalsNeedUpdate=!0)},computeMorphNormals:function(){var t,e,i,n,r;for(i=0,n=this.faces.length;i0&&(t+=e[i].distanceTo(e[i-1])),this.lineDistances[i]=t},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ae),this.boundingBox.setFromPoints(this.vertices)},computeBoundingSphere:function(){null===this.boundingSphere&&(this.boundingSphere=new se),this.boundingSphere.setFromPoints(this.vertices)},merge:function(t,e,i){if((t&&t.isGeometry)===!1)return void console.error(\"THREE.Geometry.merge(): geometry not an instance of THREE.Geometry.\",t);var n,r=this.vertices.length,o=this.vertices,a=t.vertices,s=this.faces,c=t.faces,u=this.faceVertexUvs[0],h=t.faceVertexUvs[0];void 0===i&&(i=0),void 0!==e&&(n=(new ce).getNormalMatrix(e));for(var l=0,d=a.length;l=0;i--){var g=f[i];for(this.faces.splice(g,1),a=0,s=this.faceVertexUvs.length;a0,w=v.vertexNormals.length>0,S=1!==v.color.r||1!==v.color.g||1!==v.color.b,A=v.vertexColors.length>0,M=0;if(M=t(M,0,0),M=t(M,1,y),M=t(M,2,b),M=t(M,3,x),M=t(M,4,_),M=t(M,5,w),M=t(M,6,S),M=t(M,7,A),h.push(M),h.push(v.a,v.b,v.c),h.push(v.materialIndex),x){var P=this.faceVertexUvs[0][c];h.push(n(P[0]),n(P[1]),n(P[2]))}if(_&&h.push(e(v.normal)),w){var E=v.vertexNormals;h.push(e(E[0]),e(E[1]),e(E[2]))}if(S&&h.push(i(v.color)),A){var C=v.vertexColors;h.push(i(C[0]),i(C[1]),i(C[2]))}}return r.data={},r.data.vertices=s,r.data.normals=l,f.length>0&&(r.data.colors=f),m.length>0&&(r.data.uvs=[m]),r.data.faces=h,r},clone:function(){return(new Fe).copy(this)},copy:function(t){this.vertices=[],this.faces=[],this.faceVertexUvs=[[]];for(var e=t.vertices,i=0,n=e.length;i0,a=r[1]&&r[1].length>0,s=t.morphTargets,c=s.length;if(c>0){e=[];for(var u=0;u0){h=[];for(var u=0;u0){var i=new Float32Array(3*t.normals.length);this.addAttribute(\"normal\",new Ce(i,3).copyVector3sArray(t.normals))}if(t.colors.length>0){var n=new Float32Array(3*t.colors.length);this.addAttribute(\"color\",new Ce(n,3).copyColorsArray(t.colors))}if(t.uvs.length>0){var r=new Float32Array(2*t.uvs.length);this.addAttribute(\"uv\",new Ce(r,2).copyVector2sArray(t.uvs))}if(t.uvs2.length>0){var o=new Float32Array(2*t.uvs2.length);this.addAttribute(\"uv2\",new Ce(o,2).copyVector2sArray(t.uvs2))}if(t.indices.length>0){var a=t.vertices.length>65535?Uint32Array:Uint16Array,s=new a(3*t.indices.length);this.setIndex(new Ce(s,1).copyIndicesArray(t.indices))}this.groups=t.groups;for(var c in t.morphTargets){for(var u=[],h=t.morphTargets[c],l=0,d=h.length;l0){var m=new Le(4*t.skinIndices.length,4);this.addAttribute(\"skinIndex\",m.copyVector4sArray(t.skinIndices))}if(t.skinWeights.length>0){var g=new Le(4*t.skinWeights.length,4);this.addAttribute(\"skinWeight\",g.copyVector4sArray(t.skinWeights))}return null!==t.boundingSphere&&(this.boundingSphere=t.boundingSphere.clone()),null!==t.boundingBox&&(this.boundingBox=t.boundingBox.clone()),this},computeBoundingBox:function(){null===this.boundingBox&&(this.boundingBox=new ae);var t=this.attributes.position.array;void 0!==t?this.boundingBox.setFromArray(t):this.boundingBox.makeEmpty(),(isNaN(this.boundingBox.min.x)||isNaN(this.boundingBox.min.y)||isNaN(this.boundingBox.min.z))&&console.error('THREE.BufferGeometry.computeBoundingBox: Computed min/max have NaN values. The \"position\" attribute is likely to have NaN values.',this)},computeBoundingSphere:function(){var t=new ae,e=new dt;return function(){null===this.boundingSphere&&(this.boundingSphere=new se);var i=this.attributes.position;if(i){var n=i.array,r=this.boundingSphere.center;t.setFromArray(n),t.center(r);for(var o=0,a=0,s=n.length;a0&&(t.data.groups=JSON.parse(JSON.stringify(s)));var c=this.boundingSphere;return null!==c&&(t.data.boundingSphere={center:c.center.toArray(),radius:c.radius}),t},clone:function(){return(new Ue).copy(this)},copy:function(t){var e=t.index;null!==e&&this.setIndex(e.clone());var i=t.attributes;for(var n in i){var r=i[n];this.addAttribute(n,r.clone())}for(var o=t.groups,a=0,s=o.length;a0)if(s=d*p-f,c=d*f-p,h=l*g,s>=0)if(c>=-h)if(c<=h){var v=1/g;s*=v,c*=v,u=s*(s+d*c+2*f)+c*(d*s+c+2*p)+m}else c=l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;else c=-l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;else c<=-h?(s=Math.max(0,-(-d*l+f)),c=s>0?-l:Math.min(Math.max(-l,-p),l),u=-s*s+c*(c+2*p)+m):c<=h?(s=0,c=Math.min(Math.max(-l,-p),l),u=c*(c+2*p)+m):(s=Math.max(0,-(d*l+f)),c=s>0?l:Math.min(Math.max(-l,-p),l),u=-s*s+c*(c+2*p)+m);else c=d>0?-l:l,s=Math.max(0,-(d*c+f)),u=-s*s+c*(c+2*p)+m;return o&&o.copy(this.direction).multiplyScalar(s).add(this.origin),a&&a.copy(e).multiplyScalar(c).add(t),u}}(),intersectSphere:function(){var t=new dt;return function(e,i){t.subVectors(e.center,this.origin);var n=t.dot(this.direction),r=t.dot(t)-n*n,o=e.radius*e.radius;if(r>o)return null;var a=Math.sqrt(o-r),s=n-a,c=n+a;return s<0&&c<0?null:s<0?this.at(c,i):this.at(s,i)}}(),intersectsSphere:function(t){return this.distanceToPoint(t.center)<=t.radius},distanceToPlane:function(t){var e=t.normal.dot(this.direction);if(0===e)return 0===t.distanceToPoint(this.origin)?0:null;var i=-(this.origin.dot(t.normal)+t.constant)/e;return i>=0?i:null},intersectPlane:function(t,e){var i=this.distanceToPlane(t);return null===i?null:this.at(i,e)},intersectsPlane:function(t){var e=t.distanceToPoint(this.origin);if(0===e)return!0;var i=t.normal.dot(this.direction);return i*e<0},intersectBox:function(t,e){var i,n,r,o,a,s,c=1/this.direction.x,u=1/this.direction.y,h=1/this.direction.z,l=this.origin;return c>=0?(i=(t.min.x-l.x)*c,n=(t.max.x-l.x)*c):(i=(t.max.x-l.x)*c,n=(t.min.x-l.x)*c),u>=0?(r=(t.min.y-l.y)*u,o=(t.max.y-l.y)*u):(r=(t.max.y-l.y)*u,o=(t.min.y-l.y)*u),i>o||r>n?null:((r>i||i!==i)&&(i=r),(o=0?(a=(t.min.z-l.z)*h,s=(t.max.z-l.z)*h):(a=(t.max.z-l.z)*h,s=(t.min.z-l.z)*h),i>s||a>n?null:((a>i||i!==i)&&(i=a),(s=0?i:n,e)))},intersectsBox:function(){var t=new dt;return function(e){return null!==this.intersectBox(e,t)}}(),intersectTriangle:function(){var t=new dt,e=new dt,i=new dt,n=new dt;return function(r,o,a,s,c){e.subVectors(o,r),i.subVectors(a,r),n.crossVectors(e,i);var u,h=this.direction.dot(n);if(h>0){if(s)return null;\nu=1}else{if(!(h<0))return null;u=-1,h=-h}t.subVectors(this.origin,r);var l=u*this.direction.dot(i.crossVectors(t,i));if(l<0)return null;var d=u*this.direction.dot(e.cross(t));if(d<0)return null;if(l+d>h)return null;var f=-u*t.dot(n);return f<0?null:this.at(f/h,c)}}(),applyMatrix4:function(t){return this.direction.add(this.origin).applyMatrix4(t),this.origin.applyMatrix4(t),this.direction.sub(this.origin),this.direction.normalize(),this},equals:function(t){return t.origin.equals(this.origin)&&t.direction.equals(this.direction)}},Ke.prototype={constructor:Ke,set:function(t,e){return this.start.copy(t),this.end.copy(e),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.start.copy(t.start),this.end.copy(t.end),this},center:function(t){var e=t||new dt;return e.addVectors(this.start,this.end).multiplyScalar(.5)},delta:function(t){var e=t||new dt;return e.subVectors(this.end,this.start)},distanceSq:function(){return this.start.distanceToSquared(this.end)},distance:function(){return this.start.distanceTo(this.end)},at:function(t,e){var i=e||new dt;return this.delta(i).multiplyScalar(t).add(this.start)},closestPointToPointParameter:function(){var t=new dt,e=new dt;return function(i,n){t.subVectors(i,this.start),e.subVectors(this.end,this.start);var r=e.dot(e),o=e.dot(t),a=o/r;return n&&(a=lf.clamp(a,0,1)),a}}(),closestPointToPoint:function(t,e,i){var n=this.closestPointToPointParameter(t,e),r=i||new dt;return this.delta(r).multiplyScalar(n).add(this.start)},applyMatrix4:function(t){return this.start.applyMatrix4(t),this.end.applyMatrix4(t),this},equals:function(t){return t.start.equals(this.start)&&t.end.equals(this.end)}},Qe.normal=function(){var t=new dt;return function(e,i,n,r){var o=r||new dt;o.subVectors(n,i),t.subVectors(e,i),o.cross(t);var a=o.lengthSq();return a>0?o.multiplyScalar(1/Math.sqrt(a)):o.set(0,0,0)}}(),Qe.barycoordFromPoint=function(){var t=new dt,e=new dt,i=new dt;return function(n,r,o,a,s){t.subVectors(a,r),e.subVectors(o,r),i.subVectors(n,r);var c=t.dot(t),u=t.dot(e),h=t.dot(i),l=e.dot(e),d=e.dot(i),f=c*l-u*u,p=s||new dt;if(0===f)return p.set(-2,-1,-1);var m=1/f,g=(l*h-u*d)*m,v=(c*d-u*h)*m;return p.set(1-g-v,v,g)}}(),Qe.containsPoint=function(){var t=new dt;return function(e,i,n,r){var o=Qe.barycoordFromPoint(e,i,n,r,t);return o.x>=0&&o.y>=0&&o.x+o.y<=1}}(),Qe.prototype={constructor:Qe,set:function(t,e,i){return this.a.copy(t),this.b.copy(e),this.c.copy(i),this},setFromPointsAndIndices:function(t,e,i,n){return this.a.copy(t[e]),this.b.copy(t[i]),this.c.copy(t[n]),this},clone:function(){return(new this.constructor).copy(this)},copy:function(t){return this.a.copy(t.a),this.b.copy(t.b),this.c.copy(t.c),this},area:function(){var t=new dt,e=new dt;return function(){return t.subVectors(this.c,this.b),e.subVectors(this.a,this.b),.5*t.cross(e).length()}}(),midpoint:function(t){var e=t||new dt;return e.addVectors(this.a,this.b).add(this.c).multiplyScalar(1/3)},normal:function(t){return Qe.normal(this.a,this.b,this.c,t)},plane:function(t){var e=t||new ue;return e.setFromCoplanarPoints(this.a,this.b,this.c)},barycoordFromPoint:function(t,e){return Qe.barycoordFromPoint(t,this.a,this.b,this.c,e)},containsPoint:function(t){return Qe.containsPoint(t,this.a,this.b,this.c)},closestPointToPoint:function(){var t,e,i,n;return function(r,o){void 0===t&&(t=new ue,e=[new Ke,new Ke,new Ke],i=new dt,n=new dt);var a=o||new dt,s=1/0;if(t.setFromCoplanarPoints(this.a,this.b,this.c),t.projectPoint(r,i),this.containsPoint(i)===!0)a.copy(i);else{e[0].set(this.a,this.b),e[1].set(this.b,this.c),e[2].set(this.c,this.a);for(var c=0;c0){this.morphTargetBase=-1,this.morphTargetInfluences=[],this.morphTargetDictionary={};for(var t=0,e=this.geometry.morphTargets.length;te.far?null:{distance:u,point:v.clone(),object:t}}function i(i,n,r,o,u,h,l,m){a.fromArray(o,3*h),s.fromArray(o,3*l),c.fromArray(o,3*m);var v=e(i,n,r,a,s,c,g);return v&&(u&&(d.fromArray(u,2*h),f.fromArray(u,2*l),p.fromArray(u,2*m),v.uv=t(g,a,s,c,d,f,p)),v.face=new Oe(h,l,m,Qe.normal(a,s,c)),v.faceIndex=h),v}var n=new ht,r=new Ze,o=new se,a=new dt,s=new dt,c=new dt,u=new dt,h=new dt,l=new dt,d=new st,f=new st,p=new st,m=new dt,g=new dt,v=new dt;return function(m,v){var y=this.geometry,b=this.material,x=this.matrixWorld;if(void 0!==b&&(null===y.boundingSphere&&y.computeBoundingSphere(),o.copy(y.boundingSphere),o.applyMatrix4(x),m.ray.intersectsSphere(o)!==!1&&(n.getInverse(x),r.copy(m.ray).applyMatrix4(n),null===y.boundingBox||r.intersectsBox(y.boundingBox)!==!1))){var _,w;if(y&&y.isBufferGeometry){var S,A,M,P=y.index,E=y.attributes,C=E.position.array;if(void 0!==E.uv&&(_=E.uv.array),null!==P)for(var T=P.array,I=0,L=T.length;I0&&(_=B);for(var U=0,j=z.length;Ur||i.push({distance:Math.sqrt(n),point:this.position,face:null,object:this})}}(),clone:function(){return new this.constructor(this.material).copy(this)}}),di.prototype=Object.assign(Object.create(De.prototype),{constructor:di,copy:function(t){De.prototype.copy.call(this,t,!1);for(var e=t.levels,i=0,n=e.length;i1){t.setFromMatrixPosition(i.matrixWorld),e.setFromMatrixPosition(this.matrixWorld);var r=t.distanceTo(e);n[0].object.visible=!0;for(var o=1,a=n.length;o=n[o].distance;o++)n[o-1].object.visible=!1,n[o].object.visible=!0;for(;oa)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}else for(var y=0,b=g.length/3-1;ya)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}else if(s&&s.isGeometry)for(var A=s.vertices,M=A.length,y=0;ya)){d.applyMatrix4(this.matrixWorld);var S=n.ray.origin.distanceTo(d);Sn.far||r.push({distance:S,point:l.clone().applyMatrix4(this.matrixWorld),index:y,face:null,faceIndex:null,object:this})}}}}}(),clone:function(){return new this.constructor(this.geometry,this.material).copy(this)}}),bi.prototype=Object.assign(Object.create(yi.prototype),{constructor:bi,isLineSegments:!0}),xi.prototype=Object.create(ee.prototype),xi.prototype.constructor=xi,xi.prototype.isPointsMaterial=!0,xi.prototype.copy=function(t){return ee.prototype.copy.call(this,t),this.color.copy(t.color),this.map=t.map,this.size=t.size,this.sizeAttenuation=t.sizeAttenuation,this},_i.prototype=Object.assign(Object.create(De.prototype),{constructor:_i,isPoints:!0,raycast:function(){var t=new ht,e=new Ze,i=new se;return function(n,r){function o(t,i){var o=e.distanceSqToPoint(t);if(on.far)return;r.push({distance:u,distanceToRay:Math.sqrt(o),point:s.clone(),index:i,face:null,object:a})}}var a=this,s=this.geometry,c=this.matrixWorld,u=n.params.Points.threshold;if(null===s.boundingSphere&&s.computeBoundingSphere(),i.copy(s.boundingSphere),i.applyMatrix4(c),n.ray.intersectsSphere(i)!==!1){t.getInverse(c),e.copy(n.ray).applyMatrix4(t);var h=u/((this.scale.x+this.scale.y+this.scale.z)/3),l=h*h,d=new dt;if(s&&s.isBufferGeometry){var f=s.index,p=s.attributes,m=p.position.array;if(null!==f)for(var g=f.array,v=0,y=g.length;v0||0===t.search(/^data\\:image\\/jpeg/);r.format=n?Cd:Td,r.image=i,r.needsUpdate=!0,void 0!==e&&e(r)},i,n),r},setCrossOrigin:function(t){return this.crossOrigin=t,this},setWithCredentials:function(t){return this.withCredentials=t,this},setPath:function(t){return this.path=t,this}}),Oi.prototype=Object.assign(Object.create(De.prototype),{constructor:Oi,isLight:!0,copy:function(t){return De.prototype.copy.call(this,t),this.color.copy(t.color),this.intensity=t.intensity,this},toJSON:function(t){var e=De.prototype.toJSON.call(this,t);return e.object.color=this.color.getHex(),e.object.intensity=this.intensity,void 0!==this.groundColor&&(e.object.groundColor=this.groundColor.getHex()),void 0!==this.distance&&(e.object.distance=this.distance),void 0!==this.angle&&(e.object.angle=this.angle),void 0!==this.decay&&(e.object.decay=this.decay),void 0!==this.penumbra&&(e.object.penumbra=this.penumbra),void 0!==this.shadow&&(e.object.shadow=this.shadow.toJSON()),e}}),Ri.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ri,isHemisphereLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.groundColor.copy(t.groundColor),this}}),Object.assign(ki.prototype,{copy:function(t){return this.camera=t.camera.clone(),this.bias=t.bias,this.radius=t.radius,this.mapSize.copy(t.mapSize),this},clone:function(){return(new this.constructor).copy(this)},toJSON:function(){var t={};return 0!==this.bias&&(t.bias=this.bias),1!==this.radius&&(t.radius=this.radius),512===this.mapSize.x&&512===this.mapSize.y||(t.mapSize=this.mapSize.toArray()),t.camera=this.camera.toJSON(!1).object,delete t.camera.matrix,t}}),Di.prototype=Object.assign(Object.create(ki.prototype),{constructor:Di,isSpotLightShadow:!0,update:function(t){var e=2*lf.RAD2DEG*t.angle,i=this.mapSize.width/this.mapSize.height,n=t.distance||500,r=this.camera;e===r.fov&&i===r.aspect&&n===r.far||(r.fov=e,r.aspect=i,r.far=n,r.updateProjectionMatrix())}}),Ni.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ni,isSpotLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.distance=t.distance,this.angle=t.angle,this.penumbra=t.penumbra,this.decay=t.decay,this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Fi.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Fi,isPointLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.distance=t.distance,this.decay=t.decay,this.shadow=t.shadow.clone(),this}}),zi.prototype=Object.assign(Object.create(ki.prototype),{constructor:zi}),Bi.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Bi,isDirectionalLight:!0,copy:function(t){return Oi.prototype.copy.call(this,t),this.target=t.target.clone(),this.shadow=t.shadow.clone(),this}}),Ui.prototype=Object.assign(Object.create(Oi.prototype),{constructor:Ui,isAmbientLight:!0});var Pm={arraySlice:function(t,e,i){return Pm.isTypedArray(t)?new t.constructor(t.subarray(e,i)):t.slice(e,i)},convertArray:function(t,e,i){return!t||!i&&t.constructor===e?t:\"number\"==typeof e.BYTES_PER_ELEMENT?new e(t):Array.prototype.slice.call(t)},isTypedArray:function(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)},getKeyframeOrder:function(t){function e(e,i){return t[e]-t[i]}for(var i=t.length,n=new Array(i),r=0;r!==i;++r)n[r]=r;return n.sort(e),n},sortedArray:function(t,e,i){for(var n=t.length,r=new t.constructor(n),o=0,a=0;a!==n;++o)for(var s=i[o]*e,c=0;c!==e;++c)r[a++]=t[s+c];return r},flattenJSON:function(t,e,i,n){for(var r=1,o=t[0];void 0!==o&&void 0===o[n];)o=t[r++];if(void 0!==o){var a=o[n];if(void 0!==a)if(Array.isArray(a)){do a=o[n],void 0!==a&&(e.push(o.time),i.push.apply(i,a)),o=t[r++];while(void 0!==o)}else if(void 0!==a.toArray){do a=o[n],void 0!==a&&(e.push(o.time),a.toArray(i,i.length)),o=t[r++];while(void 0!==o)}else do a=o[n],void 0!==a&&(e.push(o.time),i.push(a)),o=t[r++];while(void 0!==o)}}};ji.prototype={constructor:ji,evaluate:function(t){var e=this.parameterPositions,i=this._cachedIndex,n=e[i],r=e[i-1];t:{e:{var o;i:{n:if(!(t=r)break t;var s=e[1];t=r)break e}o=i,i=0}}for(;i>>1;te;)--o;if(++o,0!==r||o!==n){r>=o&&(o=Math.max(o,1),r=o-1);var a=this.getValueSize();this.times=Pm.arraySlice(i,r,o),this.values=Pm.arraySlice(this.values,r*a,o*a)}return this},validate:function(){var t=!0,e=this.getValueSize();e-Math.floor(e)!==0&&(console.error(\"invalid value size in track\",this),t=!1);var i=this.times,n=this.values,r=i.length;0===r&&(console.error(\"track is empty\",this),t=!1);for(var o=null,a=0;a!==r;a++){var s=i[a];if(\"number\"==typeof s&&isNaN(s)){console.error(\"time is not a valid number\",this,a,s),t=!1;break}if(null!==o&&o>s){console.error(\"out of order keys\",this,a,s,o),t=!1;break}o=s}if(void 0!==n&&Pm.isTypedArray(n))for(var a=0,c=n.length;a!==c;++a){var u=n[a];if(isNaN(u)){console.error(\"value is not a valid number\",this,a,u),t=!1;break}}return t},optimize:function(){for(var t=this.times,e=this.values,i=this.getValueSize(),n=1,r=1,o=t.length-1;r<=o;++r){var a=!1,s=t[r],c=t[r+1];if(s!==c&&(1!==r||s!==s[0]))for(var u=r*i,h=u-i,l=u+i,d=0;d!==i;++d){var f=e[u+d];if(f!==e[h+d]||f!==e[l+d]){a=!0;break}}if(a){if(r!==n){t[n]=t[r];for(var p=r*i,m=n*i,d=0;d!==i;++d)e[m+d]=e[p+d]}++n}}return n!==t.length&&(this.times=Pm.arraySlice(t,0,n),this.values=Pm.arraySlice(e,0,n*i)),this}},Wi.prototype=Object.assign(Object.create(Em),{constructor:Wi,ValueTypeName:\"vector\"}),Xi.prototype=Object.assign(Object.create(ji.prototype),{constructor:Xi,interpolate_:function(t,e,i,n){for(var r=this.resultBuffer,o=this.sampleValues,a=this.valueSize,s=t*a,c=(i-e)/(n-e),u=s+a;s!==u;s+=4)lt.slerpFlat(r,0,o,s-a,o,s,c);return r}}),qi.prototype=Object.assign(Object.create(Em),{constructor:qi,ValueTypeName:\"quaternion\",DefaultInterpolation:Xd,InterpolantFactoryMethodLinear:function(t){return new Xi(this.times,this.values,this.getValueSize(),t)},InterpolantFactoryMethodSmooth:void 0}),Yi.prototype=Object.assign(Object.create(Em),{constructor:Yi,ValueTypeName:\"number\"}),Zi.prototype=Object.assign(Object.create(Em),{constructor:Zi,ValueTypeName:\"string\",ValueBufferType:Array,DefaultInterpolation:Wd,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Ki.prototype=Object.assign(Object.create(Em),{constructor:Ki,ValueTypeName:\"bool\",ValueBufferType:Array,DefaultInterpolation:Wd,InterpolantFactoryMethodLinear:void 0,InterpolantFactoryMethodSmooth:void 0}),Qi.prototype=Object.assign(Object.create(Em),{constructor:Qi,ValueTypeName:\"color\"}),Ji.prototype=Em,Em.constructor=Ji,Object.assign(Ji,{parse:function(t){if(void 0===t.type)throw new Error(\"track type undefined, can not parse\");var e=Ji._getTrackTypeForValueTypeName(t.type);if(void 0===t.times){var i=[],n=[];Pm.flattenJSON(t.keys,i,n,\"value\"),t.times=i,t.values=n}return void 0!==e.parse?e.parse(t):new e(t.name,t.times,t.values,t.interpolation)},toJSON:function(t){var e,i=t.constructor;if(void 0!==i.toJSON)e=i.toJSON(t);else{e={name:t.name,times:Pm.convertArray(t.times,Array),values:Pm.convertArray(t.values,Array)};var n=t.getInterpolation();n!==t.DefaultInterpolation&&(e.interpolation=n)}return e.type=t.ValueTypeName,e},_getTrackTypeForValueTypeName:function(t){switch(t.toLowerCase()){case\"scalar\":case\"double\":case\"float\":case\"number\":case\"integer\":return Yi;case\"vector\":case\"vector2\":case\"vector3\":case\"vector4\":return Wi;case\"color\":return Qi;case\"quaternion\":return qi;case\"bool\":case\"boolean\":return Ki;case\"string\":return Zi}throw new Error(\"Unsupported typeName: \"+t)}}),tn.prototype={constructor:tn,resetDuration:function(){for(var t=this.tracks,e=0,i=0,n=t.length;i!==n;++i){var r=this.tracks[i];e=Math.max(e,r.times[r.times.length-1])}this.duration=e},trim:function(){for(var t=0;t1){var u=c[1],h=n[u];h||(n[u]=h=[]),h.push(s)}}var l=[];for(var u in n)l.push(tn.CreateFromMorphTargetSequence(u,n[u],e,i));return l},parseAnimation:function(t,e,i){if(!t)return console.error(\" no animation in JSONLoader data\"),null;for(var n=function(t,e,i,n,r){if(0!==i.length){var o=[],a=[];Pm.flattenJSON(i,o,a,n),0!==o.length&&r.push(new t(e,o,a))}},r=[],o=t.name||\"default\",a=t.length||-1,s=t.fps||30,c=t.hierarchy||[],u=0;u1?t.skinWeights[i+1]:0,s=e>2?t.skinWeights[i+2]:0,c=e>3?t.skinWeights[i+3]:0;a.skinWeights.push(new Qt(r,o,s,c))}if(t.skinIndices)for(var i=0,n=t.skinIndices.length;i1?t.skinIndices[i+1]:0,l=e>2?t.skinIndices[i+2]:0,d=e>3?t.skinIndices[i+3]:0;a.skinIndices.push(new Qt(u,h,l,d))}a.bones=t.bones,a.bones&&a.bones.length>0&&(a.skinWeights.length!==a.skinIndices.length||a.skinIndices.length!==a.vertices.length)&&console.warn(\"When skinning, number of vertices (\"+a.vertices.length+\"), skinIndices (\"+a.skinIndices.length+\"), and skinWeights (\"+a.skinWeights.length+\") should match.\")}function r(e){if(void 0!==t.morphTargets)for(var i=0,n=t.morphTargets.length;i0){console.warn('THREE.JSONLoader: \"morphColors\" no longer supported. Using them as face colors.');for(var h=a.faces,l=t.morphColors[0].colors,i=0,n=h.length;i0&&(a.animations=e)}var a=new Fe,s=void 0!==t.scale?1/t.scale:1;if(i(s),n(),r(s),o(),a.computeFaceNormals(),a.computeBoundingSphere(),void 0===t.materials||0===t.materials.length)return{geometry:a};var c=rn.prototype.initMaterials(t.materials,e,this.crossOrigin);return{geometry:a,materials:c}}}),Object.assign(an.prototype,{load:function(t,e,i,n){\"\"===this.texturePath&&(this.texturePath=t.substring(0,t.lastIndexOf(\"/\")+1));var r=this,o=new Pi(r.manager);o.load(t,function(t){r.parse(JSON.parse(t),e)},i,n)},setTexturePath:function(t){this.texturePath=t},setCrossOrigin:function(t){this.crossOrigin=t},parse:function(t,e){var i=this.parseGeometries(t.geometries),n=this.parseImages(t.images,function(){void 0!==e&&e(a)}),r=this.parseTextures(t.textures,n),o=this.parseMaterials(t.materials,r),a=this.parseObject(t.object,i,o);return t.animations&&(a.animations=this.parseAnimations(t.animations)),void 0!==t.images&&0!==t.images.length||void 0!==e&&e(a),a},parseGeometries:function(t){var e={};if(void 0!==t)for(var i=new on,n=new nn,r=0,o=t.length;r0){var o=new Mi(e),a=new Ti(o);a.setCrossOrigin(this.crossOrigin);for(var s=0,c=t.length;s0?new gi(s,c):new ti(s,c);break;case\"LOD\":a=new di;break;case\"Line\":a=new yi(r(e.geometry),o(e.material),e.mode);break;case\"LineSegments\":a=new bi(r(e.geometry),o(e.material));break;case\"PointCloud\":case\"Points\":a=new _i(r(e.geometry),o(e.material));break;case\"Sprite\":a=new li(o(e.material));break;case\"Group\":a=new wi;break;default:a=new De}if(a.uuid=e.uuid,void 0!==e.name&&(a.name=e.name),void 0!==e.matrix?(t.fromArray(e.matrix),t.decompose(a.position,a.quaternion,a.scale)):(void 0!==e.position&&a.position.fromArray(e.position),void 0!==e.rotation&&a.rotation.fromArray(e.rotation),void 0!==e.quaternion&&a.quaternion.fromArray(e.quaternion),void 0!==e.scale&&a.scale.fromArray(e.scale)),void 0!==e.castShadow&&(a.castShadow=e.castShadow),void 0!==e.receiveShadow&&(a.receiveShadow=e.receiveShadow),e.shadow&&(void 0!==e.shadow.bias&&(a.shadow.bias=e.shadow.bias),void 0!==e.shadow.radius&&(a.shadow.radius=e.shadow.radius),void 0!==e.shadow.mapSize&&a.shadow.mapSize.fromArray(e.shadow.mapSize),void 0!==e.shadow.camera&&(a.shadow.camera=this.parseObject(e.shadow.camera))),void 0!==e.visible&&(a.visible=e.visible),void 0!==e.userData&&(a.userData=e.userData),void 0!==e.children)for(var u in e.children)a.add(this.parseObject(e.children[u],i,n));if(\"LOD\"===e.type)for(var h=e.levels,l=0;l(u-s)*(d-c)-(h-c)*(l-s))return!1;var m,g,v,y,b,x,_,w,S,A,M,P,E,C,T;for(m=l-u,g=d-h,v=s-l,y=c-d,b=u-s,x=h-c,a=0;a=-Number.EPSILON&&C>=-Number.EPSILON&&E>=-Number.EPSILON))return!1;return!0}return function(e,i){var n=e.length;if(n<3)return null;var r,o,a,s=[],c=[],u=[];if(Cm.area(e)>0)for(o=0;o2;){if(l--<=0)return console.warn(\"THREE.ShapeUtils: Unable to triangulate polygon! in triangulate()\"),i?u:s;if(r=o,h<=r&&(r=0),o=r+1,h<=o&&(o=0),a=o+1,h<=a&&(a=0),t(e,r,o,a,h,c)){var d,f,p,m,g;for(d=c[r],f=c[o],p=c[a],s.push([e[d],e[f],e[p]]),u.push([c[r],c[o],c[a]]),m=o,g=o+1;g2&&t[e-1].equals(t[0])&&t.pop()}function n(t,e,i){return t.x!==e.x?t.xNumber.EPSILON){var p;if(d>0){if(f<0||f>d)return[];if(p=u*h-c*l,p<0||p>d)return[]}else{if(f>0||f0||pM?[]:x===M?o?[]:[y]:_<=M?[y,b]:[y,S]}function o(t,e,i,n){var r=e.x-t.x,o=e.y-t.y,a=i.x-t.x,s=i.y-t.y,c=n.x-t.x,u=n.y-t.y,h=r*s-o*a,l=r*u-o*c;if(Math.abs(h)>Number.EPSILON){var d=c*s-u*a;return h>0?l>=0&&d>=0:l>=0||d>=0}return l>0}function a(t,e){function i(t,e){var i=y.length-1,n=t-1;n<0&&(n=i);var r=t+1;r>i&&(r=0);var a=o(y[t],y[n],y[r],s[e]);if(!a)return!1;var c=s.length-1,u=e-1;u<0&&(u=c);var h=e+1;return h>c&&(h=0),a=o(s[e],s[u],s[h],y[t]),!!a}function n(t,e){var i,n,o;for(i=0;i0)return!0;return!1}function a(t,i){var n,o,a,s,c;for(n=0;n0)return!0;return!1}for(var s,c,u,h,l,d,f,p,m,g,v,y=t.concat(),b=[],x=[],_=0,w=e.length;_0;){if(A--,A<0){console.log(\"Infinite Loop! Holes left:\"+b.length+\", Probably Hole outside Shape!\");break}for(u=S;u=0)break;x[f]=!0}if(c>=0)break}}return y}i(t),e.forEach(i);for(var s,c,u,h,l,d,f={},p=t.concat(),m=0,g=e.length;m0)){c=r;break}c=r-1}if(r=c,n[r]===i){var u=r/(o-1);return u}var h=n[r],l=n[r+1],d=l-h,f=(i-h)/d,u=(r+f)/(o-1);return u},getTangent:function(t){var e=1e-4,i=t-e,n=t+e;i<0&&(i=0),n>1&&(n=1);var r=this.getPoint(i),o=this.getPoint(n),a=o.clone().sub(r);return a.normalize()},getTangentAt:function(t){var e=this.getUtoTmapping(t);return this.getTangent(e)}},sn.create=function(t,e){return t.prototype=Object.create(sn.prototype),t.prototype.constructor=t,t.prototype.getPoint=e,t},cn.prototype=Object.create(sn.prototype),cn.prototype.constructor=cn,cn.prototype.isLineCurve=!0,cn.prototype.getPoint=function(t){if(1===t)return this.v2.clone();var e=this.v2.clone().sub(this.v1);return e.multiplyScalar(t).add(this.v1),e},cn.prototype.getPointAt=function(t){return this.getPoint(t)},cn.prototype.getTangent=function(t){var e=this.v2.clone().sub(this.v1);return e.normalize()},un.prototype=Object.assign(Object.create(sn.prototype),{constructor:un,add:function(t){this.curves.push(t)},closePath:function(){var t=this.curves[0].getPoint(0),e=this.curves[this.curves.length-1].getPoint(1);t.equals(e)||this.curves.push(new cn(e,t))},getPoint:function(t){for(var e=t*this.getLength(),i=this.getCurveLengths(),n=0;n=e){var r=i[n]-e,o=this.curves[n],a=o.getLength(),s=0===a?0:1-r/a;return o.getPointAt(s)}n++}return null},getLength:function(){var t=this.getCurveLengths();return t[t.length-1]},updateArcLengths:function(){this.needsUpdate=!0,this.cacheLengths=null,this.getLengths()},getCurveLengths:function(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;for(var t=[],e=0,i=0,n=this.curves.length;i1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i},createPointsGeometry:function(t){var e=this.getPoints(t);return this.createGeometry(e)},createSpacedPointsGeometry:function(t){var e=this.getSpacedPoints(t);return this.createGeometry(e)},createGeometry:function(t){for(var e=new Fe,i=0,n=t.length;ie;)i-=e;ie.length-2?e.length-1:n+1],c=e[n>e.length-3?e.length-1:n+2],u=Tm.interpolate;return new st(u(o.x,a.x,s.x,c.x,r),u(o.y,a.y,s.y,c.y,r))},dn.prototype=Object.create(sn.prototype),dn.prototype.constructor=dn,dn.prototype.getPoint=function(t){var e=Cm.b3;return new st(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y))},dn.prototype.getTangent=function(t){var e=Tm.tangentCubicBezier;return new st(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y)).normalize()},fn.prototype=Object.create(sn.prototype),fn.prototype.constructor=fn,fn.prototype.getPoint=function(t){var e=Cm.b2;return new st(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y))},fn.prototype.getTangent=function(t){var e=Tm.tangentQuadraticBezier;return new st(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y)).normalize()};var Im=Object.assign(Object.create(un.prototype),{fromPoints:function(t){this.moveTo(t[0].x,t[0].y);for(var e=1,i=t.length;e0){var u=c.getPoint(0);u.equals(this.currentPoint)||this.lineTo(u.x,u.y)}this.curves.push(c);var h=c.getPoint(1);this.currentPoint.copy(h)}});pn.prototype=Object.create(Fe.prototype),pn.prototype.constructor=pn,pn.NoTaper=function(t){return 1},pn.SinusoidalTaper=function(t){return Math.sin(Math.PI*t)},pn.FrenetFrames=function(t,e,i){function n(){f[0]=new dt,p[0]=new dt,o=Number.MAX_VALUE,a=Math.abs(d[0].x),s=Math.abs(d[0].y),c=Math.abs(d[0].z),a<=o&&(o=a,l.set(1,0,0)),s<=o&&(o=s,l.set(0,1,0)),c<=o&&l.set(0,0,1),m.crossVectors(d[0],l).normalize(),f[0].crossVectors(d[0],m),p[0].crossVectors(d[0],f[0])}var r,o,a,s,c,u,h,l=new dt,d=[],f=[],p=[],m=new dt,g=new ht,v=e+1;for(this.tangents=d,this.normals=f,this.binormals=p,u=0;uNumber.EPSILON&&(m.normalize(),r=Math.acos(lf.clamp(d[u-1].dot(d[u]),-1,1)),f[u].applyMatrix4(g.makeRotationAxis(m,r))),p[u].crossVectors(d[u],f[u]);if(i)for(r=Math.acos(lf.clamp(f[0].dot(f[v-1]),-1,1)),r/=v-1,d[0].dot(m.crossVectors(f[0],f[v-1]))>0&&(r=-r),u=1;uNumber.EPSILON){var d=Math.sqrt(h),f=Math.sqrt(c*c+u*u),p=e.x-s/d,m=e.y+a/d,g=i.x-u/f,v=i.y+c/f,y=((g-p)*u-(v-m)*c)/(a*u-s*c);n=p+a*y-t.x,r=m+s*y-t.y;var b=n*n+r*r;if(b<=2)return new st(n,r);o=Math.sqrt(b/2)}else{var x=!1;a>Number.EPSILON?c>Number.EPSILON&&(x=!0):a<-Number.EPSILON?c<-Number.EPSILON&&(x=!0):Math.sign(s)===Math.sign(u)&&(x=!0),x?(n=-s,r=a,o=Math.sqrt(h)):(n=a,r=s,o=Math.sqrt(h/2))}return new st(n/o,r/o)}function r(){if(b){var t=0,e=$*t;for(H=0;H=0;){i=H,n=H-1,n<0&&(n=t.length-1);var r=0,o=_+2*y;for(r=0;r=0;N--){for(z=N/y,B=g*Math.cos(z*Math.PI/2),F=v*Math.sin(z*Math.PI/2),H=0,W=D.length;HNumber.EPSILON){if(u<0&&(a=e[o],c=-c,s=e[r],u=-u),t.ys.y)continue;if(t.y===a.y){if(t.x===a.x)return!0}else{var h=u*(t.x-a.x)-c*(t.y-a.y);if(0===h)return!0;if(h<0)continue;n=!n}}else{if(t.y!==a.y)continue;if(s.x<=t.x&&t.x<=a.x||a.x<=t.x&&t.x<=s.x)return!0}}return n}var r=Cm.isClockWise,o=this.subPaths;if(0===o.length)return[];if(e===!0)return i(o);var a,s,c,u=[];if(1===o.length)return s=o[0],c=new vn,c.curves=s.curves,u.push(c),u;var h=!r(o[0].getPoints());h=t?!h:h;var l,d=[],f=[],p=[],m=0;f[m]=void 0,p[m]=[];for(var g=0,v=o.length;g1){for(var y=!1,b=[],x=0,_=f.length;x<_;x++)d[x]=[];for(var x=0,_=f.length;x<_;x++)for(var w=p[x],S=0;S0&&(y||(p=d))}for(var E,g=0,C=f.length;g0){this.source.connect(this.filters[0]);for(var t=1,e=this.filters.length;t0){this.source.disconnect(this.filters[0]);for(var t=1,e=this.filters.length;t=.5)for(var o=0;o!==r;++o)t[e+o]=t[i+o]},_slerp:function(t,e,i,n,r){lt.slerpFlat(t,e,t,e,t,i,n)},_lerp:function(t,e,i,n,r){for(var o=1-n,a=0;a!==r;++a){var s=e+a;t[s]=t[s]*o+t[i+a]*n}}},In.prototype={constructor:In,getValue:function(t,e){this.bind(),this.getValue(t,e)},setValue:function(t,e){this.bind(),this.setValue(t,e)},bind:function(){var t=this.node,e=this.parsedPath,i=e.objectName,n=e.propertyName,r=e.propertyIndex;if(t||(t=In.findNode(this.rootNode,e.nodeName)||this.rootNode,this.node=t),this.getValue=this._getValue_unavailable,this.setValue=this._setValue_unavailable,!t)return void console.error(\" trying to update node for track: \"+this.path+\" but it wasn't found.\");if(i){var o=e.objectIndex;switch(i){case\"materials\":if(!t.material)return void console.error(\" can not bind to material as node does not have a material\",this);if(!t.material.materials)return void console.error(\" can not bind to material.materials as node.material does not have a materials array\",this);t=t.material.materials;break;case\"bones\":if(!t.skeleton)return void console.error(\" can not bind to bones as node does not have a skeleton\",this);t=t.skeleton.bones;for(var a=0;a0)for(var c=this._interpolants,u=this._propertyBindings,h=0,l=c.length;h!==l;++h)c[h].evaluate(a),u[h].accumulate(n,s)},_updateWeight:function(t){var e=0;if(this.enabled){e=this.weight;var i=this._weightInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopFading(),\n0===n&&(this.enabled=!1))}}return this._effectiveWeight=e,e},_updateTimeScale:function(t){var e=0;if(!this.paused){e=this.timeScale;var i=this._timeScaleInterpolant;if(null!==i){var n=i.evaluate(t)[0];e*=n,t>i.parameterPositions[1]&&(this.stopWarping(),0===e?this.paused=!0:this.timeScale=e)}}return this._effectiveTimeScale=e,e},_updateTime:function(t){var e=this.time+t;if(0===t)return e;var i=this._clip.duration,n=this.loop,r=this._loopCount;if(n===Vd){r===-1&&(this.loopCount=0,this._setEndings(!0,!0,!1));t:{if(e>=i)e=i;else{if(!(e<0))break t;e=0}this.clampWhenFinished?this.paused=!0:this.enabled=!1,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t<0?-1:1})}}else{var o=n===Hd;if(r===-1&&(t>=0?(r=0,this._setEndings(!0,0===this.repetitions,o)):this._setEndings(0===this.repetitions,!0,o)),e>=i||e<0){var a=Math.floor(e/i);e-=i*a,r+=Math.abs(a);var s=this.repetitions-r;if(s<0)this.clampWhenFinished?this.paused=!0:this.enabled=!1,e=t>0?i:0,this._mixer.dispatchEvent({type:\"finished\",action:this,direction:t>0?1:-1});else{if(0===s){var c=t<0;this._setEndings(c,!c,o)}else this._setEndings(!1,!1,o);this._loopCount=r,this._mixer.dispatchEvent({type:\"loop\",action:this,loopDelta:a})}}if(o&&1===(1&r))return this.time=e,i-e}return this.time=e,e},_setEndings:function(t,e,i){var n=this._interpolantSettings;i?(n.endingStart=Zd,n.endingEnd=Zd):(t?n.endingStart=this.zeroSlopeAtStart?Zd:Yd:n.endingStart=Kd,e?n.endingEnd=this.zeroSlopeAtEnd?Zd:Yd:n.endingEnd=Kd)},_scheduleFading:function(t,e,i){var n=this._mixer,r=n.time,o=this._weightInterpolant;null===o&&(o=n._lendControlInterpolant(),this._weightInterpolant=o);var a=o.parameterPositions,s=o.sampleValues;return a[0]=r,s[0]=e,a[1]=r+t,s[1]=i,this}},Object.assign(On.prototype,at.prototype,{clipAction:function(t,e){var i=e||this._root,n=i.uuid,r=\"string\"==typeof t?tn.findByName(i,t):t,o=null!==r?r.uuid:t,a=this._actionsByClip[o],s=null;if(void 0!==a){var c=a.actionByRoot[n];if(void 0!==c)return c;s=a.knownActions[0],null===r&&(r=s._clip)}if(null===r)return null;var u=new Ln(this,r,e);return this._bindAction(u,s),this._addInactiveAction(u,o,n),u},existingAction:function(t,e){var i=e||this._root,n=i.uuid,r=\"string\"==typeof t?tn.findByName(i,t):t,o=r?r.uuid:t,a=this._actionsByClip[o];return void 0!==a?a.actionByRoot[n]||null:null},stopAllAction:function(){var t=this._actions,e=this._nActiveActions,i=this._bindings,n=this._nActiveBindings;this._nActiveActions=0,this._nActiveBindings=0;for(var r=0;r!==e;++r)t[r].reset();for(var r=0;r!==n;++r)i[r].useCount=0;return this},update:function(t){t*=this.timeScale;for(var e=this._actions,i=this._nActiveActions,n=this.time+=t,r=Math.sign(t),o=this._accuIndex^=1,a=0;a!==i;++a){var s=e[a];s.enabled&&s._update(n,t,r,o)}for(var c=this._bindings,u=this._nActiveBindings,a=0;a!==u;++a)c[a].apply(o);return this},getRoot:function(){return this._root},uncacheClip:function(t){var e=this._actions,i=t.uuid,n=this._actionsByClip,r=n[i];if(void 0!==r){for(var o=r.knownActions,a=0,s=o.length;a!==s;++a){var c=o[a];this._deactivateAction(c);var u=c._cacheIndex,h=e[e.length-1];c._cacheIndex=null,c._byClipCacheIndex=null,h._cacheIndex=u,e[u]=h,e.pop(),this._removeInactiveBindingsForAction(c)}delete n[i]}},uncacheRoot:function(t){var e=t.uuid,i=this._actionsByClip;for(var n in i){var r=i[n].actionByRoot,o=r[e];void 0!==o&&(this._deactivateAction(o),this._removeInactiveAction(o))}var a=this._bindingsByRootAndName,s=a[e];if(void 0!==s)for(var c in s){var u=s[c];u.restoreOriginalState(),this._removeInactiveBinding(u)}},uncacheAction:function(t,e){var i=this.existingAction(t,e);null!==i&&(this._deactivateAction(i),this._removeInactiveAction(i))}}),Object.assign(On.prototype,{_bindAction:function(t,e){var i=t._localRoot||this._root,n=t._clip.tracks,r=n.length,o=t._propertyBindings,a=t._interpolants,s=i.uuid,c=this._bindingsByRootAndName,u=c[s];void 0===u&&(u={},c[s]=u);for(var h=0;h!==r;++h){var l=n[h],d=l.name,f=u[d];if(void 0!==f)o[h]=f;else{if(f=o[h],void 0!==f){null===f._cacheIndex&&(++f.referenceCount,this._addInactiveBinding(f,s,d));continue}var p=e&&e._propertyBindings[h].binding.parsedPath;f=new Tn(In.create(i,d,p),l.ValueTypeName,l.getValueSize()),++f.referenceCount,this._addInactiveBinding(f,s,d),o[h]=f}a[h].resultBuffer=f.buffer}},_activateAction:function(t){if(!this._isActiveAction(t)){if(null===t._cacheIndex){var e=(t._localRoot||this._root).uuid,i=t._clip.uuid,n=this._actionsByClip[i];this._bindAction(t,n&&n.knownActions[0]),this._addInactiveAction(t,i,e)}for(var r=t._propertyBindings,o=0,a=r.length;o!==a;++o){var s=r[o];0===s.useCount++&&(this._lendBinding(s),s.saveOriginalState())}this._lendAction(t)}},_deactivateAction:function(t){if(this._isActiveAction(t)){for(var e=t._propertyBindings,i=0,n=e.length;i!==n;++i){var r=e[i];0===--r.useCount&&(r.restoreOriginalState(),this._takeBackBinding(r))}this._takeBackAction(t)}},_initMemoryManager:function(){this._actions=[],this._nActiveActions=0,this._actionsByClip={},this._bindings=[],this._nActiveBindings=0,this._bindingsByRootAndName={},this._controlInterpolants=[],this._nActiveControlInterpolants=0;var t=this;this.stats={actions:{get total(){return t._actions.length},get inUse(){return t._nActiveActions}},bindings:{get total(){return t._bindings.length},get inUse(){return t._nActiveBindings}},controlInterpolants:{get total(){return t._controlInterpolants.length},get inUse(){return t._nActiveControlInterpolants}}}},_isActiveAction:function(t){var e=t._cacheIndex;return null!==e&&e.99999?this.quaternion.set(0,0,0,1):i.y<-.99999?this.quaternion.set(1,0,0,0):(e.set(i.z,0,-i.x).normalize(),t=Math.acos(i.y),this.quaternion.setFromAxisAngle(e,t))}}(),Gn.prototype.setLength=function(t,e,i){void 0===e&&(e=.2*t),void 0===i&&(i=.2*e),this.line.scale.set(1,Math.max(0,t-e),1),this.line.updateMatrix(),this.cone.scale.set(i,e,i),this.cone.position.y=t,this.cone.updateMatrix()},Gn.prototype.setColor=function(t){this.line.material.color.copy(t),this.cone.material.color.copy(t)},Hn.prototype=Object.create(Fe.prototype),Hn.prototype.constructor=Hn,Wn.prototype=Object.create(Hn.prototype),Wn.prototype.constructor=Wn,Xn.prototype=Object.create(Fe.prototype),Xn.prototype.constructor=Xn,qn.prototype=Object.create(Ue.prototype),qn.prototype.constructor=qn;(function(){function t(){}var e=new dt,i=new t,n=new t,r=new t;return t.prototype.init=function(t,e,i,n){this.c0=t,this.c1=i,this.c2=-3*t+3*e-2*i-n,this.c3=2*t-2*e+i+n},t.prototype.initNonuniformCatmullRom=function(t,e,i,n,r,o,a){var s=(e-t)/r-(i-t)/(r+o)+(i-e)/o,c=(i-e)/o-(n-e)/(o+a)+(n-i)/a;s*=o,c*=o,this.init(e,i,s,c)},t.prototype.initCatmullRom=function(t,e,i,n,r){this.init(e,i,r*(i-t),r*(n-e))},t.prototype.calc=function(t){var e=t*t,i=e*t;return this.c0+this.c1*t+this.c2*e+this.c3*i},sn.create(function(t){this.points=t||[],this.closed=!1},function(t){var o,a,s,c,u=this.points;c=u.length,c<2&&console.log(\"duh, you need at least 2 points\"),o=(c-(this.closed?0:1))*t,a=Math.floor(o),s=o-a,this.closed?a+=a>0?0:(Math.floor(Math.abs(a)/u.length)+1)*u.length:0===s&&a===c-1&&(a=c-2,s=1);var h,l,d,f;if(this.closed||a>0?h=u[(a-1)%c]:(e.subVectors(u[0],u[1]).add(u[0]),h=e),l=u[a%c],d=u[(a+1)%c],this.closed||a+2e.length-2?e.length-1:n+1],c=e[n>e.length-3?e.length-1:n+2],u=Tm.interpolate;return new dt(u(o.x,a.x,s.x,c.x,r),u(o.y,a.y,s.y,c.y,r),u(o.z,a.z,s.z,c.z,r))}),sn.create(function(t,e,i,n){this.v0=t,this.v1=e,this.v2=i,this.v3=n},function(t){var e=Cm.b3;return new dt(e(t,this.v0.x,this.v1.x,this.v2.x,this.v3.x),e(t,this.v0.y,this.v1.y,this.v2.y,this.v3.y),e(t,this.v0.z,this.v1.z,this.v2.z,this.v3.z))}),sn.create(function(t,e,i){this.v0=t,this.v1=e,this.v2=i},function(t){var e=Cm.b2;return new dt(e(t,this.v0.x,this.v1.x,this.v2.x),e(t,this.v0.y,this.v1.y,this.v2.y),e(t,this.v0.z,this.v1.z,this.v2.z))}),sn.create(function(t,e){this.v1=t,this.v2=e},function(t){if(1===t)return this.v2.clone();var e=new dt;return e.subVectors(this.v2,this.v1),e.multiplyScalar(t),e.add(this.v1),e});Object.defineProperty(t,\"AudioContext\",{get:function(){return t.getAudioContext()}}),Yn.prototype={active:!0,params:null,execute:function(t){var e,i;return this.active&&this._listener&&(i=this.params?this.params.concat(t):t,e=this._listener.apply(this.context,i),this._isOnce&&this.detach()),e},detach:function(){return this.isBound()?this._signal.remove(this._listener,this.context):null},isBound:function(){return!!this._signal&&!!this._listener},isOnce:function(){return this._isOnce},getListener:function(){return this._listener},getSignal:function(){return this._signal},_destroy:function(){delete this._signal,delete this._listener,delete this.context},toString:function(){return\"[SignalBinding isOnce:\"+this._isOnce+\", isBound:\"+this.isBound()+\", active:\"+this.active+\"]\"}},Kn.prototype={VERSION:\"1.0.0\",memorize:!1,_shouldPropagate:!0,active:!0,_registerListener:function(t,e,i,n){var r,o=this._indexOfListener(t,i);if(o!==-1){if(r=this._bindings[o],r.isOnce()!==e)throw new Error(\"You cannot add\"+(e?\"\":\"Once\")+\"() then add\"+(e?\"Once\":\"\")+\"() the same listener without removing the relationship first.\")}else r=new Yn(this,t,e,i,n),this._addBinding(r);return this.memorize&&this._prevParams&&r.execute(this._prevParams),r},_addBinding:function(t){var e=this._bindings.length;do--e;while(this._bindings[e]&&t._priority<=this._bindings[e]._priority);this._bindings.splice(e+1,0,t)},_indexOfListener:function(t,e){for(var i,n=this._bindings.length;n--;)if(i=this._bindings[n],i._listener===t&&i.context===e)return n;return-1},has:function(t,e){return this._indexOfListener(t,e)!==-1},add:function(t,e,i){return Zn(t,\"add\"),this._registerListener(t,!1,e,i)},addOnce:function(t,e,i){return Zn(t,\"addOnce\"),this._registerListener(t,!0,e,i)},remove:function(t,e){Zn(t,\"remove\");var i=this._indexOfListener(t,e);return i!==-1&&(this._bindings[i]._destroy(),this._bindings.splice(i,1)),t},removeAll:function(){for(var t=this._bindings.length;t--;)this._bindings[t]._destroy();this._bindings.length=0},getNumListeners:function(){return this._bindings.length},halt:function(){this._shouldPropagate=!1},dispatch:function(t){if(this.active){var e,i=Array.prototype.slice.call(arguments),n=this._bindings.length;if(this.memorize&&(this._prevParams=i),n){e=this._bindings.slice(),this._shouldPropagate=!0;do n--;while(e[n]&&this._shouldPropagate&&e[n].execute(i)!==!1)}}},forget:function(){this._prevParams=null},dispose:function(){this.removeAll(),delete this._bindings,delete this._prevParams},toString:function(){return\"[Signal active:\"+this.active+\" numListeners:\"+this.getNumListeners()+\"]\"}};var km={PROTEIN:1,NUCLEIC:2,RNA:3,DNA:4,POLYMER:5,WATER:6,HELIX:7,SHEET:8,BACKBONE:9,SIDECHAIN:10,ALL:11,HETERO:12,ION:13,SACCHARIDE:14};Qn.prototype={constructor:Qn,type:\"selection\",setString:function(t,e){if(void 0===t&&(t=this.string||\"\"),t!==this.string){try{this.parse(t)}catch(t){this.selection={error:t.message}}this.string=t,this.test=this.makeAtomTest(),this.residueTest=this.makeResidueTest(),this.chainTest=this.makeChainTest(),this.modelTest=this.makeModelTest(),this.atomOnlyTest=this.makeAtomTest(!0),this.residueOnlyTest=this.makeResidueTest(!0),this.chainOnlyTest=this.makeChainTest(!0),this.modelOnlyTest=this.makeModelTest(!0),e||this.signals.stringChanged.dispatch(this.string)}},parse:function(t){if(this.selection={operator:void 0,rules:[]},t){var e,i,n=this,r=this.selection,o=[];t=t.replace(/\\(/g,\" ( \").replace(/\\)/g,\" ) \").trim(),\"(\"===t.charAt(0)&&\")\"===t.substr(-1)&&(t=t.slice(1,-1).trim());var a,s,c,u,h,l,d,f,p,m,g=t.split(/\\s+/),v=[\"*\",\"\",\"ALL\"],y=function(t){e={operator:t,rules:[]},void 0===r?(r=e,n.selection=e):(r.rules.push(e),o.push(r),r=e)},b=function(t){i=r,r=o.pop(),void 0===r&&(y(t),x(i))},x=function(t){r.rules.push(t)};for(c=0;c0)if(\"NOT\"===a.toUpperCase())u=1;else if(1===u)u=2;else{if(2!==u)throw new Error(\"something went wrong with 'not'\");u=!1,b()}if(\"AND\"!==a.toUpperCase())if(\"OR\"!==a.toUpperCase())if(\"NOT\"!==a.toUpperCase())if(s={},\"HETERO\"!==a.toUpperCase())if(\"WATER\"!==a.toUpperCase())if(\"PROTEIN\"!==a.toUpperCase())if(\"NUCLEIC\"!==a.toUpperCase())if(\"RNA\"!==a.toUpperCase())if(\"DNA\"!==a.toUpperCase())if(\"POLYMER\"!==a.toUpperCase())if(\"ION\"!==a.toUpperCase())if(\"SACCHARIDE\"!==a.toUpperCase()&&\"SUGAR\"!==a.toUpperCase())if(\"HYDROGEN\"!==a.toUpperCase())if(\"SMALL\"!==a.toUpperCase())if(\"NUCLEOPHILIC\"!==a.toUpperCase())if(\"HYDROPHOBIC\"!==a.toUpperCase())if(\"AROMATIC\"!==a.toUpperCase())if(\"AMIDE\"!==a.toUpperCase())if(\"ACIDIC\"!==a.toUpperCase())if(\"BASIC\"!==a.toUpperCase())if(\"CHARGED\"!==a.toUpperCase())if(\"POLAR\"!==a.toUpperCase())if(\"NONPOLAR\"!==a.toUpperCase())if(\"HELIX\"!==a.toUpperCase())if(\"SHEET\"!==a.toUpperCase())if(\"TURN\"!==a.toUpperCase())if(\"BACKBONE\"!==a.toUpperCase())if(\"SIDECHAIN\"!==a.toUpperCase())if(\"SIDECHAINATTACHED\"!==a.toUpperCase())if(v.indexOf(a.toUpperCase())===-1)if(\"@\"!==a.charAt(0))if(\"#\"!==a.charAt(0))if(\"[\"!==a[0]||\"]\"!==a[a.length-1])if(a.length>=1&&a.length<=4&&\"^\"!==a[0]&&\":\"!==a[0]&&\".\"!==a[0]&&\"%\"!==a[0]&&\"/\"!==a[0]&&isNaN(parseInt(a)))s.resname=a.toUpperCase(),x(s);else{if(s={operator:\"AND\",rules:[]},d=a.split(\"/\"),d.length>1&&d[1]){if(isNaN(parseInt(d[1])))throw new Error(\"model must be an integer\");s.rules.push({model:parseInt(d[1])})}if(p=d[0].split(\"%\"),p.length>1&&s.rules.push({altloc:p[1]}),h=p[0].split(\".\"),h.length>1&&h[1]){if(h[1].length>4)throw new Error(\"atomname must be one to four characters\");s.rules.push({atomname:h[1].substring(0,4).toUpperCase()})}if(l=h[0].split(\":\"),l.length>1&&l[1]&&s.rules.push({chainname:l[1]}),m=l[0].split(\"^\"),m.length>1&&s.rules.push({inscode:m[1]}),m[0]){var _,w;if(\"-\"===m[0][0]&&(m[0]=m[0].substr(1),_=!0),m[0].indexOf(\"--\")!==-1&&(m[0]=m[0].replace(\"--\",\"-\"),w=!0),f=m[0].split(\"-\"),1===f.length){if(f=parseInt(f[0]),isNaN(f))throw new Error(\"resi must be an integer\");_&&(f*=-1),s.rules.push({resno:f})}else{if(2!==f.length)throw new Error(\"resi range must contain one '-'\");_&&(f[0]*=-1),w&&(f[1]*=-1),s.rules.push({resno:[parseInt(f[0]),parseInt(f[1])]})}}if(1===s.rules.length)x(s.rules[0]);else{if(!(s.rules.length>1))throw new Error(\"empty selection chunk\");x(s)}}else s.resname=a.substr(1,a.length-2).toUpperCase(),x(s);else s.element=a.substr(1).toUpperCase(),x(s);else{for(var S=a.substr(1).split(\",\"),A=0,M=S.length;A0?e:null},makeAtomTest:function(t){var e,i=[\"h\",\"g\",\"i\"],n=[\"e\",\"b\"];e=t?this._filter(function(t){return void 0!==t.keyword&&t.keyword!==km.BACKBONE&&t.keyword!==km.SIDECHAIN||(void 0!==t.model||(void 0!==t.chainname||(void 0!==t.resname||(void 0!==t.resno||void 0!==t.sstruc))))}):this.selection;var r=function(t,e){if(void 0===e.atomname&&void 0===e.element&&void 0===e.altloc&&void 0===e.atomindex&&void 0===e.keyword&&void 0===e.inscode&&void 0===e.resname&&void 0===e.sstruc&&void 0===e.resno&&void 0===e.chainname&&void 0===e.model)return-1;if(void 0!==e.keyword){if(e.keyword===km.BACKBONE&&!t.isBackbone())return!1;if(e.keyword===km.SIDECHAIN&&!t.isSidechain())return!1;if(e.keyword===km.HETERO&&!t.isHetero())return!1;if(e.keyword===km.PROTEIN&&!t.isProtein())return!1;if(e.keyword===km.NUCLEIC&&!t.isNucleic())return!1;if(e.keyword===km.RNA&&!t.isRna())return!1;if(e.keyword===km.DNA&&!t.isDna())return!1;if(e.keyword===km.POLYMER&&!t.isPolymer())return!1;if(e.keyword===km.WATER&&!t.isWater())return!1;if(e.keyword===km.HELIX&&i.indexOf(t.sstruc)===-1)return!1;if(e.keyword===km.SHEET&&n.indexOf(t.sstruc)===-1)return!1;if(e.keyword===km.ION&&!t.isIon())return!1;if(e.keyword===km.SACCHARIDE&&!t.isSaccharide())return!1}if(void 0!==e.atomname&&e.atomname!==t.atomname)return!1;if(void 0!==e.element&&e.element!==t.element)return!1;if(void 0!==e.altloc&&e.altloc!==t.altloc)return!1;if(void 0!==e.atomindex&&Qh(e.atomindex,t.index)<0)return!1;if(void 0!==e.resname&&e.resname!==t.resname)return!1;if(void 0!==e.sstruc&&e.sstruc!==t.sstruc)return!1;if(void 0!==e.resno)if(Array.isArray(e.resno)&&2===e.resno.length){if(e.resno[0]>t.resno||e.resno[1]e.atomindexLast||t.atomEndt.resno||e.resno[1]e.atomindexLast||t.atomEnde.atomindexLast||t.atomEnd>=4,i[r]=e[19===r?3&t|8:t]);return i.join(\"\")}}(),Nm=0,Fm=1,zm=2,Bm=3,Um=4,jm=5,$m=6,Vm=0,Gm=1,Hm=2,Wm=3,Xm=4,qm=5,Ym=6,Zm=[\"D-BETA-PEPTIDE, C-GAMMA LINKING\",\"D-GAMMA-PEPTIDE, C-DELTA LINKING\",\"D-PEPTIDE COOH CARBOXY TERMINUS\",\"D-PEPTIDE NH3 AMINO TERMINUS\",\"D-PEPTIDE LINKING\",\"L-BETA-PEPTIDE, C-GAMMA LINKING\",\"L-GAMMA-PEPTIDE, C-DELTA LINKING\",\"L-PEPTIDE COOH CARBOXY TERMINUS\",\"L-PEPTIDE NH3 AMINO TERMINUS\",\"L-PEPTIDE LINKING\",\"PEPTIDE LINKING\",\"PEPTIDE-LIKE\"],Km=[\"RNA OH 3 PRIME TERMINUS\",\"RNA OH 5 PRIME TERMINUS\",\"RNA LINKING\"],Qm=[\"DNA OH 3 PRIME TERMINUS\",\"DNA OH 5 PRIME TERMINUS\",\"DNA LINKING\",\"L-DNA LINKING\",\"L-RNA LINKING\"],Jm=[\"D-SACCHARIDE\",\"D-SACCHARIDE 1,4 AND 1,4 LINKING\",\"D-SACCHARIDE 1,4 AND 1,6 LINKING\",\"L-SACCHARIDE\",\"L-SACCHARIDE 1,4 AND 1,4 LINKING\",\"L-SACCHARIDE 1,4 AND 1,6 LINKING\",\"SACCHARIDE\"],tg=[\"OTHER\"],eg=[\"NON-POLYMER\"],ig=eg.concat(tg,Jm),ng={\nH:1.1,HE:1.4,LI:1.81,BE:1.53,B:1.92,C:1.7,N:1.55,O:1.52,F:1.47,NE:1.54,NA:2.27,MG:1.73,AL:1.84,SI:2.1,P:1.8,S:1.8,CL:1.75,AR:1.88,K:2.75,CA:2.31,SC:2.3,TI:2.15,V:2.05,CR:2.05,MN:2.05,FE:2.05,CO:2,NI:2,CU:2,ZN:2.1,GA:1.87,GE:2.11,AS:1.85,SE:1.9,BR:1.83,KR:2.02,RB:3.03,SR:2.49,Y:2.4,ZR:2.3,NB:2.15,MO:2.1,TC:2.05,RU:2.05,RH:2,PD:2.05,AG:2.1,CD:2.2,IN:2.2,SN:1.93,SB:2.17,TE:2.06,I:1.98,XE:2.16,CS:3.43,BA:2.68,LA:2.5,CE:2.48,PR:2.47,ND:2.45,PM:2.43,SM:2.42,EU:2.4,GD:2.38,TB:2.37,DY:2.35,HO:2.33,ER:2.32,TM:2.3,YB:2.28,LU:2.27,HF:2.25,TA:2.2,W:2.1,RE:2.05,OS:2,IR:2,PT:2.05,AU:2.1,HG:2.05,TL:1.96,PB:2.02,BI:2.07,PO:1.97,AT:2.02,RN:2.2,FR:3.48,RA:2.83,AC:2,TH:2.4,PA:2,U:2.3,NP:2,PU:2,AM:2,CM:2,BK:2,CF:2,ES:2,FM:2,MD:2,NO:2,LR:2,RF:2,DB:2,SG:2,BH:2,HS:2,MT:2,DS:2,RG:2,CN:2,UUT:2,FL:2,UUP:2,LV:2,UUH:2},rg=2,og={H:.31,HE:.28,LI:1.28,BE:.96,B:.84,C:.76,N:.71,O:.66,F:.57,NE:.58,NA:1.66,MG:1.41,AL:1.21,SI:1.11,P:1.07,S:1.05,CL:1.02,AR:1.06,K:2.03,CA:1.76,SC:1.7,TI:1.6,V:1.53,CR:1.39,MN:1.39,FE:1.32,CO:1.26,NI:1.24,CU:1.32,ZN:1.22,GA:1.22,GE:1.2,AS:1.19,SE:1.2,BR:1.2,KR:1.16,RB:2.2,SR:1.95,Y:1.9,ZR:1.75,NB:1.64,MO:1.54,TC:1.47,RU:1.46,RH:1.42,PD:1.39,AG:1.45,CD:1.44,IN:1.42,SN:1.39,SB:1.39,TE:1.38,I:1.39,XE:1.4,CS:2.44,BA:2.15,LA:2.07,CE:2.04,PR:2.03,ND:2.01,PM:1.99,SM:1.98,EU:1.98,GD:1.96,TB:1.94,DY:1.92,HO:1.92,ER:1.89,TM:1.9,YB:1.87,LU:1.87,HF:1.75,TA:1.7,W:1.62,RE:1.51,OS:1.44,IR:1.41,PT:1.36,AU:1.36,HG:1.32,TL:1.45,PB:1.46,BI:1.48,PO:1.4,AT:1.5,RN:1.5,FR:2.6,RA:2.21,AC:2.15,TH:2.06,PA:2,U:1.96,NP:1.9,PU:1.87,AM:1.8,CM:1.69,BK:1.6,CF:1.6,ES:1.6,FM:1.6,MD:1.6,NO:1.6,LR:1.6,RF:1.6,DB:1.6,SG:1.6,BH:1.6,HS:1.6,MT:1.6,DS:1.6,RG:1.6,CN:1.6,UUT:1.6,FL:1.6,UUP:1.6,LV:1.6,UUH:1.6},ag=1.6,sg={ALA:[.17,.5,.33],ARG:[.81,1.81,1],ASN:[.42,.85,.43],ASP:[1.23,3.64,2.41],ASH:[-.07,.43,.5],CYS:[-.24,-.02,.22],GLN:[.58,.77,.19],GLU:[2.02,3.63,1.61],GLH:[-.01,.11,.12],GLY:[.01,1.15,1.14],HIS:[.17,.11,-.06],ILE:[-.31,-1.12,-.81],LEU:[-.56,-1.25,-.69],LYS:[.99,2.8,1.81],MET:[-.23,-.67,-.44],PHE:[-1.13,-1.71,-.58],PRO:[.45,.14,-.31],SER:[.13,.46,.33],THR:[.14,.25,.11],TRP:[-1.85,-2.09,-.24],TYR:[-.94,-.71,.23],VAL:[.07,-.46,-.53]},cg=[0,0,0],ug={HIS:\"H\",ARG:\"R\",LYS:\"K\",ILE:\"I\",PHE:\"F\",LEU:\"L\",TRP:\"W\",ALA:\"A\",MET:\"M\",PRO:\"P\",CYS:\"C\",ASN:\"N\",VAL:\"V\",GLY:\"G\",SER:\"S\",GLN:\"Q\",TYR:\"Y\",ASP:\"D\",GLU:\"E\",THR:\"T\",ASH:\"D\",GLH:\"E\",UNK:\"\"},hg=Object.keys(ug),lg=[\"A\",\"C\",\"T\",\"G\",\"U\"],dg=[\"DA\",\"DC\",\"DT\",\"DG\",\"DU\",\"TCY\",\"MCY\",\"5CM\"],fg=[\"A\",\"G\",\"DA\",\"DG\"],pg=[\"SOL\",\"WAT\",\"HOH\",\"H2O\",\"W\",\"DOD\",\"D3O\"],mg=[\"3CO\",\"3NI\",\"4MO\",\"6MO\",\"AG\",\"AL\",\"AU\",\"AU3\",\"BA\",\"BR\",\"CA\",\"CD\",\"CE\",\"CL\",\"CO\",\"CR\",\"CU\",\"CU1\",\"CU3\",\"F\",\"FE\",\"FE2\",\"GA\",\"K\",\"LI\",\"MG\",\"MN\",\"MN3\",\"NA\",\"ND4\",\"NH4\",\"NI\",\"OH\",\"OHX\",\"RB\",\"SR\",\"V\",\"Y1\",\"YT3\",\"ZN\"],gg=[\"CA\",\"C\",\"N\",\"O\",\"O1\",\"O2\",\"OC1\",\"OC2\",\"OX1\",\"OXT\",\"H\",\"H1\",\"H2\",\"H3\",\"HA\",\"BB\"],vg=[\"P\",\"O3'\",\"O5'\",\"C5'\",\"C4'\",\"C3'\",\"OP1\",\"OP2\",\"O3*\",\"O5*\",\"C5*\",\"C4*\",\"C3*\"],yg={};yg[Gm]={trace:\"CA\",direction1:\"C\",direction2:[\"O\",\"OC1\",\"O1\",\"OX1\",\"OXT\"],backboneStart:\"N\",backboneEnd:\"C\"},yg[Hm]={trace:[\"C4'\",\"C4*\"],direction1:[\"C1'\",\"C1*\"],direction2:[\"C3'\",\"C3*\"],backboneStart:\"P\",backboneEnd:[\"O3'\",\"O3*\"]},yg[Wm]={trace:[\"C3'\",\"C3*\"],direction1:[\"C2'\",\"C2*\"],direction2:[\"O4'\",\"O4*\"],backboneStart:\"P\",backboneEnd:[\"O3'\",\"O3*\"]},yg[Xm]={trace:[\"CA\",\"BB\"],backboneStart:[\"CA\",\"BB\"],backboneEnd:[\"CA\",\"BB\"]},yg[qm]={trace:[\"C4'\",\"C4*\",\"P\"],backboneStart:[\"C4'\",\"C4*\",\"P\"],backboneEnd:[\"C4'\",\"C4*\",\"P\"]},yg[Ym]={trace:[\"C3'\",\"C3*\",\"C2'\",\"P\"],backboneStart:[\"C3'\",\"C3*\",\"C2'\",\"P\"],backboneEnd:[\"C3'\",\"C3*\",\"C2'\",\"P\"]},yg[Vm]={};var bg,xg,_g,wg,Sg,Ag,Mg,Pg,Eg,Cg,Tg,Ig,Lg,Og,Rg,kg,Dg,Ng,Fg,zg,Bg,Ug,jg,$g,Vg,Gg,Hg,Wg,Xg,qg,Yg,Zg,Kg,Qg,Jg,tv,ev,iv,nv,rv,ov,av,sv,cv,uv,hv,lv,dv,fv,pv,mv,gv,vv,yv,bv,xv,_v,wv,Sv,Av,Mv,Pv,Ev,Cv,Tv,Iv,Lv,Ov,Rv,kv,Dv,Nv,Fv,zv,Bv,Uv,jv,$v,Vv=[].slice;zv=function(){var t,e,i,n,r;for(t={},r=\"Boolean Number String Function Array Date RegExp Undefined Null\".split(\" \"),n=0,e=r.length;ni&&(t=i),t},Bv=function(t){return t.length>=3?[].slice.call(t):t[0]},zg=function(t){var e;for(e in t)e<3?(t[e]<0&&(t[e]=0),t[e]>255&&(t[e]=255)):3===e&&(t[e]<0&&(t[e]=0),t[e]>1&&(t[e]=1));return t},wg=Math.PI,Rv=Math.round,jg=Math.cos,Wg=Math.floor,yv=Math.pow,hv=Math.log,Dv=Math.sin,Nv=Math.sqrt,Lg=Math.atan2,fv=Math.max,Ig=Math.abs,Mg=2*wg,Sg=wg/3,xg=wg/180,Ag=180/wg,Fg=function(){return arguments[0]instanceof bg?arguments[0]:function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,arguments,function(){})},Tg=[],Fg.version=\"1.1.1\",Cg={},Pg=[],Eg=!1,bg=function(){function t(){var t,e,i,n,r,o,a,s,c;for(o=this,e=[],s=0,n=arguments.length;s3?e[3]:1]},$v=function(t){return Rv(255*(t<=.00304?12.92*t:1.055*yv(t,1/2.4)-.055))},ov=function(t){return t>_g.t1?t*t*t:_g.t2*(t-_g.t0)},_g={Kn:18,Xn:.95047,Yn:1,Zn:1.08883,t0:.137931034,t1:.206896552,t2:.12841855,t3:.008856452},Mv=function(){var t,e,i,n,r,o,a,s;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],r=Iv(i,e,t),o=r[0],a=r[1],s=r[2],[116*a-16,500*(o-a),200*(a-s)]},Lv=function(t){return(t/=255)<=.04045?t/12.92:yv((t+.055)/1.055,2.4)},jv=function(t){return t>_g.t3?yv(t,1/3):t/_g.t2+_g.t0},Iv=function(){var t,e,i,n,r,o,a;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],i=Lv(i),e=Lv(e),t=Lv(t),r=jv((.4124564*i+.3575761*e+.1804375*t)/_g.Xn),o=jv((.2126729*i+.7151522*e+.072175*t)/_g.Yn),a=jv((.0193339*i+.119192*e+.9503041*t)/_g.Zn),[r,o,a]},Fg.lab=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"lab\"]),function(){})},Cg.lab=rv,bg.prototype.lab=function(){return Mv(this._rgb)},Og=function(t){var e,i,n,r,o,a,s,c,u,h,l;return t=function(){var e,i,n;for(n=[],i=0,e=t.length;i=0&&e[3]<=1?\"rgb\":void 0}}),Xg=function(t){var e,i,n,r,o,a;if(t.match(/^#?([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))return 4!==t.length&&7!==t.length||(t=t.substr(1)),3===t.length&&(t=t.split(\"\"),t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]),a=parseInt(t,16),r=a>>16,n=a>>8&255,i=255&a,[r,n,i,1];if(t.match(/^#?([A-Fa-f0-9]{8})$/))return 9===t.length&&(t=t.substr(1)),a=parseInt(t,16),r=a>>24&255,n=a>>16&255,i=a>>8&255,e=Rv((255&a)/255*100)/100,[r,n,i,e];if(null!=Cg.css&&(o=Cg.css(t)))return o;throw\"unknown color: \"+t},_v=function(t,e){var i,n,r,o,a,s,c;return null==e&&(e=\"rgb\"),a=t[0],r=t[1],n=t[2],i=t[3],c=a<<16|r<<8|n,s=\"000000\"+c.toString(16),s=s.substr(s.length-6),o=\"0\"+Rv(255*i).toString(16),o=o.substr(o.length-2),\"#\"+function(){switch(e.toLowerCase()){case\"rgba\":return s+o;case\"argb\":return o+s;default:return s}}()},Cg.hex=function(t){return Xg(t)},Fg.hex=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hex\"]),function(){})},bg.prototype.hex=function(t){return null==t&&(t=\"rgb\"),_v(this._rgb,t)},Pg.push({p:10,test:function(t){if(1===arguments.length&&\"string\"===zv(t))return\"hex\"}}),Zg=function(){var t,e,i,n,r,o,a,s,c,u,h,l,d,f;if(t=Bv(arguments),r=t[0],h=t[1],a=t[2],0===h)c=n=e=255*a;else{for(f=[0,0,0],i=[0,0,0],d=a<.5?a*(1+h):a+h-a*h,l=2*a-d,r/=360,f[0]=r+1/3,f[1]=r,f[2]=r-1/3,o=s=0;s<=2;o=++s)f[o]<0&&(f[o]+=1),f[o]>1&&(f[o]-=1),6*f[o]<1?i[o]=l+6*(d-l)*f[o]:2*f[o]<1?i[o]=d:3*f[o]<2?i[o]=l+(d-l)*(2/3-f[o])*6:i[o]=l;u=[Rv(255*i[0]),Rv(255*i[1]),Rv(255*i[2])],c=u[0],n=u[1],e=u[2]}return t.length>3?[c,n,e,t[3]]:[c,n,e]},Sv=function(t,e,i){var n,r,o,a,s;return void 0!==t&&t.length>=3&&(a=t,t=a[0],e=a[1],i=a[2]),t/=255,e/=255,i/=255,o=Math.min(t,e,i),fv=Math.max(t,e,i),r=(fv+o)/2,fv===o?(s=0,n=Number.NaN):s=r<.5?(fv-o)/(fv+o):(fv-o)/(2-fv-o),t===fv?n=(e-i)/(fv-o):e===fv?n=2+(i-t)/(fv-o):i===fv&&(n=4+(t-e)/(fv-o)),n*=60,n<0&&(n+=360),[n,s,r]},Fg.hsl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsl\"]),function(){})},Cg.hsl=Zg,bg.prototype.hsl=function(){return Sv(this._rgb)},Kg=function(){var t,e,i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v;if(t=Bv(arguments),r=t[0],m=t[1],v=t[2],v*=255,0===m)c=n=e=v;else switch(360===r&&(r=0),r>360&&(r-=360),r<0&&(r+=360),r/=60,o=Wg(r),i=r-o,a=v*(1-m),s=v*(1-m*i),g=v*(1-m*(1-i)),o){case 0:u=[v,g,a],c=u[0],n=u[1],e=u[2];break;case 1:h=[s,v,a],c=h[0],n=h[1],e=h[2];break;case 2:l=[a,v,g],c=l[0],n=l[1],e=l[2];break;case 3:d=[a,s,v],c=d[0],n=d[1],e=d[2];break;case 4:f=[g,a,v],c=f[0],n=f[1],e=f[2];break;case 5:p=[v,a,s],c=p[0],n=p[1],e=p[2]}return c=Rv(c),n=Rv(n),e=Rv(e),[c,n,e,t.length>3?t[3]:1]},Av=function(){var t,e,i,n,r,o,a,s,c;return a=Bv(arguments),o=a[0],i=a[1],t=a[2],r=Math.min(o,i,t),fv=Math.max(o,i,t),e=fv-r,c=fv/255,0===fv?(n=Number.NaN,s=0):(s=e/fv,o===fv&&(n=(i-t)/e),i===fv&&(n=2+(t-o)/e),t===fv&&(n=4+(o-i)/e),n*=60,n<0&&(n+=360)),[n,s,c]},Fg.hsv=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsv\"]),function(){})},Cg.hsv=Kg,bg.prototype.hsv=function(){return Av(this._rgb)},gv=function(t){var e,i,n;return\"number\"===zv(t)&&t>=0&&t<=16777215?(n=t>>16,i=t>>8&255,e=255&t,[n,i,e,1]):(console.warn(\"unknown num color: \"+t),[0,0,0,1])},Cv=function(){var t,e,i,n;return n=Bv(arguments),i=n[0],e=n[1],t=n[2],(i<<16)+(e<<8)+t},Fg.num=function(t){return new bg(t,\"num\")},bg.prototype.num=function(t){return null==t&&(t=\"rgb\"),Cv(this._rgb,t)},Cg.num=gv,Pg.push({p:10,test:function(t){if(1===arguments.length&&\"number\"===zv(t)&&t>=0&&t<=16777215)return\"num\"}}),$g=function(t){var e,i,n,r,o,a,s,c;if(t=t.toLowerCase(),null!=Fg.colors&&Fg.colors[t])return Xg(Fg.colors[t]);if(o=t.match(/rgb\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*\\)/)){for(s=o.slice(1,4),r=a=0;a<=2;r=++a)s[r]=+s[r];s[3]=1}else if(o=t.match(/rgba\\(\\s*(\\-?\\d+),\\s*(\\-?\\d+)\\s*,\\s*(\\-?\\d+)\\s*,\\s*([01]|[01]?\\.\\d+)\\)/))for(s=o.slice(1,5),r=c=0;c<=3;r=++c)s[r]=+s[r];else if(o=t.match(/rgb\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/)){for(s=o.slice(1,4),r=e=0;e<=2;r=++e)s[r]=Rv(2.55*s[r]);s[3]=1}else if(o=t.match(/rgba\\(\\s*(\\-?\\d+(?:\\.\\d+)?)%,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/)){for(s=o.slice(1,5),r=i=0;i<=2;r=++i)s[r]=Rv(2.55*s[r]);s[3]=+s[3]}else(o=t.match(/hsl\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*\\)/))?(n=o.slice(1,4),n[1]*=.01,n[2]*=.01,s=Zg(n),s[3]=1):(o=t.match(/hsla\\(\\s*(\\-?\\d+(?:\\.\\d+)?),\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*(\\-?\\d+(?:\\.\\d+)?)%\\s*,\\s*([01]|[01]?\\.\\d+)\\)/))&&(n=o.slice(1,4),n[1]*=.01,n[2]*=.01,s=Zg(n),s[3]=+o[4]);return s},xv=function(t){var e;return e=t[3]<1?\"rgba\":\"rgb\",\"rgb\"===e?e+\"(\"+t.slice(0,3).map(Rv).join(\",\")+\")\":\"rgba\"===e?e+\"(\"+t.slice(0,3).map(Rv).join(\",\")+\",\"+t[3]+\")\":void 0},Ov=function(t){return Rv(100*t)/100},Yg=function(t,e){var i;return i=e<1?\"hsla\":\"hsl\",t[0]=Ov(t[0]||0),t[1]=Ov(100*t[1])+\"%\",t[2]=Ov(100*t[2])+\"%\",\"hsla\"===i&&(t[3]=e),i+\"(\"+t.join(\",\")+\")\"},Cg.css=function(t){return $g(t)},Fg.css=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"css\"]),function(){})},bg.prototype.css=function(t){return null==t&&(t=\"rgb\"),\"rgb\"===t.slice(0,3)?xv(this._rgb):\"hsl\"===t.slice(0,3)?Yg(this.hsl(),this.alpha()):void 0},Cg.named=function(t){return Xg(Uv[t])},Pg.push({p:20,test:function(t){if(1===arguments.length&&null!=Uv[t])return\"named\"}}),bg.prototype.name=function(t){var e,i;arguments.length&&(Uv[t]&&(this._rgb=Xg(Uv[t])),this._rgb[3]=1),e=this.hex();for(i in Uv)if(e===Uv[i])return i;return e},av=function(){var t,e,i,n;return n=Bv(arguments),i=n[0],t=n[1],e=n[2],e*=xg,[i,jg(e)*t,Dv(e)*t]},sv=function(){var t,e,i,n,r,o,a,s,c,u,h;return i=Bv(arguments),s=i[0],r=i[1],a=i[2],u=av(s,r,a),t=u[0],e=u[1],n=u[2],h=rv(t,e,n),c=h[0],o=h[1],n=h[2],[uv(c,0,255),uv(o,0,255),uv(n,0,255),i.length>3?i[3]:1]},nv=function(){var t,e,i,n,r,o;return o=Bv(arguments),r=o[0],t=o[1],e=o[2],i=Nv(t*t+e*e),n=(Lg(e,t)*Ag+360)%360,0===Rv(1e4*i)&&(n=Number.NaN),[r,i,n]},Pv=function(){var t,e,i,n,r,o,a;return o=Bv(arguments),r=o[0],i=o[1],e=o[2],a=Mv(r,i,e),n=a[0],t=a[1],e=a[2],nv(n,t,e)},Fg.lch=function(){var t;return t=Bv(arguments),new bg(t,\"lch\")},Fg.hcl=function(){var t;return t=Bv(arguments),new bg(t,\"hcl\")},Cg.lch=sv,Cg.hcl=function(){var t,e,i,n;return n=Bv(arguments),e=n[0],t=n[1],i=n[2],sv([i,t,e])},bg.prototype.lch=function(){return Pv(this._rgb)},bg.prototype.hcl=function(){return Pv(this._rgb).reverse()},bv=function(t){var e,i,n,r,o,a,s,c,u;return null==t&&(t=\"rgb\"),c=Bv(arguments),s=c[0],r=c[1],e=c[2],s/=255,r/=255,e/=255,o=1-Math.max(s,Math.max(r,e)),n=o<1?1/(1-o):0,i=(1-s-o)*n,a=(1-r-o)*n,u=(1-e-o)*n,[i,a,u,o]},Bg=function(){var t,e,i,n,r,o,a,s,c;return e=Bv(arguments),n=e[0],a=e[1],c=e[2],o=e[3],t=e.length>4?e[4]:1,1===o?[0,0,0,t]:(s=n>=1?0:Rv(255*(1-n)*(1-o)),r=a>=1?0:Rv(255*(1-a)*(1-o)),i=c>=1?0:Rv(255*(1-c)*(1-o)),[s,r,i,t])},Cg.cmyk=function(){return Bg(Bv(arguments))},Fg.cmyk=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"cmyk\"]),function(){})},bg.prototype.cmyk=function(){return bv(this._rgb)},Cg.gl=function(){var t,e,i,n,r;for(n=function(){var t,i;t=Bv(arguments),i=[];for(e in t)r=t[e],i.push(r);return i}.apply(this,arguments),t=i=0;i<=2;t=++i)n[t]*=255;return n},Fg.gl=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"gl\"]),function(){})},bg.prototype.gl=function(){var t;return t=this._rgb,[t[0]/255,t[1]/255,t[2]/255,t[3]]},Ev=function(t,e,i){var n;return n=Bv(arguments),t=n[0],e=n[1],i=n[2],t=lv(t),e=lv(e),i=lv(i),.2126*t+.7152*e+.0722*i},lv=function(t){return t/=255,t<=.03928?t/12.92:yv((t+.055)/1.055,2.4)},Tg=[],Qg=function(t,e,i,n){var r,o,a,s;for(null==i&&(i=.5),null==n&&(n=\"rgb\"),\"object\"!==zv(t)&&(t=Fg(t)),\"object\"!==zv(e)&&(e=Fg(e)),a=0,o=Tg.length;at?o(i,c):o(c,a)},i=Ev(this._rgb),this._rgb=(i>t?o(Fg(\"black\"),this):o(this,Fg(\"white\"))).rgba()),this):Ev(this._rgb)},Fv=function(t){var e,i,n,r;return r=t/100,r<66?(n=255,i=-155.25485562709179-.44596950469579133*(i=r-2)+104.49216199393888*hv(i),e=r<20?0:-254.76935184120902+.8274096064007395*(e=r-10)+115.67994401066147*hv(e)):(n=351.97690566805693+.114206453784165*(n=r-55)-40.25366309332127*hv(n),i=325.4494125711974+.07943456536662342*(i=r-50)-28.0852963507957*hv(i),e=255),zg([n,i,e])},Tv=function(){var t,e,i,n,r,o,a,s,c;for(a=Bv(arguments),o=a[0],i=a[1],t=a[2],r=1e3,n=4e4,e=.4;n-r>e;)c=.5*(n+r),s=Fv(c),s[2]/s[0]>=t/o?n=c:r=c;return Rv(c)},Fg.temperature=Fg.kelvin=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"temperature\"]),function(){})},Cg.temperature=Cg.kelvin=Cg.K=Fv,bg.prototype.temperature=function(){return Tv(this._rgb)},bg.prototype.kelvin=bg.prototype.temperature,Fg.contrast=function(t,e){var i,n,r,o;return\"string\"!==(r=zv(t))&&\"number\"!==r||(t=new bg(t)),\"string\"!==(o=zv(e))&&\"number\"!==o||(e=new bg(e)),i=t.luminance(),n=e.luminance(),i>n?(i+.05)/(n+.05):(n+.05)/(i+.05)},bg.prototype.get=function(t){var e,i,n,r,o,a;return n=this,o=t.split(\".\"),r=o[0],e=o[1],a=n[r](),e?(i=r.indexOf(e),i>-1?a[i]:console.warn(\"unknown channel \"+e+\" in mode \"+r)):a},bg.prototype.set=function(t,e){var i,n,r,o,a,s;if(r=this,a=t.split(\".\"),o=a[0],i=a[1],i)if(s=r[o](),n=o.indexOf(i),n>-1)if(\"string\"===zv(e))switch(e.charAt(0)){case\"+\":s[n]+=+e;break;case\"-\":s[n]+=+e;break;case\"*\":s[n]*=+e.substr(1);break;case\"/\":s[n]/=+e.substr(1);break;default:s[n]=+e}else s[n]=e;else console.warn(\"unknown channel \"+i+\" in mode \"+o);else s=e;return r._rgb=Fg(s,o).alpha(r.alpha())._rgb,r},bg.prototype.darken=function(t){var e,i;return null==t&&(t=1),i=this,e=i.lab(),e[0]-=_g.Kn*t,Fg.lab(e).alpha(i.alpha())},bg.prototype.brighten=function(t){return null==t&&(t=1),this.darken(-t)},bg.prototype.darker=bg.prototype.darken,bg.prototype.brighter=bg.prototype.brighten,bg.prototype.saturate=function(t){var e,i;return null==t&&(t=1),i=this,e=i.lch(),e[1]+=t*_g.Kn,e[1]<0&&(e[1]=0),Fg.lch(e).alpha(i.alpha())},bg.prototype.desaturate=function(t){return null==t&&(t=1),this.saturate(-t)},bg.prototype.premultiply=function(){var t,e;return e=this.rgb(),t=this.alpha(),Fg(e[0]*t,e[1]*t,e[2]*t,t)},Rg=function(t,e,i){if(!Rg[i])throw\"unknown blend mode \"+i;return Rg[i](t,e)},kg=function(t){return function(e,i){var n,r;return n=Fg(i).rgb(),r=Fg(e).rgb(),Fg(t(n,r),\"rgb\")}},Hg=function(t){return function(e,i){var n,r,o;for(o=[],n=r=0;r<=3;n=++r)o[n]=t(e[n],i[n]);return o}},mv=function(t,e){return t},pv=function(t,e){return t*e/255},Vg=function(t,e){return t>e?e:t},cv=function(t,e){return t>e?t:e},kv=function(t,e){return 255*(1-(1-t/255)*(1-e/255))},vv=function(t,e){return e<128?2*t*e/255:255*(1-2*(1-t/255)*(1-e/255))},Ng=function(t,e){return 255*(1-(1-e/255)/(t/255))},Gg=function(t,e){return 255===t?255:(t=255*(e/255)/(1-t/255),t>255?255:t)},Rg.normal=kg(Hg(mv)),Rg.multiply=kg(Hg(pv)),Rg.screen=kg(Hg(kv)),Rg.overlay=kg(Hg(vv)),Rg.darken=kg(Hg(Vg)),Rg.lighten=kg(Hg(cv)),Rg.dodge=kg(Hg(Gg)),Rg.burn=kg(Hg(Ng)),Fg.blend=Rg,Fg.analyze=function(t){var e,i,n,r;for(n={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0},i=0,e=t.length;in.max&&(n.max=r),n.count+=1);return n.domain=[n.min,n.max],n.limits=function(t,e){return Fg.limits(n,t,e)},n},Fg.scale=function(t,e){var i,n,r,o,a,s,c,u,h,l,d,f,p,m,g,v,y,b,x,_,w;return h=\"rgb\",l=Fg(\"#ccc\"),m=0,s=!1,a=[0,1],p=[],f=[0,0],i=!1,r=[],d=!1,u=0,c=1,o=!1,n={},_=function(t){var e,i,n,o,a,s,c;if(null==t&&(t=[\"#fff\",\"#000\"]),null!=t&&\"string\"===zv(t)&&null!=(null!=(o=Fg.brewer)?o[t]:void 0)&&(t=Fg.brewer[t]),\"array\"===zv(t)){for(t=t.slice(0),e=n=0,a=t.length-1;0<=a?n<=a:n>=a;e=0<=a?++n:--n)i=t[e],\"string\"===zv(i)&&(t[e]=Fg(i));for(p.length=0,e=c=0,s=t.length-1;0<=s?c<=s:c>=s;e=0<=s?++c:--c)p.push(e/(t.length-1))}return x(),r=t},y=function(t){var e,n;if(null!=i){for(n=i.length-1,e=0;e=i[e];)e++;return e-1}return 0},w=function(t){return t},g=function(t){var e,n,r,o,a;return a=t,i.length>2&&(o=i.length-1,e=y(t),r=i[0]+(i[1]-i[0])*(0+.5*m),n=i[o-1]+(i[o]-i[o-1])*(1-.5*m),a=u+(i[e]+.5*(i[e+1]-i[e])-r)/(n-r)*(c-u)),a},b=function(t,e){var o,a,s,d,m,g,v,b;if(null==e&&(e=!1),isNaN(t))return l;if(e?b=t:i&&i.length>2?(o=y(t),b=o/(i.length-2),b=f[0]+b*(1-f[0]-f[1])):c!==u?(b=(t-u)/(c-u),b=f[0]+b*(1-f[0]-f[1]),b=Math.min(1,Math.max(0,b))):b=1,e||(b=w(b)),d=Math.floor(1e4*b),n[d])a=n[d];else{if(\"array\"===zv(r))for(s=m=0,v=p.length-1;0<=v?m<=v:m>=v;s=0<=v?++m:--m){if(g=p[s],b<=g){a=r[s];break}if(b>=g&&s===p.length-1){a=r[s];break}if(b>g&&b=h;e=0<=h?++l:--l)p.push(e/(n-1));return a=[u,c],v},v.mode=function(t){return arguments.length?(h=t,x(),v):h},v.range=function(t,e){return _(t,e),v},v.out=function(t){return d=t,v},v.spread=function(t){return arguments.length?(m=t,v):m},v.correctLightness=function(t){return null==t&&(t=!0),o=t,x(),w=o?function(t){var e,i,n,r,o,a,s,c,u;for(e=b(0,!0).lab()[0],i=b(1,!0).lab()[0],s=e>i,n=b(t,!0).lab()[0],o=e+(i-e)*t,r=n-o,c=0,u=1,a=20;Math.abs(r)>.01&&a-- >0;)!function(){return s&&(r*=-1),r<0?(c=t,t+=.5*(u-t)):(u=t,t+=.5*(c-t)),n=b(t,!0).lab()[0],r=n-o}();return t}:function(t){return t},v},v.padding=function(t){return null!=t?(\"number\"===zv(t)&&(t=[t,t]),f=t,v):f},v.colors=function(){var e,n,r,o,s,c,u,h,l;if(o=0,s=\"hex\",1===arguments.length&&(\"string\"===zv(arguments[0])?s=arguments[0]:o=arguments[0]),2===arguments.length&&(o=arguments[0],s=arguments[1]),o)return n=a[0],e=a[1]-n,function(){u=[];for(var t=0;0<=o?to;0<=o?t++:t--)u.push(t);return u}.apply(this).map(function(t){return v(n+t/(o-1)*e)[s]()});if(t=[],h=[],i&&i.length>2)for(r=l=1,c=i.length;1<=c?lc;r=1<=c?++l:--l)h.push(.5*(i[r-1]+i[r]));else h=a;return h.map(function(t){return v(t)[s]()})},v},null==Fg.scales&&(Fg.scales={}),Fg.scales.cool=function(){return Fg.scale([Fg.hsl(180,1,.9),Fg.hsl(250,.7,.4)])},Fg.scales.hot=function(){return Fg.scale([\"#000\",\"#f00\",\"#ff0\",\"#fff\"],[0,.25,.75,1]).mode(\"rgb\")},Fg.analyze=function(t,e,i){var n,r,o,a,s,c,u;if(s={min:Number.MAX_VALUE,max:Number.MAX_VALUE*-1,sum:0,values:[],count:0},null==i&&(i=function(){return!0}),n=function(t){null==t||isNaN(t)||(s.values.push(t),s.sum+=t,ts.max&&(s.max=t),s.count+=1)},u=function(t,r){if(i(t,r))return n(null!=e&&\"function\"===zv(e)?e(t):null!=e&&\"string\"===zv(e)||\"number\"===zv(e)?t[e]:t)},\"array\"===zv(t))for(a=0,o=t.length;a=F;w=1<=F?++R:--R)M.push(E+w/i*(fv-E));M.push(fv)}else if(\"l\"===e.substr(0,1)){if(E<=0)throw\"Logarithmic scales are only possible for values > 0\";for(C=Math.LOG10E*hv(E),P=Math.LOG10E*hv(fv),M.push(E),w=nt=1,z=i-1;1<=z?nt<=z:nt>=z;w=1<=z?++nt:--nt)M.push(yv(10,C+w/i*(P-C)));M.push(fv)}else if(\"q\"===e.substr(0,1)){for(M.push(E),w=n=1,G=i-1;1<=G?n<=G:n>=G;w=1<=G?++n:--n)k=it.length*w/i,D=Wg(k),D===k?M.push(it[D]):(N=k-D,M.push(it[D]*N+it[D+1]*(1-N)));M.push(fv)}else if(\"k\"===e.substr(0,1)){for(I=it.length,g=new Array(I),x=new Array(i),Q=!0,L=0,y=null,y=[],y.push(E),w=r=1,H=i-1;1<=H?r<=H:r>=H;w=1<=H?++r:--r)y.push(E+w/i*(fv-E));for(y.push(fv);Q;){for(S=o=0,W=i-1;0<=W?o<=W:o>=W;S=0<=W?++o:--o)x[S]=0;for(w=a=0,X=I-1;0<=X?a<=X:a>=X;w=0<=X?++a:--a){for(et=it[w],T=Number.MAX_VALUE,S=s=0,q=i-1;0<=q?s<=q:s>=q;S=0<=q?++s:--s)_=Ig(y[S]-et),_=Y;S=0<=Y?++c:--c)O[S]=null;for(w=u=0,Z=I-1;0<=Z?u<=Z:u>=Z;w=0<=Z?++u:--u)b=g[w],null===O[b]?O[b]=it[w]:O[b]+=it[w];for(S=h=0,K=i-1;0<=K?h<=K:h>=K;S=0<=K?++h:--h)O[S]*=1/x[S];for(Q=!1,S=l=0,B=i-1;0<=B?l<=B:l>=B;S=0<=B?++l:--l)if(O[S]!==y[w]){Q=!0;break}y=O,L++,L>200&&(Q=!1)}for(A={},S=d=0,U=i-1;0<=U?d<=U:d>=U;S=0<=U?++d:--d)A[S]=[];for(w=f=0,j=I-1;0<=j?f<=j:f>=j;w=0<=j?++f:--f)b=g[w],A[b].push(it[w]);for(tt=[],S=p=0,$=i-1;0<=$?p<=$:p>=$;S=0<=$?++p:--p)tt.push(A[S][0]),tt.push(A[S][A[S].length-1]);for(tt=tt.sort(function(t,e){return t-e}),M.push(tt[0]),w=m=1,V=tt.length-1;m<=V;w=m+=2)isNaN(tt[w])||M.push(tt[w])}return M},qg=function(t,e,i){var n,r,o,a;return n=Bv(arguments),t=n[0],e=n[1],i=n[2],t/=360,t<1/3?(r=(1-e)/3,a=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,o=1-(r+a)):t<2/3?(t-=1/3,a=(1-e)/3,o=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,r=1-(a+o)):(t-=2/3,o=(1-e)/3,r=(1+e*jg(Mg*t)/jg(Sg-Mg*t))/3,a=1-(o+r)),a=uv(i*a*3),o=uv(i*o*3),r=uv(i*r*3),[255*a,255*o,255*r,n.length>3?n[3]:1]},wv=function(){var t,e,i,n,r,o,a,s;return a=Bv(arguments),o=a[0],e=a[1],t=a[2],Mg=2*Math.PI,o/=255,e/=255,t/=255,r=Math.min(o,e,t),n=(o+e+t)/3,s=1-r/n,0===s?i=0:(i=(o-e+(o-t))/2,i/=Math.sqrt((o-e)*(o-e)+(o-t)*(e-t)),i=Math.acos(i),t>e&&(i=Mg-i),i/=Mg),[360*i,s,n]},Fg.hsi=function(){return function(t,e,i){i.prototype=t.prototype;var n=new i,r=t.apply(n,e);return Object(r)===r?r:n}(bg,Vv.call(arguments).concat([\"hsi\"]),function(){})},Cg.hsi=qg,bg.prototype.hsi=function(){return wv(this._rgb)},Jg=function(t,e,i,n){var r,o,a,s,c,u,h,l,d,f,p,m,g;return\"hsl\"===n?(m=t.hsl(),g=e.hsl()):\"hsv\"===n?(m=t.hsv(),g=e.hsv()):\"hsi\"===n?(m=t.hsi(),g=e.hsi()):\"lch\"!==n&&\"hcl\"!==n||(n=\"hcl\",m=t.hcl(),g=e.hcl()),\"h\"===n.substr(0,1)&&(a=m[0],f=m[1],u=m[2],s=g[0],p=g[1],h=g[2]),isNaN(a)||isNaN(s)?isNaN(a)?isNaN(s)?o=Number.NaN:(o=s,1!==u&&0!==u||\"hsv\"===n||(d=p)):(o=a,1!==h&&0!==h||\"hsv\"===n||(d=f)):(r=s>a&&s-a>180?s-(a+360):s180?s+360-a:s-a,o=a+i*r),null==d&&(d=f+i*(p-f)),c=u+i*(h-u),l=Fg[n](o,d,c)},Tg=Tg.concat(function(){var t,e,i,n;for(i=[\"hsv\",\"hsl\",\"hsi\",\"hcl\",\"lch\"],n=[],e=0,t=i.length;e>16&255)/255,e[i+1]=(t>>8&255)/255,e[i+2]=(255&t)/255,e},atomColor:function(){return 16777215},atomColorToArray:function(t,e,i){return this.colorToArray(this.atomColor(t),e,i)},bondColor:function(t,e){return this.atomProxy.index=e?t.atomIndex1:t.atomIndex2,this.atomColor(this.atomProxy)},bondColorToArray:function(t,e,i,n){return this.colorToArray(this.bondColor(t,e),i,n)},volumeColor:function(){return 16777215},volumeColorToArray:function(t,e,i){return this.colorToArray(this.volumeColor(t),e,i)},positionColor:function(){return 16777215},positionColorToArray:function(t,e,i){return this.colorToArray(this.positionColor(t),e,i)}},nr.prototype=ir.prototype,nr.prototype.constructor=nr,rr.prototype=ir.prototype,rr.prototype.constructor=rr,or.prototype=ir.prototype,or.prototype.constructor=or,ar.prototype=ir.prototype,ar.prototype.constructor=ar,sr.prototype=ir.prototype,sr.prototype.constructor=sr,cr.prototype=ir.prototype,cr.prototype.constructor=cr,ur.prototype=ir.prototype,ur.prototype.constructor=ur,hr.prototype=ir.prototype,hr.prototype.constructor=hr,lr.prototype=ir.prototype,lr.prototype.constructor=lr,dr.prototype=ir.prototype,dr.prototype.constructor=dr,fr.prototype=ir.prototype,fr.prototype.constructor=fr,pr.prototype=ir.prototype,pr.prototype.constructor=pr,mr.prototype=ir.prototype,mr.prototype.constructor=mr,gr.prototype=ir.prototype,gr.prototype.constructor=gr,vr.prototype=ir.prototype,vr.prototype.constructor=vr,yr.prototype=ir.prototype,yr.prototype.constructor=yr,er.types={\"\":ir,picking:or,random:ar,uniform:sr,atomindex:cr,residueindex:ur,chainindex:hr,chainname:lr,modelindex:dr,sstruc:fr,element:pr,resname:mr,bfactor:gr,hydrophobicity:yr,value:rr,volume:nr,occupancy:vr};var Kv=V(),Qv=!1,Jv=!1,ty={log:Function.prototype.bind.call(console.log,console),info:Function.prototype.bind.call(console.info,console),warn:Function.prototype.bind.call(console.warn,console),error:Function.prototype.bind.call(console.error,console),time:Function.prototype.bind.call(console.time,console),timeEnd:Function.prototype.bind.call(console.timeEnd,console)};t.Debug=j(U(\"debug\"));var ey=new tt,iy='

Your browser/graphics card does not seem to support WebGL.

Find out how to get it here.

',ny=new ot,ry=new er,oy=new J(\"datasource\"),ay=new J(\"representatation\"),sy=new J(\"parser\");Mr.prototype={constructor:Mr,type:\"\",__srcName:void 0,onload:function(){},onprogress:function(){},onerror:function(){},read:function(t){this._read(function(e){this.compressed?this.data=Q(e):(this.binary&&e instanceof ArrayBuffer&&(e=new Uint8Array(e)),this.data=e),\"function\"==typeof this.onload&&this.onload(this.data),t()}.bind(this))},_read:function(t){t(this.src)},_chunk:function(t,e){return e=Math.min(this.data.length,e),0===t&&this.data.length===e?this.data:this.binary||this.compressed?this.data.subarray(t,e):this.data.substring(t,e)},chunk:function(t){var e=t+this.chunkSize;return this._chunk(t,e)},peekLines:function(t){var e,i=this.data,n=i.length,r=this.binary||this.compressed?this.newline.charCodeAt(0):this.newline,o=0;for(e=0;en);return s.lines},lineCount:function(){console.warn(\"lineCount - deprecated\");for(var t=this.data,e=t.length,i=this.binary||this.compressed?this.newline.charCodeAt(0):this.newline,n=0,r=0;rthis.data.length))return this.__pointer+=this.chunkSize,this.chunk(t)},nextChunkOfLines:function(){var t=this.nextChunk();if(void 0!==t){var e=this.__pointer>this.data.length,i=this.chunkToLines(t,this.__partialLine,e);return this.__partialLine=i.partialLine,i.lines}},eachChunk:function(t){for(var e=this.chunkSize,i=this.data.length,n=this.chunkCount(),r=0;r=0),o[8]){case\"b\":i=parseInt(i,10).toString(2);break;case\"c\":i=String.fromCharCode(parseInt(i,10));break;case\"d\":case\"i\":i=parseInt(i,10);break;case\"j\":i=JSON.stringify(i,null,o[6]?parseInt(o[6]):0);break;case\"e\":i=o[7]?parseFloat(i).toExponential(o[7]):parseFloat(i).toExponential();break;case\"f\":i=o[7]?parseFloat(i).toFixed(o[7]):parseFloat(i);break;case\"g\":i=o[7]?parseFloat(i).toPrecision(o[7]):parseFloat(i);break;case\"o\":i=i.toString(8);break;case\"s\":i=String(i),i=o[7]?i.substring(0,o[7]):i;break;case\"t\":i=String(!!i),i=o[7]?i.substring(0,o[7]):i;break;case\"T\":i=Nr(i),i=o[7]?i.substring(0,o[7]):i;break;case\"u\":i=parseInt(i,10)>>>0;break;case\"v\":i=i.valueOf(),i=o[7]?i.substring(0,o[7]):i;break;case\"x\":i=parseInt(i,10).toString(16);break;case\"X\":i=parseInt(i,10).toString(16).toUpperCase()}uy.json.test(o[8])?d[d.length]=i:(!uy.number.test(o[8])||f&&!o[3]?p=\"\":(p=f?\"+\":\"-\",i=i.toString().replace(uy.sign,\"\")),s=o[4]?\"0\"===o[4]?\"0\":o[4].charAt(1):\" \",c=o[6]-(p+i).length,a=o[6]&&c>0?Fr(s,c):\"\",d[d.length]=o[5]?p+i+a:\"0\"===s?p+a+i:a+p+i)}return d.join(\"\")},Dr.cache={},Dr.parse=function(t){for(var e=t,i=[],n=[],r=0;e;){if(null!==(i=uy.text.exec(e)))n[n.length]=i[0];else if(null!==(i=uy.modulo.exec(e)))n[n.length]=\"%\";else{if(null===(i=uy.placeholder.exec(e)))throw new SyntaxError(\"[sprintf] unexpected placeholder\");if(i[2]){r|=1;var o=[],a=i[2],s=[];if(null===(s=uy.key.exec(a)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");for(o[o.length]=s[1];\"\"!==(a=a.substring(s[0].length));)if(null!==(s=uy.key_access.exec(a)))o[o.length]=s[1];else{if(null===(s=uy.index_access.exec(a)))throw new SyntaxError(\"[sprintf] failed to parse named argument key\");o[o.length]=s[1]}i[2]=o}else r|=2;if(3===r)throw new Error(\"[sprintf] mixing positional and named placeholders is not (yet) supported\");n[n.length]=i}e=e.substring(i[0].length)}return n};var hy={0:[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\"],\" \":[\"\",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],_:[\"\",\"_\",\"__\",\"___\",\"____\",\"_____\",\"______\",\"_______\"]};Br.prototype={clear:function(){this.change(-this.count)},change:function(t){this.count+=t,this.signals.countChanged.dispatch(t,this.count),this.count<0&&ty.warn(\"Counter.count below zero\",this.count)},increment:function(){this.change(1)},decrement:function(){this.change(-1)},listen:function(t){this.change(t.count),t.signals.countChanged.add(this.change,this)},unlisten:function(t){var e=t.signals.countChanged;e.has(this.change,this)&&e.remove(this.change,this)},onZeroOnce:function(t,e){if(0===this.count)t.call(e,0,0);else{var i=function(){0===this.count&&(this.signals.countChanged.remove(i,this),t.apply(e,arguments))};this.signals.countChanged.add(i,this)}},dispose:function(){this.clear(),this.signals.countChanged.dispose()}},Ur.prototype={update:function(){this.startTime=this.end(),this.signals.updated.dispatch()},begin:function(){this.startTime=performance.now(),this.lastFrames=this.frames},end:function(){var t=performance.now();return this.count+=1,this.frames+=1,this.lastDuration=t-this.startTime,this.minDuration=Math.min(this.minDuration,this.lastDuration),this.maxDuration=Math.max(this.maxDuration,this.lastDuration),this.avgDuration-=this.avgDuration/30,this.avgDuration+=this.lastDuration/30,t>this.prevFpsTime+1e3&&(this.lastFps=this.frames,this.prevFpsTime=t,this.frames=0),t}},jr.prototype=Object.create(at.prototype),jr.prototype.constructor=jr;var ly=\"\\nattribute vec3 mapping;\\nattribute vec3 position1;\\nattribute vec3 position2;\\nattribute float radius;\\nvarying vec3 axis;\\nvarying vec4 base_radius;\\nvarying vec4 end_b;\\nvarying vec3 U;\\nvarying vec3 V;\\nvarying vec4 w;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nattribute vec3 pickingColor2;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nattribute vec3 color2;\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#endif\\nuniform mat4 modelViewMatrixInverse;\\nuniform float ortho;\\nvoid main(){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\nvPickingColor2 = pickingColor2;\\n#else\\nvColor1 = color;\\nvColor2 = color2;\\n#endif\\nbase_radius.w = radius;\\nvec3 center = position;\\nvec3 dir = normalize( position2 - position1 );\\nfloat ext = length( position2 - position1 ) / 2.0;\\nvec3 cam_dir;\\nif( ortho == 0.0 ){\\ncam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 0, 1 ) ).xyz - center;\\n}else{\\ncam_dir = ( modelViewMatrixInverse * vec4( 0, 0, 1, 0 ) ).xyz;\\n}\\ncam_dir = normalize( cam_dir );\\nvec3 ldir;\\nfloat b = dot( cam_dir, dir );\\nend_b.w = b;\\nif( b < 0.0 )\\nldir = -ext * dir;\\nelse\\nldir = ext * dir;\\nvec3 left = normalize( cross( cam_dir, ldir ) );\\nleft = radius * left;\\nvec3 up = radius * normalize( cross( left, ldir ) );\\naxis = normalize( normalMatrix * ldir );\\nU = normalize( normalMatrix * up );\\nV = normalize( normalMatrix * left );\\nvec4 base4 = modelViewMatrix * vec4( center - ldir, 1.0 );\\nbase_radius.xyz = base4.xyz / base4.w;\\nvec4 top_position = modelViewMatrix * vec4( center + ldir, 1.0 );\\nvec4 end4 = top_position;\\nend_b.xyz = end4.xyz / end4.w;\\nw = modelViewMatrix * vec4(\\ncenter + mapping.x*ldir + mapping.y*left + mapping.z*up, 1.0\\n);\\ngl_Position = projectionMatrix * w;\\ngl_Position.z = 0.99;\\n}\",dy=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform mat4 projectionMatrix;\\nuniform float ortho;\\nvarying vec3 axis;\\nvarying vec4 base_radius;\\nvarying vec4 end_b;\\nvarying vec3 U;\\nvarying vec3 V;\\nvarying vec4 w;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#include common\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool interior = false;\\nfloat distSq3( vec3 v3a, vec3 v3b ){\\nreturn (\\n( v3a.x - v3b.x ) * ( v3a.x - v3b.x ) +\\n( v3a.y - v3b.y ) * ( v3a.y - v3b.y ) +\\n( v3a.z - v3b.z ) * ( v3a.z - v3b.z )\\n);\\n}\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nvoid main(){\\nvec3 point = w.xyz / w.w;\\nvec3 base = base_radius.xyz;\\nfloat vRadius = base_radius.w;\\nvec3 end = end_b.xyz;\\nfloat b = end_b.w;\\nvec3 end_cyl = end;\\nvec3 surface_point = point;\\nvec3 ray_target = surface_point;\\nvec3 ray_origin = vec3(0.0);\\nvec3 ray_direction = mix(normalize(ray_origin - ray_target), vec3(0.0, 0.0, 1.0), ortho);\\nmat3 basis = mat3( U, V, axis );\\nvec3 diff = ray_target - 0.5 * (base + end_cyl);\\nvec3 P = diff * basis;\\nfloat dz = dot( axis, ray_direction );\\nfloat radius2 = vRadius*vRadius;\\nvec3 D = vec3(dot(U, ray_direction),\\ndot(V, ray_direction),\\ndz);\\nfloat a0 = P.x*P.x + P.y*P.y - radius2;\\nfloat a1 = P.x*D.x + P.y*D.y;\\nfloat a2 = D.x*D.x + D.y*D.y;\\nfloat d = a1*a1 - a0*a2;\\nif (d < 0.0)\\ndiscard;\\nfloat dist = (-a1 + sqrt(d)) / a2;\\nvec3 new_point = ray_target + dist * ray_direction;\\nvec3 tmp_point = new_point - base;\\nvec3 _normal = normalize( tmp_point - axis * dot(tmp_point, axis) );\\nray_origin = mix( ray_origin, surface_point, ortho );\\nfloat cap_test = dot( new_point - base, axis );\\n#ifndef CAP\\nvec3 new_point2 = ray_target + ( (-a1 - sqrt(d)) / a2 ) * ray_direction;\\nvec3 tmp_point2 = new_point2 - base;\\n#endif\\nif (cap_test < 0.0)\\n{\\nfloat dNV = dot(-axis, ray_direction);\\nif (dNV < 0.0)\\ndiscard;\\nfloat near = dot(-axis, (base)) / dNV;\\nnew_point = ray_direction * near + ray_origin;\\nif (dot(new_point - base, new_point-base) > radius2)\\ndiscard;\\n#ifdef CAP\\n_normal = axis;\\n#else\\n_normal = -normalize( tmp_point2 - axis * dot(tmp_point2, axis) );\\n#endif\\n}\\ncap_test = dot((new_point - end_cyl), axis);\\nif( cap_test > 0.0 )\\n{\\nfloat dNV = dot(axis, ray_direction);\\nif (dNV < 0.0)\\ndiscard;\\nfloat near = dot(axis, end_cyl) / dNV;\\nnew_point = ray_direction * near + ray_origin;\\nif( dot(new_point - end_cyl, new_point-base) > radius2 )\\ndiscard;\\n#ifdef CAP\\n_normal = axis;\\n#else\\n_normal = -normalize( tmp_point2 - axis * dot(tmp_point2, axis) );\\n#endif\\n}\\ngl_FragDepthEXT = calcDepth( new_point );\\n#ifdef NEAR_CLIP\\nif( calcClip( new_point ) > 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\nif( calcClip( new_point ) > 0.0 )\\ndiscard;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );\\n}\\n}else if( gl_FragDepthEXT <= 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n}\\n#else\\nif( gl_FragDepthEXT <= 0.0 ){\\ndist = (-a1 - sqrt(d)) / a2;\\nnew_point = ray_target + dist * ray_direction;\\ninterior = true;\\ngl_FragDepthEXT = calcDepth( new_point );\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n}\\n#endif\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\n#ifdef PICKING\\nif( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){\\nif( b < 0.0 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n}else{\\nif( b > 0.0 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n}\\n#else\\nvec3 vViewPosition = -new_point;\\nvec3 vNormal = _normal;\\nvec3 vColor;\\nif( distSq3( new_point, end_cyl ) < distSq3( new_point, base ) ){\\nif( b < 0.0 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\n}else{\\nif( b > 0.0 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\n}\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\nvec3 normal = normalize( vNormal );\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",fy=\"\\nattribute vec3 mapping;\\nattribute float radius;\\nattribute float radius2;\\nattribute vec3 position1;\\nattribute vec3 position2;\\nvarying mat4 matrix_near;\\nvarying vec4 prime1;\\nvarying vec4 prime2;\\nvarying float vRadius;\\nvarying float vRadius2;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nattribute vec3 pickingColor2;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nattribute vec3 color2;\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#endif\\nuniform float shrink;\\nuniform mat4 modelViewProjectionMatrix;\\nuniform mat4 modelViewProjectionMatrixInverse;\\nvoid main(){\\nvRadius = radius;\\nvRadius2 = radius2;\\nvec4 spaceposition;\\nvec3 position_atom1;\\nvec3 position_atom2;\\nvec4 vertex_position;\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\nvPickingColor2 = pickingColor2;\\n#else\\nvColor1 = color;\\nvColor2 = color2;\\n#endif\\nfloat radius1 = radius;\\nposition_atom1 = position1;\\nposition_atom2 = position2;\\nfloat distance = distance( position_atom1, position_atom2 );\\nspaceposition.z = mapping.z * distance;\\nif (radius1 > radius2) {\\nspaceposition.y = mapping.y * 1.5 * radius1;\\nspaceposition.x = mapping.x * 1.5 * radius1;\\n} else {\\nspaceposition.y = mapping.y * 1.5 * radius2;\\nspaceposition.x = mapping.x * 1.5 * radius2;\\n}\\nspaceposition.w = 1.0;\\nvec4 e3 = vec4( 1.0 );\\nvec3 e1, e1_temp, e2, e2_temp;\\ne3.xyz = normalize(position_atom1-position_atom2);\\nif (e3.z == 0.0) { e3.z = 0.0000000000001;}\\nif ( (position_atom1.x - position_atom2.x) == 0.0) { position_atom1.x += 0.001;}\\nif ( (position_atom1.y - position_atom2.y) == 0.0) { position_atom1.y += 0.001;}\\nif ( (position_atom1.z - position_atom2.z) == 0.0) { position_atom1.z += 0.001;}\\nvec4 focus = vec4( 1.0 );\\nfocus.x = ( position_atom1.x*position_atom1.x - position_atom2.x*position_atom2.x +\\n( radius2*radius2 - radius1*radius1 )*e3.x*e3.x/shrink )/(2.0*(position_atom1.x - position_atom2.x));\\nfocus.y = ( position_atom1.y*position_atom1.y - position_atom2.y*position_atom2.y +\\n( radius2*radius2 - radius1*radius1 )*e3.y*e3.y/shrink )/(2.0*(position_atom1.y - position_atom2.y));\\nfocus.z = ( position_atom1.z*position_atom1.z - position_atom2.z*position_atom2.z +\\n( radius2*radius2 - radius1*radius1 )*e3.z*e3.z/shrink )/(2.0*(position_atom1.z - position_atom2.z));\\ne1.x = 1.0;\\ne1.y = 1.0;\\ne1.z = ( (e3.x*focus.x + e3.y*focus.y + e3.z*focus.z) - e1.x*e3.x - e1.y*e3.y)/e3.z;\\ne1_temp = e1 - focus.xyz;\\ne1 = normalize(e1_temp);\\ne2_temp = e1.yzx * e3.zxy - e1.zxy * e3.yzx;\\ne2 = normalize(e2_temp);\\nmat3 R= mat3( e1.xyz, e2.xyz, e3.xyz );\\nvertex_position.xyz = R * spaceposition.xyz;\\nvertex_position.w = 1.0;\\nvertex_position.x += (position_atom1.x+position_atom2.x) / 2.0;\\nvertex_position.y += (position_atom1.y+position_atom2.y) / 2.0;\\nvertex_position.z += (position_atom1.z+position_atom2.z) / 2.0;\\ngl_Position = modelViewProjectionMatrix * vertex_position;\\nvec4 i_near, i_far;\\nvec4 near = gl_Position;\\nnear.z = 0.0 ;\\nnear = modelViewProjectionMatrixInverse * near;\\ni_near = near;\\nvec4 far = gl_Position;\\nfar.z = far.w ;\\ni_far = modelViewProjectionMatrixInverse * far;\\nprime1 = vec4( position_atom1 - (position_atom1 - focus.xyz)*shrink, 1.0 );\\nprime2 = vec4( position_atom2 - (position_atom2 - focus.xyz)*shrink, 1.0 );\\nfloat Rsquare = (radius1*radius1/shrink) - (\\n(position_atom1.x - focus.x)*(position_atom1.x - focus.x) +\\n(position_atom1.y - focus.y)*(position_atom1.y - focus.y) +\\n(position_atom1.z - focus.z)*(position_atom1.z - focus.z)\\n);\\nfocus.w = Rsquare;\\nmatrix_near = mat4( i_near, i_far, focus, e3 );\\ngl_Position.z = 1.0;\\n}\",py=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform float shrink;\\nuniform mat4 modelViewMatrix;\\nuniform mat4 modelViewProjectionMatrix;\\nuniform mat4 modelViewMatrixInverseTranspose;\\nuniform mat4 projectionMatrix;\\nvarying mat4 matrix_near;\\nvarying vec4 prime1;\\nvarying vec4 prime2;\\nvarying float vRadius;\\nvarying float vRadius2;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\nvarying vec3 vPickingColor2;\\n#else\\nvarying vec3 vColor1;\\nvarying vec3 vColor2;\\n#include common\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool interior = false;\\nfloat calcClip( vec4 cameraPos ){\\nreturn dot( cameraPos, vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn calcClip( vec4( cameraPos, 1.0 ) );\\n}\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nstruct Ray {\\nvec3 origin ;\\nvec3 direction ;\\n};\\nbool cutoff_plane (vec3 M, vec3 cutoff, vec3 x3){\\nfloat a = x3.x;\\nfloat b = x3.y;\\nfloat c = x3.z;\\nfloat d = -x3.x*cutoff.x-x3.y*cutoff.y-x3.z*cutoff.z;\\nfloat l = a*M.x+b*M.y+c*M.z+d;\\nif (l<0.0) {return true;}\\nelse{return false;}\\n}\\nvec3 isect_surf(Ray r, mat4 matrix_coef){\\nvec4 direction = vec4(r.direction, 0.0);\\nvec4 origin = vec4(r.origin, 1.0);\\nfloat a = dot(direction,(matrix_coef*direction));\\nfloat b = dot(origin,(matrix_coef*direction));\\nfloat c = dot(origin,(matrix_coef*origin));\\nfloat delta =b*b-a*c;\\ngl_FragColor.a = 1.0;\\nif (delta<0.0){\\ndiscard;\\n}\\nfloat t1 =(-b-sqrt(delta))/a;\\nreturn r.origin+t1*r.direction;\\n}\\nvec3 isect_surf2(Ray r, mat4 matrix_coef){\\nvec4 direction = vec4(r.direction, 0.0);\\nvec4 origin = vec4(r.origin, 1.0);\\nfloat a = dot(direction,(matrix_coef*direction));\\nfloat b = dot(origin,(matrix_coef*direction));\\nfloat c = dot(origin,(matrix_coef*origin));\\nfloat delta =b*b-a*c;\\ngl_FragColor.a = 1.0;\\nif (delta<0.0){\\ndiscard;\\n}\\nfloat t2 =(-b+sqrt(delta))/a;\\nreturn r.origin+t2*r.direction;\\n}\\nRay primary_ray(vec4 near1, vec4 far1){\\nvec3 near=near1.xyz/near1.w;\\nvec3 far=far1.xyz/far1.w;\\nreturn Ray(near,far-near);\\n}\\nfloat update_z_buffer(vec3 M, mat4 ModelViewP){\\nfloat depth1;\\nvec4 Ms=(ModelViewP*vec4(M,1.0));\\nreturn depth1=(1.0+Ms.z/Ms.w)/2.0;\\n}\\nvoid main(){\\nfloat radius = max( vRadius, vRadius2 );\\nvec4 i_near, i_far, focus;\\nvec3 e3, e1, e1_temp, e2;\\ni_near = vec4(matrix_near[0][0],matrix_near[0][1],matrix_near[0][2],matrix_near[0][3]);\\ni_far = vec4(matrix_near[1][0],matrix_near[1][1],matrix_near[1][2],matrix_near[1][3]);\\nfocus = vec4(matrix_near[2][0],matrix_near[2][1],matrix_near[2][2],matrix_near[2][3]);\\ne3 = vec3(matrix_near[3][0],matrix_near[3][1],matrix_near[3][2]);\\ne1.x = 1.0;\\ne1.y = 1.0;\\ne1.z = ( (e3.x*focus.x + e3.y*focus.y + e3.z*focus.z) - e1.x*e3.x - e1.y*e3.y)/e3.z;\\ne1_temp = e1 - focus.xyz;\\ne1 = normalize(e1_temp);\\ne2 = normalize(cross(e1,e3));\\nvec4 equation = focus;\\nfloat shrinkfactor = shrink;\\nfloat t1 = -1.0/(1.0-shrinkfactor);\\nfloat t2 = 1.0/(shrinkfactor);\\nvec4 colonne1, colonne2, colonne3, colonne4;\\nmat4 mat;\\nvec3 equation1 = vec3(t2,t2,t1);\\nfloat A1 = - e1.x*equation.x - e1.y*equation.y - e1.z*equation.z;\\nfloat A2 = - e2.x*equation.x - e2.y*equation.y - e2.z*equation.z;\\nfloat A3 = - e3.x*equation.x - e3.y*equation.y - e3.z*equation.z;\\nfloat A11 = equation1.x*e1.x*e1.x + equation1.y*e2.x*e2.x + equation1.z*e3.x*e3.x;\\nfloat A21 = equation1.x*e1.x*e1.y + equation1.y*e2.x*e2.y + equation1.z*e3.x*e3.y;\\nfloat A31 = equation1.x*e1.x*e1.z + equation1.y*e2.x*e2.z + equation1.z*e3.x*e3.z;\\nfloat A41 = equation1.x*e1.x*A1 + equation1.y*e2.x*A2 + equation1.z*e3.x*A3;\\nfloat A22 = equation1.x*e1.y*e1.y + equation1.y*e2.y*e2.y + equation1.z*e3.y*e3.y;\\nfloat A32 = equation1.x*e1.y*e1.z + equation1.y*e2.y*e2.z + equation1.z*e3.y*e3.z;\\nfloat A42 = equation1.x*e1.y*A1 + equation1.y*e2.y*A2 + equation1.z*e3.y*A3;\\nfloat A33 = equation1.x*e1.z*e1.z + equation1.y*e2.z*e2.z + equation1.z*e3.z*e3.z;\\nfloat A43 = equation1.x*e1.z*A1 + equation1.y*e2.z*A2 + equation1.z*e3.z*A3;\\nfloat A44 = equation1.x*A1*A1 + equation1.y*A2*A2 + equation1.z*A3*A3 - equation.w;\\ncolonne1 = vec4(A11,A21,A31,A41);\\ncolonne2 = vec4(A21,A22,A32,A42);\\ncolonne3 = vec4(A31,A32,A33,A43);\\ncolonne4 = vec4(A41,A42,A43,A44);\\nmat = mat4(colonne1,colonne2,colonne3,colonne4);\\nRay ray = primary_ray(i_near,i_far) ;\\nvec3 M;\\nM = isect_surf(ray, mat);\\nif (cutoff_plane(M, prime1.xyz, -e3) || cutoff_plane(M, prime2.xyz, e3)){ discard; }\\nvec4 M1 = vec4(M,1.0);\\nvec4 M2 = mat*M1;\\nvec3 _normal = ( modelViewMatrixInverseTranspose * M2 ).xyz;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\n#ifdef NEAR_CLIP\\nif( calcClip( modelViewMatrix * vec4( M, 1.0 ) ) > 0.0 ){\\nM = isect_surf2(ray, mat);\\nif( calcClip( modelViewMatrix * vec4( M, 1.0 ) ) > 0.0 )\\ndiscard;\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / radius ) );\\n}\\n}else if( gl_FragDepthEXT <= 0.0 ){\\nM = isect_surf2(ray, mat);\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix);\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / radius );\\n}\\n}\\n#else\\nif( gl_FragDepthEXT <= 0.0 ){\\nM = isect_surf2(ray, mat);\\ninterior = true;\\ngl_FragDepthEXT = update_z_buffer(M, modelViewProjectionMatrix) ;\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / radius );\\n}\\n}\\n#endif\\nif (cutoff_plane(M, prime1.xyz, -e3) || cutoff_plane(M, prime2.xyz, e3)){ discard; }\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\nfloat distance_ratio = ((M.x-prime2.x)*e3.x + (M.y-prime2.y)*e3.y +(M.z-prime2.z)*e3.z) /\\ndistance(prime2.xyz,prime1.xyz);\\n#ifdef PICKING\\nif( distance_ratio > 0.5 ){\\ngl_FragColor = vec4( vPickingColor, objectId );\\n}else{\\ngl_FragColor = vec4( vPickingColor2, objectId );\\n}\\n#else\\nvec3 vViewPosition = -( modelViewMatrix * vec4( M, 1.0 ) ).xyz;\\nvec3 vNormal = _normal;\\nvec3 vColor;\\nif( distance_ratio>0.5 ){\\nvColor = vColor1;\\n}else{\\nvColor = vColor2;\\n}\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\nvec3 normal = normalize( vNormal );\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",my=\"uniform float nearClip;\\nvarying vec3 vViewPosition;\\n#include color_pars_vertex\\nvoid main(){\\n#include color_vertex\\n#include begin_vertex\\n#include project_vertex\\nvViewPosition = -mvPosition.xyz;\\n#include nearclip_vertex\\n}\",gy=\"uniform float opacity;\\nuniform float nearClip;\\nvarying vec3 vViewPosition;\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\nvoid main(){\\n#include nearclip_fragment\\ngl_FragColor = vec4( vColor, opacity );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",vy=\"void main(){\\n#include begin_vertex\\n#include project_vertex\\n}\",yy=\"uniform vec3 uColor;\\n#include common\\n#include fog_pars_fragment\\nvoid main(){\\ngl_FragColor = vec4( uColor, 1.0 );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",by=\"#define STANDARD\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvarying vec3 vViewPosition;\\n#endif\\n#if defined( PICKING )\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#elif defined( NOLIGHT )\\nvarying vec3 vColor;\\n#else\\n#include color_pars_vertex\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#endif\\n#include common\\nvoid main(){\\n#if defined( PICKING )\\nvPickingColor = pickingColor;\\n#elif defined( NOLIGHT )\\nvColor = color;\\n#else\\n#include color_vertex\\n#include beginnormal_vertex\\n#include defaultnormal_vertex\\n#ifndef FLAT_SHADED\\nvNormal = normalize( transformedNormal );\\n#endif\\n#endif\\n#include begin_vertex\\n#include project_vertex\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvViewPosition = -mvPosition.xyz;\\n#endif\\n#include nearclip_vertex\\n}\",xy=\"#define STANDARD\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || ( !defined( PICKING ) && !defined( NOLIGHT ) )\\nvarying vec3 vViewPosition;\\n#endif\\n#if defined( PICKING )\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\n#elif defined( NOLIGHT )\\nvarying vec3 vColor;\\n#else\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nvoid main(){\\n#include nearclip_fragment\\n#if defined( PICKING )\\ngl_FragColor = vec4( vPickingColor, objectId );\\n#elif defined( NOLIGHT )\\ngl_FragColor = vec4( vColor, opacity );\\n#else\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\n#include normal_flip\\n#include normal_fragment\\n#include dull_interior_fragment\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#include opaque_back_fragment\\n#endif\\n}\",_y=\"uniform float nearClip;\\nuniform float size;\\nuniform float canvasHeight;\\nuniform float pixelRatio;\\nvarying vec3 vViewPosition;\\n#include color_pars_vertex\\n#include common\\nvoid main(){\\n#include color_vertex\\n#include begin_vertex\\n#include project_vertex\\n#ifdef USE_SIZEATTENUATION\\ngl_PointSize = size * pixelRatio * ( ( canvasHeight / 2.0 ) / -mvPosition.z );\\n#else\\ngl_PointSize = size * pixelRatio;\\n#endif\\nvViewPosition = -mvPosition.xyz;\\n#include nearclip_vertex\\n}\",wy=\"uniform vec3 diffuse;\\nuniform float opacity;\\nvarying vec3 vViewPosition;\\n#ifdef USE_MAP\\nuniform sampler2D map;\\n#endif\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\nvoid main(){\\nvec3 outgoingLight = vec3( 0.0 );\\nvec4 diffuseColor = vec4( diffuse, 1.0 );\\n#ifdef USE_MAP\\ndiffuseColor *= texture2D( map, vec2( gl_PointCoord.x, 1.0 - gl_PointCoord.y ) );\\n#endif\\n#include color_fragment\\n#include alphatest_fragment\\noutgoingLight = diffuseColor.rgb;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a * opacity );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",Sy=\"varying vec2 vUv;\\nvoid main() {\\nvUv = uv;\\ngl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\\n}\",Ay=\"varying vec2 vUv;\\nuniform sampler2D tForeground;\\nuniform float scale;\\nvoid main() {\\nvec4 foreground = texture2D( tForeground, vUv );\\ngl_FragColor = foreground * scale;\\n}\",My=\"#define STANDARD\\nuniform float nearClip;\\n#if defined( NEAR_CLIP ) || !defined( PICKING )\\nvarying vec3 vViewPosition;\\n#endif\\nattribute vec3 dir;\\nattribute float size;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#else\\n#include color_pars_vertex\\n#ifndef FLAT_SHADED\\nvarying vec3 vNormal;\\n#endif\\n#endif\\n#include common\\nvoid main(void){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\n#else\\n#include color_vertex\\n#include beginnormal_vertex\\n#include defaultnormal_vertex\\n#ifndef FLAT_SHADED\\nvNormal = normalize( transformedNormal );\\n#endif\\n#endif\\n#include begin_vertex\\ntransformed += normalize( dir ) * size;\\n#include project_vertex\\n#if defined( NEAR_CLIP ) || !defined( PICKING )\\nvViewPosition = -mvPosition.xyz;\\n#endif\\n#include nearclip_vertex\\n}\",Py=\"uniform float nearClip;\\nuniform float xOffset;\\nuniform float yOffset;\\nuniform float zOffset;\\nuniform bool ortho;\\nvarying vec3 vViewPosition;\\nvarying vec2 texCoord;\\nattribute vec2 mapping;\\nattribute vec2 inputTexCoord;\\nattribute float inputSize;\\n#include color_pars_vertex\\n#include common\\nvoid main(void){\\n#include color_vertex\\ntexCoord = inputTexCoord;\\nfloat _zOffset = zOffset;\\nif( texCoord.x == 10.0 ){\\n_zOffset -= 0.001;\\n}\\nvec3 pos = position;\\nif( ortho ){\\npos += normalize( cameraPosition ) * _zOffset;\\n}\\nvec4 cameraPos = modelViewMatrix * vec4( pos, 1.0 );\\nvec4 cameraCornerPos = vec4( cameraPos.xyz, 1.0 );\\ncameraCornerPos.xy += mapping * inputSize * 0.01;\\ncameraCornerPos.x += xOffset;\\ncameraCornerPos.y += yOffset;\\nif( !ortho ){\\ncameraCornerPos.xyz += normalize( -cameraCornerPos.xyz ) * _zOffset;\\n}\\ngl_Position = projectionMatrix * cameraCornerPos;\\nvViewPosition = -cameraCornerPos.xyz;\\n#include nearclip_vertex\\n}\",Ey=\"uniform sampler2D fontTexture;\\nuniform float opacity;\\nuniform bool showBorder;\\nuniform vec3 borderColor;\\nuniform float borderWidth;\\nuniform vec3 backgroundColor;\\nuniform float backgroundOpacity;\\nvarying vec3 vViewPosition;\\nvarying vec2 texCoord;\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#ifdef SDF\\nconst float smoothness = 16.0;\\n#else\\nconst float smoothness = 256.0;\\n#endif\\nconst float gamma = 2.2;\\nvoid main(){\\nif( texCoord.x == 10.0 ){\\ngl_FragColor = vec4( backgroundColor, backgroundOpacity );\\n}else{\\nfloat sdf = texture2D( fontTexture, texCoord ).a;\\nif( showBorder ) sdf += borderWidth;\\nfloat w = clamp(\\nsmoothness * ( abs( dFdx( texCoord.x ) ) + abs( dFdy( texCoord.y ) ) ),\\n0.0,\\n0.5\\n);\\nfloat a = smoothstep( 0.5 - w, 0.5 + w, sdf );\\na = pow( a, 1.0 / gamma );\\nif( a < 0.2 ) discard;\\na *= opacity;\\nvec3 outgoingLight = vColor;\\nif( showBorder && sdf < ( 0.5 + borderWidth ) ){\\noutgoingLight = borderColor;\\n}\\ngl_FragColor = vec4( outgoingLight, a );\\n}\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n}\",Cy=\"uniform mat4 projectionMatrixInverse;\\nuniform float nearClip;\\nvarying float vRadius;\\nvarying float vRadiusSq;\\nvarying vec3 vPoint;\\nvarying vec3 vPointViewPosition;\\nattribute vec2 mapping;\\nattribute float radius;\\n#ifdef PICKING\\nattribute vec3 pickingColor;\\nvarying vec3 vPickingColor;\\n#else\\n#include color_pars_vertex\\n#endif\\nconst mat4 D = mat4(\\n1.0, 0.0, 0.0, 0.0,\\n0.0, 1.0, 0.0, 0.0,\\n0.0, 0.0, 1.0, 0.0,\\n0.0, 0.0, 0.0, -1.0\\n);\\nmat4 transpose( in mat4 inMatrix ) {\\nvec4 i0 = inMatrix[0];\\nvec4 i1 = inMatrix[1];\\nvec4 i2 = inMatrix[2];\\nvec4 i3 = inMatrix[3];\\nmat4 outMatrix = mat4(\\nvec4(i0.x, i1.x, i2.x, i3.x),\\nvec4(i0.y, i1.y, i2.y, i3.y),\\nvec4(i0.z, i1.z, i2.z, i3.z),\\nvec4(i0.w, i1.w, i2.w, i3.w)\\n);\\nreturn outMatrix;\\n}\\nvoid ComputePointSizeAndPositionInClipCoordSphere(){\\nvec2 xbc;\\nvec2 ybc;\\nmat4 T = mat4(\\nradius, 0.0, 0.0, 0.0,\\n0.0, radius, 0.0, 0.0,\\n0.0, 0.0, radius, 0.0,\\nposition.x, position.y, position.z, 1.0\\n);\\nmat4 R = transpose( projectionMatrix * modelViewMatrix * T );\\nfloat A = dot( R[ 3 ], D * R[ 3 ] );\\nfloat B = -2.0 * dot( R[ 0 ], D * R[ 3 ] );\\nfloat C = dot( R[ 0 ], D * R[ 0 ] );\\nxbc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nxbc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nfloat sx = abs( xbc[ 0 ] - xbc[ 1 ] ) * 0.5;\\nA = dot( R[ 3 ], D * R[ 3 ] );\\nB = -2.0 * dot( R[ 1 ], D * R[ 3 ] );\\nC = dot( R[ 1 ], D * R[ 1 ] );\\nybc[ 0 ] = ( -B - sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nybc[ 1 ] = ( -B + sqrt( B * B - 4.0 * A * C ) ) / ( 2.0 * A );\\nfloat sy = abs( ybc[ 0 ] - ybc[ 1 ] ) * 0.5;\\ngl_Position.xy = vec2( 0.5 * ( xbc.x + xbc.y ), 0.5 * ( ybc.x + ybc.y ) );\\ngl_Position.xy -= mapping * vec2( sx, sy );\\ngl_Position.xy *= gl_Position.w;\\n}\\nvoid main(void){\\n#ifdef PICKING\\nvPickingColor = pickingColor;\\n#else\\n#include color_vertex\\n#endif\\nvec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\\nmvPosition.z -= radius;\\ngl_Position = projectionMatrix * vec4( mvPosition.xyz, 1.0 );\\nComputePointSizeAndPositionInClipCoordSphere();\\nvRadius = radius;\\nvRadiusSq = radius * radius;\\nvec4 vPoint4 = projectionMatrixInverse * gl_Position;\\nvPoint = vPoint4.xyz / vPoint4.w;\\nvPointViewPosition = -mvPosition.xyz / mvPosition.w;\\n}\",Ty=\"#define STANDARD\\n#define IMPOSTOR\\nuniform vec3 diffuse;\\nuniform vec3 emissive;\\nuniform float roughness;\\nuniform float metalness;\\nuniform float opacity;\\nuniform float nearClip;\\nuniform mat4 projectionMatrix;\\nuniform float ortho;\\nvarying float vRadius;\\nvarying float vRadiusSq;\\nvarying vec3 vPoint;\\nvarying vec3 vPointViewPosition;\\n#ifdef PICKING\\nuniform float objectId;\\nvarying vec3 vPickingColor;\\n#else\\n#include common\\n#include color_pars_fragment\\n#include fog_pars_fragment\\n#include bsdfs\\n#include lights_pars\\n#include lights_physical_pars_fragment\\n#endif\\nbool flag2 = false;\\nbool interior = false;\\nvec3 cameraPos;\\nvec3 cameraNormal;\\nfloat calcDepth( in vec3 cameraPos ){\\nvec2 clipZW = cameraPos.z * projectionMatrix[2].zw + projectionMatrix[3].zw;\\nreturn 0.5 + 0.5 * clipZW.x / clipZW.y;\\n}\\nfloat calcClip( vec3 cameraPos ){\\nreturn dot( vec4( cameraPos, 1.0 ), vec4( 0.0, 0.0, 1.0, nearClip - 0.5 ) );\\n}\\nbool Impostor( out vec3 cameraPos, out vec3 cameraNormal ){\\nvec3 cameraSpherePos = -vPointViewPosition;\\ncameraSpherePos.z += vRadius;\\nvec3 rayOrigin = mix( vec3( 0.0, 0.0, 0.0 ), vPoint, ortho );\\nvec3 rayDirection = mix( normalize( vPoint ), vec3( 0.0, 0.0, 1.0 ), ortho );\\nvec3 cameraSphereDir = mix( cameraSpherePos, rayOrigin - cameraSpherePos, ortho );\\nfloat B = dot( rayDirection, cameraSphereDir );\\nfloat det = B * B + vRadiusSq - dot( cameraSphereDir, cameraSphereDir );\\nif( det < 0.0 ){\\ndiscard;\\nreturn false;\\n}else{\\nfloat sqrtDet = sqrt( det );\\nfloat posT = mix( B + sqrtDet, B + sqrtDet, ortho );\\nfloat negT = mix( B - sqrtDet, sqrtDet - B, ortho );\\ncameraPos = rayDirection * negT + rayOrigin;\\n#ifdef NEAR_CLIP\\nif( calcDepth( cameraPos ) <= 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nreturn false;\\n}else if( calcClip( cameraPos ) > 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nflag2 = true;\\nreturn false;\\n}else{\\ncameraNormal = normalize( cameraPos - cameraSpherePos );\\n}\\n#else\\nif( calcDepth( cameraPos ) <= 0.0 ){\\ncameraPos = rayDirection * posT + rayOrigin;\\ninterior = true;\\nreturn false;\\n}else{\\ncameraNormal = normalize( cameraPos - cameraSpherePos );\\n}\\n#endif\\nreturn true;\\n}\\nreturn false;\\n}\\nvoid main(void){\\nbool flag = Impostor( cameraPos, cameraNormal );\\n#ifdef NEAR_CLIP\\nif( calcClip( cameraPos ) > 0.0 )\\ndiscard;\\n#endif\\ngl_FragDepthEXT = calcDepth( cameraPos );\\nif( !flag ){\\n#ifdef NEAR_CLIP\\nif( flag2 ){\\ngl_FragDepthEXT = max( 0.0, calcDepth( vec3( - ( nearClip - 0.5 ) ) ) + ( 0.0000001 / vRadius ) );\\n}else if( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n#else\\nif( gl_FragDepthEXT >= 0.0 ){\\ngl_FragDepthEXT = 0.0 + ( 0.0000001 / vRadius );\\n}\\n#endif\\n}\\nif (gl_FragDepthEXT < 0.0)\\ndiscard;\\nif (gl_FragDepthEXT > 1.0)\\ndiscard;\\n#ifdef PICKING\\ngl_FragColor = vec4( vPickingColor, objectId );\\n#else\\nvec3 vNormal = cameraNormal;\\nvec3 vViewPosition = -cameraPos;\\nvec4 diffuseColor = vec4( diffuse, opacity );\\nReflectedLight reflectedLight = ReflectedLight( vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ), vec3( 0.0 ) );\\nvec3 totalEmissiveLight = emissive;\\n#include color_fragment\\n#include roughnessmap_fragment\\n#include metalnessmap_fragment\\n#include normal_flip\\n#include normal_fragment\\nif( interior ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#include lights_physical_fragment\\n#include lights_template\\nvec3 outgoingLight = reflectedLight.directDiffuse + reflectedLight.indirectDiffuse + reflectedLight.directSpecular + reflectedLight.indirectSpecular + totalEmissiveLight;\\ngl_FragColor = vec4( outgoingLight, diffuseColor.a );\\n#include premultiplied_alpha_fragment\\n#include tonemapping_fragment\\n#include encodings_fragment\\n#include fog_fragment\\n#endif\\n}\",Iy=\"#ifdef DULL_INTERIOR\\nif( gl_FrontFacing == false ){\\nnormal = vec3( 0.0, 0.0, 0.4 );\\n}\\n#endif\",Ly=\"#ifdef USE_FOG\\nfloat depth = length( vViewPosition );\\n#ifdef FOG_EXP2\\nfloat fogFactor = whiteCompliment( exp2( - fogDensity * fogDensity * depth * depth * LOG2 ) );\\n#else\\nfloat fogFactor = smoothstep( fogNear, fogFar, depth );\\n#endif\\ngl_FragColor.rgb = mix( gl_FragColor.rgb, fogColor, fogFactor );\\n#endif\",Oy=\"#ifdef NEAR_CLIP\\nif( vViewPosition.z < nearClip )\\ndiscard;\\n#endif\",Ry=\"#ifdef NEAR_CLIP\\nif( vViewPosition.z < nearClip )\\ngl_Position.z = 2.0 * gl_Position.w;\\n#endif\",ky=\"#ifdef OPAQUE_BACK\\n#ifdef FLIP_SIDED\\nif( gl_FrontFacing == true ){\\ngl_FragColor.a = 1.0;\\n}\\n#else\\nif( gl_FrontFacing == false ){\\ngl_FragColor.a = 1.0;\\n}\\n#endif\\n#endif\",Dy={\n\"shader/CylinderImpostor.vert\":ly,\"shader/CylinderImpostor.frag\":dy,\"shader/HyperballStickImpostor.vert\":fy,\"shader/HyperballStickImpostor.frag\":py,\"shader/Line.vert\":my,\"shader/Line.frag\":gy,\"shader/BasicLine.vert\":vy,\"shader/BasicLine.frag\":yy,\"shader/Mesh.vert\":by,\"shader/Mesh.frag\":xy,\"shader/Point.vert\":_y,\"shader/Point.frag\":wy,\"shader/Quad.vert\":Sy,\"shader/Quad.frag\":Ay,\"shader/Ribbon.vert\":My,\"shader/SDFFont.vert\":Py,\"shader/SDFFont.frag\":Ey,\"shader/SphereImpostor.vert\":Cy,\"shader/SphereImpostor.frag\":Ty,\"shader/chunk/dull_interior_fragment.glsl\":Iy,\"shader/chunk/fog_fragment.glsl\":Ly,\"shader/chunk/nearclip_fragment.glsl\":Oy,\"shader/chunk/nearclip_vertex.glsl\":Ry,\"shader/chunk/opaque_back_fragment.glsl\":ky},Ny=/^(?!\\/\\/)\\s*#include\\s+(\\S+)/gim,Fy={};Gr.prototype.constructor=Gr;var zy=2*Math.PI,By=new dt,Uy=new ht,jy=new ht,$y=new ht,Vy=new ht,Gy=[[[0,0]],[[4,4],[-4,-4]],[[-2,-6],[6,-2],[-6,2],[2,6]],[[1,-3],[-1,3],[5,1],[-3,-5],[-5,5],[-7,-1],[3,7],[7,-7]],[[1,1],[-1,-3],[-3,2],[4,-1],[-5,-2],[2,5],[5,3],[3,-5],[-2,6],[0,-7],[-4,-6],[-6,4],[-8,0],[7,-4],[6,7],[-7,-8]],[[-4,-7],[-7,-5],[-3,-5],[-5,-4],[-1,-4],[-2,-2],[-6,-1],[-4,0],[-7,1],[-1,2],[-6,3],[-3,3],[-7,6],[-3,6],[-5,7],[-1,7],[5,-7],[1,-6],[6,-5],[4,-4],[2,-3],[7,-2],[1,-1],[4,-1],[2,1],[6,2],[0,4],[4,4],[2,5],[7,5],[5,6],[3,7]]];Gy.forEach(function(t){t.forEach(function(t){t[0]*=.0625,t[1]*=.0625})}),no.prototype.constructor=no;var Hy=2,Wy=3,Xy=function(e,i){function n(t){var e=Object.assign({},t);a=$(e.hoverTimeout,a)}function r(t,i){var n,r,o,a=e.pick(t.canvasPosition.x,t.canvasPosition.y),s=a.instance,u=ey.getByGid(a.gid);return u&&\"AtomProxy\"===u.type?n=u:u&&\"BondProxy\"===u.type?r=u:u&&\"Volume\"===u.volume.type&&(o=u),(n||r||o)&&t.which===Hy&&i&&(n?c.copy(n):r?c.copy(r.atom1).add(r.atom2).multiplyScalar(.5):o&&c.copy(o),s&&c.applyProjection(s.matrix),e.centerView(!1,c)),{atom:n,bond:r,volume:o,instance:s}}function o(){if(performance.now()-u.lastMoved>a&&(u.moving=!1),!u.moving&&!u.hovering){u.hovering=!0;var t=r(u);s.hovered.dispatch(t)}requestAnimationFrame(o)}var a=50;n(i);var s={clicked:new Kn,hovered:new Kn},c=new dt,u={position:new st,down:new st,canvasPosition:new st,moving:!1,hovering:!0,lastMoved:1/0,which:void 0,distance:function(){return u.position.distanceTo(u.down)},setCanvasPosition:function(t){var i=e.renderer.domElement.getBoundingClientRect(),n=t.clientX-i.left,r=t.clientY-i.top;u.canvasPosition.set(n,i.height-r)}};o(),e.renderer.domElement.addEventListener(\"mousemove\",function(t){t.preventDefault(),u.moving=!0,u.hovering=!1,u.lastMoved=performance.now(),u.position.set(t.layerX,t.layerY),u.setCanvasPosition(t)}),e.renderer.domElement.addEventListener(\"mousedown\",function(t){t.preventDefault(),u.moving=!1,u.hovering=!1,u.down.set(t.layerX,t.layerY),u.which=t.which,u.setCanvasPosition(t)}),e.renderer.domElement.addEventListener(\"mouseup\",function(e){if(e.preventDefault(),!(u.distance()>3||e.which===Wy)){var i=r(u,!0);u.which=void 0,s.clicked.dispatch(i),t.Debug&&ty.log(\"clicked\",i)}}),this.signals=s,this.setParameters=n};ro.prototype.add=function(t){this.count<<5<=t&&this.resize(t),this.words[t>>>5]|=1<>>5]|=1<>>5]^=1<>>5]^=1<>>5)+1,r=(e>>>5)-1,o=0|n;o+7>>5]|=1<>>5]|=1<>>5]&=~(1<>>5]&=~(1<>>5]&=~(1<>>5]&=~(1<>>5]&1<0;)0===this.words[this.count-1]&&this.count--;this.words=this.words.slice(0,this.count)},ro.prototype.resize=function(t){if(this.length=t,!(this.count<<5>t)&&(this.count=t+32>>>5,this.words.length<<5<=t)){var e=new Uint32Array(this.count<<1);e.set(this.words),this.words=e}},ro.prototype.hammingWeight=function(t){return t-=t>>>1&1431655765,t=(858993459&t)+(t>>>2&858993459),16843009*(t+(t>>>4)&252645135)>>>24},ro.prototype.size=function(){for(var t=0,e=this.count,i=0;i=t&&eo?a.set(this[n].subarray(0,o)):a.set(this[n]),this[n]=a}},growIfFull:function(){if(this.count>=this.length){var t=Math.round(1.5*this.length);this.resize(Math.max(256,t))}},copyFrom:function(t,e,i,n){for(var r=0,o=this.__fields.length;r0;)s-=1;a<=s&&(a===o?o=s:s===o&&(o=a),e(a,s),a+=1,s-=1)}while(a<=s);i(n,s),i(a,r)}}ty.time(\"Store.sort\");var n=this,r=new this.constructor(1);i(0,this.count-1),ty.timeEnd(\"Store.sort\")},clear:function(){this.count=0},dispose:function(){delete this.length,delete this.count;for(var t=0,e=this.__fields.length;t0&&(l[i]=S.angleTo(A)),t=Math.cos(b.angleTo(x)),p[i]=180/Math.PI*Math.acos(t),n=b.length(),r=x.length(),d[i]=Math.sqrt(r*n)/Math.max(2,2*(1-t)),f[i]=Math.abs(v.dot(S)),_.copy(b).multiplyScalar(d[i]/n),w.copy(x).multiplyScalar(d[i]/r),_.subVectors(T,_),w.subVectors(I,w),_.toArray(u,e+3),w.toArray(u,e+6),M.subVectors(C,P),M.toArray(m,e),A.copy(S),P.copy(_);for(_.fromArray(u,3),w.fromArray(u,6),S.subVectors(_,w).normalize(),C.index=o.getAtomIndexByType(0,E),P.copy(C),_=Yy(P,_,S),_.toArray(u,0),M.subVectors(P,_),M.toArray(m,0),_.fromArray(u,3*s-6),w.fromArray(u,3*s-9),S.subVectors(_,w).normalize(),C.index=o.getAtomIndexByType(s-1,E),P.copy(C),_=Yy(P,_,S),_.toArray(u,3*s-3),i=s-3;ie?F=!0:h.bending[z]>t&&(F=!0)),F){if(z-v<4){v=z,F=!1;continue}k.index=O.traceAtomIndex,C=h.axis.subarray(3*v+3,3*z),T=h.center.subarray(3*v,3*z+3),d=ao(C).normalize(),f=ao(T),I.fromArray(T),I=Yy(I,f,d),L.fromArray(T,T.length-3),L=Yy(L,f,d),d.subVectors(L,I),d.toArray(b,y),f.toArray(x,y),I.toArray(_,y),L.toArray(w,y),p.atomColorToArray(k,S,y),m.atomColorToArray(k,A,y),M.push(g.atomRadius(k)),P.push(u+v),E.push(u+z+1-v),y+=3,v=z,F=!1}return{axis:new Float32Array(b),center:new Float32Array(x),begin:new Float32Array(_),end:new Float32Array(w),color:new Float32Array(S),pickingColor:new Float32Array(A),size:new Float32Array(M),residueOffset:P,residueCount:E}}},ta.prototype={push:function(t){this.content.push(t),this.bubbleUp(this.content.length-1)},pop:function(){var t=this.content[0],e=this.content.pop();return this.content.length>0&&(this.content[0]=e,this.sinkDown(0)),t},peek:function(){return this.content[0]},remove:function(t){for(var e=this.content.length,i=0;i0;){var i=Math.floor((t+1)/2)-1,n=this.content[i];if(!(this.scoreFunction(e)\":\"3/4-Z\",\"?\":\"X-Y\",\"@\":\"Y-X\",A:\"Z+1/3\",B:\"Z+2/3\",C:\"X+2/3\",D:\"Y+1/3\",E:\"-Y+2/3\",F:\"X-Y+1/3\",G:\"Y-X+2/3\",H:\"-X+1/3\",I:\"X+1/3\",J:\"Y+2/3\",K:\"-Y+1/3\",L:\"X-Y+2/3\",M:\"Y-X+1/3\",N:\"-X+2/3\",O:\"2/3+X\",P:\"1/3+Y\",Q:\"1/3+Z\",R:\"2/3-Y\",S:\"1/3+X-Y\",T:\"2/3+Y-X\",U:\"1/3-X\",V:\"2/3-X\",W:\"1/3-Y\",X:\"1/3-Z\",Y:\"2/3+Y\",Z:\"1/3+Y-X\",\"[\":\"2/3+X-Y\",\"]\":\"1/3+X\",\"^\":\"2/3+Z\",_:\"2/3-Z\",\"`\":\"5/6+Z\",a:\"1/6+Z\",b:\"5/6-Z\",c:\"1/6-Z\",d:\"Z+5/6\",e:\"Z+1/6\",f:\"Z+1/4\",g:\"+Y\"},Jy={\"P 1\":\" !#\",\"P -1\":\" !#$%&\",\"P 1 2 1\":\" !#$!&\",\"P 1 21 1\":\" !#$'&\",\"C 1 2 1\":\" !#$!&()#*)&\",\"P 1 m 1\":\" !# %#\",\"P 1 c 1\":\" !# %+\",\"C 1 m 1\":\" !# %#()#(,#\",\"C 1 c 1\":\" !# %+()#(,+\",\"P 1 2/m 1\":\" !# %#$!&$%&\",\"P 1 21/m 1\":\" !#$)&$%& ,#\",\"C 1 2/m 1\":\" !# %#$!&$%&()#(,#*)&*,&\",\"P 1 2/c 1\":\" !#$!-$%& %+\",\"P 1 21/c 1\":\" !#$%&$)- ,+\",\"C 1 2/c 1\":\" !#$!-$%& %+()#*)-*,&(,+\",\"P 2 2 2\":\" !#$%#$!& %&\",\"P 2 2 21\":\" !#$%+$!- %&\",\"P 21 21 2\":\" !#$%#*)&(,&\",\"P 21 21 21\":\" !#*%+$)-(,&\",\"C 2 2 21\":\" !#$%+$!- %&()#*,+*)-(,&\",\"C 2 2 2\":\" !#$%#$!& %&()#*,#*)&(,&\",\"F 2 2 2\":\" !#$%#$!& %& )+$,+$)- ,-(!+*%+*!-(%-()#*,#*)&(,&\",\"I 2 2 2\":\" !#$%# %&$!&.'/01/.120'2\",\"I 21 21 21\":\" !#*%+$)-(,&()+$,#*!& %-\",\"P m m 2\":\" !#$%# %#$!#\",\"P m c 21\":\" !#$%+ %+$!#\",\"P c c 2\":\" !#$%# %+$!+\",\"P m a 2\":\" !#$%#(%#*!#\",\"P c a 21\":\" !#$%+(%#*!+\",\"P n c 2\":\" !#$%# ,+$)+\",\"P m n 21\":\" !#*%+(%+$!#\",\"P b a 2\":\" !#$%#(,#*)#\",\"P n a 21\":\" !#$%+(,#*)+\",\"P n n 2\":\" !#$%#(,+*)+\",\"C m m 2\":\" !#$%# %#$!#()#*,#(,#*)#\",\"C m c 21\":\" !#$%+ %+$!#()#*,+(,+*)#\",\"C c c 2\":\" !#$%# %+$!+()#*,#(,+*)+\",\"A m m 2\":\" !#$%# %#$!# )+$,+ ,+$)+\",\"A b m 2\":\" !#$%# ,#$)# )+$,+ %+$!+\",\"A m a 2\":\" !#$%#(%#*!# )+$,+(,+*)+\",\"A b a 2\":\" !#$%#(,#*)# )+$,+(%+*!+\",\"F m m 2\":\" !#$%# %#$!# )+$,+ ,+$)+(!+*%+(%+*!+()#*,#(,#*)#\",\"F d d 2\":\" !#$%#345675 )+$,+3896:9(!+*%+;49<79()#*,#;85<:5\",\"I m m 2\":\" !#$%# %#$!#()+*,+(,+*)+\",\"I b a 2\":\" !#$%#(,#*)#()+*,+ %+$!+\",\"I m a 2\":\" !#$%#(%#*!#()+*,+ ,+$)+\",\"P 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#\",\"P 2/n 2/n 2/n\":\" !#$%#$!& %&*,-()-(,+*)+\",\"P 2/c 2/c 2/m\":\" !#$%#$!- %-$%& !& %+$!+\",\"P 2/b 2/a 2/n\":\" !#$%#$!& %&*,&()&(,#*)#\",\"P 21/m 2/m 2/a\":\" !#*%#$!&(%&$%&(!& %#*!#\",\"P 2/n 21/n 2/a\":\" !#*%#*)- ,-$%&(!&(,+$)+\",\"P 2/m 2/n 21/a\":\" !#*%+*!- %&$%&(!-(%+$!#\",\"P 21/c 2/c 2/a\":\" !#*%#$!-(%-$%&(!& %+*!+\",\"P 21/b 21/a 2/m\":\" !#$%#*)&(,&$%& !&(,#*)#\",\"P 21/c 21/c 2/n\":\" !#*,#$)-(%-$%&()& ,+*!+\",\"P 2/b 21/c 21/m\":\" !#$%+$)- ,&$%& !- ,+$)#\",\"P 21/n 21/n 2/m\":\" !#$%#*)-(,-$%& !&(,+*)+\",\"P 21/m 21/m 2/n\":\" !#$%#*'&.,&*,&.'& %#$!#\",\"P 21/b 2/c 21/n\":\" !#*,+$!-(,&$%&()- %+*)#\",\"P 21/b 21/c 21/a\":\" !#*%+$)-(,&$%&(!- ,+*)#\",\"P 21/n 21/m 21/a\":\" !#0%/$'&.12$%&.!2 1#0'/\",\"C 2/m 2/c 21/m\":\" !#$%+$!- %&$%& !- %+$!#()#*,+*)-(,&*,&()-(,+*)#\",\"C 2/m 2/c 21/a\":\" !#$,+$)- %&$%& )- ,+$!#()#*%+*!-(,&*,&(!-(%+*)#\",\"C 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#()#*,#*)&(,&*,&()&(,#*)#\",\"C 2/c 2/c 2/m\":\" !#$%#$!- %-$%& !& %+$!+()#*,#*)-(,-*,&()&(,+*)+\",\"C 2/m 2/m 2/a\":\" !#$,#$)& %&$%& )& ,#$!#()#*%#*!&(,&*,&(!&(%#*)#\",\"C 2/c 2/c 2/a\":\" !#*,#$!&(,&$,-(!- ,+*!+()#$%#*)& %&*%- )-(%+$)+\",\"F 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!# )+$,+$)- ,-$,- )- ,+$)+(!+*%+*!-(%-*%-(!-(%+*!+()#*,#*)&(,&*,&()&(,#*)#\",\"F 2/d 2/d 2/d\":\" !#$%#$!& %&64=37=345675 )+$,+$)- ,-68>3:>3896:9(!+*%+*!-(%-<4>;7>;49<79()#*,#*)&(,&<8=;:=;85<:5\",\"I 2/m 2/m 2/m\":\" !#$%#$!& %&$%& !& %#$!#()+*,+*)-(,-*,-()-(,+*)+\",\"I 2/b 2/a 2/m\":\" !#$%#*)&(,&$%& !&(,#*)#()+*,+$!- %-*,-()- %+$!+\",\"I 21/b 21/c 21/a\":\" !#*%+$)-(,&$%&(!- ,+*)#()+$,#*!& %-*,- )&(%#$!+\",\"I 21/m 21/m 21/a\":\" !#$,#$)& %&$%& )& ,#$!#()+*%+*!-(,-*,-(!-(%+*)+\",\"P 4\":\" !#$%#% #!$#\",\"P 41\":\" !#$%+% 5!$9\",\"P 42\":\" !#$%#% +!$+\",\"P 43\":\" !#$%+% 9!$5\",\"I 4\":\" !#$%#% #!$#()+*,+,(+)*+\",\"I 41\":\" !#*,+%(5)$9()+$%#, 9!*5\",\"P -4\":\" !#$%#!$&% &\",\"I -4\":\" !#$%#!$&% &()+*,+)*-,(-\",\"P 4/m\":\" !#$%#% #!$#$%& !&!$&% &\",\"P 42/m\":\" !#$%#% +!$+$%& !&!$-% -\",\"P 4/n\":\" !#$%#,(#)*#*,&()&!$&% &\",\"P 42/n\":\" !#$%#,(+)*+*,-()-!$&% &\",\"I 4/m\":\" !#$%#% #!$#$%& !&!$&% &()+*,+,(+)*+*,-()-)*-,(-\",\"I 41/a\":\" !#*,+%(5)$9$,=(!>!$&,(-()+$%#, 9!*5*%> )=)*-% &\",\"P 4 2 2\":\" !#$%#% #!$#$!& %&! &%$&\",\"P 4 21 2\":\" !#$%#,(#)*#*)&(,&! &%$&\",\"P 41 2 2\":\" !#$%+% 5!$9$!& %-! >%$=\",\"P 41 21 2\":\" !#$%+,(5)*9*)=(,>! &%$-\",\"P 42 2 2\":\" !#$%#% +!$+$!& %&! -%$-\",\"P 42 21 2\":\" !#$%#,(+)*+*)-(,-! &%$&\",\"P 43 2 2\":\" !#$%+% 9!$5$!& %-! =%$>\",\"P 43 21 2\":\" !#$%+,(9)*5*)>(,=! &%$-\",\"I 4 2 2\":\" !#$%#% #!$#$!& %&! &%$&()+*,+,(+)*+*)-(,-)(-,*-\",\"I 41 2 2\":\" !#*,+%(5)$9*!> ,=)(-%$&()+$%#, 9!*5$)=(%>! &,*-\",\"P 4 m m\":\" !#$%#% #!$# %#$!#%$#! #\",\"P 4 b m\":\" !#$%#% #!$#(,#*)#,*#)(#\",\"P 42 c m\":\" !#$%#% +!$+ %+$!+%$#! #\",\"P 42 n m\":\" !#$%#,(+)*+(,+*)+%$#! #\",\"P 4 c c\":\" !#$%#% #!$# %+$!+%$+! +\",\"P 4 n c\":\" !#$%#% #!$#(,+*)+,*+)(+\",\"P 42 m c\":\" !#$%#% +!$+ %#$!#%$+! +\",\"P 42 b c\":\" !#$%#% +!$+(,#*)#,*+)(+\",\"I 4 m m\":\" !#$%#% #!$# %#$!#%$#! #()+*,+,(+)*+(,+*)+,*+)(+\",\"I 4 c m\":\" !#$%#% #!$# %+$!+%$+! +()+*,+,(+)*+(,#*)#,*#)(#\",\"I 41 m d\":\" !#*,+%(5)$9 %#*)+%*5) 9()+$%#, 9!*5(,+$!#,$9!(5\",\"I 41 c d\":\" !#*,+%(5)$9 %+*)#%*9) 5()+$%#, 9!*5(,#$!+,$5!(9\",\"P -4 2 m\":\" !#$%#% &!$&$!& %&%$#! #\",\"P -4 2 c\":\" !#$%#% &!$&$!- %-%$+! +\",\"P -4 21 m\":\" !#$%#% &!$&*)&(,&,*#)(#\",\"P -4 21 c\":\" !#$%#% &!$&*)-(,-,*+)(+\",\"P -4 m 2\":\" !#$%#!$&% & %#$!#! &%$&\",\"P -4 c 2\":\" !#$%#% &!$& %+$!+! -%$-\",\"P -4 b 2\":\" !#$%#% &!$&(,#*)#)(&,*&\",\"P -4 n 2\":\" !#$%#% &!$&(,+*)+)(-,*-\",\"I -4 m 2\":\" !#$%#% &!$& %#$!#! &%$&()+*,+,(-)*-(,+*)+)(-,*-\",\"I -4 c 2\":\" !#$%#% &!$& %+$!+! -%$-()+*,+,(-)*-(,#*)#)(&,*&\",\"I -4 2 m\":\" !#$%#% &!$&$!& %&%$#! #()+*,+,(-)*-*)-(,-,*+)(+\",\"I -4 2 d\":\" !#$%#% &!$&*!>(%>,$9) 9()+*,+,(-)*-$)= ,=%*5!(5\",\"P 4/m 2/m 2/m\":\" !#$%#% #!$#$!& %&! &%$&$%& !&!$&% & %#$!#%$#! #\",\"P 4/m 2/c 2/c\":\" !#$%#% #!$#$!- %-! -%$-$%& !&!$&% & %+$!+%$+! +\",\"P 4/n 2/b 2/m\":\" !#$%#% #!$#$!& %&! &%$&*,&()&)*&,(&(,#*)#,*#)(#\",\"P 4/n 2/n 2/c\":\" !#$%#% #!$#$!& %&! &%$&*,-()-)*-,(-(,+*)+,*+)(+\",\"P 4/m 21/b 2/m\":\" !#$%#% #!$#*)&(,&)(&,*&$%& !&!$&% &(,#*)#,*#)(#\",\"P 4/m 21/n 2/c\":\" !#$%#% #!$#*)-(,-)(-,*-$%& !&!$&% &(,+*)+,*+)(+\",\"P 4/n 21/m 2/m\":\" !#$%#,(#)*#*)&(,&! &%$&*,&()&!$&% & %#$!#,*#)(#\",\"P 4/n 2/c 2/c\":\" !#$%#,(#)*#*)-(,-! -%$-*,&()&!$&% & %+$!+,*+)(+\",\"P 42/m 2/m 2/c\":\" !#$%#% +!$+$!& %&! -%$-$%& !&!$-% - %#$!#%$+! +\",\"P 42/m 2/c 2/m\":\" !#$%#% +!$+$!- %-! &%$&$%& !&!$-% - %+$!+%$#! #\",\"P 42/n 2/b 2/c\":\" !#$%#,(+)*+$!- %-)(&,*&*,-()-!$&% &(,#*)#%$+! +\",\"P 42/n 2/n 2/m\":\" !#$%#,(+)*+$!& %&)(-,*-*,-()-!$&% &(,+*)+%$#! #\",\"P 42/m 21/b 2/c\":\" !#$%#% +!$+*)&(,&)(-,*-$%& !&!$-% -(,#*)#,*+)(+\",\"P 42/m 21/n 2/m\":\" !#$%#,./'*/*'-.,-! &%$&$%& !&'*-,.-.,/*'/%$#! #\",\"P 42/n 21/m 2/c\":\" !#$%#,(+)*+*)-(,-! &%$&*,-()-!$&% & %#$!#,*+)(+\",\"P 42/n 21/c 2/m\":\" !#$%#,(+)*+*)&(,&! -%$-*,-()-!$&% & %+$!+,*#)(#\",\"I 4/m 2/m 2/m\":\" !#$%#% #!$#$!& %&! &%$&$%& !&!$&% & %#$!#%$#! #()+*,+,(+)*+*)-(,-)(-,*-*,-()-)*-,(-(,+*)+,*+)(+\",\"I 4/m 2/c 2/m\":\" !#$%#% #!$#$!- %-! -%$-$%& !&!$&% & %+$!+%$+! +()+*,+,(+)*+*)&(,&)(&,*&*,-()-)*-,(-(,#*)#,*#)(#\",\"I 41/a 2/m 2/d\":\" !#*,+%(5)$9*!> ,=)(-%$&$,=(!>!$&,(-(,+$!#,$9!(5()+$%#, 9!*5$)=(%>! &,*-*%> )=)*-% & %#*)+%*5) 9\",\"I 41/a 2/c 2/d\":\" !#*,+%(5)$9*!= ,>)(&%$-$,=(!>!$&,(-(,#$!+,$5!(9()+$%#, 9!*5$)>(%=! -,*&*%> )=)*-% & %+*)#%*9) 5\",\"P 3\":\" !#%?#@$#\",\"P 31\":\" !#%?A@$B\",\"P 32\":\" !#%?B@$A\",\"H 3\":\" !#%?#@$#CDAEFAGHAIJBKLBMNB\",\"R 3\":\" !## !!# \",\"P -3\":\" !#%?#@$#$%&!@&? &\",\"H -3\":\" !#%?#@$#$%&!@&? &OPQRSQTUQVWXYZX[]X]Y^W[^ZV^UR_PT_SO_\",\"R -3\":\" !## !!# $%&&$%%&$\",\"P 3 1 2\":\" !#%?#@$#%$&@!& ?&\",\"P 3 2 1\":\" !#%?#@$#! &?%&$@&\",\"P 31 1 2\":\" !#%?Q@$^%$_@!X ?&\",\"P 31 2 1\":\" !#%?A@$B! &?%_$@X\",\"P 32 1 2\":\" !#%?^@$Q%$X@!_ ?&\",\"P 32 2 1\":\" !#%?B@$A! &?%X$@_\",\"H 3 2\":\" !#%?#@$#! &?%&$@&OPQRSQTUQY]X[WXVZX]Y^W[^ZV^PO_SR_UT_\",\"R 3 2\":\" !## !!# %$&$&%&%$\",\"P 3 m 1\":\" !#%?#@$#%$#@!# ?#\",\"P 3 1 m\":\" !#%?#@$#! #?%#$@#\",\"P 3 c 1\":\" !#%?#@$#%$+@!+ ?+\",\"P 3 1 c\":\" !#%?#@$#! +?%+$@+\",\"H 3 m\":\" !#%?#@$#%$#@!# ?#OPQRSQTUQRUQTPQOSQ]Y^W[^ZV^WV^ZY^][^\",\"R 3 m\":\" !## !!# ! # #!#! \",\"H 3 c\":\" !#%?#@$#%$+@!+ ?+OPQRSQTUQRU`TP`OS`]Y^W[^ZV^WVaZYa][a\",\"R 3 c\":\" !## !!# '././'/'.\",\"P -3 1 2/m\":\" !#%?#@$#%$&@!& ?&$%&!@&? &! #?%#$@#\",\"P -3 1 2/c\":\" !#%?#@$#%$-@!- ?-$%&!@&? &! +?%+$@+\",\"P -3 2/m 1\":\" !#%?#@$#! &?%&$@&$%&!@&? &%$#@!# ?#\",\"P -3 2/c 1\":\" !#%?#@$#! -?%-$@-$%&!@&? &%$+@!+ ?+\",\"H -3 2/m\":\" !#%?#@$#! &?%&$@&$%&!@&? &%$#@!# ?#OPQRSQTUQY]X[WXVZXVWXYZX[]XRUQTPQOSQ]Y^W[^ZV^PO_SR_UT_UR_PT_SO_WV^ZY^][^\",\"R -3 2/m\":\" !## !!# %$&$&%&%$$%&&$%%&$! # #!#! \",\"H -3 2/c\":\" !#%?#@$#! -?%-$@-$%&!@&? &%$+@!+ ?+OPQRSQTUQY]b[WbVZbVWXYZX[]XRU`TP`OS`]Y^W[^ZV^POcSRcUTcUR_PT_SO_WVaZYa][a\",\"R -3 2/c\":\" !## !!# 102021210$%&&$%%&$'././'/'.\",\"P 6\":\" !#%?#@$#$%#!@#? #\",\"P 61\":\" !#%?A@$B$%/!@d? e\",\"P 65\":\" !#%?B@$A$%/!@e? d\",\"P 62\":\" !#%?^@$Q$%#!@^? Q\",\"P 64\":\" !#%?Q@$^$%#!@Q? ^\",\"P 63\":\" !#%?#@$#$%+!@+? +\",\"P -6\":\" !#%?#@$# !&%?&@$&\",\"P 6/m\":\" !#%?#@$#$%#!@#? #$%&!@&? & !&%?&@$&\",\"P 63/m\":\" !#%?#@$#$%+!@+? +$%&!@&? & !-%?-@$-\",\"P 6 2 2\":\" !#%?#@$#$%#!@#? #! &?%&$@&%$&@!& ?&\",\"P 61 2 2\":\" !#%?Q@$^$%+!@`? a! X?%&$@_%$b@!- ?c\",\"P 65 2 2\":\" !#%?^@$Q$%+!@a? `! _?%&$@X%$c@!- ?b\",\"P 62 2 2\":\" !#%?^@$Q$%#!@^? Q! _?%&$@X%$_@!& ?X\",\"P 64 2 2\":\" !#%?Q@$^$%#!@Q? ^! X?%&$@_%$X@!& ?_\",\"P 63 2 2\":\" !#%?#@$#$%+!@+? +! &?%&$@&%$-@!- ?-\",\"P 6 m m\":\" !#%?#@$#$%#!@#? #%$#@!# ?#! #?%#$@#\",\"P 6 c c\":\" !#%?#@$#$%#!@#? #%$+@!+ ?+! +?%+$@+\",\"P 63 c m\":\" !#%?#@$#$%+!@+? +%$+@!+ ?+! #?%#$@#\",\"P 63 m c\":\" !#%?#@$#$%+!@+? +%$#@!# ?#! +?%+$@+\",\"P -6 m 2\":\" !#%?#@$# !&%?&@$&%$#@!# ?#%$&@!& ?&\",\"P -6 c 2\":\" !#%?#@$# !-%?-@$-%$+@!+ ?+%$&@!& ?&\",\"P -6 2 m\":\" !#%?#@$# !&%?&@$&! &?%&$@&! #?%#$@#\",\"P -6 2 c\":\" !#%?#@$# !-%?-@$-! &?%&$@&! +?%+$@+\",\"P 6/m 2/m 2/m\":\" !#%?#@$#$%#!@#? #! &?%&$@&%$&@!& ?&$%&!@&? & !&@$&%?&%$#@!# ?#! #?%#$@#\",\"P 6/m 2/c 2/c\":\" !#%?#@$#$%#!@#? #! -?%-$@-%$-@!- ?-$%&!@&? & !&@$&%?&%$+@!+ ?+! +?%+$@+\",\"P 63/m 2/c 2/m\":\" !#%?#@$#$%+!@+? +! -?%-$@-%$&@!& ?&$%&!@&? & !-@$-%?-%$+@!+ ?+! #?%#$@#\",\"P 63/m 2/m 2/c\":\" !#%?#@$#$%+!@+? +! &?%&$@&%$-@!- ?-$%&!@&? & !-@$-%?-%$#@!# ?#! +?%+$@+\",\"P 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& \",\"F 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- \",\"I 2 3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-(\",\"P 21 3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(\",\"I 21 3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- \",\"P 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$\",\"P 2/n -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& *,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*\",\"F 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$ )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-($,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(*%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- *,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$\",\"F 2/d -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& 64=37=345675=64=375345674=67=3453756 )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(68>3:>3896:9=<8=;:5;85<:4><7>;49;79<(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(<4>;7>;49<79>68>3:93896:8=<:=;85;:5<()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- <8=;:=;8f<:f><4>;79;49<78>6:>3893:96\",\n\"I 2/m -3\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& $%& !& %#$!#&$%& !# %#$!%&$!& %# !#$()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-(*,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*\",\"P 21/a -3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&($%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*\",\"I 21/a -3\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&($%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*()+$,#*g& %-+()#$,&*!- %)+(,#$!&*%- *,- )&(%#$!+-*,& )#(%+$!,-*)& %#(!+$\",\"P 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$\",\"P 42 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*\",\"F 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$ )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(-%*-!*+%(+ +,$+)$-, -)#)*#,(&)(&,*(!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() -,$-)$+, +(#,*#)*&,(&)+!*+%(-!(-%*()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(&,*&)*#,(#(+%*+!*-%(-!+)$+, -) -,$\",\"F 41 3 2\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=46 )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<(!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>86\",\"I 4 3 2\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*\",\"P 43 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(7;>46=:<5839398<5:6=4;>75:<983>7;=46\",\"P 41 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<\",\"I 41 3 2\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- 7;>46=:<5839398<5:6=4;>75:<983>7;=46\",\"P -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% \",\"F -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(+%*+!*-%(- +)$+,$-) -,#)(#,*&)*&,((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() +,$+)$-, -(#)*#,*&)(&,+!(+%*-!*-%(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(#,*#)*&,(&(+!*+%*-!(-%+) +,$-)$-, \",\"I -4 3 m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! #%$#!$&% & #!$#%$&! &%#! #%$&!$&% ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,(\",\"P -4 3 n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,(\",\"F -4 3 c\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(+,*+)*-,(-(+)*+,*-)(-,+)(+,*-)*-,( )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-() #,$#)$&, &(#!*#%*&!(&%+! +%$-!$-% (!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(!(#%*#!*&%(& +!$+%$-! -%#) #,$&)$&, ()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- ! +%$+!$-% - #)$#,$&) &,#!(#%*&!*&%(\",\"I -4 3 d\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(7354<9:6>8;=357<946>:;=857394<>:6=8;()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- :;98657<=43>;9:658<=73>49:;586=7<>43\",\"P 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! \",\"P 4/n -3 2/n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$*,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"P 42/m -3 2/n\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"P 42/n -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,**,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! \",\"F 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-(!(-%*-!*+%(+ +,$+)$-, -)#)*#,(&)(&,*$,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*%*+!(+%(-!*-$-) -, +)$+,&,(&)*#,*#)((!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&() -,$-)$+, +(#,*#)*&,(&)+!*+%(-!(-%**%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*,$+) +, -)$-*&)(&,(#)*#,-%(-!*+%*+!(()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- )(&,*&)*#,(#(+%*+!*-%(-!+)$+, -) -,$*,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$,*#)(#,(&)*&*-!(-%(+!*+%-, -)$+,$+) \",\"F 4/m -3 2/c\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& )(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,*$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)( )+$,+$)- ,-#()#*,&*)&(,!+(%+*!-*%-() &,$&)$#, #(#%*#!*&%(&!+!$+% -! -%$$,- )- ,+$)+&*,&()#(,#*)%-*!-(%+(!+*,$#) #, &)$&*&!(&%(#!*#%-% -!$+%$+! (!+*%+*!-(%-+ )+$,-$)- ,)#(,#*)&*,&(!(&%*&!*#%(# +%$+!$-% -!#)$#, &) &,$*%-(!-(%+*!+-$,- )+ ,+$),&*)&(,#()#*%*#!(#%(&!*&$-! -% +!$+%&, &)$#,$#) ()#*,#*)&(,&+(!+*%-*!-(%)+ ,+$)-$,- ! -%$-!$+% + #,$#)$&, &)#!*#%(&!(&%**,&()&(,#*)#-*%-(!+(%+*!,-$)- ,+ )+$%$+! +% -!$-$&) &, #)$#,&%(&!*#%*#!(\",\"F 41/d -3 2/m\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=4664=3:>;85<79=64>3:5;89<74=6:>385;79<,$+! #%(-)*&*&)(-% #!$+,-%(&)*+,$#! )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<68>37=;49<:5=<8>;753496:4><:=;893756,*#!(+% &)$-*-!(&, +)$#%-, &!$+%*#)((!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<<4>;:=389675>68=379;45<:8=<7>;453:96%$#) +,(&!*-$&! -,(#)*+%&% -)$#,*+!(()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>86<8=;7>3456:9><4=;:9385678>67=349;:5<%*+)(#, -!$&$-) &%(+!*#,&,(-!*#%$+) \",\"F 41/d -3 2/c\":\" !#$,+*)&(%-# !+$,&*)-(%!# ,+$)&*%-(:3>46=7<98;5;58<976=43>:97<58;>:3=46<8>;7=3496:5><8=;793456:8><7=;493:56%*#)(+, &!$-$-! &,(+)*#%&, -!$#%*+)( )+$%#*!-(,&#()+*%&$!- ,!+(,#*)-$%& :;=4<>765839;94<5:6>83=79:6543>7;=8<<4=;:>385679>64=3:9;85<78=67>345;:9<%$+) #,(-!*&$&) -%(#!*+,&%(-)*#,$+! (!+*,#$)- %&+ )#$%-*!&(,)#(%+*!&$,- 73=86>:<54;935469:<=8;>7576983=:;>4<68=37>;45<:9=<4>;:5389674>6:=389;75<,*+!(#% -)$&*-)(&% +!$#,-,(&!*+%$#) ()#*%+$!& ,-+(!#*,-$)& %)+ %#$!-*,&(7;>8<=:69435398657<>4;=:5:<94;=73>8664>3:=;89<75=68>375;49<:4=<:>;853796,$#! +%(&)*-*&!(-, #)$+%-% &)$+,*#!(\",\"I 4/m -3 2/m\":\" !#$%#$!& %&# !#$%&$!& %!# %#$!&$%& ! &%$&!$#% # #%$#!$&% &!#!$#% &! &%$$%& !& %#$!#&$%& !# %#$!%&$!& %# !#$%$#! #% &!$&$&! &% #!$#%&% &!$#%$#! ()+*,+*)-(,-+()+*,-*)-(,)+(,+*)-*,-()(-,*-)*+,(+(+,*+)*-,(-)+)*+,(-)(-,**,-()-(,+*)+-*,-()+(,+*),-*)-(,+()+*,*+)(+,(-)*-*-)(-,(+)*+,-,(-)*+,*+)(\",\"I 41/a -3 2/d\":\" !#*%+$)-(,&# !+*%-$)&(,!# %+*)-$,&(:3=8<>7694;5;54697<>83=:97654;=:3>8<$%&(!- ,+*)#&$%-(!+ ,#*)%&$!-(,+ )#*4<97358;=:6>6>:;=8357<94=8;>:694<573()+$,#*!& %-+()#$,&*!- %)+(,#$!&*%- 7;>46=:<5839398<5:6=4;>75:<983>7;=46*,- )&(%#$!+-*,& )#(%+$!,-*)& %#(!+$865:;943>7<=<=73>4;9:658>43=7<5869:;\",\"P 1 1 2\":\" !#$%#\",\"P 1 1 21\":\" !#$%+\",\"B 1 1 2\":\" !#$%#(g+*%+\",\"A 1 2 1\":\" !#$!& )+$)-\",\"C 1 21 1\":\" !#$)&()#*!&\",\"I 1 2 1\":\" !#$!&.'/0'2\",\"I 1 21 1\":\" !#$)&.'/0!-\",\"P 1 1 m\":\" !# !&\",\"P 1 1 b\":\" !# )&\",\"B 1 1 m\":\" !# !&(!+(!-\",\"B 1 1 b\":\" !# )&(!+()-\",\"P 1 1 2/m\":\" !# !&$%#$%&\",\"P 1 1 21/m\":\" !#$%+$%& !-\",\"B 1 1 2/m\":\" !# !&$%#$%&(!+(!-*%+*%-\",\"P 1 1 2/b\":\" !#$,#$%& )&\",\"P 1 1 21/b\":\" !#$%&$,+ )-\",\"B 1 1 2/b\":\" !#$,#$%& )&(!+*,+*%-()-\",\"P 21 2 2\":\" !#$!&(%&*%#\",\"P 2 21 2\":\" !# ,&$)&$%#\",\"P 21 21 2 (a)\":\" !#*,#.%&$'&\",\"P 21 2 21\":\" !#$!&(%-*%+\",\"P 2 21 21\":\" !# %&$)-$,+\",\"C 2 2 21a)\":\" !#*%+(,&$)-()#$,+ %&*!-\",\"C 2 2 2a\":\" !#*,#.%&$'&()#$%# ,&*!&\",\"F 2 2 2a\":\" !#*,#.%&$'& '/*%/.12$!2.!/$,/ %20'2.'#$%# 1&0!&\",\"I 2 2 2a\":\" !#*,#.%&$'&()+$%+*!- ,-\",\"P 21/m 21/m 2/n a\":\" !#*,#$)&(%&$%&.'& ,#*!#\",\"P 42 21 2a\":\" !#*,#%.+'$+$'&.%&! -,*-\",\"I 2 3a\":\" !#*,#.%&$'&!# ,- '&$%/$# !-*!/$%&.%()+$%+ ,-*!-)+(%&(!-*,#*+()&$)#*,- ,\"};oa.prototype={constructor:oa,type:\"Assembly\",addPart:function(t,e){var i=new aa(t,e);return this.partList.push(i),i},getAtomCount:function(t){var e=0;return this.partList.forEach(function(i){e+=i.getAtomCount(t)}),e},getInstanceCount:function(){var t=0;return this.partList.forEach(function(e){t+=e.matrixList.length}),t},isIdentity:function(t){if(1!==this.partList.length)return!1;var e=this.partList[0];if(1!==e.matrixList.length)return!1;var i=new ht;if(!i.equals(e.matrixList[0]))return!1;var n=[];return t.eachChain(function(t){n.push(t.chainname)}),n=Y(n),e.chainList.length===n.length},getBoundingBox:function(t){var e=new ae;return this.partList.forEach(function(i){var n=i.getBoundingBox(t);e.expandByPoint(n.min),e.expandByPoint(n.max)}),e},getSelection:function(){var t=[];return this.partList.forEach(function(e){t=t.concat(e.chainList)}),ra(t)}},aa.prototype={constructor:aa,type:\"AssemblyPart\",getAtomCount:function(t){var e=0,i=this.chainList;return t.eachChain(function(t){0!==i.length&&i.indexOf(t.chainname)===-1||(e+=t.atomCount)}),this.matrixList.length*e},getBoundingBox:function(t){var e=new ae,i=new ae,n=this.getSelection(),r=t.getBoundingBox(n);return this.matrixList.forEach(function(t){i.copy(r).applyMatrix4(t),e.expandByPoint(i.min),e.expandByPoint(i.max)}),e},getSelection:function(){return ra(this.chainList)},getView:function(t){var e=this.getSelection();return e?t.getView(e):t},getInstanceList:function(){for(var t=[],e=0,i=this.matrixList.length;e=t.residueCount)){a.index=o+h,s.index=o+h+l,c.index=a.traceAtomIndex,u.index=s.traceAtomIndex;var d=c.distanceTo(u);if(Math.abs(d-i[l-2])>n)return!1}return!0},i=function(t,i){var n=[5.45,5.18,6.37],r=2.1;return e(t,i,n,r)},n=function(t,i){var n=[6.1,10.4,13],r=1.42;return e(t,i,n,r)},r=function(t){for(var e=t.residueStore,r=t.residueIndexStart,o=0,a=t.residueCount;o1&&a.bending[u]=3&&t.indexOf(n[0])!==-1?n[0]:\"\"}}();va.prototype={constructor:va,type:\"AtomType\",atomname:void 0,element:void 0,vdw:void 0,covalent:void 0},ba.prototype={constructor:ba,type:\"ResidueType\",resname:void 0,atomTypeIdList:void 0,atomCount:void 0,getBackboneIndexList:function(){var t,e=[];switch(this.moleculeType){case Bm:t=gg;break;case Um:case jm:t=vg;break;default:return e}for(var i=this.structure.atomMap,n=this.atomTypeIdList,r=0,o=this.atomCount;r=2?t(l,e[l],a):i[l]=2;else if(1===i[l]&&c&&c!=l){var d=[l];n[l]=1,r.push(d);for(var f=o.length-1;f>=0;--f){var p=o[f];if(p===l)break;d.push(p),n[p]=1}}}i[a]=2,o.pop()}for(var e=this.getBondGraph(),i=new Int8Array(this.atomCount),n=new Int8Array(this.atomCount),r=[],o=[],a=0;a1){for(e=0;e1){for(e=0;e0){var e=this.residueStore.atomOffset[this.residueIndex];return t.indexOf(this.index-e)!==-1}return!1},isPolymer:function(){var t=this.residueType.moleculeType;return t===Bm||t===Um||t===jm},isSidechain:function(){return this.isPolymer()&&!this.isBackbone()},isCg:function(){var t=this.residueType.backboneType;return t===Xm||t===qm||t===Ym},isHetero:function(){return 1===this.residueType.hetero},isProtein:function(){return this.residueType.moleculeType===Bm},isNucleic:function(){var t=this.residueType.moleculeType;return t===Um||t===jm},isRna:function(){return this.residueType.moleculeType===Um},isDna:function(){return this.residueType.moleculeType===jm},isWater:function(){return this.residueType.moleculeType===Fm},isIon:function(){return this.residueType.moleculeType===zm},isSaccharide:function(){return this.residueType.moleculeType===$m},isRing:function(){var t=this.residueType.getRings().flags;return 1===t[this.index-this.residueAtomOffset]},distanceTo:function(t){var e=this.atomStore,i=t.atomStore,n=this.index,r=t.index,o=e.x[n]-i.x[r],a=e.y[n]-i.y[r],s=e.z[n]-i.z[r],c=o*o+a*a+s*s;return Math.sqrt(c)},connectedTo:function(t){var e=this.atomStore,i=t.atomStore,n=this.index,r=t.index;if(e.altloc&&i.altloc){var o=e.altloc[n],a=i.altloc[r];if(0!==o&&0!==a&&32!==o&&32!==a&&o!==a)return!1}var s=e.x[n]-i.x[r],c=e.y[n]-i.y[r],u=e.z[n]-i.z[r],h=s*s+c*c+u*u;if(h<64&&this.isCg())return!0;if(isNaN(h))return!1;var l=this.covalent+t.covalent,d=l+.3,f=l-.5;return hf*f},positionFromArray:function(t,e){return void 0===e&&(e=0),this.x=t[e+0],this.y=t[e+1],this.z=t[e+2],this},positionToArray:function(t,e){void 0===t&&(t=[]),void 0===e&&(e=0);var i=this.index,n=this.atomStore;return t[e+0]=n.x[i],t[e+1]=n.y[i],t[e+2]=n.z[i],t},positionToVector3:function(t){return void 0===t&&(t=new dt),t.x=this.x,t.y=this.y,t.z=this.z,t},positionFromVector3:function(t){return this.x=t.x,this.y=t.y,this.z=t.z,this},getResidueBonds:function(t){var e,i,n,r,o=this.residueAtomOffset,a=this.index-this.residueAtomOffset,s=this.residueType.getBonds(),c=s.atomIndices1,u=s.atomIndices2;for(t||(r=[]),e=c.indexOf(a);e!==-1;){if(n=u[e]+o,t)return n;r.push(n),e=c.indexOf(a,e+1)}for(i=u.indexOf(a);i!==-1;){if(n=c[i]+o,t)return n;r.push(n),i=u.indexOf(a,i+1)}return r},qualifiedName:function(t){var e=\"\";return this.resname&&!t&&(e+=\"[\"+this.resname+\"]\"),void 0!==this.resno&&(e+=this.resno),this.inscode&&(e+=\"^\"+this.inscode),this.chainname&&(e+=\":\"+this.chainname),this.atomname&&(e+=\".\"+this.atomname),this.altloc&&(e+=\"%\"+this.altloc),e+=\"/\"+this.modelIndex},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,residueIndex:this.residueIndex,atomno:this.atomno,resname:this.resname,x:this.x,y:this.y,z:this.z,element:this.element,chainname:this.chainname,resno:this.resno,serial:this.serial,vdw:this.vdw,covalent:this.covalent,hetero:this.hetero,bfactor:this.bfactor,altloc:this.altloc,atomname:this.atomname,modelindex:this.modelindex}}},Sa.prototype={constructor:Sa,type:\"ResidueProxy\",structure:void 0,chainStore:void 0,residueStore:void 0,atomStore:void 0,index:void 0,get chain(){return this.structure.getChainProxy(this.chainIndex)},get chainIndex(){return this.residueStore.chainIndex[this.index]},set chainIndex(t){this.residueStore.chainIndex[this.index]=t},get atomOffset(){return this.residueStore.atomOffset[this.index]},set atomOffset(t){this.residueStore.atomOffset[this.index]=t},get atomCount(){return this.residueStore.atomCount[this.index]},set atomCount(t){this.residueStore.atomCount[this.index]=t},get atomEnd(){return this.atomOffset+this.atomCount-1},get modelIndex(){return this.chainStore.modelIndex[this.chainIndex]},get chainname(){return this.chainStore.getChainname(this.chainIndex)},get resno(){return this.residueStore.resno[this.index]},set resno(t){this.residueStore.resno[this.index]=t},get sstruc(){return this.residueStore.getSstruc(this.index)},set sstruc(t){this.residueStore.setSstruc(this.index,t)},get inscode(){return this.residueStore.getInscode(this.index)},set inscode(t){this.residueStore.getInscode(this.index,t)},get residueType(){return this.residueMap.get(this.residueStore.residueTypeId[this.index])},get resname(){return this.residueType.resname},get hetero(){return this.residueType.hetero},get moleculeType(){return this.residueType.moleculeType},get backboneType(){return this.residueType.backboneType},get backboneStartType(){return this.residueType.backboneStartType},get backboneEndType(){return this.residueType.backboneEndType},get traceAtomIndex(){return this.residueType.traceAtomIndex+this.atomOffset},get direction1AtomIndex(){return this.residueType.direction1AtomIndex+this.atomOffset},get direction2AtomIndex(){return this.residueType.direction2AtomIndex+this.atomOffset},get backboneStartAtomIndex(){return this.residueType.backboneStartAtomIndex+this.atomOffset},get backboneEndAtomIndex(){return this.residueType.backboneEndAtomIndex+this.atomOffset},get rungEndAtomIndex(){return this.residueType.rungEndAtomIndex+this.atomOffset},eachAtom:function(t,e){var i,n=this.atomCount,r=this.atomOffset,o=this.structure._ap,a=r+n;if(e&&e.atomOnlyTest){var s=e.atomOnlyTest;for(i=r;i=e){if(void 0===t&&(t=this.structure.getResidueProxy()),t.index=i,t.connectedTo(this))return t}else if(i===e-1){void 0===t&&(t=this.structure.getResidueProxy());var n=this.chainStore.residueCount[this.chainIndex];if(t.index=e+n-1,t.connectedTo(this))return t}},getBonds:function(){return this.residueType.getBonds(this)},getRings:function(){return this.residueType.getRings()},qualifiedName:function(t){var e=\"\";return this.resname&&!t&&(e+=\"[\"+this.resname+\"]\"),void 0!==this.resno&&(e+=this.resno),this.inscode&&(e+=\"^\"+this.inscode),this.chain&&(e+=\":\"+this.chainname),e+=\"/\"+this.modelIndex},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,chainIndex:this.chainIndex,atomOffset:this.atomOffset,atomCount:this.atomCount,resno:this.resno,resname:this.resname,sstruc:this.sstruc}}},Aa.prototype={constructor:Aa,type:\"Polymer\",structure:void 0,residueStore:void 0,atomStore:void 0,residueIndexStart:void 0,residueIndexEnd:void 0,residueCount:void 0,get chainIndex(){return this.residueStore.chainIndex[this.residueIndexStart]},get modelIndex(){return this.chainStore.modelIndex[this.chainIndex]},get chainname(){return this.chainStore.getChainname(this.chainIndex)},isProtein:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isProtein()},isCg:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isCg()},isNucleic:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.isNucleic()},getMoleculeType:function(){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.moleculeType},getBackboneType:function(t){return this.__residueProxy.index=this.residueIndexStart,this.__residueProxy.getBackboneType(t)},getAtomIndexByType:function(t,e){this.isCyclic?t===-1?t=this.residueCount-1:t===this.residueCount&&(t=0):(t!==-1||this.isPrevConnected||(t+=1),t!==this.residueCount||this.isNextNextConnected||(t-=1));var i=this.__residueProxy;i.index=this.residueIndexStart+t;var n;switch(e){case\"trace\":n=i.traceAtomIndex;break;case\"direction1\":n=i.direction1AtomIndex;break;case\"direction2\":n=i.direction2AtomIndex;break;default:var r=i.getAtomByName(e);n=r?r.index:void 0}return n},eachAtom:function(t,e){this.eachResidue(function(i){i.eachAtom(t,e)},e)},eachAtomN:function(t,e,i){var n,r=this.residueCount,o=new Array(t);for(n=0;n=n&&i=t&&e.apply(this,a)}})}},eachDirectionAtomsN:function(t,e){var i=2*t,n=this.atomOffset,r=this.atomCount,o=n+r;if(!(r=n&&i=n&&r=t&&e.apply(this,a)}},c,u)}},eachResidue:function(t){for(var e=this.structure.getResidueProxy(),i=this.residueCount,n=this.residueIndexStart,r=0;r1&&t(new Aa(o,i,u.index)),i=n)):(m!==Vm&&u.index-i>1&&t(new Aa(o,i,u.index)),i=n)}n-i>1&&this.structure.getResidueProxy(i).backboneStartType&&t(new Aa(o,i,n))},qualifiedName:function(){var t=\":\"+this.chainname+\"/\"+this.modelIndex;return t},clone:function(){return new this.constructor(this.structure,this.index)},toObject:function(){return{index:this.index,residueOffset:this.residueOffset,residueCount:this.residueCount,chainname:this.chainname}}},Pa.prototype={constructor:Pa,type:\"ModelProxy\",structure:void 0,modelStore:void 0,index:void 0,get chainOffset(){return this.modelStore.chainOffset[this.index]},set chainOffset(t){this.modelStore.chainOffset[this.index]=t},get chainCount(){return this.modelStore.chainCount[this.index]},set chainCount(t){this.modelStore.chainCount[this.index]=t},get residueOffset(){return this.chainStore.residueOffset[this.chainOffset]},get atomOffset(){return this.residueStore.atomOffset[this.residueOffset]},get chainEnd(){return this.chainOffset+this.chainCount-1},get residueEnd(){return this.chainStore.residueOffset[this.chainEnd]+this.chainStore.residueCount[this.chainEnd]-1},get atomEnd(){return this.residueStore.atomOffset[this.residueEnd]+this.residueStore.atomCount[this.residueEnd]-1},get residueCount(){return 0===this.chainCount?0:this.residueEnd-this.residueOffset+1},get atomCount(){return 0===this.residueCount?0:this.atomEnd-this.atomOffset+1},eachAtom:function(t,e){this.eachChain(function(i){i.eachAtom(t,e)},e)},eachResidue:function(t,e){this.eachChain(function(i){i.eachResidue(t,e)},e)},eachPolymer:function(t,e){if(e&&e.chainOnlyTest){var i=e.chainOnlyTest;this.eachChain(function(n){i(n)&&n.eachPolymer(t,e)})}else this.eachChain(function(i){i.eachPolymer(t,e)})},eachChain:function(t,e){var i,n=this.chainCount,r=this.chainOffset,o=this.structure._cp,a=r+n;if(e&&e.test){var s=e.chainOnlyTest;if(s)for(i=r;i1?(L=i.atomRadius(S),O=L*y/(.5*I),_.calculateShiftDir(F),v?(R=2*b*L,F.multiplyScalar(R),F.negate(),N.subVectors(A,S).multiplyScalar(Math.max(.1,R/1.88)),S.positionToArray(o,C),A.positionToArray(a,C),I>=2&&(D.addVectors(S,F).add(N).toArray(o,C+3),D.addVectors(A,F).sub(N).toArray(a,C+3),I>=3&&(D.subVectors(S,F).add(N).toArray(o,C+6),D.subVectors(A,F).sub(N).toArray(a,C+6)))):(R=(b-y)*L,F.multiplyScalar(R),2===I?(D.addVectors(S,F).toArray(o,C),D.subVectors(S,F).toArray(o,C+3),D.addVectors(A,F).toArray(a,C),D.subVectors(A,F).toArray(a,C+3)):3===I?(S.positionToArray(o,C),D.addVectors(S,F).toArray(o,C+3),D.subVectors(S,F).toArray(o,C+6),A.positionToArray(a,C),D.addVectors(A,F).toArray(a,C+3),D.subVectors(A,F).toArray(a,C+6)):(S.positionToArray(o,C),A.positionToArray(a,C)))):(S.positionToArray(o,C),A.positionToArray(a,C))),s&&(n.bondColorToArray(_,1,s,C),n.bondColorToArray(_,0,c,C),g&&I>1))for(E=1;E1))for(E=1;E1))for(O=l[k]*y/(v?1:.5*I),E=v?1:0;E1))for(O=d[k]*y/(v?1:.5*I),E=v?1:0;Ea&&(a=e),i>s&&(s=i),u>c&&(c=u)},e),i.min.set(n,r,o),i.max.set(a,s,c),t.Debug&&ty.timeEnd(\"getBoundingBox\"),i},getPrincipalAxes:function(e){t.Debug&&ty.time(\"getPrincipalAxes\");var i=0,n=new So(3,this.atomCount),r=n.data;return this.eachAtom(function(t){r[i+0]=t.x,r[i+1]=t.y,r[i+2]=t.z,i+=3},e),t.Debug&&ty.timeEnd(\"getPrincipalAxes\"),No(n)},atomCenter:function(t){return t?this.getBoundingBox(t).center():this.center.clone()},getSequence:function(t){var e=[],i=this.getResidueProxy();return this.eachAtom(function(t){i.index=t.residueIndex,t.index===i.traceAtomIndex&&e.push(i.getResname1())},t),e},getAtomIndices:function(t){var e;if(t&&t.string)e=[],this.eachAtom(function(t){e.push(t.index)},t);else{var i={what:{index:!0}};e=this.getAtomData(i).index}return e},updatePosition:function(t){var e=0;this.eachAtom(function(i){i.positionFromArray(t,e),e+=3})},dispose:function(){ey.removeObject(this),this.frames&&(this.frames.length=0),this.boxes&&(this.boxes.length=0),this.bondStore.dispose(),this.backboneBondStore.dispose(),this.rungBondStore.dispose(),this.atomStore.dispose(),this.residueStore.dispose(),this.chainStore.dispose(),this.modelStore.dispose(),delete this.bondStore,delete this.atomStore,delete this.residueStore,delete this.chainStore,delete this.modelStore,delete this.frames,delete this.boxes,delete this.cif,delete this.bondSet,delete this.atomSet}},Ca.prototype={constructor:Ca,type:\"Surface\",set:function(t,e,i,n,r){this.position=t,this.index=e,this.normal=i,this.color=n,this.atomindex=r,this.size=t.length/3},fromGeometry:function(e){t.Debug&&ty.time(\"GeometrySurface.fromGeometry\");var i;e instanceof Fe?(e.computeVertexNormals(!0),i=(new Ue).fromGeometry(e)):i=e instanceof Ue?e:e[0],i.boundingBox||i.computeBoundingBox(),this.center.copy(i.boundingBox.center()),this.boundingBox.copy(i.boundingBox);var n,r,o,a;if(i instanceof Ue){var s=i.attributes,c=!!s.normal&&s.normal.array;(!c||0===c[0]&&0===c[1]&&0===c[2])&&i.computeVertexNormals(),n=s.position.array,o=s.index?s.index.array:null,a=s.normal.array}this.set(n,o,a,r,void 0),t.Debug&&ty.timeEnd(\"GeometrySurface.setGeometry\")},getPosition:function(){return this.position},getColor:function(t){var e,i,n,r=t||{},o=this.size;if(\"volume\"===r.scheme){var a=new dt,s=this.position;for(n=ry.getScheme(r),i=new Float32Array(3*o),e=0;e65535?Uint32Array:Uint16Array;return new g(r)}return this.index},getAtomindex:function(){return this.atomindex},dispose:function(){}},Ta.prototype.constructor=Ta,Ia.prototype.constructor=Ia,Ra.__deps=[La,Oa],ka.__deps=[Da],Da.__deps=[po,fo,mo,ho],Na.__deps=[ka,Da,Ra,co,uo,Vo,Go],ny.add(\"surf\",function(t,e){var i=t.data.args,n=t.data.params;if(i&&(self.volsurf=new Na(i[0],i[1],i[2],i[3],i[4])),n){var r=self.volsurf.getSurface(n.isolevel,n.smooth,n.box,n.matrix),o=[r.position.buffer,r.index.buffer];r.normal&&o.push(r.normal.buffer),r.atomindex&&o.push(r.atomindex.buffer),e({sd:r,p:n},o)}},[Na]),Fa.prototype={constructor:Fa,type:\"Volume\",setData:function(t,e,i,n,r){this.nx=e||1,this.ny=i||1,this.nz=n||1,this.data=t||new Float32Array(1),this.__data=this.data,this.setDataAtomindex(r),delete this.mc,delete this.__isolevel,delete this.__smooth,delete this.__minValue,delete this.__maxValue,delete this.__dataPositionBuffer,delete this.__dataPosition,delete this.__dataBuffer,delete this.__dataMin,delete this.__dataMax,delete this.__dataMean,delete this.__dataRms,this.worker&&this.worker.terminate(),this.__data.length<=Math.pow(10,7)?ey.updateObject(this,!0):(ty.warn(\"Volume too large (>10^7), not adding to GidPool\"),ey.removeObject(this))},setMatrix:function(t){this.matrix.copy(t);var e=this.boundingBox,i=this.center,n=this.nx-1,r=this.ny-1,o=this.nz-1;e.makeEmpty(),e.expandByPoint(i.set(n,r,o)),e.expandByPoint(i.set(n,r,0)),e.expandByPoint(i.set(n,0,o)),e.expandByPoint(i.set(n,0,0)),e.expandByPoint(i.set(0,r,o)),e.expandByPoint(i.set(0,0,o)),e.expandByPoint(i.set(0,r,0)),e.expandByPoint(i.set(0,0,0)),e.applyMatrix4(this.matrix),e.center(this.center);var a=this.matrix.elements,s=new dt(a[0],a[1],a[2]),c=new dt(a[4],a[5],a[6]),u=new dt(a[8],a[9],a[10]),h=new dt,l=this.normalMatrix.elements;h.crossVectors(c,u),l[0]=h.x,l[1]=h.y,l[2]=h.z,h.crossVectors(u,s),l[3]=h.x,l[4]=h.y,l[5]=h.z,h.crossVectors(s,c),l[6]=h.x,l[7]=h.y,l[8]=h.z,this.inverseMatrix.getInverse(this.matrix)},setDataAtomindex:function(t){this.dataAtomindex=t,this.__dataAtomindex=this.dataAtomindex,delete this.__dataAtomindexBuffer},getBox:function(t,e,i){return i||(i=new ae),i.set(t,t),i.expandByScalar(e),i.applyMatrix4(this.inverseMatrix),i.min.round(),i.max.round(),i},__getBox:function(t,e){if(t&&e){this.__box||(this.__box=new ae);var i=this.getBox(t,e,this.__box);return[i.min.toArray(),i.max.toArray()]}},makeSurface:function(t,e,i){var n=new Ca(\"\",\"\",t);return n.info.isolevel=e,n.info.smooth=i,n},getSurface:function(t,e,i,n){t=isNaN(t)?this.getValueForSigma(2):t,e=e||0,void 0===this.volsurf&&(this.volsurf=new Na(this.__data,this.nx,this.ny,this.nz,this.__dataAtomindex));var r=this.__getBox(i,n),o=this.volsurf.getSurface(t,e,r,this.matrix.elements);return this.makeSurface(o,t,e)},getSurfaceWorker:function(t,e,i,n,r){if(t=isNaN(t)?this.getValueForSigma(2):t,e=e||0,window.Worker){void 0===this.workerPool&&(this.workerPool=new Ia(\"surf\",2));var o={},a=this.workerPool.getNextWorker();0===a.postCount&&(o.args=[this.__data,this.nx,this.ny,this.nz,this.__dataAtomindex]),o.params={isolevel:t,smooth:e,box:this.__getBox(i,n),matrix:this.matrix.elements},a.post(o,void 0,function(t){var e=t.data.sd,i=t.data.p;r(this.makeSurface(e,i.isolevel,i.smooth))}.bind(this),function(o){console.warn(\"Volume.getSurfaceWorker error - trying without worker\",o);var a=this.getSurface(t,e,i,n);r(a)}.bind(this))}else{var s=this.getSurface(t,e,i,n);r(s)}},getValueForSigma:function(t){return t=void 0!==t?t:2,this.getDataMean()+t*this.getDataRms()},getSigmaForValue:function(t){return t=void 0!==t?t:0,(t-this.getDataMean())/this.getDataRms()},filterData:function(t,e,i){isNaN(t)&&this.header&&(t=this.header.DMEAN+2*this.header.ARMS),t=void 0===t||isNaN(t)?-(1/0):t,e=void 0!==e?e:1/0,i=i||!1,this.dataPosition||this.makeDataPosition();var n=this.__dataPosition,r=this.__data;if(t!==this.__minValue||e!=this.__maxValue||i!==this.__outside){if(t===-(1/0)&&e===1/0)this.dataPosition=n,this.data=r;else{var o=r.length;this.__dataBuffer||(this.__dataPositionBuffer=new ArrayBuffer(3*o*4),this.__dataBuffer=new ArrayBuffer(4*o));for(var a=new Float32Array(this.__dataPositionBuffer),s=new Float32Array(this.__dataBuffer),c=0,u=0;u=t&&l<=e||i&&(le)){var d=3*c;a[d+0]=n[h+0],a[d+1]=n[h+1],a[d+2]=n[h+2],s[c]=l,c+=1}}this.dataPosition=new Float32Array(this.__dataPositionBuffer,0,3*c),this.data=new Float32Array(this.__dataBuffer,0,c)}this.__minValue=t,this.__maxValue=e,this.__outside=i}},makeDataPosition:function(){for(var t=this.nz,e=this.ny,i=this.nx,n=new Float32Array(i*e*t*3),r=0,o=0;o.9*e[3*n+n])if(o>0)for(r=0;r<3;++r)t[i+r]-=e[3*n+r];else for(r=0;r<3;++r)t[i+r]+=e[3*n+r];return t}},superpose:function(t){var e,i,n=3*this.indices.length,r=this.coords1,o=this.coords2;for(e=0;e0&&this.params.centerPbc){var r=[e[0],e[4],e[8]],o=this.getCircularMean(this.backboneIndices,i,r);this.centerPbc(i,o,r)}this.params.removePbc&&this.removePbc(i,e)}this.indices.length>0&&this.params.superpose&&this.superpose(i),this.frameCache[t]=i,this.boxCache[t]=e,this.frameCacheSize+=1},setNumframes:function(t){t!==this.numframes&&(this.numframes=t,this.signals.gotNumframes.dispatch(t))},dispose:function(){this.frameCache=[],this._disposed=!0,this.player&&this.player.stop()},setPlayer:function(t){this.player=t,this.signals.playerChanged.dispatch(t)},getPath:function(t,e){ty.error(\"Trajectory.getPath not implemented\",t,e)}},$a.prototype={constructor:$a,parameters:{opaqueBack:{updateShader:!0},dullInterior:{updateShader:!0},side:{updateShader:!0,property:!0},opacity:{uniform:!0},clipNear:{updateShader:!0,property:!0},flatShaded:{updateShader:!0},background:{updateShader:!0},linewidth:{property:!0},wireframe:{updateVisibility:!0},roughness:{uniform:!0},metalness:{uniform:!0},diffuse:{uniform:!0}},get transparent(){return this.opacity<1||this.forceTransparent},makeMaterial:function(){var t=ja(this.side);this.material=new ne({uniforms:this.uniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:this.transparent,depthWrite:!0,lights:!0,fog:!0,side:t,linewidth:this.linewidth}),this.material.vertexColors=fl,this.material.extensions.derivatives=this.flatShaded,this.material.extensions.fragDepth=this.impostor,this.material.clipNear=this.clipNear,this.wireframeMaterial=new ne({uniforms:this.uniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:this.transparent,depthWrite:!0,lights:!1,fog:!0,side:t,linewidth:this.linewidth}),this.wireframeMaterial.vertexColors=fl,this.wireframeMaterial.clipNear=this.clipNear,this.pickingMaterial=new ne({uniforms:this.pickingUniforms,vertexShader:\"\",fragmentShader:\"\",depthTest:!0,transparent:!1,depthWrite:!0,lights:!1,fog:!1,side:t,linewidth:this.linewidth}),this.pickingMaterial.vertexColors=fl,this.pickingMaterial.extensions.fragDepth=this.impostor,this.pickingMaterial.clipNear=this.clipNear,this.updateShader()},makeWireframeGeometry:function(){this.makeWireframeIndex();var t=this.geometry,e=this.wireframeIndex,i=new Ue;i.attributes=t.attributes,e&&(i.setIndex(new Ce(e,1).setDynamic(this.dynamic)),i.setDrawRange(0,this.wireframeIndexCount)),this.wireframeGeometry=i},makeWireframeIndex:function(){function t(t,i){if(t>i){var n=t;t=i,i=n}var r=e[t];return void 0===r?(e[t]=[i],!0):r.indexOf(i)===-1&&(r.push(i),!0)}var e=[];return function(){var i=this.geometry.index;if(this.wireframe){if(i){var n=i.array,r=n.length;this.geometry.drawRange.count!==1/0&&(r=this.geometry.drawRange.count);var o;if(this.wireframeIndex&&this.wireframeIndex.length>2*r)o=this.wireframeIndex;else{var a=this.geometry.attributes.position.count,s=a>65535?Uint32Array:Uint16Array;o=new s(2*r)}var c=0;e.length=0;for(var u=0;uthis.wireframeGeometry.index.array.length)this.wireframeGeometry.setIndex(new Ce(this.wireframeIndex,1).setDynamic(this.dynamic));else{var t=this.wireframeGeometry.getIndex();t.set(this.wireframeIndex),t.needsUpdate=this.wireframeIndexCount>0,t.updateRange.count=this.wireframeIndexCount}this.wireframeGeometry.setDrawRange(0,this.wireframeIndexCount)},getRenderOrder:function(){var t=0;return\"text\"===this.type?t=1:this.transparent&&(t=\"surface\"===this.type?3:2),t},getMesh:function(){var t;return this.material||this.makeMaterial(),this.line?t=new bi(this.geometry,this.material):this.point?(t=new _i(this.geometry,this.material),this.sortParticles&&(t.sortParticles=!0)):t=new ti(this.geometry,this.material),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getWireframeMesh:function(){var t;return this.material||this.makeMaterial(),this.wireframeGeometry||this.makeWireframeGeometry(),t=new bi(this.wireframeGeometry,this.wireframeMaterial),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getPickingMesh:function(){var t;return this.material||this.makeMaterial(),t=new ti(this.geometry,this.pickingMaterial),t.frustumCulled=!1,t.renderOrder=this.getRenderOrder(),t},getShader:function(t,e){return Vr(t,this.getDefines(e))},getVertexShader:function(t){return this.getShader(this.vertexShader,t)},getFragmentShader:function(t){return this.getShader(this.fragmentShader,t)},getDefines:function(t){var e={};return this.clipNear&&(e.NEAR_CLIP=1),\"picking\"===t?e.PICKING=1:((\"background\"===t||this.background)&&(e.NOLIGHT=1),this.flatShaded&&(e.FLAT_SHADED=1),this.opaqueBack&&(e.OPAQUE_BACK=1),\nthis.dullInterior&&(e.DULL_INTERIOR=1)),e},getParameters:function(){var t={};for(var e in this.parameters)t[e]=this[e];return t},addUniforms:function(t){this.uniforms=bf.merge([this.uniforms,t]),this.pickingUniforms=bf.merge([this.pickingUniforms,t])},addAttributes:function(t){var e={f:1,v2:2,v3:3,c:3};for(var i in t){var n,r=t[i];r.value?(this.attributeSize*e[r.type]!==r.value.length&&ty.error(\"attribute value has wrong length\",i),n=r.value):n=new Float32Array(this.attributeSize*e[r.type]),this.geometry.addAttribute(i,new Ce(n,e[r.type]).setDynamic(this.dynamic))}},updateRenderOrder:function(){function t(t){t.renderOrder=e}var e=this.getRenderOrder();this.group.children.forEach(t),this.pickingGroup&&this.pickingGroup.children.forEach(t)},updateShader:function(){var t=this.material,e=this.wireframeMaterial,i=this.pickingMaterial;t.vertexShader=this.getVertexShader(),t.fragmentShader=this.getFragmentShader(),t.needsUpdate=!0,e.vertexShader=this.getShader(\"Line.vert\"),e.fragmentShader=this.getShader(\"Line.frag\"),e.needsUpdate=!0,i.vertexShader=this.getVertexShader(\"picking\"),i.fragmentShader=this.getFragmentShader(\"picking\"),i.needsUpdate=!0},setParameters:function(t){if(t){var e=t,i=this.parameters,n={},r={},o=!1,a=!1;for(var s in e)void 0!==e[s]&&void 0!==i[s]&&(this[s]=e[s],i[s].property&&(i[s].property!==!0?n[i[s].property]=e[s]:n[s]=e[s]),i[s].uniform&&(i[s].uniform!==!0?r[i[s].uniform]=e[s]:r[s]=e[s]),i[s].updateShader&&(o=!0),i[s].updateVisibility&&(a=!0),this.dynamic&&\"wireframe\"===s&&e[s]===!0&&this.updateWireframeIndex(),\"flatShaded\"===s&&(this.material.extensions.derivatives=this.flatShaded),\"forceTransparent\"===s&&(n.transparent=this.transparent));this.setProperties(n),this.setUniforms(r),o&&this.updateShader(),a&&this.setVisibility(this.visible)}},setAttributes:function(t){var e=this.geometry,i=e.attributes;for(var n in t){var r=t[n],o=r.length;if(\"index\"===n){var a=e.getIndex();e.setDrawRange(0,1/0),o>a.array.length?e.setIndex(new Ce(r,1).setDynamic(this.dynamic)):(a.set(r),a.needsUpdate=o>0,a.updateRange.count=o,e.setDrawRange(0,o)),this.indexVersion++,this.wireframe&&this.updateWireframeIndex()}else{var s=i[n];o>s.array.length?e.addAttribute(n,new Ce(r,s.itemSize).setDynamic(this.dynamic)):(i[n].set(r),i[n].needsUpdate=o>0,i[n].updateRange.count=o)}}},setUniforms:function(t){if(t){var e=this.material.uniforms,i=this.wireframeMaterial.uniforms,n=this.pickingMaterial.uniforms;for(var r in t)\"opacity\"===r&&this.setProperties({transparent:this.transparent}),void 0!==e[r]&&(e[r].value.set?e[r].value.set(t[r]):e[r].value=t[r]),void 0!==i[r]&&(i[r].value.set?i[r].value.set(t[r]):i[r].value=t[r]),void 0!==n[r]&&(n[r].value.set?n[r].value.set(t[r]):n[r].value=t[r])}},setProperties:function(t){if(t){var e=this.material,i=this.wireframeMaterial,n=this.pickingMaterial;for(var r in t){var o=t[r];\"transparent\"===r?this.updateRenderOrder():\"side\"===r&&(o=ja(o)),void 0!==e[r]&&(e[r]=o),void 0!==i[r]&&(i[r]=o),void 0!==n[r]&&(n[r]=o)}e.needsUpdate=!0,i.needsUpdate=!0,n.needsUpdate=!0}},setVisibility:function(t){this.visible=t,this.wireframe?(this.group.visible=!1,this.wireframeGroup.visible=t,this.pickable&&(this.pickingGroup.visible=!1)):(this.group.visible=t,this.wireframeGroup.visible=!1,this.pickable&&(this.pickingGroup.visible=t))},dispose:function(){this.material&&this.material.dispose(),this.wireframeMaterial&&this.wireframeMaterial.dispose(),this.pickingMaterial&&this.pickingMaterial.dispose(),this.geometry.dispose(),this.wireframeGeometry&&this.wireframeGeometry.dispose()}},Va.prototype=Object.assign(Object.create($a.prototype),{constructor:Va}),Xa.prototype=Object.assign(Object.create(Va.prototype),{constructor:Xa,applyPositionTransform:function(){},setAttributes:function(){var t=new ht,e=new ce;return function(i){var n,r,o,a,s,c,u,h,l,d,f,p=this.geometry.attributes;i.position&&(n=i.position,a=this.geoPosition,h=this.meshPosition,c=this.transformedGeoPosition,p.position.needsUpdate=!0),i.color&&(r=i.color,l=this.meshColor,p.color.needsUpdate=!0),i.pickingColor&&(o=i.pickingColor,d=this.meshPickingColor,p.pickingColor.needsUpdate=!0);var m=!(!this.updateNormals||!n),g=!(!this.initNormals||!n);(m||g)&&(s=this.geoNormal,f=this.meshNormal,u=this.transformedGeoNormal,p.normal.needsUpdate=!0);for(var v=this.positionCount,y=this.geoPositionCount,b=0;b0?(this.tasks.change(1-this.queue.length()),this.queue.kill()):this.tasks.increment(),t||(t=this.getParameters(),delete t.quality),void this.queue.push(t)):(t||(t=this.getParameters(),delete t.quality),this.tasks.increment(),void this.make(t,function(){}))},make:function(e,i){t.Debug&&ty.time(\"Representation.make \"+this.type),e&&!e.__update&&this.init(e);var n=function(){e.__update?(this.update(e.__update),this.viewer.requestRender(),this.tasks.decrement(),i()):(this.clear(),this.create(),this.manualAttach||this.disposed||(t.Debug&&ty.time(\"Representation.attach \"+this.type),this.attach(function(){t.Debug&&ty.timeEnd(\"Representation.attach \"+this.type),this.tasks.decrement(),i()}.bind(this)))),t.Debug&&ty.timeEnd(\"Representation.make \"+this.type)}.bind(this);this.prepare?this.prepare(n):n()},attach:function(t){this.setVisibility(this.visible),t()},setVisibility:function(t,e){if(this.visible=t,this.visible){var i=this.lazyProps;if(i.build)return i.build=!1,void this.build();(i.bufferParams||i.what)&&this.updateParameters(i.bufferParams,i.what)}return this.bufferList.forEach(function(e){e.setVisibility(t)}),e||this.viewer.requestRender(),this},setParameters:function(t,e,i){var n=t||{},r=this.parameters;e=e||{},i=i||!1;var o={};for(var a in n)void 0!==n[a]&&void 0!==r[a]&&(r[a].int&&(n[a]=parseInt(n[a])),r[a].float&&(n[a]=parseFloat(n[a])),n[a]!==this[a]&&(this[a]=n[a],r[a].buffer&&(r[a].buffer===!0?o[a]=n[a]:o[r[a].buffer]=n[a]),r[a].update&&(e[r[a].update]=!0),!r[a].rebuild||\"impostor\"===r[a].rebuild&&Jv&&!this.disableImpostor||(i=!0)));return i?this.build():this.updateParameters(o,e),this},updateParameters:function(t,e){return this.lazy&&!this.visible?(Object.assign(this.lazyProps.bufferParams,t),void Object.assign(this.lazyProps.what,e)):(this.bufferList.forEach(function(e){e.setParameters(t)}),Object.keys(e).length&&this.update(e),void this.viewer.requestRender())},getParameters:function(){var t={lazy:this.lazy,visible:this.visible,quality:this.quality};return Object.keys(this.parameters).forEach(function(e){\"button\"===this.parameters.type?t[e]=this[e].bind(this):t[e]=this[e]},this),t},clear:function(){this.bufferList.forEach(function(t){this.viewer.remove(t),t.dispose()},this),this.bufferList.length=0,this.viewer.requestRender()},dispose:function(){this.disposed=!0,this.queue.kill(),this.tasks.dispose(),this.clear()}},hs.prototype=Object.assign(Object.create(us.prototype),{constructor:hs,type:\"buffer\",parameters:Object.assign({},us.prototype.parameters,{colorScheme:null,colorScale:null,colorValue:null,colorDomain:null,colorMode:null}),create:function(){this.bufferList.push.apply(this.bufferList,this.buffer)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t),t.setParameters(this.getBufferParams())},this),this.setVisibility(this.visible),t()}}),ls.prototype=Object.assign(Object.create(Va.prototype),{constructor:ls,type:\"surface\"}),ds.prototype.constructor=ds,fs.prototype=Object.assign(Object.create(us.prototype),{constructor:fs,type:\"surface\",parameters:Object.assign({isolevelType:{type:\"select\",options:{value:\"value\",sigma:\"sigma\"}},isolevel:{type:\"number\",precision:2,max:1e3,min:-1e3},smooth:{type:\"integer\",precision:1,max:10,min:0},background:{type:\"boolean\",rebuild:!0},opaqueBack:{type:\"boolean\",buffer:!0},boxSize:{type:\"integer\",precision:1,max:100,min:0},useWorker:{type:\"boolean\",rebuild:!0}},us.prototype.parameters),init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"uniform\"),e.colorValue=$(e.colorValue,14540253),this.isolevelType=$(e.isolevelType,\"sigma\"),this.isolevel=$(e.isolevel,2),this.smooth=$(e.smooth,0),this.background=$(e.background,!1),this.opaqueBack=$(e.opaqueBack,!0),this.boxSize=$(e.boxSize,0),this.useWorker=$(e.useWorker,!0),us.prototype.init.call(this,e)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t)},this),this.setVisibility(this.visible),t()},prepare:function(t){if(this.volume){var e;if(e=\"sigma\"===this.isolevelType?this.volume.getValueForSigma(this.isolevel):this.isolevel,!this.surface||this.__isolevel!==e||this.__smooth!==this.smooth||this.__boxSize!==this.boxSize||this.boxSize>0&&!this.__boxCenter.equals(this.boxCenter)){this.__isolevel=e,this.__smooth=this.smooth,this.__boxSize=this.boxSize,this.__boxCenter.copy(this.boxCenter),this.__box.copy(this.box);var i=function(e){this.surface=e,t()}.bind(this);this.useWorker?this.volume.getSurfaceWorker(e,this.smooth,this.boxCenter,this.boxSize,i):i(this.volume.getSurface(e,this.smooth,this.boxCenter,this.boxSize))}else t()}else t()},create:function(){var t=new ls(this.surface.getPosition(),this.surface.getColor(this.getColorParams()),this.surface.getIndex(),this.surface.getNormal(),void 0,this.getBufferParams({background:this.background,opaqueBack:this.opaqueBack,dullInterior:!1})),e=new ds(t);this.bufferList.push(e)},update:function(t){if(0!==this.bufferList.length){t=t||{};var e={};t.position&&(e.position=this.surface.getPosition()),t.color&&(e.color=this.surface.getColor(this.getColorParams())),t.index&&(e.index=this.surface.getIndex()),t.normal&&(e.normal=this.surface.getNormal()),this.bufferList.forEach(function(t){t.setAttributes(e)})}},setParameters:function(t,e,i){return t&&void 0!==t.isolevelType&&this.volume&&(\"value\"===this.isolevelType&&\"sigma\"===t.isolevelType?this.isolevel=this.volume.getSigmaForValue(this.isolevel):\"sigma\"===this.isolevelType&&\"value\"===t.isolevelType&&(this.isolevel=this.volume.getValueForSigma(this.isolevel)),this.isolevelType=t.isolevelType),t&&t.boxCenter&&(this.boxCenter.copy(t.boxCenter),delete t.boxCenter),us.prototype.setParameters.call(this,t,e,i),this.volume&&this.volume.getBox(this.boxCenter,this.boxSize,this.box),this.surface&&(void 0!==t.isolevel||void 0!==t.smooth||void 0!==t.boxSize||this.boxSize>0&&!this.__box.equals(this.box))&&this.build({__update:{position:!0,color:!0,index:!0,normal:!0}}),this},dispose:function(){this.viewer.signals.orientationChanged.remove(this.setBox),us.prototype.dispose.call(this)}}),ms.prototype=Object.assign(Object.create($a.prototype),{constructor:ms,parameters:Object.assign({pointSize:{uniform:\"size\"},sizeAttenuation:{updateShader:!0},sortParticles:{},alphaTest:{updateShader:!0},useTexture:{updateShader:!0},forceTransparent:{},edgeBleach:{uniform:!0}},$a.prototype.parameters),makeMaterial:function(){$a.prototype.makeMaterial.call(this),this.makeTexture(),this.material.uniforms.map.value=this.tex,this.material.blending=ml,this.material.needsUpdate=!0,this.wireframeMaterial.uniforms.map.value=this.tex,this.wireframeMaterial.blending=ml,this.wireframeMaterial.needsUpdate=!0,this.pickingMaterial.uniforms.map.value=this.tex,this.pickingMaterial.blending=ml,this.pickingMaterial.needsUpdate=!0},makeTexture:function(){this.tex&&this.tex.dispose(),this.tex=ps({delta:this.edgeBleach})},getDefines:function(t){var e=$a.prototype.getDefines.call(this,t);return this.sizeAttenuation&&(e.USE_SIZEATTENUATION=1),this.useTexture&&(e.USE_MAP=1),this.alphaTest>0&&this.alphaTest<=1&&(e.ALPHATEST=this.alphaTest.toPrecision(2)),e},setUniforms:function(t){t&&void 0!==t.edgeBleach&&(this.makeTexture(),t.map=this.tex),$a.prototype.setUniforms.call(this,t)},dispose:function(){$a.prototype.dispose.call(this),this.tex&&this.tex.dispose()}}),gs.prototype=Object.assign(Object.create(us.prototype),{constructor:gs,type:\"dot\",parameters:Object.assign({thresholdType:{type:\"select\",rebuild:!0,options:{value:\"value\",sigma:\"sigma\"}},thresholdMin:{type:\"number\",precision:3,max:1/0,min:-(1/0),rebuild:!0},thresholdMax:{type:\"number\",precision:3,max:1/0,min:-(1/0),rebuild:!0},thresholdOut:{type:\"boolean\",rebuild:!0},dotType:{type:\"select\",rebuild:!0,options:{\"\":\"\",sphere:\"sphere\",point:\"point\"}},radiusType:{type:\"select\",options:{\"\":\"\",value:\"value\",\"abs-value\":\"abs-value\",\"value-min\":\"value-min\",deviation:\"deviation\",size:\"size\"}},radius:{type:\"number\",precision:3,max:10,min:.001,property:\"size\"},scale:{type:\"number\",precision:3,max:10,min:.001},sphereDetail:!0,disableImpostor:!0,pointSize:{type:\"number\",precision:1,max:100,min:0,buffer:!0},sizeAttenuation:{type:\"boolean\",buffer:!0},sortParticles:{type:\"boolean\",rebuild:!0},useTexture:{type:\"boolean\",buffer:!0},alphaTest:{type:\"range\",step:.001,max:1,min:0,buffer:!0},forceTransparent:{type:\"boolean\",buffer:!0},edgeBleach:{type:\"range\",step:.001,max:1,min:0,buffer:!0}},us.prototype.parameters,{colorScheme:{type:\"select\",update:\"color\",options:{\"\":\"\",value:\"value\",uniform:\"uniform\"}}}),defaultSize:.1,init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"uniform\"),e.colorValue=$(e.colorValue,14540253),this.thresholdType=$(e.thresholdType,\"sigma\"),this.thresholdMin=$(e.thresholdMin,2),this.thresholdMax=$(e.thresholdMax,1/0),this.thresholdOut=$(e.thresholdOut,!1),this.dotType=$(e.dotType,\"point\"),this.radius=$(e.radius,.1),this.scale=$(e.scale,1),this.pointSize=$(e.pointSize,1),this.sizeAttenuation=$(e.sizeAttenuation,!0),this.sortParticles=$(e.sortParticles,!1),this.useTexture=$(e.useTexture,!1),this.alphaTest=$(e.alphaTest,.5),this.forceTransparent=$(e.forceTransparent,!1),this.edgeBleach=$(e.edgeBleach,0),us.prototype.init.call(this,e)},attach:function(t){this.bufferList.forEach(function(t){this.viewer.add(t)},this),this.setVisibility(this.visible),t()},create:function(){var t,e,i,n;if(this.volume){var r,o,a=this.volume;\"sigma\"===this.thresholdType?(r=a.getValueForSigma(this.thresholdMin),o=a.getValueForSigma(this.thresholdMax)):(r=this.thresholdMin,o=this.thresholdMax),a.filterData(r,o,this.thresholdOut),t=a.getDataPosition(),e=a.getDataColor(this.getColorParams()),i=a.getDataSize(this.radius,this.scale),n=a.getPickingDataColor(this.getColorParams())}else{var s=this.surface;t=s.getPosition(),e=s.getColor(this.getColorParams()),i=s.getSize(this.radius,this.scale),n=s.getPickingColor(this.getColorParams())}\"sphere\"===this.dotType?this.dotBuffer=new Qa(t,e,i,n,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!1})):this.dotBuffer=new ms(t,e,this.getBufferParams({pointSize:this.pointSize,sizeAttenuation:this.sizeAttenuation,sortParticles:this.sortParticles,useTexture:this.useTexture,alphaTest:this.alphaTest,forceTransparent:this.forceTransparent,edgeBleach:this.edgeBleach})),this.bufferList.push(this.dotBuffer)},update:function(t){if(0!==this.bufferList.length){t=t||{};var e={};t.color&&(this.volume?e.color=this.volume.getDataColor(this.getColorParams()):e.color=this.surface.getColor(this.getColorParams())),\"sphere\"===this.dotType&&(t.radius||t.scale)&&(this.volume?e.radius=this.volume.getDataSize(this.radius,this.scale):e.radius=this.surface.getSize(this.radius,this.scale)),this.dotBuffer.setAttributes(e)}},setParameters:function(t,e,i){return e=e||{},t&&void 0!==t.thresholdType&&this.volume instanceof Fa&&(\"value\"===this.thresholdType&&\"sigma\"===t.thresholdType?(this.thresholdMin=this.volume.getSigmaForValue(this.thresholdMin),this.thresholdMax=this.volume.getSigmaForValue(this.thresholdMax)):\"sigma\"===this.thresholdType&&\"value\"===t.thresholdType&&(this.thresholdMin=this.volume.getValueForSigma(this.thresholdMin),this.thresholdMax=this.volume.getValueForSigma(this.thresholdMax)),this.thresholdType=t.thresholdType),t&&void 0!==t.radiusType&&(\"radius\"===t.radiusType?this.radius=this.defaultSize:this.radius=t.radiusType,e.radius=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.radius&&(e.radius=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.scale&&(e.scale=!0,\"sphere\"!==this.dotType||Jv&&!this.disableImpostor||(i=!0)),us.prototype.setParameters.call(this,t,e,i),this}}),vs.prototype=Object.assign(Object.create(us.prototype),{constructor:vs,type:\"structure\",parameters:Object.assign({radiusType:{type:\"select\",options:oo.types},radius:{type:\"number\",precision:3,max:10,min:.001},scale:{type:\"number\",precision:3,max:10,min:.001},assembly:null},us.prototype.parameters),defaultScale:{vdw:1,covalent:1,bfactor:.01,sstruc:1},defaultSize:1,init:function(t){var e=t||{};e.colorScheme=$(e.colorScheme,\"element\"),this.radius=$(e.radius,\"vdw\"),this.scale=$(e.scale,1),this.assembly=$(e.assembly,\"default\"),this.defaultAssembly=$(e.defaultAssembly,\"\"),us.prototype.init.call(this,e)},getAssembly:function(){var t=\"default\"===this.assembly?this.defaultAssembly:this.assembly;return this.structure.biomolDict[t]},create:function(){if(0!==this.structureView.atomCount){var t=this.getAssembly();if(t)t.partList.forEach(function(t,e){var i=t.getView(this.structureView);if(0!==i.atomCount){var n=this.createData(i,e);n&&(n.sview=i,n.instanceList=t.getInstanceList(),this.dataList.push(n))}},this);else{var e=this.createData(this.structureView,0);e&&(e.sview=this.structureView,this.dataList.push(e))}}},createData:function(){console.error(\"createData not implemented\")},update:function(t){return this.lazy&&!this.visible?void Object.assign(this.lazyProps.what,t):void this.dataList.forEach(function(e){e.bufferList.length>0&&this.updateData(t,e)},this)},updateData:function(){console.error(\"updateData not implemented\")},getColorParams:function(){var t=us.prototype.getColorParams.call(this);return t.structure=this.structure,t},getAtomParams:function(t,e){return Object.assign({what:t,colorParams:this.getColorParams(),radiusParams:{radius:this.radius,scale:this.scale}},e)},getBondParams:function(t,e){return Object.assign({what:t,colorParams:this.getColorParams(),radiusParams:{radius:this.radius,scale:this.scale}},e)},setSelection:function(t,e){return this.selection.setString(t,e),this},setParameters:function(t,e,i){return e=e||{},t&&void 0!==t.radiusType&&(\"size\"===t.radiusType?this.radius=this.defaultSize:this.radius=t.radiusType,e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.radius&&(e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),t&&void 0!==t.scale&&(e.radius=!0,Jv&&!this.disableImpostor||(i=!0)),us.prototype.setParameters.call(this,t,e,i),this},getParameters:function(){var t=Object.assign(us.prototype.getParameters.call(this),{sele:this.selection?this.selection.string:void 0,defaultAssembly:this.defaultAssembly});return t},attach:function(t){var e=this.viewer,i=this.bufferList;this.dataList.forEach(function(t){t.bufferList.forEach(function(n){i.push(n),e.add(n,t.instanceList)})}),this.setVisibility(this.visible),t()},clear:function(){this.dataList.length=0,us.prototype.clear.call(this)},dispose:function(){this.structureView.dispose(),delete this.structure,delete this.structureView,us.prototype.dispose.call(this)}}),ys.prototype=Object.assign(Object.create($a.prototype),{constructor:ys,setAttributes:function(t){var e,i,n,r,o,a,s=this.geometry.attributes;t.from&&t.to&&(e=t.from,i=t.to,o=s.position.array,s.position.needsUpdate=!0),t.color&&t.color2&&(n=t.color,r=t.color2,a=s.color.array,s.color.needsUpdate=!0);for(var c,u,h,l,d,f,p,m,g,v,y,b,x=this.size,_=6*x,w=0;w0&&(n=\"( \"+e.join(\" ) AND ( \")+\" )\"),new Qn(n)},getStructure:function(){return this.structure.getStructure()},eachBond:function(t,e){this.structure.eachBond(t,this.getSelection(e))},eachAtom:function(t,e){var i=this.getAtomProxy(),n=this.getAtomSet(e),r=this.atomStore.count;if(n&&n.size()=this.V[i][n]&&this.S[i][n]>=this.V[i][n]?(r=\"S\",this.score=this.S[i][n]):this.V[i][n]>=this.H[i][n]?(r=\"V\",this.score=this.V[i][n]):(r=\"H\",this.score=this.H[i][n]),t.Debug&&ty.log(\"Alignment: SCORE\",this.score),t.Debug&&ty.log(\"Alignment: S, V, H\",this.S[i][n],this.V[i][n],this.H[i][n]);i>0&&n>0;)\"S\"===r?this.S[i][n]===this.S[i-1][n-1]+e(i-1,n-1)?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--i,--n,r=\"S\"):this.S[i][n]===this.V[i][n]?r=\"V\":this.S[i][n]===this.H[i][n]?r=\"H\":(--i,--n):\"V\"===r?this.V[i][n]===this.V[i-1][n]+this.gapExtensionPenalty?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i,r=\"V\"):this.V[i][n]===this.S[i-1][n]+this.gap(0)?(this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i,r=\"S\"):--i:\"H\"===r?this.H[i][n]===this.H[i][n-1]+this.gapExtensionPenalty?(this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n,r=\"H\"):this.H[i][n]===this.S[i][n-1]+this.gap(0)?(this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n,r=\"S\"):--n:ty.error(\"Alignment: no matrix\");for(;i>0;)this.ali1=this.seq1[i-1]+this.ali1,this.ali2=\"-\"+this.ali2,--i;for(;n>0;)this.ali1=\"-\"+this.ali1,this.ali2=this.seq2[n-1]+this.ali2,--n;t.Debug&&ty.timeEnd(\"Alignment.trace\"),t.Debug&&ty.log([this.ali1,this.ali2])}},ks.prototype=Object.assign(Object.create(_s.prototype),{constructor:ks,type:\"structure\",signals:Object.assign({trajectoryAdded:null,trajectoryRemoved:null,defaultAssemblyChanged:null},_s.prototype.signals),initSelection:function(t){this.selection=new Qn(t),this.structureView=new Ls(this.structure,this.selection),this.selection.signals.stringChanged.add(function(){this.structureView.setSelection(this.selection),this.rebuildRepresentations(),this.rebuildTrajectories()},this)},setSelection:function(t){return this.selection.setString(t),this},setDefaultAssembly:function(t){this.defaultAssembly=t,this.rebuildRepresentations(),this.signals.defaultAssemblyChanged.dispatch(t)},rebuildRepresentations:function(){this.reprList.forEach(function(t){var e=t.getParameters();e.defaultAssembly=this.defaultAssembly,t.build(e)},this)},rebuildTrajectories:function(){this.trajList.slice().forEach(function(t){t.trajectory.setStructure(this.structureView)},this)},addRepresentation:function(t,e){var i=e||{};return i.defaultAssembly=this.defaultAssembly,_s.prototype.addRepresentation.call(this,t,this.structureView,i)},addTrajectory:function(t,e,i){var n={i:i},r=Is(t,this.structureView,e);r.signals.frameChanged.add(function(){this.updateRepresentations({position:!0})},this);var o=new Ps(this.stage,r,n,this);return this.trajList.push(o),this.signals.trajectoryAdded.dispatch(o),o},removeTrajectory:function(t){var e=this.trajList.indexOf(t);e!==-1&&this.trajList.splice(e,1),t.dispose(),this.signals.trajectoryRemoved.dispatch(t)},dispose:function(){this.trajList.slice().forEach(function(t){t.dispose()}),this.trajList.length=0,this.structure.dispose(),_s.prototype.dispose.call(this)},centerView:function(t,e){t=void 0===t||t;var i=this.getCenter(e);if(t){var n;n=e?this.structureView.getBoundingBox(new Qn(e)):this.structureView.boundingBox;var r=n.size(),o=Math.max(r.x,r.y,r.z),a=Math.min(r.x,r.y,r.z);t=Math.max(1,o+a/2)}return this.viewer.centerView(t,i),this},getCenter:function(t){return t?this.structure.atomCenter(new Qn(t)):this.structure.center},superpose:function(t,e,i,n){return Rs(this.structureView,t.structureView,e,i,n),this.updateRepresentations({position:!0}),this},setVisibility:function(t){return _s.prototype.setVisibility.call(this,t),this.trajList.forEach(function(e){e.setVisibility(t)}),this}}),Ds.prototype=Object.assign(Object.create(_s.prototype),{constructor:Ds,type:\"surface\",addRepresentation:function(t,e){return _s.prototype.addRepresentation.call(this,t,this.surface,e)},dispose:function(){this.surface.dispose(),_s.prototype.dispose.call(this)},centerView:function(t){var e=this.surface.center;t&&(t=this.surface.boundingBox.size().length()),this.viewer.centerView(t,e)}}),Ns.prototype=Object.assign(Object.create(_s.prototype),{constructor:Ns,type:\"shape\",addRepresentation:function(t,e){return _s.prototype.addRepresentation.call(this,t,this.shape,e)},dispose:function(){this.shape.dispose(),_s.prototype.dispose.call(this)}}),Fs.prototype=Object.assign(Object.create(_s.prototype),{constructor:Fs,type:\"script\",addRepresentation:function(){},removeRepresentation:function(){},run:function(){var t=this;this.setStatus(\"running\"),this.script.call(this.stage,function(){t.setStatus(\"finished\")}),this.setStatus(\"called\")},dispose:function(){this.signals.disposed.dispatch()},setVisibility:function(){},getCenter:function(){}}),Bs.prototype={constructor:Bs,parameters:{backgroundColor:{type:\"color\"},quality:{type:\"select\",options:{low:\"low\",medium:\"medium\",high:\"high\"}},sampleLevel:{type:\"range\",step:1,max:5,min:-1},impostor:{type:\"boolean\"},rotateSpeed:{type:\"number\",precision:1,max:10,min:0},zoomSpeed:{type:\"number\",precision:1,max:10,min:0},panSpeed:{type:\"number\",precision:1,max:10,min:0},clipNear:{type:\"range\",step:1,max:100,min:0},clipFar:{type:\"range\",step:1,max:100,min:0},clipDist:{type:\"integer\",max:200,min:0},fogNear:{type:\"range\",step:1,max:100,min:0},fogFar:{type:\"range\",step:1,max:100,min:0},cameraType:{type:\"select\",options:{perspective:\"perspective\",orthographic:\"orthographic\"}},cameraFov:{type:\"range\",step:1,max:120,min:15},lightColor:{type:\"color\"},lightIntensity:{type:\"number\",precision:2,max:10,min:0},ambientColor:{type:\"color\"},ambientIntensity:{type:\"number\",precision:2,max:10,min:0},hoverTimeout:{type:\"integer\",max:1e4,min:10}},setParameters:function(t){var e=Object.assign({},t),i=this.parameters,n=this.viewer,r=n.controls,o=this.pickingControls;for(var a in e)void 0!==e[a]&&i[a]&&(i[a].int&&(e[a]=parseInt(e[a])),i[a].float&&(e[a]=parseFloat(e[a])),i[a].value=e[a]);return void 0!==e.quality&&this.setQuality(e.quality),void 0!==e.impostor&&this.setImpostor(e.impostor),void 0!==e.rotateSpeed&&(r.rotateSpeed=e.rotateSpeed),void 0!==e.zoomSpeed&&(r.zoomSpeed=e.zoomSpeed),void 0!==e.panSpeed&&(r.panSpeed=e.panSpeed),o.setParameters({hoverTimeout:e.hoverTimeout}),n.setClip(e.clipNear,e.clipFar,e.clipDist),n.setFog(void 0,e.fogNear,e.fogFar),n.setCamera(e.cameraType,e.cameraFov),n.setSampling(e.sampleLevel),n.setBackground(e.backgroundColor),n.setLight(e.lightColor,e.lightIntensity,e.ambientColor,e.ambientIntensity),this.signals.parametersChanged.dispatch(this.getParameters()),this},getParameters:function(){var t={};for(var e in this.parameters)t[e]=this.parameters[e].value;return t},defaultFileRepresentation:function(e){if(\"structure\"===e.type){e.setSelection(\"/0\");var i,n,r=e.structure;if(r.biomolDict.BU1){var o=r.biomolDict.BU1;i=o.getAtomCount(r),n=o.getInstanceCount(),e.setDefaultAssembly(\"BU1\")}else i=r.getModelProxy(0).atomCount,n=1;\"undefined\"!=typeof window.orientation&&(i*=4);var a=r.atomStore.count/r.residueStore.count<2;a&&(i*=10);var s=\"chainname\",c=new Set,u=r.getResidueProxy();if(r.getModelProxy(0).eachChain(function(t){u.index=t.residueOffset,u.isPolymer()&&c.add(t.chainname)}),1===c.size&&(s=\"residueindex\"),t.Debug&&console.log(i,n,a),n>5&&i>15e3||i>7e5){var h=Math.min(1.5,Math.max(.1,2e3/(i/n)));a&&(h=Math.min(h,.15)),e.addRepresentation(\"surface\",{sele:\"polymer\",surfaceType:\"sas\",probeRadius:1.4,scaleFactor:h,colorScheme:s,colorScale:\"RdYlBu\",useWorker:!1})}else if(i>25e4)e.addRepresentation(\"backbone\",{lineOnly:!0,colorScheme:s,colorScale:\"RdYlBu\"});else if(i>1e5)e.addRepresentation(\"backbone\",{quality:\"low\",disableImpostor:!0,colorScheme:s,colorScale:\"RdYlBu\",scale:2});else if(i>8e4)e.addRepresentation(\"backbone\",{colorScheme:s,colorScale:\"RdYlBu\",scale:2});else{var l=i<15e3?\"high\":\"medium\";e.addRepresentation(\"cartoon\",{color:s,colorScale:\"RdYlBu\",scale:.7,aspectRatio:5,quality:l}),i<5e4&&e.addRepresentation(\"base\",{color:s,colorScale:\"RdYlBu\",quality:l}),e.addRepresentation(\"ball+stick\",{sele:\"hetero and not ( water or ion )\",colorScheme:\"element\",scale:2,aspectRatio:1.5,bondScale:.3,bondSpacing:.75,quality:l})}this.centerView(),e.structure.frames.length&&e.addTrajectory()}else\"surface\"!==e.type&&\"volume\"!==e.type||(e.addRepresentation(\"surface\"),this.centerView())},loadFile:function(t,e){var i=Object.assign({},this.defaultFileParams,e),n=new _s(this,i);n.name=X(t).name,this.addComponent(n);var r=this.tasks;r.increment();var o=function(t){return this.removeComponent(n),n=this.addComponentFromObject(t,i),\"script\"===n.type&&n.run(),i.defaultRepresentation&&this.defaultFileRepresentation(n),r.decrement(),n}.bind(this),a=function(t){throw n.setStatus(t),r.decrement(),t};return kr(t,i).then(o,a)},addComponent:function(t){return t?(this.compList.push(t),void this.signals.componentAdded.dispatch(t)):void ty.warn(\"Stage.addComponent: no component given\")},addComponentFromObject:function(t,e){var i=zs(this,t,e);return this.addComponent(i),i},removeComponent:function(t){var e=this.compList.indexOf(t);e!==-1&&this.compList.splice(e,1),t.dispose(),this.signals.componentRemoved.dispatch(t)},removeAllComponents:function(t){this.compList.slice().forEach(function(e){t&&e.type!==t||this.removeComponent(e)},this)},handleResize:function(){this.viewer.handleResize()},toggleFullscreen:function(t){function e(){return document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement}function i(){if(!e()&&n.lastFullscreenElement){var t=n.lastFullscreenElement;t.style.width=t.dataset.normalWidth,t.style.height=t.dataset.normalHeight,document.removeEventListener(\"fullscreenchange\",i),document.removeEventListener(\"mozfullscreenchange\",i),document.removeEventListener(\"webkitfullscreenchange\",i),document.removeEventListener(\"MSFullscreenChange\",i),n.handleResize(),n.signals.fullscreenChanged.dispatch(!1)}}if(!(document.fullscreenEnabled||document.mozFullScreenEnabled||document.webkitFullscreenEnabled||document.msFullscreenEnabled))return void ty.log(\"fullscreen mode (currently) not possible\");var n=this;t=t||this.viewer.container,this.lastFullscreenElement=t,e()?document.exitFullscreen?document.exitFullscreen():document.msExitFullscreen?document.msExitFullscreen():document.mozCancelFullScreen?document.mozCancelFullScreen():document.webkitExitFullscreen&&document.webkitExitFullscreen():(t.dataset.normalWidth=t.style.width,t.dataset.normalHeight=t.style.height,t.style.width=screen.width+\"px\",t.style.height=screen.height+\"px\",t.requestFullscreen?t.requestFullscreen():t.msRequestFullscreen?t.msRequestFullscreen():t.mozRequestFullScreen?t.mozRequestFullScreen():t.webkitRequestFullscreen&&t.webkitRequestFullscreen(),document.addEventListener(\"fullscreenchange\",i),document.addEventListener(\"mozfullscreenchange\",i),document.addEventListener(\"webkitfullscreenchange\",i),document.addEventListener(\"MSFullscreenChange\",i),this.handleResize(),this.signals.fullscreenChanged.dispatch(!0),setTimeout(function(){n.handleResize()},100))},centerView:function(){if(this.tasks.count>0){var t=function(e,i){0===i&&this.tasks.signals.countChanged.remove(t,this),this.viewer.centerView(!0)};this.tasks.signals.countChanged.add(t,this)}this.viewer.centerView(!0)},setSpin:function(t,e){Array.isArray(t)&&(t=(new dt).fromArray(t)),this.viewer.setSpin(t,e)},setOrientation:function(t){this.tasks.onZeroOnce(function(){this.viewer.setOrientation(t)},this)},getOrientation:function(){return this.viewer.getOrientation()},makeImage:function(t){var e=this.viewer,i=this.tasks;return new Promise(function(n,r){function o(){i.increment(),e.makeImage(t).then(function(t){i.decrement(),n(t)}).catch(function(t){i.decrement(),r(t)})}i.onZeroOnce(o)})},setImpostor:function(t){this.parameters.impostor.value=t;var e=[\"spacefill\",\"ball+stick\",\"licorice\",\"hyperball\",\"backbone\",\"rocket\",\"helixorient\",\"contact\",\"distance\",\"dot\"];this.eachRepresentation(function(i){if(\"script\"!==i.type&&e.indexOf(i.getType())!==-1){var n=i.getParameters();n.disableImpostor=!t,i.build(n)}})},setQuality:function(t){this.parameters.quality.value=t;var e=[\"tube\",\"cartoon\",\"ribbon\",\"trace\",\"rope\"],i=[\"spacefill\",\"ball+stick\",\"licorice\",\"hyperball\",\"backbone\",\"rocket\",\"helixorient\",\"contact\",\"distance\",\"dot\"];this.eachRepresentation(function(n){if(\"script\"!==n.type){var r=n.getParameters();if(e.indexOf(n.getType())===-1){if(i.indexOf(n.getType())===-1)return;if(!r.disableImpostor)return void(n.repr.quality=t)}r.quality=t,n.build(r)}})},eachComponent:function(t,e){this.compList.forEach(function(i,n){e&&i.type!==e||t(i,n)})},eachRepresentation:function(t,e){this.eachComponent(function(e){e.reprList.forEach(function(i){t(i,e)})},e)},getComponentsByName:function(t,e){var i=[];return this.eachComponent(function(e){void 0!==t&&null===e.name.match(t)||i.push(e)},e),new As(i)},getRepresentationsByName:function(t,e){var i,n;\"object\"!=typeof t?(i=void 0,n=t):(i=t.comp,n=t.repr);var r=[];return this.eachRepresentation(function(t,e){void 0!==i&&null===e.name.match(i)||void 0!==n&&null===t.name.match(n)||r.push(t)},e),new Ms(r)},getAnythingByName:function(t){var e=this.getComponentsByName(t).list,i=this.getRepresentationsByName(t).list;return new Ss(e.concat(i))},dispose:function(){this.tasks.dispose()}},Us.prototype={constructor:Us,_animate:function(){var t;if(this._running=!0,this.traj.inProgress||this._stopFlag||(t=\"forward\"===this.direction?this.traj.currentFrame+this.step:this.traj.currentFrame-this.step,(t>=this.end||t=this.end?e=this.start:\"backward\"===this.direction&&t<=this.start&&(e=this.end),this.traj.setFrame(e),this._stopFlag=!1,this._animate(),this.signals.startedRunning.dispatch()}},pause:function(){this._running&&(this._stopFlag=!0,this.signals.haltedRunning.dispatch())},stop:function(){this.traj.setFrame(this.start),this.pause()}},js.prototype=Object.assign(Object.create(vs.prototype),{constructor:js,type:\"axes\",parameters:Object.assign({radius:{type:\"number\",precision:3,max:10,min:.001},sphereDetail:!0,radialSegments:!0,disableImpostor:!0,align:{type:\"button\"}},us.prototype.parameters,{assembly:null}),init:function(t){var e=t||{};e.radius=$(e.radius,.5),e.colorValue=$(e.colorValue,\"lightgreen\"),vs.prototype.init.call(this,e)},getPrincipalAxes:function(){var t,e=this.getAssembly();return e&&(t=e.partList[0].getSelection()),this.structureView.getView(t).getPrincipalAxes()},align:function(){var t=this.getPrincipalAxes(this.structureView),e=(new dt).copy(t[0][1]).sub(t[0][0]).normalize(),i=(new dt).copy(t[2][1]).sub(t[2][0]).normalize();this.viewer.alignView(i,e,t[3],!0)},getAxesData:function(t){function e(t,e){t.toArray(r,2*l),e.toArray(r,2*l+3),t.toArray(s,l),e.toArray(c,l),l+=3}var i=this.getPrincipalAxes(t),n=new re(this.colorValue),r=new Float32Array(18),o=qr(6,n.r,n.g,n.b),a=Xr(6,this.radius),s=new Float32Array(9),c=new Float32Array(9),u=qr(3,n.r,n.g,n.b),h=Xr(3,this.radius),l=0;return e(i[0][0],i[0][1]),e(i[1][0],i[1][1]),e(i[2][0],i[2][1]),{vertexPosition:r,vertexColor:o,vertexRadius:a,edgePosition1:s,edgePosition2:c,edgeColor:u,edgeRadius:h}},create:function(){var t=this.getAxesData(this.structureView);this.sphereBuffer=new Qa(t.vertexPosition,t.vertexColor,t.vertexRadius,void 0,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!0})),this.cylinderBuffer=new rs(t.edgePosition1,t.edgePosition2,t.edgeColor,t.edgeColor,t.edgeRadius,void 0,void 0,this.getBufferParams({openEnded:!0,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0})),this.dataList.push({sview:this.structureView,bufferList:[this.sphereBuffer,this.cylinderBuffer]})},updateData:function(t,e){var i=this.getAxesData(e.sview),n={},r={};t&&!t.position||(n.position=i.vertexPosition,r.position1=i.edgePosition1,r.position2=i.edgePosition2),t&&!t.color||(n.color=i.vertexColor,r.color=i.edgeColor,r.color2=i.edgeColor),t&&!t.radius||(n.radius=i.vertexRadius,r.radius=i.edgeRadius),this.sphereBuffer.setAttributes(n),this.cylinderBuffer.setAttributes(r)}}),ay.add(\"axes\",js),$s.prototype=Object.assign(Object.create(vs.prototype),{constructor:$s,type:\"ball+stick\",defaultSize:.15,parameters:Object.assign({sphereDetail:!0,radialSegments:!0,openEnded:!0,disableImpostor:!0,aspectRatio:{type:\"number\",precision:1,max:10,min:1},lineOnly:{type:\"boolean\",rebuild:!0},cylinderOnly:{type:\"boolean\",rebuild:!0},multipleBond:{type:\"select\",rebuild:!0,options:{off:\"off\",symmetric:\"symmetric\",offset:\"offset\"}},bondScale:{type:\"number\",precision:2,max:1,min:.01},bondSpacing:{type:\"number\",precision:2,max:2,min:.5}},vs.prototype.parameters),init:function(t){var e=t||{};e.radius=$(e.radius,this.defaultSize),this.aspectRatio=$(e.aspectRatio,2),this.lineOnly=$(e.lineOnly,!1),this.cylinderOnly=$(e.cylinderOnly,!1),this.multipleBond=$(e.multipleBond,\"off\"),this.bondSpacing=$(e.bondSpacing,1),this.bondScale=$(e.bondScale,.4),vs.prototype.init.call(this,e)},getAtomParams:function(t,e){return e=Object.assign({radiusParams:{radius:this.radius,scale:this.scale*this.aspectRatio}},e),vs.prototype.getAtomParams.call(this,t,e)},getAtomData:function(t,e,i){return t.getAtomData(this.getAtomParams(e,i))},getBondParams:function(t,e){return e=Object.assign({multipleBond:this.multipleBond,bondSpacing:this.bondSpacing,bondScale:this.bondScale},e),vs.prototype.getBondParams.call(this,t,e)},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},createData:function(t){var e=this.getBondData(t),i=[];if(this.lineOnly)this.lineBuffer=new ys(e.position1,e.position2,e.color1,e.color2,this.getBufferParams()),i.push(this.lineBuffer);else{var n=new rs(e.position1,e.position2,e.color1,e.color2,e.radius,e.pickingColor1,e.pickingColor2,this.getBufferParams({openEnded:this.openEnded,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0\n}));if(i.push(n),!this.cylinderOnly){var r=this.getAtomData(t),o=new Qa(r.position,r.color,r.radius,r.pickingColor,this.getBufferParams({sphereDetail:this.sphereDetail,disableImpostor:this.disableImpostor,dullInterior:!0}));i.push(o)}}return{bufferList:i}},updateData:function(t,e){\"off\"!==this.multipleBond&&t&&t.radius&&(t.position=!0);var i=this.getBondData(e.sview,t);if(this.lineOnly){var n={};t&&!t.position||(n.from=i.position1,n.to=i.position2),t&&!t.color||(n.color=i.color1,n.color2=i.color2),e.bufferList[0].setAttributes(n)}else{var r={};if(t&&!t.position||(r.position1=i.position1,r.position2=i.position2),t&&!t.color||(r.color=i.color1,r.color2=i.color2),t&&!t.radius||(r.radius=i.radius),e.bufferList[0].setAttributes(r),!this.cylinderOnly){var o=this.getAtomData(e.sview,t),a={};t&&!t.position||(a.position=o.position),t&&!t.color||(a.color=o.color),t&&!t.radius||(a.radius=o.radius),e.bufferList[1].setAttributes(a)}}},setParameters:function(t){var e=!1,i={};return t&&(t.aspectRatio||t.bondSpacing||t.bondScale)&&(i.radius=!0,Jv&&!this.disableImpostor||(e=!0)),vs.prototype.setParameters.call(this,t,i,e),this}}),ay.add(\"ball+stick\",$s),Vs.prototype=Object.assign(Object.create($s.prototype),{constructor:Vs,type:\"backbone\",defaultSize:.25,parameters:Object.assign({},$s.prototype.parameters,{multipleBond:null,bondSpacing:null}),init:function(t){var e=t||{};e.aspectRatio=$(e.aspectRatio,1),$s.prototype.init.call(this,e)},getAtomData:function(t,e,i){return t.getBackboneAtomData(this.getAtomParams(e,i))},getBondData:function(t,e,i){var n=this.getBondParams(e,i);return n.colorParams.backbone=!0,t.getBackboneBondData(n)}}),ay.add(\"backbone\",Vs),Gs.prototype=Object.assign(Object.create($s.prototype),{constructor:Gs,type:\"base\",defaultSize:.3,parameters:Object.assign({},$s.prototype.parameters,{multipleBond:null,bondSpacing:null}),init:function(t){var e=t||{};e.aspectRatio=$(e.aspectRatio,1),$s.prototype.init.call(this,e)},getAtomData:function(t,e,i){return t.getRungAtomData(this.getAtomParams(e,i))},getBondData:function(t,e,i){var n=this.getBondParams(e,i);return n.colorParams.rung=!0,t.getRungBondData(n)}}),ay.add(\"base\",Gs),Ws.prototype={constructor:Ws,getAtomIterator:function(t,e){function i(){var t=this.get(u);return u+=1,t}function n(i){var n=h[c%4];if(n.index=o.getAtomIndexByType(i,t),e&&i>0&&ie)&&(s=!0,r.add_unsafe(n.index),o.addBond(a,n,1))}s&&r.add_unsafe(a.index)});var a=new qy(o.count);return a.set_all(!0),ty.timeEnd(\"Contact within\"),{atomSet:r,bondSet:a,bondStore:o}}},Qs.prototype=Object.assign(Object.create(vs.prototype),{constructor:Qs,type:\"contact\",defaultSize:.25,parameters:Object.assign({contactType:{type:\"select\",rebuild:!0,options:{polar:\"polar\",polarBackbone:\"polar backbone\"}},maxDistance:{type:\"number\",precision:1,max:10,min:.1,rebuild:!0},maxAngle:{type:\"integer\",max:180,min:0,rebuild:!0},radialSegments:!0,disableImpostor:!0},vs.prototype.parameters),init:function(t){var e=t||{};e.radius=$(e.radius,this.defaultSize),this.contactType=$(e.contactType,\"polarBackbone\"),this.maxDistance=$(e.maxDistance,3.5),this.maxAngle=$(e.maxAngle,40),vs.prototype.init.call(this,e)},getContactData:function(t){var e={polar:Zs,polarBackbone:Ks},i=e[this.contactType](t,this.maxDistance,this.maxAngle);return i},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},createData:function(t){var e=this.getContactData(t),i={bondSet:e.bondSet,bondStore:e.bondStore},n=this.getBondData(t,void 0,i),r=new rs(n.position1,n.position2,n.color1,n.color2,n.radius,n.pickingColor1,n.pickingColor2,this.getBufferParams({openEnded:!1,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0}));return{bufferList:[r],bondSet:e.bondSet,bondStore:e.bondStore}},updateData:function(t,e){if(!t||t.position){var i=this.getContactData(e.sview);e.bondSet=i.bondSet,e.bondStore=i.bondStore}var n={bondSet:e.bondSet,bondStore:e.bondStore},r=this.getBondData(e.sview,t,n),o={};t&&!t.position||(o.position=Wr(r.position1,r.position2),o.position1=r.position1,o.position2=r.position2),t&&!t.color||(o.color=r.color1,o.color2=r.color2),t&&!t.radius||(o.radius=r.radius),e.bufferList[0].setAttributes(o)}}),ay.add(\"contact\",Qs);var rb=function(){var t={};return function(e){var i=JSON.stringify(e);return void 0===t[i]&&(t[i]=new Js(e)),t[i]}}();Js.prototype={constructor:Js,build:function(){var t=this.size+2*this.outline+Math.round(this.size/4),e=this.width/4,i=document.createElement(\"canvas\");i.width=e,i.height=t;var n=i.getContext(\"2d\");n.font=this.style+\" \"+this.variant+\" \"+this.weight+\" \"+this.size+\"px \"+this.font,n.fillStyle=\"#FF0000\",n.textAlign=\"left\",n.textBaseline=\"bottom\",n.lineJoin=\"round\";for(var r=[],o=3*this.outline,a=0;athis.width&&(this.currentX=0,this.currentY+=this.scratchH),this.currentY+this.scratchH>this.height&&console.warn(\"canvas to small\"),this.mapped[t]={x:this.currentX,y:this.currentY,w:this.scratchW,h:this.scratchH},this.context2.drawImage(this.canvas,0,0,this.scratchW,this.scratchH,this.currentX,this.currentY,this.scratchW,this.scratchH),this.currentX+=this.scratchW),this.mapped[t]},draw:function(t){var e=this.lineHeight,i=this.outline,n=this.context,r=this.scratch,o=this.maxWidth,a=this.colors,s=i,c=e-this.outline,u=n.measureText(t),h=Math.min(o,Math.ceil(u.width+2*s+1));n.clearRect(0,0,h,e);var l,d,f,p,m;if(0===this.outline)for(n.fillText(t,s,c),p=n.getImageData(0,0,h,e),m=p.data,f=3,l=0,d=m.length/4;l0;--l)f=l>1?2*l-2:l,n.strokeStyle=a[f-1],n.lineWidth=f,n.strokeText(t,s,c);n.globalCompositeOperation=\"multiply\",n.fillStyle=\"#FF00FF\",n.fillText(t,s,c),p=n.getImageData(0,0,h,e),m=p.data,f=0;var g=this.gamma;for(l=0,d=m.length/4;l0&&(i-=h,r=r.subarray(0,3*i));var l=new qy(s.count);return l.set_all(!0),{text:n,position:r,bondSet:l,bondStore:s}},getBondData:function(t,e,i){return t.getBondData(this.getBondParams(e,i))},create:function(){if(0!==this.structureView.atomCount){var t=this.atomPair.length;if(0!==t){var e=this.getDistanceData(this.structureView,this.atomPair),i=new re(this.labelColor);this.textBuffer=new tc(e.position,Xr(t,this.labelSize),qr(t,i.r,i.g,i.b),e.text,this.getBufferParams({fontFamily:this.fontFamily,fontStyle:this.fontStyle,fontWeight:this.fontWeight,sdf:this.sdf,zOffset:this.labelZOffset,opacity:1,visible:this.labelVisible}));var n={bondSet:e.bondSet,bondStore:e.bondStore},r=this.getBondData(this.structureView,void 0,n);this.cylinderBuffer=new rs(r.position1,r.position2,r.color1,r.color2,r.radius,r.pickingColor1,r.pickingColor2,this.getBufferParams({openEnded:!1,radialSegments:this.radialSegments,disableImpostor:this.disableImpostor,dullInterior:!0})),this.dataList.push({sview:this.structureView,bondSet:e.bondSet,bondStore:e.bondStore,position:e.position,bufferList:[this.textBuffer,this.cylinderBuffer]})}}},update:function(t){t.position?this.build():vs.prototype.update.call(this,t)},updateData:function(t,e){var i={bondSet:e.bondSet,bondStore:e.bondStore},n=this.getBondData(e.sview,t,i),r={},o={},a=this.atomPair.length;if(t.labelSize&&(o.size=Xr(a,this.labelSize)),t.labelColor){var s=new re(this.labelColor);o.color=qr(a,s.r,s.g,s.b)}t.color&&(r.color=n.color1,r.color2=n.color2),(t.radius||t.scale)&&(r.radius=n.radius),this.textBuffer.setAttributes(o),this.cylinderBuffer.setAttributes(r)},setVisibility:function(t,e){return vs.prototype.setVisibility.call(this,t,!0),this.textBuffer&&this.textBuffer.setVisibility(this.labelVisible&&this.visible),e||this.viewer.requestRender(),this},setParameters:function(t){var e=!1,i={};return t&&t.labelSize&&(i.labelSize=!0),t&&t.labelColor&&(i.labelColor=!0),vs.prototype.setParameters.call(this,t,i,e),t&&void 0!==t.labelVisible&&this.setVisibility(this.visible),this}}),ay.add(\"distance\",ec),ic.prototype=Object.assign(Object.create($a.prototype),{constructor:ic,setAttributes:function(t){var e,i,n,r=this.geometry.attributes;t.position&&t.vector&&(e=t.position,i=t.vector,n=r.position.array,r.position.needsUpdate=!0);var o,a,s=this.size,c=this.scale;if(t.position&&t.vector)for(var u=0;u0||e.sheets.length>0)&&ca(e),this._postProcess(),e.unitcell&&ma(e),t.Debug&&ty.timeEnd(\"StructureParser._afterParse\"),t.Debug&&ty.log(this[this.__objName])},_postProcess:function(){}}),Oc.prototype={constructor:Oc},Rc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:Rc,type:\"gro\",_parse:function(e){function i(t,e,i){for(var o=t;oS)continue}p=v.substr(5,5).trim(),m=parseInt(v.substr(0,5)),g=parseInt(v.substr(15,5)),M.growIfFull(),M.atomTypeId[P]=A.add(f),M.x[P]=L,M.y[P]=O,M.z[P]=R,M.serial[P]=g,a.addAtom(E,\"\",p,m,0,\"l\"),P+=1}}}t.Debug&&ty.time(\"GroParser._parse \"+this.name);var n,r,o=this.structure,a=this.structureBuilder,s=this.firstModelOnly,c=this.asTrajectory,u=this.cAlphaOnly,h=o.frames,l=o.boxes,d=this.streamer.peekLines(3);o.title=d[0].trim();var f,p,m,g,v=d[2].length-d[2].lastIndexOf(\".\")-1,y=5+v,b=20,x=20+y,_=20+2*y,w=parseInt(d[1]),S=w+3,A=o.atomMap,M=o.atomStore;M.resize(w);var P=0,E=0,C=0;this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),a.finalize(),o.unitcell=new Oc(l[0][0],l[0][4],l[0][8],90,90,90,\"P 1\"),t.Debug&&ty.timeEnd(\"GroParser._parse \"+this.name),e()}}),sy.add(\"gro\",Rc);var ab={1:\"h\",2:\"h\",3:\"i\",4:\"h\",5:\"g\",6:\"h\",7:\"h\",8:\"h\",9:\"h\",10:\"h\",\"\":\"h\"};kc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:kc,type:\"pdb\",_parse:function(e){function i(t,e,i){for(var Y,Z,K=t;K0)continue;var Q,J,tt,et,it;if(P){if(et=c.split(E),it=10===et.length?1:0,g=et[2],O&&\"CA\"!==g)continue;Q=parseFloat(et[6-it]),J=parseFloat(et[7-it]),tt=parseFloat(et[8-it])}else{if(g=c.substr(12,4).trim(),O&&\"CA\"!==g)continue;Q=parseFloat(c.substr(30,8)),J=parseFloat(c.substr(38,8)),tt=parseFloat(c.substr(46,8))}if(L&&(Y=3*r,n[Y+0]=Q,n[Y+1]=J,n[Y+2]=tt,r+=1,D))continue;var nt;P?(h=parseInt(et[1]),nt=\"\",v=\"H\"===c[0]?1:0,l=it?\"\":et[4],d=parseInt(et[5-it]),m=\"\",f=et[3],y=parseFloat(et[9-it]),b=\"\",p=0):(h=parseInt(c.substr(6,5)),nt=c.substr(76,2).trim(),v=\"H\"===c[0]?1:0,l=c[21].trim(),d=parseInt(c.substr(22,4)),m=c[26].trim(),f=c.substr(17,4).trim(),y=parseFloat(c.substr(60,6)),b=c[16].trim(),p=parseFloat(c.substr(54,6))),V.growIfFull(),V.atomTypeId[W]=$.add(g,nt),V.x[W]=Q,V.y[W]=J,V.z[W]=tt,V.serial[W]=h,V.bfactor[W]=isNaN(y)?0:y,V.altloc[W]=b.charCodeAt(0),V.occupancy[W]=isNaN(p)?0:p,T.addAtom(X,l,f,d,v,void 0,m),B[h]=W,W+=1}else if(\"CONECT\"===u){var rt=B[parseInt(c.substr(6,5))],ot=[11,16,21,26],at={};if(void 0===rt)continue;for(Y=0;Y<4;++Y){var st=parseInt(c.substr(ot[Y],5));if(!Number.isNaN(st)&&(st=B[st],void 0!==st))if(rt0)continue;var rt=it[_].replace(g,\"\");if(d&&\"CA\"!==rt)continue;var ot=parseFloat(it[I]),at=parseFloat(it[L]),st=parseFloat(it[O]);if(l){var ct=3*a;if(o[ct+0]=ot,o[ct+1]=at,o[ct+2]=st,a+=1,Z>0)continue}var ut=it[w],ht=parseInt(it[x]),lt=it[T];lt=\"?\"===lt?\"\":lt;var dt=it[b],ft=\"H\"===it[M][0]?1:0,pt=it[E],mt=parseFloat(it[R]),gt=parseFloat(it[k]),vt=it[A];if(vt=\".\"===vt?\"\":vt,X.growIfFull(),X.atomTypeId[Y]=W.add(rt,pt),X.x[Y]=ot,X.y[Y]=at,X.z[Y]=st,X.serial[Y]=parseInt(it[P]),X.bfactor[Y]=isNaN(mt)?0:mt,X.occupancy[Y]=isNaN(gt)?0:gt,X.altloc[Y]=vt.charCodeAt(0),u.addAtom(Z,dt,ut,ht,ft,void 0,lt),t.Debug){var yt=H[it[S]];void 0!==yt&&yt!==dt&&ty.warn(yt,dt)}H[it[S]]=dt,Y+=1}else{it=s.match(m),et=it.length,U===B.length&&(U=0);for(var bt=0;btX){var q=W;W=X,X=q;var Y=B;B=G,G=Y}if(0!==W&&0!==X)for(var Z=0;Z0&&(l=!0))),S>=g&&S0)continue;var E=parseFloat(P.substr(0,10)),C=parseFloat(P.substr(10,10)),T=parseFloat(P.substr(20,10));if(a){var I=3*u;if(c[I+0]=E,c[I+1]=C,c[I+2]=T,u+=1,l)continue}var L=P.substr(31,3).trim(),O=L+(w+1);f.growIfFull(),f.atomTypeId[w]=d.add(O,L),f.x[w]=E,f.y[w]=C,f.z[w]=T,f.serial[w]=w,r.addAtom(A,\"\",\"HET\",1,1),w+=1}if(S>=y&&S0)continue;if(a&&A>0)continue;x.index=parseInt(P.substr(0,3))-1+M,_.index=parseInt(P.substr(3,3))-1+M;var R=parseInt(P.substr(6,3));n.bondStore.addBond(x,_,R)}++S}}t.Debug&&ty.time(\"SdfParser._parse \"+this.name);var n=this.structure,r=this.structureBuilder,o=this.firstModelOnly,a=this.asTrajectory,s=this.streamer.peekLines(2);n.id=s[0].trim(),n.title=s[1].trim();var c,u,h=n.frames,l=!1,d=n.atomMap,f=n.atomStore;f.resize(Math.round(this.streamer.data.length/50));var p,m,g,v,y,b,x=n.getAtomProxy(),_=n.getAtomProxy(),w=0,S=0,A=0,M=0;this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),r.finalize(),n.unitcell=void 0,t.Debug&&ty.timeEnd(\"SdfParser._parse \"+this.name),e()},_postProcess:function(){ga(this.structure)}}),sy.add(\"sdf\",Fc),zc.prototype=Object.assign(Object.create(Lc.prototype),{constructor:zc,type:\"mol2\",_parse:function(e){function i(t,e,i){for(var P,E=t;EMOLECULE\"===C?(b=x,m=0,++v):\"@ATOM\"===C?(b=_,g=f.count,u&&(r=0,n=new Float32Array(3*y),h.push(n),v>0&&(l=!0))):b=\"@BOND\"===C?w:0;else if(b===x)0===m?(a.title=C,a.id=C):1===m&&(P=C.split(o),y=parseInt(P[0])),++m;else if(b===_){if(P=C.split(o),c&&v>0)continue;var T=parseFloat(P[2]),I=parseFloat(P[3]),L=parseFloat(P[4]);if(u){var O=3*r;if(n[O+0]=T,n[O+1]=I,n[O+2]=L,r+=1,l)continue}var R=P[0],k=P[1],D=P[5].split(\".\")[0],N=P[6]?parseInt(P[6]):1,F=P[7]?P[7]:\"\",z=P[8]?parseFloat(P[8]):0;f.growIfFull(),f.atomTypeId[p]=d.add(k,D),f.x[p]=T,f.y[p]=I,f.z[p]=L,f.serial[p]=R,f.bfactor[p]=z,s.addAtom(v,\"\",F,N,1),p+=1}else if(b===w){if(c&&v>0)continue;if(u&&v>0)continue;P=C.split(o),S.index=parseInt(P[1])-1+g,A.index=parseInt(P[2])-1+g;var B=M[P[3]];a.bondStore.addBond(S,A,B)}}}t.Debug&&ty.time(\"Mol2Parser._parse \"+this.name);var n,r,o=/\\s+/,a=this.structure,s=this.structureBuilder,c=this.firstModelOnly,u=this.asTrajectory,h=a.frames,l=!1,d=a.atomMap,f=a.atomStore;f.resize(Math.round(this.streamer.data.length/60));var p=0,m=0,g=0,v=-1,y=0,b=0,x=1,_=2,w=3,S=a.getAtomProxy(),A=a.getAtomProxy(),M={1:1,2:2,3:3,am:1,ar:1,du:1,un:1,nc:0};this.streamer.eachChunkOfLines(function(t){i(0,t.length,t)}),s.finalize(),a.unitcell=void 0,t.Debug&&ty.timeEnd(\"Mol2Parser._parse \"+this.name),e()},_postProcess:function(){ga(this.structure)}}),sy.add(\"mol2\",zc);var sb=[\"mmtfVersion\",\"mmtfProducer\",\"unitCell\",\"spaceGroup\",\"structureId\",\"title\",\"depositionDate\",\"releaseDate\",\"experimentalMethods\",\"resolution\",\"rFree\",\"rWork\",\"bioAssemblyList\",\"ncsOperatorList\",\"entityList\",\"groupList\",\"numBonds\",\"numAtoms\",\"numGroups\",\"numChains\",\"numModels\",\"groupsPerChain\",\"chainsPerModel\"],cb=[\"xCoordList\",\"yCoordList\",\"zCoordList\",\"groupIdList\",\"groupTypeList\",\"chainIdList\",\"bFactorList\",\"atomIdList\",\"altLocList\",\"occupancyList\",\"secStructList\",\"insCodeList\",\"sequenceIndexList\",\"chainNameList\",\"bondAtomList\",\"bondOrderList\"],ub=sb.concat(cb),hb={0:\"i\".charCodeAt(0),1:\"s\".charCodeAt(0),2:\"h\".charCodeAt(0),3:\"e\".charCodeAt(0),4:\"g\".charCodeAt(0),5:\"b\".charCodeAt(0),6:\"t\".charCodeAt(0),7:\"l\".charCodeAt(0),\"-1\":\"\".charCodeAt(0)};su.prototype=Object.assign(Object.create(Lc.prototype),{constructor:su,type:\"mmtf\",_parse:function(e){t.Debug&&ty.time(\"MmtfParser._parse \"+this.name);var i,n,r,o,a,s,c,u,h,l,d,f=this.structure,p=au(ru(this.streamer.data));if(f.id=p.structureId,f.title=p.title,this.firstModelOnly||this.asTrajectory){for(l=1,h=p.chainsPerModel[0],u=0,i=0,n=h;i0&&(f.biomolDict[at]=st)}p.unitCell&&Array.isArray(p.unitCell)&&p.unitCell[0]?f.unitcell=new Oc(p.unitCell[0],p.unitCell[1],p.unitCell[2],p.unitCell[3],p.unitCell[4],p.unitCell[5],p.spaceGroup):f.unitcell=void 0,t.Debug&&ty.timeEnd(\"MmtfParser._parse \"+this.name),pa(f,!0),fa(f,!0),e()}}),sy.add(\"mmtf\",su),cu.prototype={constructor:cu},uu.prototype=Object.assign(Object.create(Tc.prototype),{constructor:uu,type:\"trajectory\",__objName:\"frames\"}),hu.prototype=Object.assign(Object.create(uu.prototype),{constructor:hu,type:\"dcd\",_parse:function(e){t.Debug&&ty.time(\"DcdParser._parse \"+this.name);var i=this.streamer.data;i instanceof Uint8Array&&(i=i.buffer);var n,r,o=new DataView(i),a=this.frames,s=a.coordinates,c=a.boxes,u={},h=0,l=new Int32Array(i,0,23),d=l[0]!==o.getInt32(0);if(84!==l[0])for(r=i.byteLength,n=0;n0)return ty.error(\"dcd format with fixed atoms unsupported, aborting\"),void e();var b=u.NATOM,x=4*b;for(n=0,r=u.NSET;n=a.atomCount+6){r=r.split(s);for(var o=0,c=r.length;os){var r=i[n].trim();if(\"\"!==r)for(var o=r.split(c),a=0,f=o.length;a=n.elements[s].count&&(s++,c=0);var l=this.parseASCIIElement(n.elements[s].properties,h);this.handleElement(i,n.elements[s].name,l),c++}}return this.postProcess(i)},postProcess:function(t){if(t.useColor){for(var e=0;e=0?i-1:i+e/3)},parseNormalIndex:function(t,e){var i=parseInt(t,10);return 3*(i>=0?i-1:i+e/3)},addVertex:function(t,e,i){var n=this.vertices,r=this.object.geometry.vertices;r.push(n[t+0]),r.push(n[t+1]),r.push(n[t+2]),r.push(n[e+0]),r.push(n[e+1]),r.push(n[e+2]),r.push(n[i+0]),r.push(n[i+1]),r.push(n[i+2])},addVertexLine:function(t){var e=this.vertices,i=this.object.geometry.vertices;i.push(e[t+0]),i.push(e[t+1]),i.push(e[t+2])},addNormal:function(t,e,i){var n=this.normals,r=this.object.geometry.normals;r.push(n[t+0]),r.push(n[t+1]),r.push(n[t+2]),r.push(n[e+0]),r.push(n[e+1]),r.push(n[e+2]),r.push(n[i+0]),r.push(n[i+1]),r.push(n[i+2])},addFace:function(t,e,i,n,r,o,a,s){var c,u=this.vertices.length,h=this.parseVertexIndex(t,u),l=this.parseVertexIndex(e,u),d=this.parseVertexIndex(i,u);if(void 0===n?this.addVertex(h,l,d):(c=this.parseVertexIndex(n,u),this.addVertex(h,l,c),this.addVertex(l,d,c)),void 0!==r){var f=this.normals.length;h=this.parseNormalIndex(r,f),l=r===o?h:this.parseNormalIndex(o,f),d=r===a?h:this.parseNormalIndex(a,f),void 0===n?this.addNormal(h,l,d):(c=this.parseNormalIndex(s,f),this.addNormal(h,l,c),this.addNormal(l,d,c))}},addLineGeometry:function(t){this.object.geometry.type=\"Line\";for(var e=this.vertices.length,i=0,n=t.length;i0?_.addAttribute(\"normal\",new Ce(new Float32Array(x.normals),3)):_.computeVertexNormals(),y.push(_)}}return console.timeEnd(\"OBJLoader\"),y}},xu.prototype=Object.assign(Object.create(gu.prototype),{constructor:xu,type:\"obj\"}),sy.add(\"obj\",xu),_u.prototype=Object.assign(Object.create(Tc.prototype),{constructor:_u,type:\"text\",__objName:\"text\",_parse:function(t){this.text.data=this.streamer.asText(),t()}}),sy.add(\"txt\",_u),sy.add(\"text\",_u),wu.prototype=Object.assign(Object.create(Tc.prototype),{constructor:wu,type:\"csv\",__objName:\"table\",_parse:function(t){var e=this.table.data,i=/\\s*,\\s*/;this.streamer.eachChunkOfLines(function(t,n){for(var r=t.length,o=0;o\");){var i=o();if(!i)return e;e.attributes[i.name]=i.value}return s(/\\?>\\s*/),e}}function n(){var t=s(/^<([\\w-:.]+)\\s*/);if(t){for(var e={name:t[1],attributes:{},children:[]};!(c()||u(\">\")||u(\"?>\")||u(\"/>\"));){var i=o();if(!i)return e;e.attributes[i.name]=i.value}if(s(/^\\s*\\/>\\s*/))return e;s(/\\??>\\s*/),e.content=r();for(var a;a=n();)e.children.push(a);return s(/^<\\/[\\w-:.]+>\\s*/),e}}function r(){var t=s(/^([^<]*)/);return t?t[1]:\"\"}function o(){var t=s(/([\\w:-]+)\\s*=\\s*(\"[^\"]*\"|'[^']*'|\\w+)\\s*/);if(t)return{name:t[1],value:a(t[2])}}function a(t){return t.replace(/^['\"]|['\"]$/g,\"\")}function s(e){var i=t.match(e);if(i)return t=t.slice(i[0].length),i}function c(){return 0===t.length}function u(e){return 0===t.indexOf(e)}return t=t.trim(),t=t.replace(//g,\"\"),e()},__domParser:function(t){var e=new window.DOMParser;return e.parseFromString(t,\"text/xml\")},_parse:function(e){t.Debug&&ty.time(\"XmlParser._parse \"+this.name);var i=this.streamer.asText();this.useDomParser?this.xml.data=this.__domParser(i):this.xml.data=this.__xmlParser(i),t.Debug&&ty.timeEnd(\"XmlParser._parse \"+this.name),e()}}),sy.add(\"xml\",Au),window.Promise||(window.Promise=n),function(t){t.console=t.console||{};for(var e,i,n=t.console,r={},o=function(){},a=\"memory\".split(\",\"),s=\"assert,clear,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profiles,profileEnd,show,table,time,timeEnd,timeline,timelineEnd,timeStamp,trace,warn\".split(\",\");e=a.pop();)n[e]||(n[e]=r);for(;i=s.pop();)n[i]||(n[i]=o)}(\"undefined\"==typeof window?self:window),HTMLCanvasElement.prototype.toBlob||Object.defineProperty(HTMLCanvasElement.prototype,\"toBlob\",{value:function(t,e,i){for(var n=window.atob(this.toDataURL(e,i).split(\",\")[1]),r=n.length,o=r>>2,a=new Uint8Array(r),s=new Uint32Array(a.buffer,0,o),c=0,u=0;c-9007199254740992&&t<9007199254740992&&Math.floor(t)===t}),Number.isNaN||(Number.isNaN=function(t){return t!==t}),Object.assign||Object.defineProperty(Object,\"assign\",{enumerable:!1,configurable:!0,writable:!0,value:function(t){if(void 0===t||null===t)throw new TypeError(\"Cannot convert first argument to object\");for(var e,i=Object(t),n=!1,r=1;r1?arguments[1]:void 0,s=a?Number(a):0;s!=s&&(s=0);var c=Math.min(Math.max(s,0),n);if(o+c>n)return!1;for(var u=-1;++ui.length)&&(e=i.length),e-=t.length;var n=i.indexOf(t,e);return n!==-1&&n===e}),function(){for(var t=0,e=[\"ms\",\"moz\",\"webkit\",\"o\"],i=0;i= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/timers-browserify/main.js\n ** module id = 4\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\n(function () {\n try {\n cachedSetTimeout = setTimeout;\n } catch (e) {\n cachedSetTimeout = function () {\n throw new Error('setTimeout is not defined');\n }\n }\n try {\n cachedClearTimeout = clearTimeout;\n } catch (e) {\n cachedClearTimeout = function () {\n throw new Error('clearTimeout is not defined');\n }\n }\n} ())\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = cachedSetTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n cachedClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n cachedSetTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** (webpack)/~/node-libs-browser/~/process/browser.js\n ** module id = 5\n ** module chunks = 0\n **/","module.exports = {\n\t\"name\": \"nglview-js\",\n\t\"version\": \"0.5.2\",\n\t\"description\": \"nglview\",\n\t\"author\": \"Alexander S. Rose\",\n\t\"license\": \"MIT\",\n\t\"main\": \"src/index.js\",\n\t\"repository\": {\n\t\t\"type\": \"git\",\n\t\t\"url\": \"https://github.com/arose/nglview.git\"\n\t},\n\t\"keywords\": [\n\t\t\"jupyter\",\n\t\t\"widgets\",\n\t\t\"ipython\",\n\t\t\"ipywidgets\"\n\t],\n\t\"scripts\": {\n\t\t\"prepublish\": \"webpack\",\n\t\t\"test\": \"echo \\\"Error: no test specified\\\" && exit 1\"\n\t},\n\t\"devDependencies\": {\n\t\t\"json-loader\": \"^0.5.4\",\n\t\t\"webpack\": \"^1.12.14\"\n\t},\n\t\"dependencies\": {\n\t\t\"jupyter-js-widgets\": \"^1.1.1\",\n\t\t\"underscore\": \"^1.8.3\"\n\t}\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./package.json\n ** module id = 6\n ** module chunks = 0\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/nglview/widget.py b/nglview/widget.py index 88abe509..eeee3b26 100644 --- a/nglview/widget.py +++ b/nglview/widget.py @@ -406,6 +406,11 @@ def _set_selection(self, selection, component=0, repr_index=0): kwargs=dict(component_index=component, repr_index=repr_index)) + def _set_color_by_residue(self, colors, component_index=0, repr_index=0): + self._remote_call('setColorByResidue', + target='Widget', + args=[colors, component_index, repr_index]) + def color_by(self, color_scheme, component=0): '''update color for all representations of given component