Jupiter
Fiddle exploring how to model a planet in three dimensional space. Its based on the examples discussed in
Chapter 3 of Tony Parisi's book, **WebGL Up and Running**.
by brady houseknecht
January 15, 2019
HTML
<script src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/297733/Three.js"></script>
<script src="https://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-mousewheel/3.1.13/jquery.mousewheel.min.js"></script>
<a id="githubLink" href="https://github.com/bradyhouse/house/tree/master/fiddles/three/fiddle-0023-Jupiter" target="_blank"><img style="z-index: 1000; position: absolute; top: 0; right: 0; border: 0;" src="https://camo.githubusercontent.com/652c5b9acfaddf3a9c326fa6bde407b87f7be0f4/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f6f72616e67655f6666373630302e706e67" alt="Fork me on GitHub"></a>
<div id="fiddleHook"></div>
CSS
body {
background-color: black;
}
JavaScript
(function(app) {
"use strict";
let metadata = {
urls: {
github: 'https://github.com/bradyhouse/house/tree/master/fiddles/three/fiddle-0023-Jupiter',
jupiter: {
surfaceMaterial: 'https://s3-us-west-2.amazonaws.com/s.cdpn.io/297733/jupiterSurfaceMaterial.jpg'
}
}
};
app.toolkit = app.toolkit || {};
app.toolkit.three = app.toolkit.three || {};
app.view = app.view || {};
app.view.milkyway = app.view.milkyway || {};
app.view.milkyway.jupiter = app.view.milkyway.jupiter || {};
app.toolkit.three.Publisher = class {
constructor() {
this._messageTypes = {};
}
get messageTypes() {
return this._messageTypes;
}
subscribe(message, subscriber, callback) {
var subscribers = this.messageTypes[message];
if (subscribers) {
if (this.findSubscriber(subscribers, subscriber) != -1) {
return;
}
} else {
subscribers = [];
this.messageTypes[message] = subscribers;
}
subscribers.push({
subscriber: subscriber,
callback: callback
});
}
unsubscribe(message, subscriber, callback) {
if (subscriber) {
var subscribers = this.messageTypes[message];
if (subscribers) {
var i = this.findSubscriber(subscribers, subscriber, callback);
if (i != -1) {
this.messageTypes[message].splice(i, 1);
}
}
} else {
delete this.messageTypes[message];
}
}
publish(message) {
var subscribers = this.messageTypes[message];
if (subscribers) {
for (var i = 0; i < subscribers.length; i++) {
var args =...