diff --git a/macrovision.html b/macrovision.html
index a4956684..f892b4c6 100644
--- a/macrovision.html
+++ b/macrovision.html
@@ -10,6 +10,7 @@
+
diff --git a/macrovision.js b/macrovision.js
index ab6ee425..b0c2d2cc 100644
--- a/macrovision.js
+++ b/macrovision.js
@@ -24,7 +24,10 @@ const unitChoices = {
],
area: [
"cm^2",
- "meters^2"
+ "meters^2",
+ "kilometers^2",
+ "acres",
+ "miles^2"
],
mass: [
"kilograms"
@@ -778,6 +781,7 @@ function prepareEntities() {
availableEntities["buildings"] = makeBuildings();
availableEntities["characters"] = makeCharacters();
availableEntities["objects"] = makeObjects();
+ availableEntities["naturals"] = makeNaturals();
availableEntities["vehicles"] = makeVehicles();
availableEntities["characters"].sort((x,y) => {
diff --git a/media/LICENSES.md b/media/LICENSES.md
index 7b314489..db39330e 100644
--- a/media/LICENSES.md
+++ b/media/LICENSES.md
@@ -19,6 +19,7 @@ https://commons.wikimedia.org/wiki/File:TallestBuildings.svg
* house.svg
* mobile-home.svg
* mailbox.svg
+* gateway-arch.svg
# Characters
@@ -311,6 +312,26 @@ http://www.furaffinity.net/view/18577161/
* back.svg
+# Naturals
+
+**Self-created**
+
+* planet-generic.svg
+* saturn.svg
+
+**Theshibboleth [CC BY-SA (http://creativecommons.org/licenses/by-sa/3.0/)]**
+
+https://commons.wikimedia.org/wiki/File:Blank_US_Map_(states_only).svg
+
+* alaska.svg
+* california.svg
+* colorado.svg
+* florida.svg
+* maine.svg
+* montana.svg
+* new-york.svg
+* texas.svg
+
# Objects
**Self-created**
diff --git a/media/buildings/gateway-arch.svg b/media/buildings/gateway-arch.svg
new file mode 100644
index 00000000..bafa6223
--- /dev/null
+++ b/media/buildings/gateway-arch.svg
@@ -0,0 +1,10 @@
+
+
+
diff --git a/media/naturals/alaska.svg b/media/naturals/alaska.svg
new file mode 100644
index 00000000..6f7a9d00
--- /dev/null
+++ b/media/naturals/alaska.svg
@@ -0,0 +1,37 @@
+
+
+
diff --git a/media/naturals/california.svg b/media/naturals/california.svg
new file mode 100644
index 00000000..797093f5
--- /dev/null
+++ b/media/naturals/california.svg
@@ -0,0 +1,23 @@
+
+
+
diff --git a/media/naturals/colorado.svg b/media/naturals/colorado.svg
new file mode 100644
index 00000000..4734991c
--- /dev/null
+++ b/media/naturals/colorado.svg
@@ -0,0 +1,12 @@
+
+
+
diff --git a/media/naturals/florida.svg b/media/naturals/florida.svg
new file mode 100644
index 00000000..7bd65f67
--- /dev/null
+++ b/media/naturals/florida.svg
@@ -0,0 +1,22 @@
+
+
+
diff --git a/media/naturals/maine.svg b/media/naturals/maine.svg
new file mode 100644
index 00000000..a10634cb
--- /dev/null
+++ b/media/naturals/maine.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/media/naturals/montana.svg b/media/naturals/montana.svg
new file mode 100644
index 00000000..b31b145e
--- /dev/null
+++ b/media/naturals/montana.svg
@@ -0,0 +1,15 @@
+
+
+
diff --git a/media/naturals/new-york.svg b/media/naturals/new-york.svg
new file mode 100644
index 00000000..cde5f453
--- /dev/null
+++ b/media/naturals/new-york.svg
@@ -0,0 +1,19 @@
+
+
+
diff --git a/media/objects/planet-generic.svg b/media/naturals/planet-generic.svg
similarity index 100%
rename from media/objects/planet-generic.svg
rename to media/naturals/planet-generic.svg
diff --git a/media/objects/saturn.svg b/media/naturals/saturn.svg
similarity index 100%
rename from media/objects/saturn.svg
rename to media/naturals/saturn.svg
diff --git a/media/naturals/texas.svg b/media/naturals/texas.svg
new file mode 100644
index 00000000..76071307
--- /dev/null
+++ b/media/naturals/texas.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/presets/buildings.js b/presets/buildings.js
index 3e165d8b..67bda7f3 100644
--- a/presets/buildings.js
+++ b/presets/buildings.js
@@ -110,5 +110,14 @@ function makeBuildings() {
)
});
+ results.push({
+ name: "Gateway Arch",
+ constructor: () => makeBuilding(
+ "Gateway Arch",
+ math.unit(630, "feet"),
+ { source: "./media/buildings/gateway-arch.svg" }
+ )
+ });
+
return results;
}
\ No newline at end of file
diff --git a/presets/naturals.js b/presets/naturals.js
new file mode 100644
index 00000000..48410fcf
--- /dev/null
+++ b/presets/naturals.js
@@ -0,0 +1,81 @@
+function makeState(name, height, width, area) {
+ return {
+ name: name,
+ constructor: () => makeEntity(
+ name,
+ "State",
+ {
+ state: {
+ attributes: {
+ height: {
+ name: "Height",
+ power: 1,
+ type: "length",
+ base: height
+ },
+ width: {
+ name: "Width",
+ power: 1,
+ type: "length",
+ base: width
+ },
+ area: {
+ name: "Area",
+ power: 2,
+ type: "area",
+ base: area
+ },
+ },
+ name: "State",
+ image: {
+ source: "./media/naturals/" + name.toLowerCase().replace(" ", "-") + ".svg"
+ }
+ }
+ }
+ )
+ }
+}
+
+function makePlanet(name, diameter, mass, image) {
+ return {
+ name: name,
+ constructor: () => makeObject(
+ name,
+ {
+ body: {
+ height: diameter,
+ mass: mass,
+ image: (image === undefined ? {
+ source: "./media/objects/planet-generic.svg"
+ } : image),
+ name: "Body"
+ }
+ }
+ )
+ };
+}
+
+function makeNaturals() {
+ const results = [];
+ results.push(makePlanet("Mercury", math.unit(4879, "km"), math.unit(0.330e24, "kg")));
+ results.push(makePlanet("Venus", math.unit(12104, "km"), math.unit(4.87e24, "kg")));
+ results.push(makePlanet("Earth", math.unit(12756, "km"), math.unit(5.97e24, "kg")));
+ results.push(makePlanet("Moon", math.unit(3475, "km"), math.unit(0.073e24, "kg")));
+ results.push(makePlanet("Mars", math.unit(6792, "km"), math.unit(0.642e24, "kg")));
+ results.push(makePlanet("Jupiter", math.unit(142984, "km"), math.unit(1898e24, "kg")));
+ results.push(makePlanet("Saturn", math.unit(120536, "km"), math.unit(568e24, "kg"), { source: "./media/objects/saturn.svg" }));
+ results.push(makePlanet("Uranus", math.unit(51118, "km"), math.unit(86.8e24, "kg")));
+ results.push(makePlanet("Neptune", math.unit(49528, "km"), math.unit(102e24, "kg")));
+ results.push(makePlanet("Pluto", math.unit(2370, "km"), math.unit(0.0146e24, "kg")));
+
+ results.push(makeState("Alaska", math.unit(2071.44, "km"), math.unit(2483.83, "km"), math.unit(1723337, "km^2")));
+ results.push(makeState("California", math.unit(1048.82, "km"), math.unit(852.02, "km"), math.unit(423967, "km^2")));
+ results.push(makeState("Colorado", math.unit(442.44, "km"), math.unit(604.47, "km"), math.unit(269601, "km^2")));
+ results.push(makeState("Florida", math.unit(716.79, "km"), math.unit(723.97, "km"), math.unit(170312, "km^2")));
+ results.push(makeState("Maine", math.unit(505.94, "km"), math.unit(330.98, "km"), math.unit(91633, "km^2")));
+ results.push(makeState("Montana", math.unit(497.99, "km"), math.unit(983.98, "km"), math.unit(380831, "km^2")));
+ results.push(makeState("New York", math.unit(494.92, "km"), math.unit(536.63, "km"), math.unit(141297, "km^2")));
+ results.push(makeState("Texas", math.unit(1183.33, "km"), math.unit(1226.69, "km"), math.unit(695662, "km^2")));
+
+ return results;
+}
\ No newline at end of file
diff --git a/presets/objects.js b/presets/objects.js
index ffcff5d5..3658af3d 100644
--- a/presets/objects.js
+++ b/presets/objects.js
@@ -31,25 +31,6 @@ function makeObject(name, viewInfo) {
return makeEntity(name, "Object", views);
}
-function makePlanet(name, diameter, mass, image) {
- return {
- name: name,
- constructor: () => makeObject(
- name,
- {
- body: {
- height: diameter,
- mass: mass,
- image: (image === undefined ? {
- source: "./media/objects/planet-generic.svg"
- } : image),
- name: "Body"
- }
- }
- )
- };
-}
-
function makeObjects() {
const results = [];
@@ -87,16 +68,5 @@ function makeObjects() {
)
});
- results.push(makePlanet("Mercury", math.unit(4879, "km"), math.unit(0.330e24, "kg")));
- results.push(makePlanet("Venus", math.unit(12104, "km"), math.unit(4.87e24, "kg")));
- results.push(makePlanet("Earth", math.unit(12756, "km"), math.unit(5.97e24, "kg")));
- results.push(makePlanet("Moon", math.unit(3475, "km"), math.unit(0.073e24, "kg")));
- results.push(makePlanet("Mars", math.unit(6792, "km"), math.unit(0.642e24, "kg")));
- results.push(makePlanet("Jupiter", math.unit(142984, "km"), math.unit(1898e24, "kg")));
- results.push(makePlanet("Saturn", math.unit(120536, "km"), math.unit(568e24, "kg"), {source: "./media/objects/saturn.svg"}));
- results.push(makePlanet("Uranus", math.unit(51118, "km"), math.unit(86.8e24, "kg")));
- results.push(makePlanet("Neptune", math.unit(49528, "km"), math.unit(102e24, "kg")));
- results.push(makePlanet("Pluto", math.unit(2370, "km"), math.unit(0.0146e24, "kg")));
-
return results;
}
\ No newline at end of file