@wework/floormap-utils
Advanced tools
Comparing version 0.10.0 to 1.0.0-rc.1
@@ -54,2 +54,3 @@ Object.defineProperty(exports, '__esModule', { value: true }); | ||
var centroid = params.centroid; | ||
var instancingId = params.instancingId; | ||
@@ -59,2 +60,10 @@ var objects = []; | ||
var wallHeight = 6; | ||
var _programType; | ||
if (typeof programType === 'string') { | ||
_programType = programType.toUpperCase(); | ||
} | ||
var _subType; | ||
if (typeof subType === 'string') { | ||
_subType = subType.toUpperCase(); | ||
} | ||
var side = 'BACK'; | ||
@@ -66,9 +75,10 @@ var outlineOnly = false; | ||
var showRoomNumber = false; | ||
var extrude = getExtrude(programType, wallHeight); | ||
var zed = getZed(programType, wallHeight); | ||
var color = getColor(programType); | ||
var img = getImage(programType, subType); | ||
var extrude = getExtrude(_programType, wallHeight); | ||
var zed = getZed(_programType, wallHeight); | ||
var color = getColor(_programType); | ||
var img = getImage(_programType, _subType); | ||
var zOrder = 0; | ||
if (type === 'object') { | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'CHAIR': | ||
@@ -88,4 +98,5 @@ color = 'rgb(206,206,206)'; | ||
zed = -1.5; | ||
opacity = 0.7; | ||
opacity = 0.8; | ||
outlineColor = 'rgb(150,150,150)'; | ||
zOrder = 1; | ||
break | ||
@@ -105,3 +116,3 @@ default: | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'HALLWAY': | ||
@@ -120,7 +131,7 @@ case 'ELEV LOBBY': | ||
} | ||
switch (programType) { | ||
switch (_programType) { | ||
case 'MEET': | ||
// outlineColor = '#474747' | ||
showRoomNumber = true; | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'NOOK': | ||
@@ -153,4 +164,4 @@ case 'PHONE BOOTH': | ||
default: | ||
if (programType) { | ||
console.log('invalid programType:', programType); | ||
if (_programType) { | ||
console.log('invalid programType:', _programType); | ||
} | ||
@@ -170,41 +181,11 @@ break | ||
if (!_shapes || _shapes.length === 0) { | ||
if (instancingId) { | ||
if (centroid) { | ||
switch (subType) { | ||
case 'CHAIR': { | ||
_shapes = getChairGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'CHAIRS'; | ||
interactable = false; | ||
break | ||
} | ||
case 'TABLE': { | ||
_shapes = getTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
case 'HOTDESK_TABLE': { | ||
_shapes = getHotDeskTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'HOTDESK_TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
default: | ||
break | ||
} | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = instancingId; | ||
interactable = false; | ||
} else { | ||
@@ -239,3 +220,4 @@ console.warn('centroid is not available', JSON.stringify(params)); | ||
rotation: _rotation, | ||
visible: true | ||
visible: true, | ||
zOrder: zOrder | ||
}; | ||
@@ -313,37 +295,2 @@ if (_instancingId) { | ||
var getChairGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 1.0, y: 1.45 }, | ||
{ x: -1.0, y: 1.45 }, | ||
{ x: -1.0, y: -0.55 }, | ||
{ x: 1.0, y: -0.55 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getTableGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 2.0, y: 2.3 }, | ||
{ x: -2.0, y: 2.3 }, | ||
{ x: -2.0, y: 0.3 }, | ||
{ x: 2.0, y: 0.3 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getHotDeskTableGeometry = function () { | ||
return [ | ||
[ | ||
{ x: 1.97, y: 1.97 }, | ||
{ x: -1.97, y: 1.97 }, | ||
{ x: -1.97, y: -1.97 }, | ||
{ x: 1.97, y: -1.97 } | ||
] | ||
] | ||
}; | ||
var getExtrude = function (programType, wallHeight) { | ||
@@ -621,3 +568,4 @@ switch (programType) { | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
opacity: obj.style ? obj.style.opacity : 1.0 | ||
} | ||
@@ -652,3 +600,4 @@ }); | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
zOrder: obj.zOrder | ||
} | ||
@@ -655,0 +604,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
Object.defineProperty(exports,"__esModule",{value:!0});var nook="https://cdn.spacemob.co/img/nook@2x.png",meeting="https://cdn.spacemob.co/img/meeting_room@2x.png",gameRoom="https://cdn.spacemob.co/img/gameroom@2x.png",women="https://cdn.spacemob.co/img/wc_f@2x.png",men="https://cdn.spacemob.co/img/wc_m@2x.png",shower="https://cdn.spacemob.co/img/shower@2x.png",itRoom="https://cdn.spacemob.co/img/IT_room@2x.png",printer="https://cdn.spacemob.co/img/printer@2x.png",phoneBooth="https://cdn.spacemob.co/img/phone_booth@2x.png",mechanical="https://cdn.spacemob.co/img/mechanical@2x.png",storage="https://cdn.spacemob.co/img/storage@2x.png",trash="https://cdn.spacemob.co/img/trash@2x.png",pantry="https://cdn.spacemob.co/img/pantry@2x.png",motherRoom="https://cdn.spacemob.co/img/motherroom@2x.png",mail="https://cdn.spacemob.co/img/mail_room@2x.png",serviceLift="https://cdn.spacemob.co/img/servicelift@2x.png",wellness="https://cdn.spacemob.co/img/wellnessroom@2x.png",electrical="https://cdn.spacemob.co/img/electrical@2x.png",fire="https://cdn.spacemob.co/img/fire_extinguisher@2x.png",maintenance="https://cdn.spacemob.co/img/maintenance@2x.png",getCenter=function(e){for(var t=1/0,a=1/0,c=-1/0,s=-1/0,n=0;n<e.length;n++)t=Math.min(t,e[n].x),a=Math.min(a,e[n].y),c=Math.max(c,e[n].x),s=Math.max(s,e[n].y);return{x:(c+t)/2,y:(s+a)/2}},createRenderObjects=function(e){var s=e.id,t=e.shapes,a=e.type,c=e.subType,n=e.programType,r=e.roomNumber,o=e.hasWindow,i=e.locationAngle,p=e.centroid,g=[],l="BACK",E="#474747",h=1,m=!0,O=!1,T=getExtrude(n,6),b=getZed(n,6),d=getColor(n),R=getImage(n,c);if("object"===a)switch(c){case"CHAIR":d="rgb(206,206,206)",l="FRONT",b=-(6-(T=1))/2,E="rgb(150,150,150)";break;case"TABLE":case"HOTDESK_TABLE":d="rgb(246,241,241)",l="FRONT",T=.5,b=-1.5,h=.7,E="rgb(150,150,150)"}else"space"===a||"room"===a||console.warn("invalid type:",a);var u={only:!1,color:E};switch(c){case"HALLWAY":case"ELEV LOBBY":u=null}switch(n){case"MEET":switch(O=!0,c){case"NOOK":case"PHONE BOOTH":case"wt":O=!1}break;case"WORK":O=!0,o&&(d="rgb(228,243,247)");break;case"WASH":case"SERVE":break;case"OPERATE":case"WE":break;case"CIRCULATE":u=null;break;default:n&&console.log("invalid programType:",n)}u&&(u.color=E);var y=t,A={z:b},x=null,M=null;if(!y||0===y.length)if(p)switch(c){case"CHAIR":y=getChairGeometry(),(A=p).z=b,x={z:i},m=!(M="CHAIRS");break;case"TABLE":y=getTableGeometry(),(A=p).z=b,x={z:i},m=!(M="TABLES");break;case"HOTDESK_TABLE":y=getHotDeskTableGeometry(),(A=p).z=b,x={z:i},m=!(M="HOTDESK_TABLES")}else console.warn("centroid is not available",JSON.stringify(e));if(y&&0!==y.length){if(y.forEach(function(e,t){var a=s;0!==t&&(a=s+"/"+t);var c={id:a,type:"MESH",style:{color:d,side:l,outline:u,opacity:h},points:e,interactable:m,extrude:T,position:A,rotation:x,visible:!0};M&&(c.instancingId=M),g.push(c)}),O&&r){var S=getCenter(y[0]),I={x:.5,y:.5};R&&(I.y=1.25);var f=getSize(y[0]).width/2*.8;3<f&&(f=2.9),g.push({id:s+"_TEXT",type:"TEXT",text:r,position:S,scalar:f,center:I,style:{color:"black",fontWeight:"bold"},interactable:!1})}if(R){var C=getCenter(y[0]),L={x:.5,y:.5};p&&((C=p).z=0),O&&r&&(L.y=.25);var N=3,k=getSize(y[0]);N>k.width?N=k.width-.1:N>k.height&&(N=k.height-.1),g.push({id:s+"_SPRITE",type:"SPRITE",position:C,scalar:1,center:L,style:{img:R,maxWidth:N},interactable:!1})}return g}console.warn("Invalid shapes",JSON.stringify(e))},getChairGeometry=function(){return[[{x:1,y:1.45},{x:-1,y:1.45},{x:-1,y:-.55},{x:1,y:-.55}]]},getTableGeometry=function(){return[[{x:2,y:2.3},{x:-2,y:2.3},{x:-2,y:.3},{x:2,y:.3}]]},getHotDeskTableGeometry=function(){return[[{x:1.97,y:1.97},{x:-1.97,y:1.97},{x:-1.97,y:-1.97},{x:1.97,y:-1.97}]]},getExtrude=function(e,t){switch(e){case"CIRCULATE":case"WE":return.1;default:return t}},getZed=function(e,t){switch(e){case"WORK":return 0;case"MEET":return-.01;case"WASH":return-.02;case"OPERATE":return-.03;case"WE":return-(t/2+.01);case"CIRCULATE":return-(t/2+.02);default:return 0}},getColor=function(e){switch(e){case"WORK":return"rgb(171,221,231)";case"CIRCULATE":return"rgb(255,247,223)";case"MEET":return"rgb(183,240,217)";case"WE":return"rgb(255,210,106)";case"OPERATE":return"rgb(226,226,226)";case"WASH":return"rgb(195,195,195)";default:return"rgb(253,235,236)"}},stringArrayToPoints=function(e){if(e&&e.constructor===Array){var t=[];return e.forEach(function(e){e&&e.constructor===Array&&3===e.length&&t.push({x:parseFloat(e[0]),y:parseFloat(e[1]),z:parseFloat(e[2])})}),t}},getImage=function(e,t){var a=null;switch(t.toUpperCase()){case"PHONE BOOTH":a=phoneBooth;break;case"WT":case"NOOK":case"BOOTH":case"BOOTHS":a=nook;break;case"LOUNGE":case"HONESTY MKT":case"HONESTY MARKET":case"PANTRY":case"BAR":case"BEER ISLAND":case"COMMUNITY BAR":a=pantry;break;case"GAME RM":case"GAME ROOM":case"DART BOARD":a=gameRoom;break;case"WOMEN WC":case"WOMENS WC":case"W RESTROOM":case"RESTROOM":case"UNISEX RESTROOM":case"UNISEX":case"ADA RESTROOM":case"ADA WC":a=women;break;case"MEN WC":case"MENS WC":case"MALE WC":case"M RESTROOM":a=men;break;case"IT":a=itRoom;break;case"PRINTER":case"PRINT":case"PRINTER NOOK":case"PRINTING ALCOVE":a=printer;break;case"MECH":case"MECHANICAL CLOSET":a=mechanical;break;case"STOR":case"STORE":case"STORAGE":case"BIKE STORAGE":case"F&B STORAGE":case"CLEANING STORAGE":case"COAT CLOSET":a=storage;break;case"TRASH":case"TRASH ROOM":a=trash;break;case"MOTHER RM":case"MOTHERS ROOM":a=motherRoom;break;case"F&B":a=pantry;break;case"MAIL":case"MAIL & PACKAGE ROOM":a=mail;break;case"SHOWER":case"SHOWERS":a=shower;break;case"SERVICE LIFT":case"ELEVATOR FOYER":a=serviceLift;break;case"WELLNESS RM":case"WELLNESS ROOM":case"FITNESS RM":a=wellness;break;case"ELEC":case"ELECTRICAL CLOSET":a=electrical;break;case"FIRE":case"FIRE COMMAND CENTER":a=fire;break;case"MOP":case"JC":case"JANITOR":case"MOP CLOSET":a=maintenance;break;case"CONV. BOOTH":a=meeting}if(t.startsWith("IT ")&&(a=itRoom),!a)switch(e){case"MEET":a=meeting}return a},getSize=function(e){for(var t=1/0,a=1/0,c=-1/0,s=-1/0,n=0;n<e.length;n++)t=Math.min(t,e[n].x),a=Math.min(a,e[n].y),c=Math.max(c,e[n].x),s=Math.max(s,e[n].y);return{width:c-t,height:s-a}},applyInstancing=function(c,s){var n=new Map,r=function(){for(var e=0;e<c.length;e++){var t=c[e];if(t.instancingId){var a=n.get(t.instancingId);a||(a=[]),a.push(t),n.set(t.instancingId,a),c.splice(e,1),r()}}};r(),n.forEach(function(e,t,a){toInstancedMesh(e,t,s)})},toInstancedMesh=function(e,t,a){if(0!==e.length){var c=e[0];if(a.createInstancedMesh({id:t,mesh:{points:c.points,extrude:c.extrude}}),e.forEach(function(e){a.addToInstancedMesh({id:e.id,instancingId:t,style:{color:e.style.color},position:e.position,rotation:e.rotation,interactable:e.interactable,visible:e.visible})}),a.drawInstancedMesh({id:t}),c.style.outline&&c.style.outline.color){var s=t+"_OUTLINE";a.createInstancedMesh({id:s,mesh:{style:{outline:{color:c.style.outline.color,only:!0}},points:c.points,extrude:c.extrude}}),e.forEach(function(e){a.addToInstancedMesh({id:e.id+"_outline",instancingId:s,style:{color:e.style.color},position:e.position,rotation:e.rotation,visible:e.visible})}),a.drawInstancedMesh({id:s})}}};exports.createRenderObjects=createRenderObjects,exports.getCenter=getCenter,exports.getSize=getSize,exports.stringArrayToPoints=stringArrayToPoints,exports.applyInstancing=applyInstancing; | ||
Object.defineProperty(exports,"__esModule",{value:!0});var nook="https://cdn.spacemob.co/img/nook@2x.png",meeting="https://cdn.spacemob.co/img/meeting_room@2x.png",gameRoom="https://cdn.spacemob.co/img/gameroom@2x.png",women="https://cdn.spacemob.co/img/wc_f@2x.png",men="https://cdn.spacemob.co/img/wc_m@2x.png",shower="https://cdn.spacemob.co/img/shower@2x.png",itRoom="https://cdn.spacemob.co/img/IT_room@2x.png",printer="https://cdn.spacemob.co/img/printer@2x.png",phoneBooth="https://cdn.spacemob.co/img/phone_booth@2x.png",mechanical="https://cdn.spacemob.co/img/mechanical@2x.png",storage="https://cdn.spacemob.co/img/storage@2x.png",trash="https://cdn.spacemob.co/img/trash@2x.png",pantry="https://cdn.spacemob.co/img/pantry@2x.png",motherRoom="https://cdn.spacemob.co/img/motherroom@2x.png",mail="https://cdn.spacemob.co/img/mail_room@2x.png",serviceLift="https://cdn.spacemob.co/img/servicelift@2x.png",wellness="https://cdn.spacemob.co/img/wellnessroom@2x.png",electrical="https://cdn.spacemob.co/img/electrical@2x.png",fire="https://cdn.spacemob.co/img/fire_extinguisher@2x.png",maintenance="https://cdn.spacemob.co/img/maintenance@2x.png",getCenter=function(e){for(var t=1/0,a=1/0,s=-1/0,c=-1/0,n=0;n<e.length;n++)t=Math.min(t,e[n].x),a=Math.min(a,e[n].y),s=Math.max(s,e[n].x),c=Math.max(c,e[n].y);return{x:(s+t)/2,y:(c+a)/2}},createRenderObjects=function(e){var t,a,c=e.id,s=e.shapes,n=e.type,r=e.subType,o=e.programType,i=e.roomNumber,p=e.hasWindow,g=e.locationAngle,l=e.centroid,E=e.instancingId,h=[];"string"==typeof o&&(t=o.toUpperCase()),"string"==typeof r&&(a=r.toUpperCase());var m="BACK",O="#474747",d=1,b=!0,R=!1,T=getExtrude(t,6),u=getZed(t,6),M=getColor(t),A=getImage(t,a),y=0;if("object"===n)switch(a){case"CHAIR":M="rgb(206,206,206)",m="FRONT",u=-(6-(T=1))/2,O="rgb(150,150,150)";break;case"TABLE":case"HOTDESK_TABLE":M="rgb(246,241,241)",m="FRONT",T=.5,u=-1.5,d=.8,O="rgb(150,150,150)",y=1}else"space"===n||"room"===n||console.warn("invalid type:",n);var I={only:!1,color:O};switch(a){case"HALLWAY":case"ELEV LOBBY":I=null}switch(t){case"MEET":switch(R=!0,a){case"NOOK":case"PHONE BOOTH":case"wt":R=!1}break;case"WORK":R=!0,p&&(M="rgb(228,243,247)");break;case"WASH":case"SERVE":break;case"OPERATE":case"WE":break;case"CIRCULATE":I=null;break;default:t&&console.log("invalid programType:",t)}I&&(I.color=O);var S=s,f={z:u},x=null,C=null;if(E&&(l?((f=l).z=u,C=E,b=!(x={z:g})):console.warn("centroid is not available",JSON.stringify(e))),S&&0!==S.length){if(S.forEach(function(e,t){var a=c;0!==t&&(a=c+"/"+t);var s={id:a,type:"MESH",style:{color:M,side:m,outline:I,opacity:d},points:e,interactable:b,extrude:T,position:f,rotation:x,visible:!0,zOrder:y};C&&(s.instancingId=C),h.push(s)}),R&&i){var N=getCenter(S[0]),v={x:.5,y:.5};A&&(v.y=1.25);var L=getSize(S[0]).width/2*.8;3<L&&(L=2.9),h.push({id:c+"_TEXT",type:"TEXT",text:i,position:N,scalar:L,center:v,style:{color:"black",fontWeight:"bold"},interactable:!1})}if(A){var w=getCenter(S[0]),k={x:.5,y:.5};l&&((w=l).z=0),R&&i&&(k.y=.25);var W=3,H=getSize(S[0]);W>H.width?W=H.width-.1:W>H.height&&(W=H.height-.1),h.push({id:c+"_SPRITE",type:"SPRITE",position:w,scalar:1,center:k,style:{img:A,maxWidth:W},interactable:!1})}return h}console.warn("Invalid shapes",JSON.stringify(e))},getExtrude=function(e,t){switch(e){case"CIRCULATE":case"WE":return.1;default:return t}},getZed=function(e,t){switch(e){case"WORK":return 0;case"MEET":return-.01;case"WASH":return-.02;case"OPERATE":return-.03;case"WE":return-(t/2+.01);case"CIRCULATE":return-(t/2+.02);default:return 0}},getColor=function(e){switch(e){case"WORK":return"rgb(171,221,231)";case"CIRCULATE":return"rgb(255,247,223)";case"MEET":return"rgb(183,240,217)";case"WE":return"rgb(255,210,106)";case"OPERATE":return"rgb(226,226,226)";case"WASH":return"rgb(195,195,195)";default:return"rgb(253,235,236)"}},stringArrayToPoints=function(e){if(e&&e.constructor===Array){var t=[];return e.forEach(function(e){e&&e.constructor===Array&&3===e.length&&t.push({x:parseFloat(e[0]),y:parseFloat(e[1]),z:parseFloat(e[2])})}),t}},getImage=function(e,t){var a=null;switch(t.toUpperCase()){case"PHONE BOOTH":a=phoneBooth;break;case"WT":case"NOOK":case"BOOTH":case"BOOTHS":a=nook;break;case"LOUNGE":case"HONESTY MKT":case"HONESTY MARKET":case"PANTRY":case"BAR":case"BEER ISLAND":case"COMMUNITY BAR":a=pantry;break;case"GAME RM":case"GAME ROOM":case"DART BOARD":a=gameRoom;break;case"WOMEN WC":case"WOMENS WC":case"W RESTROOM":case"RESTROOM":case"UNISEX RESTROOM":case"UNISEX":case"ADA RESTROOM":case"ADA WC":a=women;break;case"MEN WC":case"MENS WC":case"MALE WC":case"M RESTROOM":a=men;break;case"IT":a=itRoom;break;case"PRINTER":case"PRINT":case"PRINTER NOOK":case"PRINTING ALCOVE":a=printer;break;case"MECH":case"MECHANICAL CLOSET":a=mechanical;break;case"STOR":case"STORE":case"STORAGE":case"BIKE STORAGE":case"F&B STORAGE":case"CLEANING STORAGE":case"COAT CLOSET":a=storage;break;case"TRASH":case"TRASH ROOM":a=trash;break;case"MOTHER RM":case"MOTHERS ROOM":a=motherRoom;break;case"F&B":a=pantry;break;case"MAIL":case"MAIL & PACKAGE ROOM":a=mail;break;case"SHOWER":case"SHOWERS":a=shower;break;case"SERVICE LIFT":case"ELEVATOR FOYER":a=serviceLift;break;case"WELLNESS RM":case"WELLNESS ROOM":case"FITNESS RM":a=wellness;break;case"ELEC":case"ELECTRICAL CLOSET":a=electrical;break;case"FIRE":case"FIRE COMMAND CENTER":a=fire;break;case"MOP":case"JC":case"JANITOR":case"MOP CLOSET":a=maintenance;break;case"CONV. BOOTH":a=meeting}if(t.startsWith("IT ")&&(a=itRoom),!a)switch(e){case"MEET":a=meeting}return a},getSize=function(e){for(var t=1/0,a=1/0,s=-1/0,c=-1/0,n=0;n<e.length;n++)t=Math.min(t,e[n].x),a=Math.min(a,e[n].y),s=Math.max(s,e[n].x),c=Math.max(c,e[n].y);return{width:s-t,height:c-a}},applyInstancing=function(s,c){var n=new Map,r=function(){for(var e=0;e<s.length;e++){var t=s[e];if(t.instancingId){var a=n.get(t.instancingId);(a=a||[]).push(t),n.set(t.instancingId,a),s.splice(e,1),r()}}};r(),n.forEach(function(e,t,a){toInstancedMesh(e,t,c)})},toInstancedMesh=function(e,t,a){if(0!==e.length){var s=e[0];if(a.createInstancedMesh({id:t,mesh:{points:s.points,extrude:s.extrude,opacity:s.style?s.style.opacity:1}}),e.forEach(function(e){a.addToInstancedMesh({id:e.id,instancingId:t,style:{color:e.style.color},position:e.position,rotation:e.rotation,interactable:e.interactable,visible:e.visible})}),a.drawInstancedMesh({id:t}),s.style.outline&&s.style.outline.color){var c=t+"_OUTLINE";a.createInstancedMesh({id:c,mesh:{style:{outline:{color:s.style.outline.color,only:!0}},points:s.points,extrude:s.extrude,zOrder:s.zOrder}}),e.forEach(function(e){a.addToInstancedMesh({id:e.id+"_outline",instancingId:c,style:{color:e.style.color},position:e.position,rotation:e.rotation,visible:e.visible})}),a.drawInstancedMesh({id:c})}}};exports.createRenderObjects=createRenderObjects,exports.getCenter=getCenter,exports.getSize=getSize,exports.stringArrayToPoints=stringArrayToPoints,exports.applyInstancing=applyInstancing; | ||
//# sourceMappingURL=floormap-utils.cjs.min.js.map |
@@ -52,2 +52,3 @@ var nook = 'https://cdn.spacemob.co/img/nook@2x.png'; | ||
var centroid = params.centroid; | ||
var instancingId = params.instancingId; | ||
@@ -57,2 +58,10 @@ var objects = []; | ||
var wallHeight = 6; | ||
var _programType; | ||
if (typeof programType === 'string') { | ||
_programType = programType.toUpperCase(); | ||
} | ||
var _subType; | ||
if (typeof subType === 'string') { | ||
_subType = subType.toUpperCase(); | ||
} | ||
var side = 'BACK'; | ||
@@ -64,9 +73,10 @@ var outlineOnly = false; | ||
var showRoomNumber = false; | ||
var extrude = getExtrude(programType, wallHeight); | ||
var zed = getZed(programType, wallHeight); | ||
var color = getColor(programType); | ||
var img = getImage(programType, subType); | ||
var extrude = getExtrude(_programType, wallHeight); | ||
var zed = getZed(_programType, wallHeight); | ||
var color = getColor(_programType); | ||
var img = getImage(_programType, _subType); | ||
var zOrder = 0; | ||
if (type === 'object') { | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'CHAIR': | ||
@@ -86,4 +96,5 @@ color = 'rgb(206,206,206)'; | ||
zed = -1.5; | ||
opacity = 0.7; | ||
opacity = 0.8; | ||
outlineColor = 'rgb(150,150,150)'; | ||
zOrder = 1; | ||
break | ||
@@ -103,3 +114,3 @@ default: | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'HALLWAY': | ||
@@ -118,7 +129,7 @@ case 'ELEV LOBBY': | ||
} | ||
switch (programType) { | ||
switch (_programType) { | ||
case 'MEET': | ||
// outlineColor = '#474747' | ||
showRoomNumber = true; | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'NOOK': | ||
@@ -151,4 +162,4 @@ case 'PHONE BOOTH': | ||
default: | ||
if (programType) { | ||
console.log('invalid programType:', programType); | ||
if (_programType) { | ||
console.log('invalid programType:', _programType); | ||
} | ||
@@ -168,41 +179,11 @@ break | ||
if (!_shapes || _shapes.length === 0) { | ||
if (instancingId) { | ||
if (centroid) { | ||
switch (subType) { | ||
case 'CHAIR': { | ||
_shapes = getChairGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'CHAIRS'; | ||
interactable = false; | ||
break | ||
} | ||
case 'TABLE': { | ||
_shapes = getTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
case 'HOTDESK_TABLE': { | ||
_shapes = getHotDeskTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'HOTDESK_TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
default: | ||
break | ||
} | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = instancingId; | ||
interactable = false; | ||
} else { | ||
@@ -237,3 +218,4 @@ console.warn('centroid is not available', JSON.stringify(params)); | ||
rotation: _rotation, | ||
visible: true | ||
visible: true, | ||
zOrder: zOrder | ||
}; | ||
@@ -311,37 +293,2 @@ if (_instancingId) { | ||
var getChairGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 1.0, y: 1.45 }, | ||
{ x: -1.0, y: 1.45 }, | ||
{ x: -1.0, y: -0.55 }, | ||
{ x: 1.0, y: -0.55 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getTableGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 2.0, y: 2.3 }, | ||
{ x: -2.0, y: 2.3 }, | ||
{ x: -2.0, y: 0.3 }, | ||
{ x: 2.0, y: 0.3 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getHotDeskTableGeometry = function () { | ||
return [ | ||
[ | ||
{ x: 1.97, y: 1.97 }, | ||
{ x: -1.97, y: 1.97 }, | ||
{ x: -1.97, y: -1.97 }, | ||
{ x: 1.97, y: -1.97 } | ||
] | ||
] | ||
}; | ||
var getExtrude = function (programType, wallHeight) { | ||
@@ -619,3 +566,4 @@ switch (programType) { | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
opacity: obj.style ? obj.style.opacity : 1.0 | ||
} | ||
@@ -650,3 +598,4 @@ }); | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
zOrder: obj.zOrder | ||
} | ||
@@ -653,0 +602,0 @@ }); |
@@ -58,2 +58,3 @@ (function (global, factory) { | ||
var centroid = params.centroid; | ||
var instancingId = params.instancingId; | ||
@@ -63,2 +64,10 @@ var objects = []; | ||
var wallHeight = 6; | ||
var _programType; | ||
if (typeof programType === 'string') { | ||
_programType = programType.toUpperCase(); | ||
} | ||
var _subType; | ||
if (typeof subType === 'string') { | ||
_subType = subType.toUpperCase(); | ||
} | ||
var side = 'BACK'; | ||
@@ -70,9 +79,10 @@ var outlineOnly = false; | ||
var showRoomNumber = false; | ||
var extrude = getExtrude(programType, wallHeight); | ||
var zed = getZed(programType, wallHeight); | ||
var color = getColor(programType); | ||
var img = getImage(programType, subType); | ||
var extrude = getExtrude(_programType, wallHeight); | ||
var zed = getZed(_programType, wallHeight); | ||
var color = getColor(_programType); | ||
var img = getImage(_programType, _subType); | ||
var zOrder = 0; | ||
if (type === 'object') { | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'CHAIR': | ||
@@ -92,4 +102,5 @@ color = 'rgb(206,206,206)'; | ||
zed = -1.5; | ||
opacity = 0.7; | ||
opacity = 0.8; | ||
outlineColor = 'rgb(150,150,150)'; | ||
zOrder = 1; | ||
break | ||
@@ -109,3 +120,3 @@ default: | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'HALLWAY': | ||
@@ -124,7 +135,7 @@ case 'ELEV LOBBY': | ||
} | ||
switch (programType) { | ||
switch (_programType) { | ||
case 'MEET': | ||
// outlineColor = '#474747' | ||
showRoomNumber = true; | ||
switch (subType) { | ||
switch (_subType) { | ||
case 'NOOK': | ||
@@ -157,4 +168,4 @@ case 'PHONE BOOTH': | ||
default: | ||
if (programType) { | ||
console.log('invalid programType:', programType); | ||
if (_programType) { | ||
console.log('invalid programType:', _programType); | ||
} | ||
@@ -174,41 +185,11 @@ break | ||
if (!_shapes || _shapes.length === 0) { | ||
if (instancingId) { | ||
if (centroid) { | ||
switch (subType) { | ||
case 'CHAIR': { | ||
_shapes = getChairGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'CHAIRS'; | ||
interactable = false; | ||
break | ||
} | ||
case 'TABLE': { | ||
_shapes = getTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
case 'HOTDESK_TABLE': { | ||
_shapes = getHotDeskTableGeometry(); | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = 'HOTDESK_TABLES'; | ||
interactable = false; | ||
break | ||
} | ||
default: | ||
break | ||
} | ||
_pos = centroid; | ||
_pos.z = zed; | ||
_rotation = { | ||
z: locationAngle | ||
}; | ||
_instancingId = instancingId; | ||
interactable = false; | ||
} else { | ||
@@ -243,3 +224,4 @@ console.warn('centroid is not available', JSON.stringify(params)); | ||
rotation: _rotation, | ||
visible: true | ||
visible: true, | ||
zOrder: zOrder | ||
}; | ||
@@ -317,37 +299,2 @@ if (_instancingId) { | ||
var getChairGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 1.0, y: 1.45 }, | ||
{ x: -1.0, y: 1.45 }, | ||
{ x: -1.0, y: -0.55 }, | ||
{ x: 1.0, y: -0.55 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getTableGeometry = function () { | ||
var shapes = [ | ||
[ | ||
{ x: 2.0, y: 2.3 }, | ||
{ x: -2.0, y: 2.3 }, | ||
{ x: -2.0, y: 0.3 }, | ||
{ x: 2.0, y: 0.3 } | ||
] | ||
]; | ||
return shapes | ||
}; | ||
var getHotDeskTableGeometry = function () { | ||
return [ | ||
[ | ||
{ x: 1.97, y: 1.97 }, | ||
{ x: -1.97, y: 1.97 }, | ||
{ x: -1.97, y: -1.97 }, | ||
{ x: 1.97, y: -1.97 } | ||
] | ||
] | ||
}; | ||
var getExtrude = function (programType, wallHeight) { | ||
@@ -625,3 +572,4 @@ switch (programType) { | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
opacity: obj.style ? obj.style.opacity : 1.0 | ||
} | ||
@@ -656,3 +604,4 @@ }); | ||
points: obj.points, | ||
extrude: obj.extrude | ||
extrude: obj.extrude, | ||
zOrder: obj.zOrder | ||
} | ||
@@ -659,0 +608,0 @@ }); |
@@ -1,2 +0,2 @@ | ||
!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a(e.FloormapUtils={})}(this,function(e){function k(e){for(var a=1/0,c=1/0,t=-1/0,s=-1/0,n=0;n<e.length;n++)a=Math.min(a,e[n].x),c=Math.min(c,e[n].y),t=Math.max(t,e[n].x),s=Math.max(s,e[n].y);return{x:(t+a)/2,y:(s+c)/2}}var t="https://cdn.spacemob.co/img/meeting_room@2x.png",s="https://cdn.spacemob.co/img/IT_room@2x.png",n="https://cdn.spacemob.co/img/pantry@2x.png",W=function(){return[[{x:1,y:1.45},{x:-1,y:1.45},{x:-1,y:-.55},{x:1,y:-.55}]]},H=function(){return[[{x:2,y:2.3},{x:-2,y:2.3},{x:-2,y:.3},{x:2,y:.3}]]},w=function(){return[[{x:1.97,y:1.97},{x:-1.97,y:1.97},{x:-1.97,y:-1.97},{x:1.97,y:-1.97}]]},B=function(e,a){switch(e){case"CIRCULATE":case"WE":return.1;default:return a}},P=function(e,a){switch(e){case"WORK":return 0;case"MEET":return-.01;case"WASH":return-.02;case"OPERATE":return-.03;case"WE":return-(a/2+.01);case"CIRCULATE":return-(a/2+.02);default:return 0}},_=function(e){switch(e){case"WORK":return"rgb(171,221,231)";case"CIRCULATE":return"rgb(255,247,223)";case"MEET":return"rgb(183,240,217)";case"WE":return"rgb(255,210,106)";case"OPERATE":return"rgb(226,226,226)";case"WASH":return"rgb(195,195,195)";default:return"rgb(253,235,236)"}},K=function(e,a){var c=null;switch(a.toUpperCase()){case"PHONE BOOTH":c="https://cdn.spacemob.co/img/phone_booth@2x.png";break;case"WT":case"NOOK":case"BOOTH":case"BOOTHS":c="https://cdn.spacemob.co/img/nook@2x.png";break;case"LOUNGE":case"HONESTY MKT":case"HONESTY MARKET":case"PANTRY":case"BAR":case"BEER ISLAND":case"COMMUNITY BAR":c=n;break;case"GAME RM":case"GAME ROOM":case"DART BOARD":c="https://cdn.spacemob.co/img/gameroom@2x.png";break;case"WOMEN WC":case"WOMENS WC":case"W RESTROOM":case"RESTROOM":case"UNISEX RESTROOM":case"UNISEX":case"ADA RESTROOM":case"ADA WC":c="https://cdn.spacemob.co/img/wc_f@2x.png";break;case"MEN WC":case"MENS WC":case"MALE WC":case"M RESTROOM":c="https://cdn.spacemob.co/img/wc_m@2x.png";break;case"IT":c=s;break;case"PRINTER":case"PRINT":case"PRINTER NOOK":case"PRINTING ALCOVE":c="https://cdn.spacemob.co/img/printer@2x.png";break;case"MECH":case"MECHANICAL CLOSET":c="https://cdn.spacemob.co/img/mechanical@2x.png";break;case"STOR":case"STORE":case"STORAGE":case"BIKE STORAGE":case"F&B STORAGE":case"CLEANING STORAGE":case"COAT CLOSET":c="https://cdn.spacemob.co/img/storage@2x.png";break;case"TRASH":case"TRASH ROOM":c="https://cdn.spacemob.co/img/trash@2x.png";break;case"MOTHER RM":case"MOTHERS ROOM":c="https://cdn.spacemob.co/img/motherroom@2x.png";break;case"F&B":c=n;break;case"MAIL":case"MAIL & PACKAGE ROOM":c="https://cdn.spacemob.co/img/mail_room@2x.png";break;case"SHOWER":case"SHOWERS":c="https://cdn.spacemob.co/img/shower@2x.png";break;case"SERVICE LIFT":case"ELEVATOR FOYER":c="https://cdn.spacemob.co/img/servicelift@2x.png";break;case"WELLNESS RM":case"WELLNESS ROOM":case"FITNESS RM":c="https://cdn.spacemob.co/img/wellnessroom@2x.png";break;case"ELEC":case"ELECTRICAL CLOSET":c="https://cdn.spacemob.co/img/electrical@2x.png";break;case"FIRE":case"FIRE COMMAND CENTER":c="https://cdn.spacemob.co/img/fire_extinguisher@2x.png";break;case"MOP":case"JC":case"JANITOR":case"MOP CLOSET":c="https://cdn.spacemob.co/img/maintenance@2x.png";break;case"CONV. BOOTH":c=t}if(a.startsWith("IT ")&&(c=s),!c)switch(e){case"MEET":c=t}return c},F=function(e){for(var a=1/0,c=1/0,t=-1/0,s=-1/0,n=0;n<e.length;n++)a=Math.min(a,e[n].x),c=Math.min(c,e[n].y),t=Math.max(t,e[n].x),s=Math.max(s,e[n].y);return{width:t-a,height:s-c}},o=function(e,a,c){if(0!==e.length){var t=e[0];if(c.createInstancedMesh({id:a,mesh:{points:t.points,extrude:t.extrude}}),e.forEach(function(e){c.addToInstancedMesh({id:e.id,instancingId:a,style:{color:e.style.color},position:e.position,rotation:e.rotation,interactable:e.interactable,visible:e.visible})}),c.drawInstancedMesh({id:a}),t.style.outline&&t.style.outline.color){var s=a+"_OUTLINE";c.createInstancedMesh({id:s,mesh:{style:{outline:{color:t.style.outline.color,only:!0}},points:t.points,extrude:t.extrude}}),e.forEach(function(e){c.addToInstancedMesh({id:e.id+"_outline",instancingId:s,style:{color:e.style.color},position:e.position,rotation:e.rotation,visible:e.visible})}),c.drawInstancedMesh({id:s})}}};e.createRenderObjects=function(e){var s=e.id,a=e.shapes,c=e.type,t=e.subType,n=e.programType,r=e.roomNumber,o=e.hasWindow,i=e.locationAngle,p=e.centroid,E=[],l="BACK",h="#474747",g=1,O=!0,d=!1,T=B(n,6),b=P(n,6),u=_(n),m=K(n,t);if("object"===c)switch(t){case"CHAIR":u="rgb(206,206,206)",l="FRONT",b=-(6-(T=1))/2,h="rgb(150,150,150)";break;case"TABLE":case"HOTDESK_TABLE":u="rgb(246,241,241)",l="FRONT",T=.5,b=-1.5,g=.7,h="rgb(150,150,150)"}else"space"===c||"room"===c||console.warn("invalid type:",c);var R={only:!1,color:h};switch(t){case"HALLWAY":case"ELEV LOBBY":R=null}switch(n){case"MEET":switch(d=!0,t){case"NOOK":case"PHONE BOOTH":case"wt":d=!1}break;case"WORK":d=!0,o&&(u="rgb(228,243,247)");break;case"WASH":case"SERVE":break;case"OPERATE":case"WE":break;case"CIRCULATE":R=null;break;default:n&&console.log("invalid programType:",n)}R&&(R.color=h);var f=a,A={z:b},M=null,x=null;if(!f||0===f.length)if(p)switch(t){case"CHAIR":f=W(),(A=p).z=b,M={z:i},O=!(x="CHAIRS");break;case"TABLE":f=H(),(A=p).z=b,M={z:i},O=!(x="TABLES");break;case"HOTDESK_TABLE":f=w(),(A=p).z=b,M={z:i},O=!(x="HOTDESK_TABLES")}else console.warn("centroid is not available",JSON.stringify(e));if(f&&0!==f.length){if(f.forEach(function(e,a){var c=s;0!==a&&(c=s+"/"+a);var t={id:c,type:"MESH",style:{color:u,side:l,outline:R,opacity:g},points:e,interactable:O,extrude:T,position:A,rotation:M,visible:!0};x&&(t.instancingId=x),E.push(t)}),d&&r){var y=k(f[0]),S={x:.5,y:.5};m&&(S.y=1.25);var I=F(f[0]).width/2*.8;3<I&&(I=2.9),E.push({id:s+"_TEXT",type:"TEXT",text:r,position:y,scalar:I,center:S,style:{color:"black",fontWeight:"bold"},interactable:!1})}if(m){var C=k(f[0]),N={x:.5,y:.5};p&&((C=p).z=0),d&&r&&(N.y=.25);var L=3,v=F(f[0]);L>v.width?L=v.width-.1:L>v.height&&(L=v.height-.1),E.push({id:s+"_SPRITE",type:"SPRITE",position:C,scalar:1,center:N,style:{img:m,maxWidth:L},interactable:!1})}return E}console.warn("Invalid shapes",JSON.stringify(e))},e.getCenter=k,e.getSize=F,e.stringArrayToPoints=function(e){if(e&&e.constructor===Array){var a=[];return e.forEach(function(e){e&&e.constructor===Array&&3===e.length&&a.push({x:parseFloat(e[0]),y:parseFloat(e[1]),z:parseFloat(e[2])})}),a}},e.applyInstancing=function(t,s){var n=new Map,r=function(){for(var e=0;e<t.length;e++){var a=t[e];if(a.instancingId){var c=n.get(a.instancingId);c||(c=[]),c.push(a),n.set(a.instancingId,c),t.splice(e,1),r()}}};r(),n.forEach(function(e,a,c){o(e,a,s)})},Object.defineProperty(e,"__esModule",{value:!0})}); | ||
!function(e,a){"object"==typeof exports&&"undefined"!=typeof module?a(exports):"function"==typeof define&&define.amd?define(["exports"],a):a(e.FloormapUtils={})}(this,function(e){function B(e){for(var a=1/0,t=1/0,c=-1/0,s=-1/0,n=0;n<e.length;n++)a=Math.min(a,e[n].x),t=Math.min(t,e[n].y),c=Math.max(c,e[n].x),s=Math.max(s,e[n].y);return{x:(c+a)/2,y:(s+t)/2}}var c="https://cdn.spacemob.co/img/meeting_room@2x.png",s="https://cdn.spacemob.co/img/IT_room@2x.png",n="https://cdn.spacemob.co/img/pantry@2x.png",P=function(e,a){switch(e){case"CIRCULATE":case"WE":return.1;default:return a}},_=function(e,a){switch(e){case"WORK":return 0;case"MEET":return-.01;case"WASH":return-.02;case"OPERATE":return-.03;case"WE":return-(a/2+.01);case"CIRCULATE":return-(a/2+.02);default:return 0}},F=function(e){switch(e){case"WORK":return"rgb(171,221,231)";case"CIRCULATE":return"rgb(255,247,223)";case"MEET":return"rgb(183,240,217)";case"WE":return"rgb(255,210,106)";case"OPERATE":return"rgb(226,226,226)";case"WASH":return"rgb(195,195,195)";default:return"rgb(253,235,236)"}},U=function(e,a){var t=null;switch(a.toUpperCase()){case"PHONE BOOTH":t="https://cdn.spacemob.co/img/phone_booth@2x.png";break;case"WT":case"NOOK":case"BOOTH":case"BOOTHS":t="https://cdn.spacemob.co/img/nook@2x.png";break;case"LOUNGE":case"HONESTY MKT":case"HONESTY MARKET":case"PANTRY":case"BAR":case"BEER ISLAND":case"COMMUNITY BAR":t=n;break;case"GAME RM":case"GAME ROOM":case"DART BOARD":t="https://cdn.spacemob.co/img/gameroom@2x.png";break;case"WOMEN WC":case"WOMENS WC":case"W RESTROOM":case"RESTROOM":case"UNISEX RESTROOM":case"UNISEX":case"ADA RESTROOM":case"ADA WC":t="https://cdn.spacemob.co/img/wc_f@2x.png";break;case"MEN WC":case"MENS WC":case"MALE WC":case"M RESTROOM":t="https://cdn.spacemob.co/img/wc_m@2x.png";break;case"IT":t=s;break;case"PRINTER":case"PRINT":case"PRINTER NOOK":case"PRINTING ALCOVE":t="https://cdn.spacemob.co/img/printer@2x.png";break;case"MECH":case"MECHANICAL CLOSET":t="https://cdn.spacemob.co/img/mechanical@2x.png";break;case"STOR":case"STORE":case"STORAGE":case"BIKE STORAGE":case"F&B STORAGE":case"CLEANING STORAGE":case"COAT CLOSET":t="https://cdn.spacemob.co/img/storage@2x.png";break;case"TRASH":case"TRASH ROOM":t="https://cdn.spacemob.co/img/trash@2x.png";break;case"MOTHER RM":case"MOTHERS ROOM":t="https://cdn.spacemob.co/img/motherroom@2x.png";break;case"F&B":t=n;break;case"MAIL":case"MAIL & PACKAGE ROOM":t="https://cdn.spacemob.co/img/mail_room@2x.png";break;case"SHOWER":case"SHOWERS":t="https://cdn.spacemob.co/img/shower@2x.png";break;case"SERVICE LIFT":case"ELEVATOR FOYER":t="https://cdn.spacemob.co/img/servicelift@2x.png";break;case"WELLNESS RM":case"WELLNESS ROOM":case"FITNESS RM":t="https://cdn.spacemob.co/img/wellnessroom@2x.png";break;case"ELEC":case"ELECTRICAL CLOSET":t="https://cdn.spacemob.co/img/electrical@2x.png";break;case"FIRE":case"FIRE COMMAND CENTER":t="https://cdn.spacemob.co/img/fire_extinguisher@2x.png";break;case"MOP":case"JC":case"JANITOR":case"MOP CLOSET":t="https://cdn.spacemob.co/img/maintenance@2x.png";break;case"CONV. BOOTH":t=c}if(a.startsWith("IT ")&&(t=s),!t)switch(e){case"MEET":t=c}return t},K=function(e){for(var a=1/0,t=1/0,c=-1/0,s=-1/0,n=0;n<e.length;n++)a=Math.min(a,e[n].x),t=Math.min(t,e[n].y),c=Math.max(c,e[n].x),s=Math.max(s,e[n].y);return{width:c-a,height:s-t}},o=function(e,a,t){if(0!==e.length){var c=e[0];if(t.createInstancedMesh({id:a,mesh:{points:c.points,extrude:c.extrude,opacity:c.style?c.style.opacity:1}}),e.forEach(function(e){t.addToInstancedMesh({id:e.id,instancingId:a,style:{color:e.style.color},position:e.position,rotation:e.rotation,interactable:e.interactable,visible:e.visible})}),t.drawInstancedMesh({id:a}),c.style.outline&&c.style.outline.color){var s=a+"_OUTLINE";t.createInstancedMesh({id:s,mesh:{style:{outline:{color:c.style.outline.color,only:!0}},points:c.points,extrude:c.extrude,zOrder:c.zOrder}}),e.forEach(function(e){t.addToInstancedMesh({id:e.id+"_outline",instancingId:s,style:{color:e.style.color},position:e.position,rotation:e.rotation,visible:e.visible})}),t.drawInstancedMesh({id:s})}}};e.createRenderObjects=function(e){var a,t,s=e.id,c=e.shapes,n=e.type,r=e.subType,o=e.programType,i=e.roomNumber,p=e.hasWindow,E=e.locationAngle,l=e.centroid,g=e.instancingId,d=[];"string"==typeof o&&(a=o.toUpperCase()),"string"==typeof r&&(t=r.toUpperCase());var O="BACK",h="#474747",b=1,T=!0,u=!1,m=P(a,6),R=_(a,6),M=F(a),f=U(a,t),A=0;if("object"===n)switch(t){case"CHAIR":M="rgb(206,206,206)",O="FRONT",R=-(6-(m=1))/2,h="rgb(150,150,150)";break;case"TABLE":case"HOTDESK_TABLE":M="rgb(246,241,241)",O="FRONT",m=.5,R=-1.5,b=.8,h="rgb(150,150,150)",A=1}else"space"===n||"room"===n||console.warn("invalid type:",n);var y={only:!1,color:h};switch(t){case"HALLWAY":case"ELEV LOBBY":y=null}switch(a){case"MEET":switch(u=!0,t){case"NOOK":case"PHONE BOOTH":case"wt":u=!1}break;case"WORK":u=!0,p&&(M="rgb(228,243,247)");break;case"WASH":case"SERVE":break;case"OPERATE":case"WE":break;case"CIRCULATE":y=null;break;default:a&&console.log("invalid programType:",a)}y&&(y.color=h);var I=c,S={z:R},x=null,C=null;if(g&&(l?((S=l).z=R,C=g,T=!(x={z:E})):console.warn("centroid is not available",JSON.stringify(e))),I&&0!==I.length){if(I.forEach(function(e,a){var t=s;0!==a&&(t=s+"/"+a);var c={id:t,type:"MESH",style:{color:M,side:O,outline:y,opacity:b},points:e,interactable:T,extrude:m,position:S,rotation:x,visible:!0,zOrder:A};C&&(c.instancingId=C),d.push(c)}),u&&i){var N=B(I[0]),v={x:.5,y:.5};f&&(v.y=1.25);var L=K(I[0]).width/2*.8;3<L&&(L=2.9),d.push({id:s+"_TEXT",type:"TEXT",text:i,position:N,scalar:L,center:v,style:{color:"black",fontWeight:"bold"},interactable:!1})}if(f){var W=B(I[0]),k={x:.5,y:.5};l&&((W=l).z=0),u&&i&&(k.y=.25);var w=3,H=K(I[0]);w>H.width?w=H.width-.1:w>H.height&&(w=H.height-.1),d.push({id:s+"_SPRITE",type:"SPRITE",position:W,scalar:1,center:k,style:{img:f,maxWidth:w},interactable:!1})}return d}console.warn("Invalid shapes",JSON.stringify(e))},e.getCenter=B,e.getSize=K,e.stringArrayToPoints=function(e){if(e&&e.constructor===Array){var a=[];return e.forEach(function(e){e&&e.constructor===Array&&3===e.length&&a.push({x:parseFloat(e[0]),y:parseFloat(e[1]),z:parseFloat(e[2])})}),a}},e.applyInstancing=function(c,s){var n=new Map,r=function(){for(var e=0;e<c.length;e++){var a=c[e];if(a.instancingId){var t=n.get(a.instancingId);(t=t||[]).push(a),n.set(a.instancingId,t),c.splice(e,1),r()}}};r(),n.forEach(function(e,a,t){o(e,a,s)})},Object.defineProperty(e,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=floormap-utils.umd.min.js.map |
{ | ||
"name": "@wework/floormap-utils", | ||
"version": "0.10.0", | ||
"version": "1.0.0-rc.1", | ||
"jsnext:main": "dist/floormap-utils.es.js", | ||
@@ -5,0 +5,0 @@ "module": "dist/floormap-utils.es.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
104344
1815