function makeLandmark(name, height, image) { views = { building: { attributes: { height: { name: "Height", power: 1, type: "length", base: height, }, }, image: image, name: "building", }, }; return makeEntity({ name: name }, views); } function makeLandmarks() { const results = []; results.push({ name: "Burj Khalifa", constructor: () => makeLandmark("Burj Khalifa", math.unit(829.8, "meter"), { source: "./media/landmarks/burj-khalifa.svg", }), }); results.push({ name: "Canton Tower", constructor: () => makeLandmark("Canton Tower", math.unit(604, "meter"), { source: "./media/landmarks/canton-tower.svg", }), }); results.push({ name: "CN Tower", constructor: () => makeLandmark("CN Tower", math.unit(553.3, "meter"), { source: "./media/landmarks/cn-tower.svg", }), }); results.push({ name: "Taipei 101", constructor: () => makeLandmark("Taipei 101", math.unit(509.2, "meter"), { source: "./media/landmarks/taipei-101.svg", }), }); results.push({ name: "Empire State Building", constructor: () => makeLandmark("Empire State Building", math.unit(443.2, "meter"), { source: "./media/landmarks/empire-state-building.svg", }), }); results.push({ name: "Eiffel Tower", constructor: () => makeLandmark("Eiffel Tower", math.unit(324, "meter"), { source: "./media/landmarks/eiffel-tower.svg", }), }); results.push({ name: "Chrysler Building", constructor: () => makeLandmark("Chrysler Building", math.unit(318.9, "meter"), { source: "./media/landmarks/chrysler-building.svg", }), }); results.push({ name: "Gateway Arch", constructor: () => makeLandmark("Gateway Arch", math.unit(630, "feet"), { source: "./media/landmarks/gateway-arch.svg", }), }); results.push({ name: "Washington Monument", constructor: () => makeLandmark( "Washington Monument", math.unit(555 + 5 / 12, "feet"), { source: "./media/landmarks/washington-monument.svg" } ), }); results.push({ name: "Great Pyramid of Giza", constructor: () => makeLandmark("Great Pyramid of Giza", math.unit(146, "meters"), { source: "./media/landmarks/pyramid.svg", }), }); results.push({ name: "Statue of Liberty", constructor: () => makeLandmark("Statue of Liberty", math.unit(305.5, "feet"), { source: "./media/landmarks/statue-of-liberty.svg", }), }); results.push({ name: "Leaning Tower of Pisa", constructor: () => makeLandmark("Leaning Tower of Pisa", math.unit(185.93, "feet"), { source: "./media/landmarks/leaning-tower-of-pisa.svg", bottom: 84 / 3755, }), }); results.push({ name: "Elizabeth Tower", constructor: () => makeLandmark("Elizabeth Tower", math.unit(315, "feet"), { source: "./media/landmarks/elizabeth-tower.svg", }), }); results.push( makeModel({ name: "Towers", kind: "landmarks", forms: [ { name: "Tokyo Skytree", views: [{ name: "Front", height: 634 }], }, { name: "Canton Tower", views: [{ name: "Front", height: 604 }], }, { name: "CN Tower", views: [{ name: "Front", height: 553.3 }], }, { name: "Ostankino Tower", views: [{ name: "Front", height: 540.1 }], }, { name: "Oriental Pearl Tower", views: [{ name: "Front", height: 468 }], }, { name: "Milad Tower", views: [{ name: "Front", height: 435 }], }, { name: "Kuala Lumpur Tower", views: [{ name: "Front", height: 421 }], }, ], }) ); 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; }