@itwin/core-frontend 5.5.0-dev.8 → 5.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -1
- package/lib/cjs/AccuSnap.js +2 -2
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js +10 -2
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +3 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/request/Request.d.ts.map +1 -1
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/esm/AccuSnap.js +2 -2
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js +10 -2
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/request/Request.d.ts.map +1 -1
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlGraphicsCreator.js","sourceRoot":"","sources":["../../../../src/internal/tile/ImdlGraphicsCreator.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;AA6YH,gDAuBC;AAsDD,oFA+CC;AAED,oEAGC;AA5gBD,sDAA8D;AAC9D,wDAAwF;AACxF,oDAE4B;AAC5B,kFAA+E;AAC/E,8EAAmF;AAGnF,2EAA+H;AAC/H,8EAA2E;AAE3E,8DAA2D;AAE3D,uFAAoF;AAGpF,8GAA0H;AAE1H,2DAAqF;AAErF,mFAA+H;AAc/H,KAAK,UAAU,gBAAgB,CAAC,IAAY,EAAE,QAA0B,EAAE,OAA0B;IAClG,4GAA4G;IAC5G,mCAAmC;IACnC,gDAAgD;IAChD,oEAAoE;IACpE,0GAA0G;IAC1G,6GAA6G;IAC7G,oBAAoB;IAEpB,IAAI,CAAC;QACH,IAAI,WAAW,GAAG,2BAAa,CAAC,IAAI,CAAC,MAAM,CAAC;QAC5C,MAAM,OAAO,GAAG,wBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,aAAa,GAAG,CAAC,OAAO,IAAI,wBAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAC3E,IAAI,OAAO;YACT,WAAW,GAAG,2BAAa,CAAC,IAAI,CAAC,KAAK,CAAC;aACpC,IAAI,aAAa;YACpB,WAAW,GAAG,2BAAa,CAAC,IAAI,CAAC,WAAW,CAAC;QAE/C,qHAAqH;QACrH,4BAA4B;QAC5B,MAAM,SAAS,GAAG,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC;QAC7C,MAAM,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;QAEhF,MAAM,YAAY,GAAG,wBAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC7D,MAAM,cAAc,GAAG,CAAC,KAAK,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE/G,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC,CAAC,wFAAwF;YAC1H,MAAM,UAAU,GAAG,wBAAS,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9D,MAAM,UAAU,GAAG,wBAAS,CAAC,KAAK,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;YAC9D,IAAI,CAAC,KAAK,UAAU;gBAClB,OAAO,SAAS,CAAC;YAEnB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAAC,CAAC;YAC3F,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,yBAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,MAAM,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;QACrI,CAAC;QAED,4FAA4F;QAC5F,MAAM,MAAM,GAAG,IAAI,iCAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAClF,OAAO,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChG,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,OAA0B;IACzD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAC;IAChD,MAAM,aAAa,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;IAC1D,IAAI,CAAC,aAAa;QAChB,OAAO,MAAM,CAAC;IAEhB,MAAM,QAAQ,GAAG,IAAI,KAAK,EAAiB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QACjE,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QACjE,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1B,SAAS;QACX,CAAC;aAAM,IAAI,YAAY,EAAE,CAAC;YACxB,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtE,IAAI,EAAE;oBACJ,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACzB,CAAC,CAAC,CAAC,CAAC;QACN,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QACrB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE9B,OAAO,MAAM,CAAC;AAChB,CAAC;AAYD,SAAS,6BAA6B,CAAC,SAAgH;IACrJ,IAAI,SAAS,KAAK,SAAS;QACzB,OAAO,SAAS,CAAC;IAEnB,MAAM,eAAe,GAAyC;QAC5D,WAAW,EAAE,wBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC;QAC3D,MAAM,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,wBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE;QACpJ,YAAY,EAAE,wBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,GAAG,CAAC;QAC7D,YAAY,EAAE,wBAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;KACnF,CAAC;IACF,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAoC,EAAE,OAAwB;IAC5F,IAAI,CAAC,IAAI;QACP,OAAO,SAAS,CAAC;IAEnB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC;IAEnB,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC;IAC/B,MAAM,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC;IAEhC,MAAM,UAAU,GAA8B;QAC5C,aAAa,EAAE,IAAI,4BAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtG,aAAa,EAAE,wBAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC;QACzD,OAAO,EAAE,wBAAS,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC;QACzC,YAAY,EAAE,wBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC;QACvD,cAAc,EAAE,wBAAS,CAAC,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC;QAC3D,gBAAgB,EAAE,6BAA6B,CAAC,UAAU,CAAC,iBAAiB,CAAC;KAC9E,CAAC;IAEF,MAAM,cAAc,GAAG,IAAI,4BAAc,CAAC,OAAO,EAAE,IAAI,4BAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAE1F,MAAM,aAAa,GAAG,IAAI,CAAC,eAAe,CAAC;IAC3C,IAAI,aAAa,EAAE,CAAC;QAClB,IAAI,SAAS,CAAC;QACd,MAAM,aAAa,GAAG,wBAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC;YAClG,cAAc,CAAC,eAAe,GAAG;gBAC/B,SAAS;gBACT,OAAO,EAAE,wBAAS,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;gBAChD,KAAK,EAAE,wBAAS,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC;gBACjD,cAAc,EAAE,wBAAS,CAAC,MAAM,CAAC,aAAa,CAAC,cAAc,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,WAAW,CAAC,GAAwC,EAAE,OAAwB;IACrF,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,IAAA,oCAAgB,EAAC,GAAG,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAClE,IAAI,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe;QACrD,OAAO,QAAQ,CAAC;IAElB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IACxD,IAAI,CAAC,IAAI;QACP,OAAO,SAAS,CAAC;IAEnB,SAAS,gBAAgB,CAAC,GAA6B;QACrD,OAAO,GAAG,CAAC,CAAC,CAAC,sBAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrG,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,kCAAoB,CAAC,GAAG,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAC5B,MAAM,CAAC,OAAO,GAAG,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpD,MAAM,CAAC,aAAa,GAAG,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5D,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;QAC7B,MAAM,CAAC,QAAQ,GAAG,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEtD,MAAM,CAAC,YAAY,GAAG,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IAC1D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS;QAC5B,MAAM,CAAC,OAAO,GAAG,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEpD,IAAI,IAAI,CAAC,gBAAgB,KAAK,SAAS;QACrC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;IAElD,IAAI,SAAS,KAAK,IAAI,CAAC,YAAY;QACjC,MAAM,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC;IAEzC,MAAM,CAAC,OAAO,GAAG,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,GAAG,wBAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,CAAC,OAAO,GAAG,wBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAElD,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc;QACnC,MAAM,CAAC,cAAc,GAAG,sBAAsB,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvF,OAAO,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAC;QACzC,OAAO,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,EAAC;QAC7D,QAAQ,EAAE,EAAC,KAAK,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,gBAAgB,EAAC;QACnG,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,cAAc,EAAE,MAAM,CAAC,cAAc;KACrC,CAAC,CAAC;IAAA,CAAC;AACP,CAAC;AAED,SAAS,YAAY,CAAC,SAAyB;IAC7C,MAAM,GAAG,GAAG,SAAS,CAAC,QAAQ,CAAC;IAC/B,QAAQ,GAAG,EAAE,IAAI,EAAE,CAAC;QAClB,KAAK,WAAW;YACd,OAAO,EAAE,SAAS,EAAE,+CAAsB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9D,KAAK,uBAAuB;YAC1B,OAAO;gBACL,QAAQ,EAAE,uBAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;aACvC,CAAC;QACJ;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,SAAyB,EAAE,OAAwB,EAAE,QAA6B;IACjH,QAAQ,SAAS,CAAC,IAAI,EAAE,CAAC;QACvB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC,MAAM,CAAC,yBAAyB,CAAC;gBAC9C,GAAG,SAAS,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAA,iCAAa,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClD,OAAO,EAAE,IAAI,6BAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;aACrD,EAAE,QAAQ,CAAC,CAAC;QACf,KAAK,UAAU;YACb,OAAO,OAAO,CAAC,MAAM,CAAC,sBAAsB,CAAC;gBAC3C,GAAG,SAAS,CAAC,MAAM;gBACnB,QAAQ,EAAE,IAAA,iCAAa,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClD,QAAQ,EAAE;oBACR,GAAG,SAAS,CAAC,MAAM,CAAC,QAAQ;oBAC5B,OAAO,EAAE,IAAI,6BAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAC7D,WAAW,EAAE,IAAI,6BAAa,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC;iBACtE;aACF,EAAE,QAAQ,CAAC,CAAC;QACf,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;YACtC,IAAI,QAAQ,CAAC;YACb,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;oBACxB,QAAQ,GAAG,IAAA,qCAAqB,EAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;;oBAE/E,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC7B,CAAC;YAED,IAAI,cAAc,CAAC;YACnB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,IAAI,OAAO,CAAC;gBACZ,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACpD,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,MAAM,QAAQ,GAAG,sBAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;oBACrE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;gBACxE,CAAC;gBAED,IAAI,OAAO;oBACT,cAAc,GAAG,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,CAAC,cAAc,CAAC,eAAe,EAAE,CAAC;YACvF,CAAC;YAED,OAAO,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;gBACvC,GAAG,SAAS,CAAC,MAAM;gBACnB,KAAK,EAAE,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,sCAAkB,EAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;gBACtF,QAAQ,EAAE,IAAA,iCAAa,EAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC;gBAClD,WAAW,EAAE,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,iCAAe,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC9G,OAAO,EAAE;oBACP,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO;oBAC3B,QAAQ;oBACR,cAAc;oBACd,OAAO,EAAE,IAAI,6BAAa,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC;iBAC7D;gBACD,QAAQ,EAAE,OAAO,CAAC,QAAQ;aAC3B,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAyB,EAAE,OAAwB;IACjF,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC5E,OAAO,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7F,CAAC;AAED,SAAS,uBAAuB,CAAC,UAA4B,EAAE,OAAwB;IACrF,MAAM,UAAU,GAAG,EAAE,CAAC;IACtB,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;QACxE,IAAI,QAAQ;YACV,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,oBAAoB,CAAC,MAA8B,EAAE,OAAwB;IACpF,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QACxC,OAAO,SAAS,CAAC;IAEnB,MAAM,IAAI,GAAG,0BAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,IAAI,CAAC,UAAU;QACb,OAAO,SAAS,CAAC;IAEnB,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,uBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxH,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,YAAY,EAAE,yBAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC;QACrD,MAAM,EAAE,uBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC;QACvC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,uBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC;QACzC,cAAc,EAAE,yBAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC;QACzD,KAAK,EAAE,uBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC;QACrC,iBAAiB,EAAE,uBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAiB,CAAC;QAC7D,qBAAqB;KACtB,CAAC,CAAC;IAEH,IAAI,CAAC,OAAO;QACV,OAAO,SAAS,CAAC;IAEnB,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;IACvC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACtE,IAAI,OAAO;YACT,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACxB,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,yBAAS,CAAC,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAC7H,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe,EAAE,OAAwB;IACnE,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO;QAC5B,OAAO,4BAA4B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAErD,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,4BAA4B,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QACvB,OAAO,QAAQ,CAAC;IAElB,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;IAClC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;IACjC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,4BAA4B,CAAC,IAAyB,EAAE,OAAwB;IACvF,IAAI,QAAQ,GAAG,EAAE,CAAC;IAClB,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5I,IAAI,OAAO;YACT,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,MAAM;QAClB,OAAO,QAAQ,CAAC;IAElB,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACtG,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,CAAC;SAAM,IAAI,SAAS,KAAK,IAAI,CAAC,eAAe,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,IAAI,6BAAa,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QACjC,QAAQ,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,yBAAS,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,OAA0B;IACjE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,EAAE;QAC5C,OAAO,SAAS,CAAC;IAEnB,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IACrD,MAAM,eAAe,GAAG,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAC3D,eAAe,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ;QACxD,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;IAE3E,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,QAAQ,GAAoB,EAAE,CAAC;IACrC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,QAAQ,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxB,KAAK,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC;QACzB,KAAK,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC3B,OAAO,CAAC,CAAC,OAAO,MAAM,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IACrD,CAAC;AACH,CAAC;AAED,SAAS,uBAAuB,CAAC,KAA6B,EAAE,OAAkC;IAChG,IAAI,KAAK,CAAC,YAAY,KAAK,OAAO,EAAE,CAAC;QACnC,oBAAoB;QACpB,OAAO;IACT,CAAC;SAAM,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC,CAAC;IACxG,CAAC;IAED,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC;IAE7B,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;IACT,CAAC;IAED,IAAI,mBAAI,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,mBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnF,KAAK,CAAC,OAAO,GAAG,mBAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC;IACrC,MAAM,OAAO,GAAG,CAAC,MAAc,EAAE,EAAE;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QAC5B,IAAI,EAAE,IAAI,UAAU,EAAE,CAAC;YACrB,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,CAAC;YACtB,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;YAExB,2GAA2G;YAC3G,MAAM,aAAa,GAAG,EAAE,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;YAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;YAC7D,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,GAAG,UAAU,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,UAAU,GAAG,GAAG,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC;IACzD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;IAC7I,KAAK,IAAI,CAAC,GAAG,aAAa,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,OAAO,CAAC,CAAC,CAAC,CAAC;IACb,CAAC;IAED,IAAI,SAAS,KAAK,KAAK,CAAC,YAAY,CAAC,gBAAgB,EAAE,CAAC;QACtD,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC9C,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACjB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,oCAAoC,CAAC,KAAyB,EAAE,OAAkC,EAAE,MAAoB;IACtI,IAAI,CAAC,IAAA,oDAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,eAAe,GAAoB;QACvC,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,mBAAS,CAAC;QAC5B,QAAQ,EAAE,IAAI,GAAG,EAAE;KACpB,CAAC;IAEF,MAAM,QAAQ,GAAqB,EAAE,CAAC;IACtC,KAAK,MAAM,SAAS,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,MAAM,IAAI,GAAG,YAAY,CAAC,SAAS,CAAC,CAAC;QAErC,2FAA2F;QAC3F,IAAA,qBAAM,EAAC,SAAS,KAAK,IAAI,EAAE,SAAS,CAAC,CAAC;QAEtC,MAAM,IAAI,GAAG,uBAAuB,CAAC,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChF,IAAI,IAAI,EAAE,CAAC;YACT,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,IAAI,KAAuC,CAAC;IAC5C,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,IAAA,uCAAmB,EAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACxF,KAAK,GAAG;YACN,OAAO,EAAE,EAAE,GAAG,KAAK,CAAC,KAAK,EAAE;YAC3B,KAAK,EAAE,uBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;YAC1C,YAAY;SACb,CAAC;IACJ,CAAC;IAED,IAAI,MAAyC,CAAC;IAC9C,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,MAAM,GAAG,EAAE,SAAS,EAAE,yBAAS,CAAC,iBAAiB,CAAC,uBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;IAC3F,CAAC;IAED,OAAO,IAAA,2CAAqB,EAAC;QAC3B,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC;QACrB,KAAK;QACL,MAAM;QACN,SAAS,EAAE,IAAI;KAChB,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,4BAA4B,CAAC,KAAyB,EAAE,OAAkC,EAAE,MAAoB;IAC9H,MAAM,QAAQ,GAAG,oCAAoC,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9E,OAAO,MAAM,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;AACxD,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, Id64, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point2d, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Gradient, ImageSource, RenderMaterial, RenderMaterialParams, RenderTexture, RenderTextureParams, TextureMapping,\r\n} from \"@itwin/core-common\";\r\nimport { AuxChannelTable } from \"../../common/internal/render/AuxChannelTable\";\r\nimport { createSurfaceMaterial } from \"../../common/internal/render/SurfaceParams\";\r\nimport { ImdlModel as Imdl } from \"../../common/imdl/ImdlModel\";\r\nimport { ImdlColorDef, ImdlNamedTexture, ImdlTextureMapping } from \"../../common/imdl/ImdlSchema\";\r\nimport { convertFeatureTable, edgeParamsFromImdl, toMaterialParams, toVertexTable } from \"../../common/imdl/ParseImdlDocument\";\r\nimport { VertexIndices } from \"../../common/internal/render/VertexIndices\";\r\nimport type { RenderGraphic } from \"../../render/RenderGraphic\";\r\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\r\nimport type { RenderSystem } from \"../../render/RenderSystem\";\r\nimport { InstancedGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport type { IModelConnection } from \"../../IModelConnection\";\r\nimport { GraphicDescription } from \"../../common/render/GraphicDescriptionBuilder\";\r\nimport { GraphicDescriptionImpl, isGraphicDescription } from \"../../common/internal/render/GraphicDescriptionBuilderImpl\";\r\nimport { GraphicDescriptionContext } from \"../../common/render/GraphicDescriptionContext\";\r\nimport { _implementationProhibited, _textures } from \"../../common/internal/Symbols\";\r\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\nimport { createGraphicTemplate, GraphicTemplateBatch, GraphicTemplateBranch } from \"../../internal/render/GraphicTemplateImpl\";\r\nimport { GraphicTemplate } from \"../../render/GraphicTemplate\";\r\nimport { LayerTileData } from \"../render/webgl/MapLayerParams\";\r\n\r\n/** Options provided to [[decodeImdlContent]].\r\n */\r\nexport interface ImdlDecodeOptions {\r\n document: Imdl.Document;\r\n system: RenderSystem;\r\n iModel: IModelConnection;\r\n isCanceled?: () => boolean;\r\n tileData?: LayerTileData;\r\n}\r\n\r\nasync function loadNamedTexture(name: string, namedTex: ImdlNamedTexture, options: ImdlDecodeOptions): Promise<RenderTexture | undefined> {\r\n // Reasons a texture could be embedded in the tile content instead of requested separately from the backend:\r\n // - external textures are disabled\r\n // - the texture name is not a valid Id64 string\r\n // - the texture is below a certain backend-hardcoded size threshold\r\n // The bufferViewJson being defined signifies any of the above conditions. In that case, the image content\r\n // has been embedded in the tile contents. Otherwise, we will attempt to request the image content separately\r\n // from the backend.\r\n\r\n try {\r\n let textureType = RenderTexture.Type.Normal;\r\n const isGlyph = JsonUtils.asBool(namedTex.isGlyph);\r\n const isTileSection = !isGlyph && JsonUtils.asBool(namedTex.isTileSection);\r\n if (isGlyph)\r\n textureType = RenderTexture.Type.Glyph;\r\n else if (isTileSection)\r\n textureType = RenderTexture.Type.TileSection;\r\n\r\n // We produce unique tile sections for very large (> 8 megapixel) textures, and unique glyph atlases for raster text.\r\n // Neither should be cached.\r\n const cacheable = !isGlyph && !isTileSection;\r\n const ownership = cacheable ? { iModel: options.iModel, key: name } : undefined;\r\n\r\n const bufferViewId = JsonUtils.asString(namedTex.bufferView);\r\n const bufferViewJson = 0 !== bufferViewId.length ? options.document.json.bufferViews[bufferViewId] : undefined;\r\n\r\n if (undefined !== bufferViewJson) { // presence of bufferViewJson signifies we should read the texture from the tile content\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n const texBytes = options.document.binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n const format = namedTex.format;\r\n const source = new ImageSource(texBytes, format);\r\n return await options.system.createTextureFromSource({ source, ownership, type: textureType, transparency: namedTex.transparency });\r\n }\r\n\r\n // bufferViewJson was undefined, so attempt to request the texture directly from the backend\r\n const params = new RenderTextureParams(cacheable ? name : undefined, textureType);\r\n return options.system.createTextureFromElement(name, options.iModel, params, namedTex.format);\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nasync function loadNamedTextures(options: ImdlDecodeOptions): Promise<Map<string, RenderTexture>> {\r\n const result = new Map<string, RenderTexture>();\r\n const namedTextures = options.document.json.namedTextures;\r\n if (!namedTextures)\r\n return result;\r\n\r\n const promises = new Array<Promise<void>>();\r\n for (const [name, namedTexture] of Object.entries(namedTextures)) {\r\n const texture = options.system.findTexture(name, options.iModel);\r\n if (texture) {\r\n result.set(name, texture);\r\n continue;\r\n } else if (namedTexture) {\r\n promises.push(loadNamedTexture(name, namedTexture, options).then((tx) => {\r\n if (tx)\r\n result.set(name, tx);\r\n }));\r\n }\r\n }\r\n\r\n if (promises.length > 0)\r\n await Promise.all(promises);\r\n\r\n return result;\r\n}\r\n\r\ninterface GraphicsOptions {\r\n document?: Imdl.Document;\r\n iModel?: IModelConnection;\r\n system: RenderSystem;\r\n isCanceled?: () => boolean;\r\n textures: Map<string, RenderTexture>;\r\n patterns: Map<string, RenderGeometry[]>;\r\n tileData?: LayerTileData;\r\n}\r\n\r\nfunction constantLodParamPropsFromJson(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n const constantLodPops: TextureMapping.ConstantLodParamProps = {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n return constantLodPops;\r\n}\r\n\r\nfunction textureMappingFromJson(json: ImdlTextureMapping | undefined, options: GraphicsOptions): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const texture = options.textures.get(JsonUtils.asString(json.name));\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: constantLodParamPropsFromJson(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n let normalMap;\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n if (normalTexName.length === 0 || undefined !== (normalMap = options.textures.get(normalTexName))) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n}\r\n\r\nfunction getMaterial(mat: string | Imdl.SurfaceMaterialParams, options: GraphicsOptions): RenderMaterial | undefined {\r\n if (typeof mat !== \"string\") {\r\n const args = toMaterialParams(mat);\r\n return options.system.createRenderMaterial(args);\r\n }\r\n\r\n if (!options.iModel) {\r\n return undefined;\r\n }\r\n\r\n const material = options.system.findMaterial(mat, options.iModel);\r\n if (material || !options.document?.json.renderMaterials)\r\n return material;\r\n\r\n const json = options.document.json.renderMaterials[mat];\r\n if (!json)\r\n return undefined;\r\n\r\n function colorDefFromJson(col: ImdlColorDef | undefined): ColorDef | undefined {\r\n return col ? ColorDef.from(col[0] * 255 + 0.5, col[1] * 255 + 0.5, col[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n const params = new RenderMaterialParams(mat);\r\n params.diffuseColor = colorDefFromJson(json.diffuseColor);\r\n if (json.diffuse !== undefined)\r\n params.diffuse = JsonUtils.asDouble(json.diffuse);\r\n\r\n params.specularColor = colorDefFromJson(json.specularColor);\r\n if (json.specular !== undefined)\r\n params.specular = JsonUtils.asDouble(json.specular);\r\n\r\n params.reflectColor = colorDefFromJson(json.reflectColor);\r\n if (json.reflect !== undefined)\r\n params.reflect = JsonUtils.asDouble(json.reflect);\r\n\r\n if (json.specularExponent !== undefined)\r\n params.specularExponent = json.specularExponent;\r\n\r\n if (undefined !== json.transparency)\r\n params.alpha = 1.0 - json.transparency;\r\n\r\n params.refract = JsonUtils.asDouble(json.refract);\r\n params.shadows = JsonUtils.asBool(json.shadows);\r\n params.ambient = JsonUtils.asDouble(json.ambient);\r\n\r\n if (undefined !== json.textureMapping)\r\n params.textureMapping = textureMappingFromJson(json.textureMapping.texture, options);\r\n\r\n return options.system.createRenderMaterial({\r\n diffuse: {color: params.diffuseColor, weight: params.diffuse},\r\n specular: {color: params.specularColor, weight: params.specular, exponent: params.specularExponent},\r\n alpha: params.alpha,\r\n textureMapping: params.textureMapping\r\n });;\r\n}\r\n\r\nfunction getModifiers(primitive: Imdl.Primitive): { viOrigin?: Point3d, instances?: InstancedGraphicParams } {\r\n const mod = primitive.modifier;\r\n switch (mod?.type) {\r\n case \"instances\":\r\n return { instances: InstancedGraphicParams.fromProps(mod) };\r\n case \"viewIndependentOrigin\":\r\n return {\r\n viOrigin: Point3d.fromJSON(mod.origin),\r\n };\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction createPrimitiveGeometry(primitive: Imdl.Primitive, options: GraphicsOptions, viOrigin: Point3d | undefined): RenderGeometry | undefined {\r\n switch (primitive.type) {\r\n case \"point\":\r\n return options.system.createPointStringGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n }, viOrigin);\r\n case \"polyline\":\r\n return options.system.createPolylineGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n ...primitive.params.polyline,\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n },\r\n }, viOrigin);\r\n case \"mesh\": {\r\n const surf = primitive.params.surface;\r\n let material;\r\n if (surf.material) {\r\n if (!surf.material.isAtlas)\r\n material = createSurfaceMaterial(getMaterial(surf.material.material, options));\r\n else\r\n material = surf.material;\r\n }\r\n\r\n let textureMapping;\r\n if (surf.textureMapping) {\r\n let texture;\r\n if (typeof surf.textureMapping.texture === \"string\") {\r\n texture = options.textures.get(surf.textureMapping.texture);\r\n } else {\r\n const gradient = Gradient.Symb.fromJSON(surf.textureMapping.texture);\r\n texture = options.system.getGradientTexture(gradient, options.iModel);\r\n }\r\n\r\n if (texture)\r\n textureMapping = { texture, alwaysDisplayed: surf.textureMapping.alwaysDisplayed };\r\n }\r\n\r\n return options.system.createMeshGeometry({\r\n ...primitive.params,\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n surface: {\r\n ...primitive.params.surface,\r\n material,\r\n textureMapping,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n },\r\n tileData: options.tileData,\r\n }, viOrigin);\r\n }\r\n }\r\n}\r\n\r\nfunction createPrimitiveGraphic(primitive: Imdl.Primitive, options: GraphicsOptions): RenderGraphic | undefined {\r\n const mods = getModifiers(primitive);\r\n const geometry = createPrimitiveGeometry(primitive, options, mods.viOrigin);\r\n return geometry ? options.system.createRenderGraphic(geometry, mods.instances) : undefined;\r\n}\r\n\r\nfunction createPatternGeometries(primitives: Imdl.Primitive[], options: GraphicsOptions): RenderGeometry[] {\r\n const geometries = [];\r\n for (const primitive of primitives) {\r\n const geometry = createPrimitiveGeometry(primitive, options, undefined);\r\n if (geometry)\r\n geometries.push(geometry);\r\n }\r\n\r\n return geometries;\r\n}\r\n\r\nfunction createPatternGraphic(params: Imdl.AreaPatternParams, options: GraphicsOptions): RenderGraphic | undefined {\r\n const geometries = options.patterns.get(params.symbolName);\r\n if (!geometries || geometries.length === 0)\r\n return undefined;\r\n\r\n const clip = ClipVector.fromJSON(params.clip);\r\n const clipVolume = clip?.isValid ? options.system.createClipVolume(clip) : undefined;\r\n if (!clipVolume)\r\n return undefined;\r\n\r\n const viewIndependentOrigin = params.viewIndependentOrigin ? Point3d.fromJSON(params.viewIndependentOrigin) : undefined;\r\n const pattern = options.system.createAreaPattern({\r\n xyOffsets: params.xyOffsets,\r\n featureId: params.featureId,\r\n orgTransform: Transform.fromJSON(params.orgTransform),\r\n origin: Point2d.fromJSON(params.origin),\r\n scale: params.scale,\r\n spacing: Point2d.fromJSON(params.spacing),\r\n patternToModel: Transform.fromJSON(params.modelTransform),\r\n range: Range3d.fromJSON(params.range),\r\n symbolTranslation: Point3d.fromJSON(params.symbolTranslation),\r\n viewIndependentOrigin,\r\n });\r\n\r\n if (!pattern)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const geometry of geometries) {\r\n const graphic = options.system.createRenderGraphic(geometry, pattern);\r\n if (graphic)\r\n branch.add(graphic);\r\n }\r\n\r\n return branch.isEmpty ? undefined : options.system.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume });\r\n}\r\n\r\nfunction createNodeGraphics(node: Imdl.Node, options: GraphicsOptions): RenderGraphic[] {\r\n if (undefined === node.groupId)\r\n return createPrimitivesNodeGraphics(node, options);\r\n\r\n const graphics: RenderGraphic[] = [];\r\n for (const child of node.nodes) {\r\n graphics.push(...createPrimitivesNodeGraphics(child, options));\r\n }\r\n\r\n if (graphics.length === 0)\r\n return graphics;\r\n\r\n const branch = new GraphicBranch(true);\r\n branch.groupNodeId = node.groupId;\r\n branch.entries.push(...graphics);\r\n return [options.system.createBranch(branch, Transform.createIdentity())];\r\n}\r\n\r\nfunction createPrimitivesNodeGraphics(node: Imdl.PrimitivesNode, options: GraphicsOptions): RenderGraphic[] {\r\n let graphics = [];\r\n for (const primitive of node.primitives) {\r\n const graphic = primitive.type === \"pattern\" ? createPatternGraphic(primitive.params, options) : createPrimitiveGraphic(primitive, options);\r\n if (graphic)\r\n graphics.push(graphic);\r\n }\r\n\r\n if (!graphics.length)\r\n return graphics;\r\n\r\n if (undefined !== node.layerId) {\r\n const layerGraphic = 1 === graphics.length ? graphics[0] : options.system.createGraphicList(graphics);\r\n graphics = [options.system.createGraphicLayer(layerGraphic, node.layerId)];\r\n } else if (undefined !== node.animationNodeId) {\r\n const branch = new GraphicBranch(true);\r\n branch.animationId = node.animationId;\r\n branch.animationNodeId = node.animationNodeId;\r\n branch.entries.push(...graphics);\r\n graphics = [options.system.createBranch(branch, Transform.createIdentity())];\r\n }\r\n\r\n return graphics;\r\n}\r\n\r\nexport async function decodeImdlGraphics(options: ImdlDecodeOptions): Promise<RenderGraphic | undefined> {\r\n const textures = await loadNamedTextures(options);\r\n if (options.isCanceled && options.isCanceled())\r\n return undefined;\r\n\r\n const patterns = new Map<string, RenderGeometry[]>();\r\n const graphicsOptions = { ...options, textures, patterns };\r\n graphicsOptions.tileData = options.tileData;\r\n\r\n for (const [name, primitives] of options.document.patterns)\r\n patterns.set(name, createPatternGeometries(primitives, graphicsOptions));\r\n\r\n const system = options.system;\r\n const graphics: RenderGraphic[] = [];\r\n for (const node of options.document.nodes) {\r\n graphics.push(...createNodeGraphics(node, graphicsOptions));\r\n }\r\n\r\n switch (graphics.length) {\r\n case 0: return undefined;\r\n case 1: return graphics[0];\r\n default: return system.createGraphicList(graphics);\r\n }\r\n}\r\n\r\nfunction remapGraphicDescription(descr: GraphicDescriptionImpl, context: GraphicDescriptionContext): void {\r\n if (descr.remapContext === context) {\r\n // Already remapped.\r\n return;\r\n } else if (descr.remapContext) {\r\n throw new Error(\"You cannot create a graphic from a GraphicDescription using two different contexts\");\r\n }\r\n\r\n descr.remapContext = context;\r\n\r\n const batch = descr.batch;\r\n if (!batch) {\r\n return;\r\n }\r\n\r\n if (Id64.isTransient(batch.modelId)) {\r\n const modelLocalId = context.remapTransientLocalId(Id64.getLocalId(batch.modelId));\r\n batch.modelId = Id64.fromLocalAndBriefcaseIds(modelLocalId, 0xffffff);\r\n }\r\n\r\n const data = batch.featureTable.data;\r\n const remapId = (offset: number) => {\r\n const hi = data[offset + 1];\r\n if (hi >= 0xffffff00) {\r\n const hi8 = hi & 0xff;\r\n const lo = data[offset];\r\n\r\n // Avoid bitwise operators because they truncate at 32 bits (we need 40) and are stupid about the sign bit.\r\n const sourceLocalId = lo + (hi8 * 0xffffffff);\r\n const localId = context.remapTransientLocalId(sourceLocalId);\r\n data[offset] = localId & 0xffffffff;\r\n data[offset + 1] = 0xffffff00 + hi8;\r\n }\r\n };\r\n\r\n const subCatsOffset = 3 * batch.featureTable.numFeatures;\r\n for (let i = 0; i < subCatsOffset; i += 3) {\r\n remapId(i);\r\n }\r\n\r\n const subCatsEnd = undefined !== batch.featureTable.numSubCategories ? subCatsOffset + 2 * batch.featureTable.numSubCategories : data.length;\r\n for (let i = subCatsOffset; i < subCatsEnd; i++) {\r\n remapId(i);\r\n }\r\n\r\n if (undefined !== batch.featureTable.numSubCategories) {\r\n for (let i = subCatsEnd; i < data.length; i++) {\r\n remapId(i + 1);\r\n }\r\n }\r\n}\r\n\r\nexport function createGraphicTemplateFromDescription(descr: GraphicDescription, context: GraphicDescriptionContext, system: RenderSystem): GraphicTemplate {\r\n if (!isGraphicDescription(descr)) {\r\n throw new Error(\"Invalid GraphicDescription\");\r\n }\r\n\r\n remapGraphicDescription(descr, context);\r\n\r\n const graphicsOptions: GraphicsOptions = {\r\n system,\r\n textures: context[_textures],\r\n patterns: new Map(),\r\n };\r\n\r\n const geometry: RenderGeometry[] = [];\r\n for (const primitive of descr.primitives) {\r\n const mods = getModifiers(primitive);\r\n\r\n // GraphicDescriptionBuilder providers no way to include instances in a GraphicDescription.\r\n assert(undefined === mods?.instances);\r\n\r\n const geom = createPrimitiveGeometry(primitive, graphicsOptions, mods.viOrigin);\r\n if (geom) {\r\n geometry.push(geom);\r\n }\r\n }\r\n\r\n let batch: GraphicTemplateBatch | undefined;\r\n if (descr.batch) {\r\n const featureTable = convertFeatureTable(descr.batch.featureTable, descr.batch.modelId);\r\n batch = {\r\n options: { ...descr.batch },\r\n range: Range3d.fromJSON(descr.batch.range),\r\n featureTable,\r\n };\r\n }\r\n\r\n let branch: GraphicTemplateBranch | undefined;\r\n if (descr.translation) {\r\n branch = { transform: Transform.createTranslation(Point3d.fromJSON(descr.translation)) };\r\n }\r\n\r\n return createGraphicTemplate({\r\n nodes: [{ geometry }],\r\n batch,\r\n branch,\r\n noDispose: true,\r\n });\r\n}\r\n\r\nexport function createGraphicFromDescription(descr: GraphicDescription, context: GraphicDescriptionContext, system: RenderSystem): RenderGraphic | undefined {\r\n const template = createGraphicTemplateFromDescription(descr, context, system);\r\n return system.createGraphicFromTemplate({ template });\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ImdlGraphicsCreator.js","sourceRoot":"","sources":["../../../../src/internal/tile/ImdlGraphicsCreator.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tiles\r\n */\r\n\r\nimport { assert, Id64, JsonUtils } from \"@itwin/core-bentley\";\r\nimport { ClipVector, Point2d, Point3d, Range3d, Transform } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDef, Gradient, ImageSource, RenderMaterial, RenderMaterialParams, RenderTexture, RenderTextureParams, TextureMapping,\r\n} from \"@itwin/core-common\";\r\nimport { AuxChannelTable } from \"../../common/internal/render/AuxChannelTable\";\r\nimport { createSurfaceMaterial } from \"../../common/internal/render/SurfaceParams\";\r\nimport { ImdlModel as Imdl } from \"../../common/imdl/ImdlModel\";\r\nimport { ImdlColorDef, ImdlNamedTexture, ImdlTextureMapping } from \"../../common/imdl/ImdlSchema\";\r\nimport { convertFeatureTable, edgeParamsFromImdl, toMaterialParams, toVertexTable } from \"../../common/imdl/ParseImdlDocument\";\r\nimport { VertexIndices } from \"../../common/internal/render/VertexIndices\";\r\nimport type { RenderGraphic } from \"../../render/RenderGraphic\";\r\nimport { GraphicBranch } from \"../../render/GraphicBranch\";\r\nimport type { RenderSystem } from \"../../render/RenderSystem\";\r\nimport { InstancedGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport type { IModelConnection } from \"../../IModelConnection\";\r\nimport { GraphicDescription } from \"../../common/render/GraphicDescriptionBuilder\";\r\nimport { GraphicDescriptionImpl, isGraphicDescription } from \"../../common/internal/render/GraphicDescriptionBuilderImpl\";\r\nimport { GraphicDescriptionContext } from \"../../common/render/GraphicDescriptionContext\";\r\nimport { _implementationProhibited, _textures } from \"../../common/internal/Symbols\";\r\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\nimport { createGraphicTemplate, GraphicTemplateBatch, GraphicTemplateBranch } from \"../../internal/render/GraphicTemplateImpl\";\r\nimport { GraphicTemplate } from \"../../render/GraphicTemplate\";\r\nimport { LayerTileData } from \"../render/webgl/MapLayerParams\";\r\n\r\n/** Options provided to [[decodeImdlContent]].\r\n */\r\nexport interface ImdlDecodeOptions {\r\n document: Imdl.Document;\r\n system: RenderSystem;\r\n iModel: IModelConnection;\r\n isCanceled?: () => boolean;\r\n tileData?: LayerTileData;\r\n}\r\n\r\nasync function loadNamedTexture(name: string, namedTex: ImdlNamedTexture, options: ImdlDecodeOptions): Promise<RenderTexture | undefined> {\r\n // Reasons a texture could be embedded in the tile content instead of requested separately from the backend:\r\n // - external textures are disabled\r\n // - the texture name is not a valid Id64 string\r\n // - the texture is below a certain backend-hardcoded size threshold\r\n // The bufferViewJson being defined signifies any of the above conditions. In that case, the image content\r\n // has been embedded in the tile contents. Otherwise, we will attempt to request the image content separately\r\n // from the backend.\r\n\r\n try {\r\n let textureType = RenderTexture.Type.Normal;\r\n const isGlyph = JsonUtils.asBool(namedTex.isGlyph);\r\n const isTileSection = !isGlyph && JsonUtils.asBool(namedTex.isTileSection);\r\n if (isGlyph)\r\n textureType = RenderTexture.Type.Glyph;\r\n else if (isTileSection)\r\n textureType = RenderTexture.Type.TileSection;\r\n\r\n // We produce unique tile sections for very large (> 8 megapixel) textures, and unique glyph atlases for raster text.\r\n // Neither should be cached.\r\n const cacheable = !isGlyph && !isTileSection;\r\n const ownership = cacheable ? { iModel: options.iModel, key: name } : undefined;\r\n\r\n const bufferViewId = JsonUtils.asString(namedTex.bufferView);\r\n const bufferViewJson = 0 !== bufferViewId.length ? options.document.json.bufferViews[bufferViewId] : undefined;\r\n\r\n if (undefined !== bufferViewJson) { // presence of bufferViewJson signifies we should read the texture from the tile content\r\n const byteOffset = JsonUtils.asInt(bufferViewJson.byteOffset);\r\n const byteLength = JsonUtils.asInt(bufferViewJson.byteLength);\r\n if (0 === byteLength)\r\n return undefined;\r\n\r\n const texBytes = options.document.binaryData.subarray(byteOffset, byteOffset + byteLength);\r\n const format = namedTex.format;\r\n const source = new ImageSource(texBytes, format);\r\n return await options.system.createTextureFromSource({ source, ownership, type: textureType, transparency: namedTex.transparency });\r\n }\r\n\r\n // bufferViewJson was undefined, so attempt to request the texture directly from the backend\r\n const params = new RenderTextureParams(cacheable ? name : undefined, textureType);\r\n return options.system.createTextureFromElement(name, options.iModel, params, namedTex.format);\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nasync function loadNamedTextures(options: ImdlDecodeOptions): Promise<Map<string, RenderTexture>> {\r\n const result = new Map<string, RenderTexture>();\r\n const namedTextures = options.document.json.namedTextures;\r\n if (!namedTextures)\r\n return result;\r\n\r\n const promises = new Array<Promise<void>>();\r\n for (const [name, namedTexture] of Object.entries(namedTextures)) {\r\n const texture = options.system.findTexture(name, options.iModel);\r\n if (texture) {\r\n result.set(name, texture);\r\n continue;\r\n } else if (namedTexture) {\r\n promises.push(loadNamedTexture(name, namedTexture, options).then((tx) => {\r\n if (tx)\r\n result.set(name, tx);\r\n }));\r\n }\r\n }\r\n\r\n if (promises.length > 0)\r\n await Promise.all(promises);\r\n\r\n return result;\r\n}\r\n\r\ninterface GraphicsOptions {\r\n document?: Imdl.Document;\r\n iModel?: IModelConnection;\r\n system: RenderSystem;\r\n isCanceled?: () => boolean;\r\n textures: Map<string, RenderTexture>;\r\n patterns: Map<string, RenderGeometry[]>;\r\n tileData?: LayerTileData;\r\n}\r\n\r\nfunction constantLodParamPropsFromJson(propsJson: { repetitions?: number, offset?: number[], minDistClamp?: number, maxDistClamp?: number } | undefined): TextureMapping.ConstantLodParamProps | undefined {\r\n if (undefined === propsJson)\r\n return undefined;\r\n\r\n const constantLodPops: TextureMapping.ConstantLodParamProps = {\r\n repetitions: JsonUtils.asDouble(propsJson.repetitions, 1.0),\r\n offset: { x: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[0]) : 0.0, y: propsJson.offset ? JsonUtils.asDouble(propsJson.offset[1]) : 0.0 },\r\n minDistClamp: JsonUtils.asDouble(propsJson.minDistClamp, 1.0),\r\n maxDistClamp: JsonUtils.asDouble(propsJson.maxDistClamp, 4096.0 * 1024.0 * 1024.0),\r\n };\r\n return constantLodPops;\r\n}\r\n\r\nfunction textureMappingFromJson(json: ImdlTextureMapping | undefined, options: GraphicsOptions): TextureMapping | undefined {\r\n if (!json)\r\n return undefined;\r\n\r\n const texture = options.textures.get(JsonUtils.asString(json.name));\r\n if (!texture)\r\n return undefined;\r\n\r\n const paramsJson = json.params;\r\n const tf = paramsJson.transform;\r\n\r\n const paramProps: TextureMapping.ParamProps = {\r\n textureMat2x3: new TextureMapping.Trans2x3(tf[0][0], tf[0][1], tf[0][2], tf[1][0], tf[1][1], tf[1][2]),\r\n textureWeight: JsonUtils.asDouble(paramsJson.weight, 1.0),\r\n mapMode: JsonUtils.asInt(paramsJson.mode),\r\n worldMapping: JsonUtils.asBool(paramsJson.worldMapping),\r\n useConstantLod: JsonUtils.asBool(paramsJson.useConstantLod),\r\n constantLodProps: constantLodParamPropsFromJson(paramsJson.constantLodParams),\r\n };\r\n\r\n const textureMapping = new TextureMapping(texture, new TextureMapping.Params(paramProps));\r\n\r\n const normalMapJson = json.normalMapParams;\r\n if (normalMapJson) {\r\n let normalMap;\r\n const normalTexName = JsonUtils.asString(normalMapJson.textureName);\r\n if (normalTexName.length === 0 || undefined !== (normalMap = options.textures.get(normalTexName))) {\r\n textureMapping.normalMapParams = {\r\n normalMap,\r\n greenUp: JsonUtils.asBool(normalMapJson.greenUp),\r\n scale: JsonUtils.asDouble(normalMapJson.scale, 1),\r\n useConstantLod: JsonUtils.asBool(normalMapJson.useConstantLod),\r\n };\r\n }\r\n }\r\n\r\n return textureMapping;\r\n}\r\n\r\nfunction getMaterial(mat: string | Imdl.SurfaceMaterialParams, options: GraphicsOptions): RenderMaterial | undefined {\r\n if (typeof mat !== \"string\") {\r\n const args = toMaterialParams(mat);\r\n return options.system.createRenderMaterial(args);\r\n }\r\n\r\n if (!options.iModel) {\r\n return undefined;\r\n }\r\n\r\n const material = options.system.findMaterial(mat, options.iModel);\r\n if (material || !options.document?.json.renderMaterials)\r\n return material;\r\n\r\n const json = options.document.json.renderMaterials[mat];\r\n if (!json)\r\n return undefined;\r\n\r\n function colorDefFromJson(col: ImdlColorDef | undefined): ColorDef | undefined {\r\n return col ? ColorDef.from(col[0] * 255 + 0.5, col[1] * 255 + 0.5, col[2] * 255 + 0.5) : undefined;\r\n }\r\n\r\n const params = new RenderMaterialParams(mat);\r\n params.diffuseColor = colorDefFromJson(json.diffuseColor);\r\n if (json.diffuse !== undefined)\r\n params.diffuse = JsonUtils.asDouble(json.diffuse);\r\n\r\n params.specularColor = colorDefFromJson(json.specularColor);\r\n if (json.specular !== undefined)\r\n params.specular = JsonUtils.asDouble(json.specular);\r\n\r\n params.reflectColor = colorDefFromJson(json.reflectColor);\r\n if (json.reflect !== undefined)\r\n params.reflect = JsonUtils.asDouble(json.reflect);\r\n\r\n if (json.specularExponent !== undefined)\r\n params.specularExponent = json.specularExponent;\r\n\r\n if (undefined !== json.transparency)\r\n params.alpha = 1.0 - json.transparency;\r\n\r\n params.refract = JsonUtils.asDouble(json.refract);\r\n params.shadows = JsonUtils.asBool(json.shadows);\r\n params.ambient = JsonUtils.asDouble(json.ambient);\r\n\r\n if (undefined !== json.textureMapping)\r\n params.textureMapping = textureMappingFromJson(json.textureMapping.texture, options);\r\n\r\n return options.system.createRenderMaterial({\r\n diffuse: {color: params.diffuseColor, weight: params.diffuse},\r\n specular: {color: params.specularColor, weight: params.specular, exponent: params.specularExponent},\r\n alpha: params.alpha,\r\n textureMapping: params.textureMapping ? {\r\n texture: params.textureMapping.texture,\r\n transform: params.textureMapping.params.textureMatrix,\r\n mode: params.textureMapping.params.mode,\r\n weight: params.textureMapping.params.weight,\r\n worldMapping: params.textureMapping.params.worldMapping,\r\n useConstantLod: params.textureMapping.params.useConstantLod,\r\n constantLodProps: params.textureMapping.params.constantLodParams,\r\n normalMapParams: params.textureMapping.normalMapParams,\r\n } : undefined,\r\n });\r\n}\r\n\r\nfunction getModifiers(primitive: Imdl.Primitive): { viOrigin?: Point3d, instances?: InstancedGraphicParams } {\r\n const mod = primitive.modifier;\r\n switch (mod?.type) {\r\n case \"instances\":\r\n return { instances: InstancedGraphicParams.fromProps(mod) };\r\n case \"viewIndependentOrigin\":\r\n return {\r\n viOrigin: Point3d.fromJSON(mod.origin),\r\n };\r\n default:\r\n return {};\r\n }\r\n}\r\n\r\nfunction createPrimitiveGeometry(primitive: Imdl.Primitive, options: GraphicsOptions, viOrigin: Point3d | undefined): RenderGeometry | undefined {\r\n switch (primitive.type) {\r\n case \"point\":\r\n return options.system.createPointStringGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n indices: new VertexIndices(primitive.params.indices),\r\n }, viOrigin);\r\n case \"polyline\":\r\n return options.system.createPolylineGeometry({\r\n ...primitive.params,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n polyline: {\r\n ...primitive.params.polyline,\r\n indices: new VertexIndices(primitive.params.polyline.indices),\r\n prevIndices: new VertexIndices(primitive.params.polyline.prevIndices),\r\n },\r\n }, viOrigin);\r\n case \"mesh\": {\r\n const surf = primitive.params.surface;\r\n let material;\r\n if (surf.material) {\r\n if (!surf.material.isAtlas)\r\n material = createSurfaceMaterial(getMaterial(surf.material.material, options));\r\n else\r\n material = surf.material;\r\n }\r\n\r\n let textureMapping;\r\n if (surf.textureMapping) {\r\n let texture;\r\n if (typeof surf.textureMapping.texture === \"string\") {\r\n texture = options.textures.get(surf.textureMapping.texture);\r\n } else {\r\n const gradient = Gradient.Symb.fromJSON(surf.textureMapping.texture);\r\n texture = options.system.getGradientTexture(gradient, options.iModel);\r\n }\r\n\r\n if (texture)\r\n textureMapping = { texture, alwaysDisplayed: surf.textureMapping.alwaysDisplayed };\r\n }\r\n\r\n return options.system.createMeshGeometry({\r\n ...primitive.params,\r\n edges: primitive.params.edges ? edgeParamsFromImdl(primitive.params.edges) : undefined,\r\n vertices: toVertexTable(primitive.params.vertices),\r\n auxChannels: primitive.params.auxChannels ? AuxChannelTable.fromJSON(primitive.params.auxChannels) : undefined,\r\n surface: {\r\n ...primitive.params.surface,\r\n material,\r\n textureMapping,\r\n indices: new VertexIndices(primitive.params.surface.indices),\r\n },\r\n tileData: options.tileData,\r\n }, viOrigin);\r\n }\r\n }\r\n}\r\n\r\nfunction createPrimitiveGraphic(primitive: Imdl.Primitive, options: GraphicsOptions): RenderGraphic | undefined {\r\n const mods = getModifiers(primitive);\r\n const geometry = createPrimitiveGeometry(primitive, options, mods.viOrigin);\r\n return geometry ? options.system.createRenderGraphic(geometry, mods.instances) : undefined;\r\n}\r\n\r\nfunction createPatternGeometries(primitives: Imdl.Primitive[], options: GraphicsOptions): RenderGeometry[] {\r\n const geometries = [];\r\n for (const primitive of primitives) {\r\n const geometry = createPrimitiveGeometry(primitive, options, undefined);\r\n if (geometry)\r\n geometries.push(geometry);\r\n }\r\n\r\n return geometries;\r\n}\r\n\r\nfunction createPatternGraphic(params: Imdl.AreaPatternParams, options: GraphicsOptions): RenderGraphic | undefined {\r\n const geometries = options.patterns.get(params.symbolName);\r\n if (!geometries || geometries.length === 0)\r\n return undefined;\r\n\r\n const clip = ClipVector.fromJSON(params.clip);\r\n const clipVolume = clip?.isValid ? options.system.createClipVolume(clip) : undefined;\r\n if (!clipVolume)\r\n return undefined;\r\n\r\n const viewIndependentOrigin = params.viewIndependentOrigin ? Point3d.fromJSON(params.viewIndependentOrigin) : undefined;\r\n const pattern = options.system.createAreaPattern({\r\n xyOffsets: params.xyOffsets,\r\n featureId: params.featureId,\r\n orgTransform: Transform.fromJSON(params.orgTransform),\r\n origin: Point2d.fromJSON(params.origin),\r\n scale: params.scale,\r\n spacing: Point2d.fromJSON(params.spacing),\r\n patternToModel: Transform.fromJSON(params.modelTransform),\r\n range: Range3d.fromJSON(params.range),\r\n symbolTranslation: Point3d.fromJSON(params.symbolTranslation),\r\n viewIndependentOrigin,\r\n });\r\n\r\n if (!pattern)\r\n return undefined;\r\n\r\n const branch = new GraphicBranch(true);\r\n for (const geometry of geometries) {\r\n const graphic = options.system.createRenderGraphic(geometry, pattern);\r\n if (graphic)\r\n branch.add(graphic);\r\n }\r\n\r\n return branch.isEmpty ? undefined : options.system.createGraphicBranch(branch, Transform.createIdentity(), { clipVolume });\r\n}\r\n\r\nfunction createNodeGraphics(node: Imdl.Node, options: GraphicsOptions): RenderGraphic[] {\r\n if (undefined === node.groupId)\r\n return createPrimitivesNodeGraphics(node, options);\r\n\r\n const graphics: RenderGraphic[] = [];\r\n for (const child of node.nodes) {\r\n graphics.push(...createPrimitivesNodeGraphics(child, options));\r\n }\r\n\r\n if (graphics.length === 0)\r\n return graphics;\r\n\r\n const branch = new GraphicBranch(true);\r\n branch.groupNodeId = node.groupId;\r\n branch.entries.push(...graphics);\r\n return [options.system.createBranch(branch, Transform.createIdentity())];\r\n}\r\n\r\nfunction createPrimitivesNodeGraphics(node: Imdl.PrimitivesNode, options: GraphicsOptions): RenderGraphic[] {\r\n let graphics = [];\r\n for (const primitive of node.primitives) {\r\n const graphic = primitive.type === \"pattern\" ? createPatternGraphic(primitive.params, options) : createPrimitiveGraphic(primitive, options);\r\n if (graphic)\r\n graphics.push(graphic);\r\n }\r\n\r\n if (!graphics.length)\r\n return graphics;\r\n\r\n if (undefined !== node.layerId) {\r\n const layerGraphic = 1 === graphics.length ? graphics[0] : options.system.createGraphicList(graphics);\r\n graphics = [options.system.createGraphicLayer(layerGraphic, node.layerId)];\r\n } else if (undefined !== node.animationNodeId) {\r\n const branch = new GraphicBranch(true);\r\n branch.animationId = node.animationId;\r\n branch.animationNodeId = node.animationNodeId;\r\n branch.entries.push(...graphics);\r\n graphics = [options.system.createBranch(branch, Transform.createIdentity())];\r\n }\r\n\r\n return graphics;\r\n}\r\n\r\nexport async function decodeImdlGraphics(options: ImdlDecodeOptions): Promise<RenderGraphic | undefined> {\r\n const textures = await loadNamedTextures(options);\r\n if (options.isCanceled && options.isCanceled())\r\n return undefined;\r\n\r\n const patterns = new Map<string, RenderGeometry[]>();\r\n const graphicsOptions = { ...options, textures, patterns };\r\n graphicsOptions.tileData = options.tileData;\r\n\r\n for (const [name, primitives] of options.document.patterns)\r\n patterns.set(name, createPatternGeometries(primitives, graphicsOptions));\r\n\r\n const system = options.system;\r\n const graphics: RenderGraphic[] = [];\r\n for (const node of options.document.nodes) {\r\n graphics.push(...createNodeGraphics(node, graphicsOptions));\r\n }\r\n\r\n switch (graphics.length) {\r\n case 0: return undefined;\r\n case 1: return graphics[0];\r\n default: return system.createGraphicList(graphics);\r\n }\r\n}\r\n\r\nfunction remapGraphicDescription(descr: GraphicDescriptionImpl, context: GraphicDescriptionContext): void {\r\n if (descr.remapContext === context) {\r\n // Already remapped.\r\n return;\r\n } else if (descr.remapContext) {\r\n throw new Error(\"You cannot create a graphic from a GraphicDescription using two different contexts\");\r\n }\r\n\r\n descr.remapContext = context;\r\n\r\n const batch = descr.batch;\r\n if (!batch) {\r\n return;\r\n }\r\n\r\n if (Id64.isTransient(batch.modelId)) {\r\n const modelLocalId = context.remapTransientLocalId(Id64.getLocalId(batch.modelId));\r\n batch.modelId = Id64.fromLocalAndBriefcaseIds(modelLocalId, 0xffffff);\r\n }\r\n\r\n const data = batch.featureTable.data;\r\n const remapId = (offset: number) => {\r\n const hi = data[offset + 1];\r\n if (hi >= 0xffffff00) {\r\n const hi8 = hi & 0xff;\r\n const lo = data[offset];\r\n\r\n // Avoid bitwise operators because they truncate at 32 bits (we need 40) and are stupid about the sign bit.\r\n const sourceLocalId = lo + (hi8 * 0xffffffff);\r\n const localId = context.remapTransientLocalId(sourceLocalId);\r\n data[offset] = localId & 0xffffffff;\r\n data[offset + 1] = 0xffffff00 + hi8;\r\n }\r\n };\r\n\r\n const subCatsOffset = 3 * batch.featureTable.numFeatures;\r\n for (let i = 0; i < subCatsOffset; i += 3) {\r\n remapId(i);\r\n }\r\n\r\n const subCatsEnd = undefined !== batch.featureTable.numSubCategories ? subCatsOffset + 2 * batch.featureTable.numSubCategories : data.length;\r\n for (let i = subCatsOffset; i < subCatsEnd; i++) {\r\n remapId(i);\r\n }\r\n\r\n if (undefined !== batch.featureTable.numSubCategories) {\r\n for (let i = subCatsEnd; i < data.length; i++) {\r\n remapId(i + 1);\r\n }\r\n }\r\n}\r\n\r\nexport function createGraphicTemplateFromDescription(descr: GraphicDescription, context: GraphicDescriptionContext, system: RenderSystem): GraphicTemplate {\r\n if (!isGraphicDescription(descr)) {\r\n throw new Error(\"Invalid GraphicDescription\");\r\n }\r\n\r\n remapGraphicDescription(descr, context);\r\n\r\n const graphicsOptions: GraphicsOptions = {\r\n system,\r\n textures: context[_textures],\r\n patterns: new Map(),\r\n };\r\n\r\n const geometry: RenderGeometry[] = [];\r\n for (const primitive of descr.primitives) {\r\n const mods = getModifiers(primitive);\r\n\r\n // GraphicDescriptionBuilder providers no way to include instances in a GraphicDescription.\r\n assert(undefined === mods?.instances);\r\n\r\n const geom = createPrimitiveGeometry(primitive, graphicsOptions, mods.viOrigin);\r\n if (geom) {\r\n geometry.push(geom);\r\n }\r\n }\r\n\r\n let batch: GraphicTemplateBatch | undefined;\r\n if (descr.batch) {\r\n const featureTable = convertFeatureTable(descr.batch.featureTable, descr.batch.modelId);\r\n batch = {\r\n options: { ...descr.batch },\r\n range: Range3d.fromJSON(descr.batch.range),\r\n featureTable,\r\n };\r\n }\r\n\r\n let branch: GraphicTemplateBranch | undefined;\r\n if (descr.translation) {\r\n branch = { transform: Transform.createTranslation(Point3d.fromJSON(descr.translation)) };\r\n }\r\n\r\n return createGraphicTemplate({\r\n nodes: [{ geometry }],\r\n batch,\r\n branch,\r\n noDispose: true,\r\n });\r\n}\r\n\r\nexport function createGraphicFromDescription(descr: GraphicDescription, context: GraphicDescriptionContext, system: RenderSystem): RenderGraphic | undefined {\r\n const template = createGraphicTemplateFromDescription(descr, context, system);\r\n return system.createGraphicFromTemplate({ template });\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -570,7 +570,9 @@ class QuantityFormatter {
|
|
|
570
570
|
const promises = new Array();
|
|
571
571
|
overrides.forEach((_props, typeKey) => {
|
|
572
572
|
typesRemoved.push(typeKey);
|
|
573
|
-
|
|
573
|
+
const promise = this._unitFormattingSettingsProvider?.storeFormatOverrides({ typeKey, unitSystem: this.activeUnitSystem });
|
|
574
|
+
if (promise)
|
|
575
|
+
promises.push(promise);
|
|
574
576
|
});
|
|
575
577
|
await Promise.all(promises);
|
|
576
578
|
}
|