diff --git a/media/attribution.js b/media/attribution.js
index 1214e099..fe3b0a86 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -4891,7 +4891,32 @@ const attributionData = {
"public-domain"
]
},
-
+ {
+ prefix: "./media/objects/animals/",
+ files: [
+ { name: "blue-whale.svg", source: "https://www.dimensions.guide/element/blue-whale" },
+ { name: "sperm-whale.svg", source: "https://www.dimensions.guide/element/sperm-whale" },
+ { name: "dairy-cow.svg", source: "https://www.dimensions.guide/element/dairy-cows" },
+ { name: "horse.svg", source: "https://www.dimensions.guide/element/horse" },
+ { name: "african-elephant.svg", source: "https://www.dimensions.guide/element/african-elephant" },
+ ],
+ authors: [
+ "dimensions-guide"
+ ]
+ },
+ {
+ prefix: "./media/objects/dinosaurs/",
+ files: [
+ { name: "brachiosaurus.svg", source: "https://www.dimensions.guide/element/brachiosaurus" },
+ { name: "pterodactyl.svg", source: "https://www.dimensions.guide/element/pterodactyl" },
+ { name: "stegosaurus.svg", source: "https://www.dimensions.guide/element/stegosaurus" },
+ { name: "tyrannosaurus.svg", source: "https://www.dimensions.guide/element/t-rex-tyrannosaurus" },
+ { name: "velociraptor.svg", source: "https://www.dimensions.guide/element/velociraptor" },
+ ],
+ authors: [
+ "dimensions-guide"
+ ]
+ },
{
prefix: "./media/objects/fruits/",
files: [
diff --git a/media/objects/animals/african-elephant.svg b/media/objects/animals/african-elephant.svg
new file mode 100644
index 00000000..4e934171
--- /dev/null
+++ b/media/objects/animals/african-elephant.svg
@@ -0,0 +1,79 @@
+
+
+
diff --git a/media/objects/animals/blue-whale.svg b/media/objects/animals/blue-whale.svg
new file mode 100644
index 00000000..4c72303f
--- /dev/null
+++ b/media/objects/animals/blue-whale.svg
@@ -0,0 +1,26 @@
+
+
+
diff --git a/media/objects/animals/dairy-cow.svg b/media/objects/animals/dairy-cow.svg
new file mode 100644
index 00000000..ea99585b
--- /dev/null
+++ b/media/objects/animals/dairy-cow.svg
@@ -0,0 +1,78 @@
+
+
+
diff --git a/media/objects/animals/horse.svg b/media/objects/animals/horse.svg
new file mode 100644
index 00000000..ddf27a5e
--- /dev/null
+++ b/media/objects/animals/horse.svg
@@ -0,0 +1,90 @@
+
+
+
diff --git a/media/objects/animals/sperm-whale.svg b/media/objects/animals/sperm-whale.svg
new file mode 100644
index 00000000..888c27d4
--- /dev/null
+++ b/media/objects/animals/sperm-whale.svg
@@ -0,0 +1,27 @@
+
+
+
diff --git a/media/objects/dinosaurs/brachiosaurus.svg b/media/objects/dinosaurs/brachiosaurus.svg
new file mode 100644
index 00000000..4b44f423
--- /dev/null
+++ b/media/objects/dinosaurs/brachiosaurus.svg
@@ -0,0 +1,47 @@
+
+
+
diff --git a/media/objects/dinosaurs/pterodactyl.svg b/media/objects/dinosaurs/pterodactyl.svg
new file mode 100644
index 00000000..cd690066
--- /dev/null
+++ b/media/objects/dinosaurs/pterodactyl.svg
@@ -0,0 +1,82 @@
+
+
+
diff --git a/media/objects/dinosaurs/stegosaurus.svg b/media/objects/dinosaurs/stegosaurus.svg
new file mode 100644
index 00000000..a64911db
--- /dev/null
+++ b/media/objects/dinosaurs/stegosaurus.svg
@@ -0,0 +1,52 @@
+
+
+
diff --git a/media/objects/dinosaurs/tyrannosaurus.svg b/media/objects/dinosaurs/tyrannosaurus.svg
new file mode 100644
index 00000000..013fadd3
--- /dev/null
+++ b/media/objects/dinosaurs/tyrannosaurus.svg
@@ -0,0 +1,55 @@
+
+
+
diff --git a/media/objects/dinosaurs/velociraptor.svg b/media/objects/dinosaurs/velociraptor.svg
new file mode 100644
index 00000000..4a1365db
--- /dev/null
+++ b/media/objects/dinosaurs/velociraptor.svg
@@ -0,0 +1,86 @@
+
+
+
diff --git a/presets/objects.js b/presets/objects.js
index 8d9d1444..6a687348 100644
--- a/presets/objects.js
+++ b/presets/objects.js
@@ -48,6 +48,28 @@ function addShoeView(object, name, points) {
}
}
+function makeHeightWeight(info, category, prefix="") {
+ const views = {};
+
+ info.forEach(object => {
+ views[object[0]] = {
+ height: math.unit(object[1], "meters"),
+ mass: math.unit(object[2], "kilograms"),
+ image: { source: "./media/objects/" + category.replace(/ /g, "-").toLowerCase() + "/" + prefix + object[0] + ".svg" },
+ name: object[0].replace(/-/g, " ").replace(/\b\w/g, x => x.toUpperCase()),
+ rename: true
+ }
+ });
+
+ return {
+ name: category,
+ constructor: () => makeObject(
+ category,
+ views
+ )
+ }
+}
+
function makeShoes() {
const views = {};
@@ -485,6 +507,28 @@ function makeObjects() {
)
})
+ results.push(
+ makeHeightWeight([
+ ["blue-whale", 4.5, 125e3],
+ ["sperm-whale", 3, 42e3],
+ ["dairy-cow", 1.7, 800],
+ ["horse", 2.08, 550],
+ ["african-elephant", 3.2, 4000]
+ ],
+ "Animals"
+ ));
+
+ results.push(
+ makeHeightWeight([
+ ["brachiosaurus", 13, 56e3],
+ ["pterodactyl", 2.3, 200],
+ ["stegosaurus", 4.5, 7e3],
+ ["tyrannosaurus", 5.2, 14e3],
+ ["velociraptor", 1.6, 15]
+ ],
+ "Dinosaurs"
+ ));
+
results.sort((b1, b2) => {
e1 = b1.constructor();