diff --git a/macrovision.html b/macrovision.html
index c34d5e5c..d50db2ca 100644
--- a/macrovision.html
+++ b/macrovision.html
@@ -23,6 +23,7 @@
+
diff --git a/macrovision.js b/macrovision.js
index b0a19f46..a5c51dfe 100644
--- a/macrovision.js
+++ b/macrovision.js
@@ -3164,6 +3164,7 @@ function prepareEntities() {
availableEntities["dildos"] = makeDildos();
availableEntities["fiction"] = makeFiction();
availableEntities["food"] = makeFood();
+ availableEntities["furniture"] = makeFurniture();
availableEntities["landmarks"] = makeLandmarks();
availableEntities["naturals"] = makeNaturals();
availableEntities["objects"] = makeObjects();
diff --git a/media/attribution.js b/media/attribution.js
index 557bb24d..fd61f52a 100644
--- a/media/attribution.js
+++ b/media/attribution.js
@@ -15181,6 +15181,17 @@ const attributionData = {
"dimensions-guide"
]
},
+ {
+ prefix: "./media/furniture/Sofas/",
+ files: [
+ { name: "Two Seat-Front.svg", source: "https://www.dimensions.com/element/theatre-sofa" },
+ { name: "Two Seat-Side.svg", source: "https://www.dimensions.com/element/theatre-sofa" },
+ { name: "Two Seat-Top.svg", source: "https://www.dimensions.com/element/theatre-sofa" },
+ ],
+ authors: [
+ "dimensions-guide"
+ ]
+ },
{
prefix: "./media/landmarks/",
files: [
diff --git a/media/furniture/Sofas/Two Seat-Front.svg b/media/furniture/Sofas/Two Seat-Front.svg
new file mode 100644
index 00000000..65431024
--- /dev/null
+++ b/media/furniture/Sofas/Two Seat-Front.svg
@@ -0,0 +1,128 @@
+
+
+
diff --git a/media/furniture/Sofas/Two Seat-Side.svg b/media/furniture/Sofas/Two Seat-Side.svg
new file mode 100644
index 00000000..ecde11bf
--- /dev/null
+++ b/media/furniture/Sofas/Two Seat-Side.svg
@@ -0,0 +1,62 @@
+
+
+
diff --git a/media/furniture/Sofas/Two Seat-Top.svg b/media/furniture/Sofas/Two Seat-Top.svg
new file mode 100644
index 00000000..77c6a028
--- /dev/null
+++ b/media/furniture/Sofas/Two Seat-Top.svg
@@ -0,0 +1,101 @@
+
+
+
diff --git a/presets/furniture.js b/presets/furniture.js
new file mode 100644
index 00000000..c14020ac
--- /dev/null
+++ b/presets/furniture.js
@@ -0,0 +1,29 @@
+function makeFurniture() {
+ results = [];
+
+ const dataSofas = [
+ {
+ name: "Two Seat",
+ sides: {
+ "Front": { height: math.unit(30, "inches") },
+ "Side": { height: math.unit(30, "inches") },
+ "Top": { height: math.unit(30.5, "inches") },
+ }
+ },
+ ]
+
+ results.push({
+ name: "Sofas",
+ constructor: () => makeAutoVehicleGroup(dataSofas,
+ "Sofas",
+ "furniture")
+ });
+
+ results.sort((b1, b2) => {
+ e1 = b1.constructor();
+ e2 = b2.constructor();
+ return -math.subtract(e1.views[e1.defaultView].height, e2.views[e2.defaultView].height).value;
+ });
+
+ return results;
+}
diff --git a/presets/vehicles.js b/presets/vehicles.js
index ece0cb16..d50b795a 100644
--- a/presets/vehicles.js
+++ b/presets/vehicles.js
@@ -313,7 +313,7 @@ function makeVehicleGroup(info, name, prefix, directory="vehicles") {
return entity;
}
-function makeAutoVehicleGroup(info, name) {
+function makeAutoVehicleGroup(info, name, directory = "vehicles") {
sides = {}
let defaultHeight;
@@ -327,33 +327,35 @@ function makeAutoVehicleGroup(info, name) {
name: vehicle.name + " (" + sideName + ")",
rename: true,
height: data.height,
- image: { source: "./media/vehicles/" + name + "/" + vehicle.name + "-" + sideName + ".svg" }
+ image: { source: "./media/" + directory + "/" + name + "/" + vehicle.name + "-" + sideName + ".svg" }
};
});
});
const entity = makeMultiVehicle(name, sides);
- entity.sizes.push({
- name: "1:72",
- height: math.unit(math.divide(defaultHeight, 72))
- });
- entity.sizes.push({
- name: "1:24",
- height: math.unit(math.divide(defaultHeight, 24))
- });
- entity.sizes.push({
- name: "1:16",
- height: math.unit(math.divide(defaultHeight, 16))
- });
- entity.sizes.push({
- name: "1:8",
- height: math.unit(math.divide(defaultHeight, 8))
- });
- entity.sizes.push({
- name: "1:4",
- height: math.unit(math.divide(defaultHeight, 4))
- });
+ if (directory == "vehicles") {
+ entity.sizes.push({
+ name: "1:72",
+ height: math.unit(math.divide(defaultHeight, 72))
+ });
+ entity.sizes.push({
+ name: "1:24",
+ height: math.unit(math.divide(defaultHeight, 24))
+ });
+ entity.sizes.push({
+ name: "1:16",
+ height: math.unit(math.divide(defaultHeight, 16))
+ });
+ entity.sizes.push({
+ name: "1:8",
+ height: math.unit(math.divide(defaultHeight, 8))
+ });
+ entity.sizes.push({
+ name: "1:4",
+ height: math.unit(math.divide(defaultHeight, 4))
+ });
+ }
return entity;
}
@@ -612,8 +614,7 @@ function makeVehicles() {
results.push({
name: "Warships",
constructor: () => makeAutoVehicleGroup(dataWarships,
- "Warships",
- "")
+ "Warships")
});
const dataTanks = [
@@ -847,8 +848,7 @@ function makeVehicles() {
name: "Tanks",
constructor: () => makeAutoVehicleGroup(
dataTanks,
- "Tanks",
- "")
+ "Tanks")
});
const dataEveOnline = [
@@ -970,8 +970,7 @@ function makeVehicles() {
name: "Eve Online",
constructor: () => makeAutoVehicleGroup(
dataEveOnline,
- "Eve Online",
- "")
+ "Eve Online")
});
results.push({