1502 lines · 82.3 KB · HTML
RawDownload
<html><head>    <link rel="stylesheet" type="text/css" href="style.css">    <link rel="stylesheet" type="text/css" href="css/colpick.css">    <script src="jquery-2.1.4.min.js"></script>    <script src="colpick.js"></script>    <script>        var PI = 3.14159265358979;        var DEGREES_TO_RADIANS = PI / 180.0;        var RADIANS_TO_DEGREES = 180.0 / PI;         function enableChildren(el, selector) {            els = el.querySelectorAll(selector);            for (var i = 0; i < els.length; i++) {                els[i].removeAttribute('disabled');            }        }        function disableChildren(el, selector) {            els = el.querySelectorAll(selector);            for (var i = 0; i < els.length; i++) {                els[i].setAttribute('disabled', 'disabled');            }        }         function showElements(els, show) {            for (var i = 0; i < els.length; i++) {                els[i].style.display = (show) ? 'block' : 'none';            }        }         function createEmitCheckedPropertyUpdateFunction(propertyName) {            return function() {                EventBridge.emitWebEvent(                    '{ "type":"update", "properties":{"' + propertyName + '":' + this.checked + '}}'                );            };        }        function createEmitGroupCheckedPropertyUpdateFunction(group, propertyName) {            return function() {                var properties = {};                properties[group] = {};                properties[group][propertyName] = this.checked;                EventBridge.emitWebEvent(                    JSON.stringify({                        type: "update",                        properties: properties                    })                );            };        }         function createEmitNumberPropertyUpdateFunction(propertyName) {            return function() {                EventBridge.emitWebEvent(                    '{ "type":"update", "properties":{"' + propertyName + '":' + this.value + '}}'                );            };        }        function createEmitGroupNumberPropertyUpdateFunction(group, propertyName) {            return function() {                var properties = {};                properties[group] = {};                properties[group][propertyName] = this.value;                EventBridge.emitWebEvent(                    JSON.stringify({                        type: "update",                        properties: properties,                    })                );            };        }          function createEmitTextPropertyUpdateFunction(propertyName) {            return function() {                var properties = {};                properties[propertyName] = this.value;                EventBridge.emitWebEvent(                    JSON.stringify({                        type: "update",                        properties: properties,                    })                );            };        }         function createEmitGroupTextPropertyUpdateFunction(group,propertyName) {            return function() {                var properties = {};                properties[group] = {};                properties[group][propertyName] = this.value;                EventBridge.emitWebEvent(                    JSON.stringify({                        type: "update",                        properties: properties,                    })                );            };        }         function createEmitVec3PropertyUpdateFunction(property, elX, elY, elZ) {            return function() {                var data = {                     type: "update",                     properties: {                     }                };                data.properties[property] = {                     x: elX.value,                     y: elY.value,                     z: elZ.value,                };                EventBridge.emitWebEvent(JSON.stringify(data));            }        };         function createEmitGroupVec3PropertyUpdateFunction(group, property, elX, elY, elZ) {            return function() {                var data = {                     type: "update",                     properties: {                     }                };                data.properties[group] = { };                data.properties[group][property] = {                     x: elX.value,                     y: elY.value,                     z: elZ.value,                };                EventBridge.emitWebEvent(JSON.stringify(data));            }        };         function createEmitVec3PropertyUpdateFunctionWithMultiplier(property, elX, elY, elZ, multiplier) {            return function() {                var data = {                     type: "update",                     properties: {                     }                };                data.properties[property] = {                     x: elX.value * multiplier,                     y: elY.value * multiplier,                     z: elZ.value * multiplier,                };                EventBridge.emitWebEvent(JSON.stringify(data));            }        };         function createEmitColorPropertyUpdateFunction(property, elRed, elGreen, elBlue) {            return function() {                emitColorPropertyUpdate(property, elRed.value, elGreen.value, elBlue.value);            }        };         function emitColorPropertyUpdate(property, red, green, blue, group) {                var data = {                     type: "update",                     properties: {                     }                };                if (group) {                    data.properties[group] = { };                    data.properties[group][property] = {                         red: red,                         green: green,                         blue: blue,                    };                } else {                    data.properties[property] = {                         red: red,                         green: green,                         blue: blue,                    };                }                EventBridge.emitWebEvent(JSON.stringify(data));        };          function createEmitGroupColorPropertyUpdateFunction(group, property, elRed, elGreen, elBlue) {            return function() {                var data = {                     type: "update",                     properties: {                     }                };                data.properties[group] = { };                 data.properties[group][property] = {                     red: elRed.value,                     green: elGreen.value,                     blue: elBlue.value,                };                EventBridge.emitWebEvent(JSON.stringify(data));            }        };         function loaded() {            var allSections = [];            var elID = document.getElementById("property-id");            var elType = document.getElementById("property-type");            var elName = document.getElementById("property-name");            var elLocked = document.getElementById("property-locked");            var elVisible = document.getElementById("property-visible");            var elPositionX = document.getElementById("property-pos-x");            var elPositionY = document.getElementById("property-pos-y");            var elPositionZ = document.getElementById("property-pos-z");            var elMoveSelectionToGrid = document.getElementById("move-selection-to-grid");            var elMoveAllToGrid = document.getElementById("move-all-to-grid");             var elDimensionsX = document.getElementById("property-dim-x");            var elDimensionsY = document.getElementById("property-dim-y");            var elDimensionsZ = document.getElementById("property-dim-z");            var elResetToNaturalDimensions = document.getElementById("reset-to-natural-dimensions");            var elRescaleDimensionsPct = document.getElementById("dimension-rescale-pct");            var elRescaleDimensionsButton  = document.getElementById("dimension-rescale-button");             var elRegistrationX = document.getElementById("property-reg-x");            var elRegistrationY = document.getElementById("property-reg-y");            var elRegistrationZ = document.getElementById("property-reg-z");             var elRotationX = document.getElementById("property-rot-x");            var elRotationY = document.getElementById("property-rot-y");            var elRotationZ = document.getElementById("property-rot-z");             var elLinearVelocityX = document.getElementById("property-lvel-x");            var elLinearVelocityY = document.getElementById("property-lvel-y");            var elLinearVelocityZ = document.getElementById("property-lvel-z");            var elLinearDamping = document.getElementById("property-ldamping");             var elAngularVelocityX = document.getElementById("property-avel-x");            var elAngularVelocityY = document.getElementById("property-avel-y");            var elAngularVelocityZ = document.getElementById("property-avel-z");            var elAngularDamping = document.getElementById("property-adamping");             var elRestitution = document.getElementById("property-restitution");            var elFriction = document.getElementById("property-friction");             var elGravityX = document.getElementById("property-grav-x");            var elGravityY = document.getElementById("property-grav-y");            var elGravityZ = document.getElementById("property-grav-z");             var elAccelerationX = document.getElementById("property-lacc-x");            var elAccelerationY = document.getElementById("property-lacc-y");            var elAccelerationZ = document.getElementById("property-lacc-z");             var elDensity = document.getElementById("property-density");            var elIgnoreForCollisions = document.getElementById("property-ignore-for-collisions");            var elCollisionsWillMove = document.getElementById("property-collisions-will-move");            var elCollisionSoundURL = document.getElementById("property-collision-sound-url");            var elLifetime = document.getElementById("property-lifetime");            var elScriptURL = document.getElementById("property-script-url");            var elUserData = document.getElementById("property-user-data");             var elColorSection = document.getElementById("color-section");            var elColor = document.getElementById("property-color");            var elColorRed = document.getElementById("property-color-red");            var elColorGreen = document.getElementById("property-color-green");            var elColorBlue = document.getElementById("property-color-blue");             var elLightSections = document.querySelectorAll(".light-section");            allSections.push(elLightSections);            var elLightSpotLight = document.getElementById("property-light-spot-light");            var elLightColor = document.getElementById("property-light-color");            var elLightColorRed = document.getElementById("property-light-color-red");            var elLightColorGreen = document.getElementById("property-light-color-green");            var elLightColorBlue = document.getElementById("property-light-color-blue");             var elLightIntensity = document.getElementById("property-light-intensity");            var elLightExponent = document.getElementById("property-light-exponent");            var elLightCutoff = document.getElementById("property-light-cutoff");             var elModelSections = document.querySelectorAll(".model-section");            allSections.push(elModelSections);            var elModelURL = document.getElementById("property-model-url");            var elShapeType = document.getElementById("property-shape-type");            var elCompoundShapeURL = document.getElementById("property-compound-shape-url");            var elModelAnimationURL = document.getElementById("property-model-animation-url");            var elModelAnimationPlaying = document.getElementById("property-model-animation-playing");            var elModelAnimationFPS = document.getElementById("property-model-animation-fps");            var elModelAnimationFrame = document.getElementById("property-model-animation-frame");            var elModelAnimationSettings = document.getElementById("property-model-animation-settings");            var elModelTextures = document.getElementById("property-model-textures");            var elModelOriginalTextures = document.getElementById("property-model-original-textures");             var elWebSections = document.querySelectorAll(".web-section");            allSections.push(elWebSections);            var elWebSourceURL = document.getElementById("property-web-source-url");             var elParticleSections = document.querySelectorAll(".particle-section");            allSections.push(elParticleSections);            var elParticleMaxParticles = document.getElementById("property-particle-maxparticles");            var elParticleLifeSpan = document.getElementById("property-particle-lifespan");            var elParticleEmitRate = document.getElementById("property-particle-emit-rate");            var elParticleEmitDirectionX = document.getElementById("property-particle-emit-direction-x");            var elParticleEmitDirectionY = document.getElementById("property-particle-emit-direction-y");            var elParticleEmitDirectionZ = document.getElementById("property-particle-emit-direction-z");            var elParticleEmitStrength = document.getElementById("property-particle-emit-strength");            var elParticleLocalGravity = document.getElementById("property-particle-localgravity");            var elParticleRadius = document.getElementById("property-particle-radius");             var elTextSections = document.querySelectorAll(".text-section");            allSections.push(elTextSections);            var elTextText = document.getElementById("property-text-text");            var elTextLineHeight = document.getElementById("property-text-line-height");            var elTextTextColor = document.getElementById("property-text-text-color");            var elTextTextColorRed = document.getElementById("property-text-text-color-red");            var elTextTextColorGreen = document.getElementById("property-text-text-color-green");            var elTextTextColorBlue = document.getElementById("property-text-text-color-blue");            var elTextBackgroundColor = document.getElementById("property-text-background-color");            var elTextBackgroundColorRed = document.getElementById("property-text-background-color-red");            var elTextBackgroundColorGreen = document.getElementById("property-text-background-color-green");            var elTextBackgroundColorBlue = document.getElementById("property-text-background-color-blue");             var elZoneSections = document.querySelectorAll(".zone-section");            allSections.push(elZoneSections);            var elZoneStageSunModelEnabled = document.getElementById("property-zone-stage-sun-model-enabled");            var elZoneKeyLightColor = document.getElementById("property-zone-key-light-color");            var elZoneKeyLightColorRed = document.getElementById("property-zone-key-light-color-red");            var elZoneKeyLightColorGreen = document.getElementById("property-zone-key-light-color-green");            var elZoneKeyLightColorBlue = document.getElementById("property-zone-key-light-color-blue");            var elZoneKeyLightIntensity = document.getElementById("property-zone-key-intensity");            var elZoneKeyLightAmbientIntensity = document.getElementById("property-zone-key-ambient-intensity");            var elZoneKeyLightDirectionX = document.getElementById("property-zone-key-light-direction-x");            var elZoneKeyLightDirectionY = document.getElementById("property-zone-key-light-direction-y");            var elZoneKeyLightDirectionZ = document.getElementById("property-zone-key-light-direction-z");             var elZoneStageLatitude = document.getElementById("property-zone-stage-latitude");            var elZoneStageLongitude = document.getElementById("property-zone-stage-longitude");            var elZoneStageAltitude = document.getElementById("property-zone-stage-altitude");            var elZoneStageAutomaticHourDay = document.getElementById("property-zone-stage-automatic-hour-day");            var elZoneStageDay = document.getElementById("property-zone-stage-day");            var elZoneStageHour = document.getElementById("property-zone-stage-hour");             var elZoneBackgroundMode = document.getElementById("property-zone-background-mode");             var elZoneSkyboxColor = document.getElementById("property-zone-skybox-color");            var elZoneSkyboxColorRed = document.getElementById("property-zone-skybox-color-red");            var elZoneSkyboxColorGreen = document.getElementById("property-zone-skybox-color-green");            var elZoneSkyboxColorBlue = document.getElementById("property-zone-skybox-color-blue");            var elZoneSkyboxURL = document.getElementById("property-zone-skybox-url");             var elZoneAtmosphereCenterX = document.getElementById("property-zone-atmosphere-center-x");            var elZoneAtmosphereCenterY = document.getElementById("property-zone-atmosphere-center-y");            var elZoneAtmosphereCenterZ = document.getElementById("property-zone-atmosphere-center-z");            var elCenterAtmosphereToZone = document.getElementById("center-atmosphere-in-zone");             var elZoneAtmosphereInnerRadius = document.getElementById("property-zone-atmosphere-inner-radius");            var elZoneAtmosphereOuterRadius = document.getElementById("property-zone-atmosphere-outer-radius");            var elZoneAtmosphereMieScattering = document.getElementById("property-zone-atmosphere-mie-scattering");            var elZoneAtmosphereRayleighScattering = document.getElementById("property-zone-atmosphere-rayleigh-scattering");            var elZoneAtmosphereScatteringWavelengthsX = document.getElementById("property-zone-atmosphere-scattering-wavelengths-x");            var elZoneAtmosphereScatteringWavelengthsY = document.getElementById("property-zone-atmosphere-scattering-wavelengths-y");            var elZoneAtmosphereScatteringWavelengthsZ = document.getElementById("property-zone-atmosphere-scattering-wavelengths-z");            var elZoneAtmosphereHasStars = document.getElementById("property-zone-atmosphere-has-stars");             var elPolyVoxSections = document.querySelectorAll(".poly-vox-section");            allSections.push(elPolyVoxSections);            var elVoxelVolumeSizeX = document.getElementById("property-voxel-volume-size-x");            var elVoxelVolumeSizeY = document.getElementById("property-voxel-volume-size-y");            var elVoxelVolumeSizeZ = document.getElementById("property-voxel-volume-size-z");            var elVoxelSurfaceStyle = document.getElementById("property-voxel-surface-style");             var elHyperlinkHref = document.getElementById("property-hyperlink-href");            var elHyperlinkDescription = document.getElementById("property-hyperlink-description");               if (window.EventBridge !== undefined) {                EventBridge.scriptEventReceived.connect(function(data) {                    data = JSON.parse(data);                    if (data.type == "update") {                        if (data.selections.length == 0) {                            elType.innerHTML = "<i>No Selection</i>";                            elID.innerHTML = "";                            disableChildren(document.getElementById("properties-list"), 'input');                        } else if (data.selections.length > 1) {                            var selections = data.selections;                             var ids = [];                            var types = {};                             for (var i = 0; i < selections.length; i++) {                                ids.push(selections[i].id);                                var type = selections[i].properties.type;                                if (types[type] === undefined) {                                    types[type] = 0;                                }                                types[type]++;                            }                            elID.innerHTML = ids.join("<br>");                             var typeStrs = [];                            for (type in types) {                                typeStrs.push(type + " (" + types[type] + ")");                            }                            elType.innerHTML = typeStrs.join(", ");                             disableChildren(document.getElementById("properties-list"), 'input');                        } else {                            var activeElement = document.activeElement;                             try {                                var selected = (activeElement                                           && activeElement.selectionStart == 0                                           && activeElement.selectionEnd == activeElement.value.length);                            } catch (e) {                                var  selected = false;                            }                             var properties = data.selections[0].properties;                             elID.innerHTML = properties.id;                             elType.innerHTML = properties.type;                             elLocked.checked = properties.locked;                             if (properties.locked) {                                disableChildren(document.getElementById("properties-list"), 'input');                                elLocked.removeAttribute('disabled');                            } else {                                enableChildren(document.getElementById("properties-list"), 'input');                            }                             elName.value = properties.name;                             elVisible.checked = properties.visible;                             elPositionX.value = properties.position.x.toFixed(2);                            elPositionY.value = properties.position.y.toFixed(2);                            elPositionZ.value = properties.position.z.toFixed(2);                             elDimensionsX.value = properties.dimensions.x.toFixed(2);                            elDimensionsY.value = properties.dimensions.y.toFixed(2);                            elDimensionsZ.value = properties.dimensions.z.toFixed(2);                             elRegistrationX.value = properties.registrationPoint.x.toFixed(2);                            elRegistrationY.value = properties.registrationPoint.y.toFixed(2);                            elRegistrationZ.value = properties.registrationPoint.z.toFixed(2);                             elRotationX.value = properties.rotation.x.toFixed(2);                            elRotationY.value = properties.rotation.y.toFixed(2);                            elRotationZ.value = properties.rotation.z.toFixed(2);                             elLinearVelocityX.value = properties.velocity.x.toFixed(2);                            elLinearVelocityY.value = properties.velocity.y.toFixed(2);                            elLinearVelocityZ.value = properties.velocity.z.toFixed(2);                            elLinearDamping.value = properties.damping.toFixed(2);                             elAngularVelocityX.value = (properties.angularVelocity.x * RADIANS_TO_DEGREES).toFixed(2);                            elAngularVelocityY.value = (properties.angularVelocity.y * RADIANS_TO_DEGREES).toFixed(2);                            elAngularVelocityZ.value = (properties.angularVelocity.z * RADIANS_TO_DEGREES).toFixed(2);                            elAngularDamping.value = properties.angularDamping.toFixed(2);                             elRestitution.value = properties.restitution.toFixed(2);                            elFriction.value = properties.friction.toFixed(2);                             elGravityX.value = properties.gravity.x.toFixed(2);                            elGravityY.value = properties.gravity.y.toFixed(2);                            elGravityZ.value = properties.gravity.z.toFixed(2);                             elAccelerationX.value = properties.acceleration.x.toFixed(2);                            elAccelerationY.value = properties.acceleration.y.toFixed(2);                            elAccelerationZ.value = properties.acceleration.z.toFixed(2);                             elDensity.value = properties.density.toFixed(2);                            elIgnoreForCollisions.checked = properties.ignoreForCollisions;                            elCollisionsWillMove.checked = properties.collisionsWillMove;                            elCollisionSoundURL.value = properties.collisionSoundURL;                            elLifetime.value = properties.lifetime;                            elScriptURL.value = properties.script;                            elUserData.value = properties.userData;                             elHyperlinkHref.value = properties.href;                            elHyperlinkDescription.value = properties.description;                             for (var i = 0; i < allSections.length; i++) {                                for (var j = 0; j < allSections[i].length; j++) {                                    allSections[i][j].style.display = 'none';                                }                            }                             if (properties.type == "Box" || properties.type == "Sphere" || properties.type == "ParticleEffect") {                                elColorSection.style.display = 'block';                                elColorRed.value = properties.color.red;                                elColorGreen.value = properties.color.green;                                elColorBlue.value = properties.color.blue;                                elColor.style.backgroundColor = "rgb(" + properties.color.red  + "," + properties.color.green + "," + properties.color.blue + ")";                            } else {                                elColorSection.style.display = 'none';                            }                             if (properties.type == "Model" || properties.type == "ParticleEffect") {                                for (var i = 0; i < elModelSections.length; i++) {                                    elModelSections[i].style.display = 'block';                                }                                 elModelURL.value = properties.modelURL;                                elShapeType.value = properties.shapeType;

Lines 1–500 of 1502.