Compare commits

...

3 Commits
main ... jsx3d

Author SHA1 Message Date
bcbbedbb12 debug: Do nothing but init a board. Still buggy 2024-06-11 20:40:59 -07:00
0bca52ab4e fix: Add types patch files 2024-06-10 14:47:26 -07:00
4e2375b709 feat: Implement 3D Joyce Applets via JSXGraph
This is a stub/very preliminary implementation of calling JSXGraph for
  3D Joyce applets. The only element/construction method implemented so far
  is a free point.

  NOTE: This implementation is so far extremely buggy. Loading a page with a
  3D applet such as
  http://aleph0.clarku.edu/~djoyce/java/elements/bookXI/defXI9.html
  appears to enter a loop in which the div containing the JSXGraph Board
  progressively grows larger and larger, while using a tremendous amount
  of cpu.
2024-06-09 22:07:13 -07:00
47 changed files with 23866 additions and 20477 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
function web3d(){var H='bootstrap',I='begin',J='gwt.codesvr.web3d=',K='gwt.codesvr=',L='web3d',M='startup',N='DUMMY',O=0,P=1,Q='iframe',R='position:absolute; width:0; height:0; border:none; left: -1000px;',S=' top: -1000px;',T='Chrome',U='CSS1Compat',V='<!doctype html>',W='',X='<html><head><\/head><body><\/body><\/html>',Y='undefined',Z='readystatechange',$=10,_='script',ab='javascript',bb='Failed to load ',cb='moduleStartup',db='scriptTagAdded',eb='moduleRequested',fb='meta',gb='name',hb='web3d::',ib='::',jb='gwt:property',kb='content',lb='=',mb='gwt:onPropertyErrorFn',nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb='gwt:onLoadErrorFn',qb='" for "gwt:onLoadErrorFn"',rb='#',sb='?',tb='/',ub='img',vb='clear.cache.gif',wb='baseUrl',xb='web3d.nocache.js',yb='base',zb='//',Ab='selectingPermutation',Bb='web3d.devmode.js',Cb='289547CDA192E4FE9BAED5FF003E2ACE',Db=':',Eb='.cache.js',Fb='loadExternalRefs',Gb='end';var n=window;var o=document;q(H,I);function p(){var a=n.location.search;return a.indexOf(J)!=-1||a.indexOf(K)!=-1} function web3d(){var H='bootstrap',I='begin',J='gwt.codesvr.web3d=',K='gwt.codesvr=',L='web3d',M='startup',N='DUMMY',O=0,P=1,Q='iframe',R='position:absolute; width:0; height:0; border:none; left: -1000px;',S=' top: -1000px;',T='Chrome',U='CSS1Compat',V='<!doctype html>',W='',X='<html><head><\/head><body><\/body><\/html>',Y='undefined',Z='readystatechange',$=10,_='script',ab='javascript',bb='Failed to load ',cb='moduleStartup',db='scriptTagAdded',eb='moduleRequested',fb='meta',gb='name',hb='web3d::',ib='::',jb='gwt:property',kb='content',lb='=',mb='gwt:onPropertyErrorFn',nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb='gwt:onLoadErrorFn',qb='" for "gwt:onLoadErrorFn"',rb='#',sb='?',tb='/',ub='img',vb='clear.cache.gif',wb='baseUrl',xb='web3d.nocache.js',yb='base',zb='//',Ab='selectingPermutation',Bb='web3d.devmode.js',Cb='9C3B3A10360CC5777FCFEBAB7585F55C',Db=':',Eb='.cache.js',Fb='loadExternalRefs',Gb='end';var n=window;var o=document;q(H,I);function p(){var a=n.location.search;return a.indexOf(J)!=-1||a.indexOf(K)!=-1}
function q(a,b){if(n.__gwtStatsEvent){n.__gwtStatsEvent({moduleName:L,sessionId:n.__gwtStatsSessionId,subSystem:M,evtGroup:a,millis:(new Date).getTime(),type:b})}} function q(a,b){if(n.__gwtStatsEvent){n.__gwtStatsEvent({moduleName:L,sessionId:n.__gwtStatsSessionId,subSystem:M,evtGroup:a,millis:(new Date).getTime(),type:b})}}
web3d.__sendStats=q;web3d.__moduleName=L;web3d.__errFn=null;web3d.__moduleBase=N;web3d.__softPermutationId=O;web3d.__computePropValue=null;web3d.__getPropMap=null;web3d.__installRunAsyncCode=function(){};web3d.__gwtStartLoadingFragment=function(){return null};web3d.__gwt_isKnownPropertyValue=function(){return false};web3d.__gwt_getMetaProperty=function(){return null};var r=null;var s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L};web3d.__moduleStartupDone=function(e){var f=s[L].bindings;s[L].bindings=function(){var a=f?f():{};var b=e[web3d.__softPermutationId];for(var c=O;c<b.length;c++){var d=b[c];a[d[O]]=d[P]}return a}};var t;function u(){v();return t} web3d.__sendStats=q;web3d.__moduleName=L;web3d.__errFn=null;web3d.__moduleBase=N;web3d.__softPermutationId=O;web3d.__computePropValue=null;web3d.__getPropMap=null;web3d.__installRunAsyncCode=function(){};web3d.__gwtStartLoadingFragment=function(){return null};web3d.__gwt_isKnownPropertyValue=function(){return false};web3d.__gwt_getMetaProperty=function(){return null};var r=null;var s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L};web3d.__moduleStartupDone=function(e){var f=s[L].bindings;s[L].bindings=function(){var a=f?f():{};var b=e[web3d.__softPermutationId];for(var c=O;c<b.length;c++){var d=b[c];a[d[O]]=d[P]}return a}};var t;function u(){v();return t}
function v(){if(t){return}var a=o.createElement(Q);a.id=L;a.style.cssText=R+S;a.tabIndex=-1;o.body.appendChild(a);t=a.contentWindow.document;if(navigator.userAgent.indexOf(T)==-1){t.open();var b=document.compatMode==U?V:W;t.write(b+X);t.close()}} function v(){if(t){return}var a=o.createElement(Q);a.id=L;a.style.cssText=R+S;a.tabIndex=-1;o.body.appendChild(a);t=a.contentWindow.document;if(navigator.userAgent.indexOf(T)==-1){t.open();var b=document.compatMode==U?V:W;t.write(b+X);t.close()}}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
$wnd.webSimple.runAsyncCallback2('Bqb(2084,1,TGh);_.ld=function(){};X5g(Qc)(2);\n//# sourceURL=webSimple-2.js\n')

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
$wnd.webSimple.runAsyncCallback2('brb(2115,1,ELh);_.ld=function(){};rah(Qc)(2);\n//# sourceURL=webSimple-2.js\n')

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
function webSimple(){var H='bootstrap',I='begin',J='gwt.codesvr.webSimple=',K='gwt.codesvr=',L='webSimple',M='startup',N='DUMMY',O=0,P=1,Q='iframe',R='position:absolute; width:0; height:0; border:none; left: -1000px;',S=' top: -1000px;',T='Chrome',U='CSS1Compat',V='<!doctype html>',W='',X='<html><head><\/head><body><\/body><\/html>',Y='undefined',Z='readystatechange',$=10,_='script',ab='javascript',bb='Failed to load ',cb='moduleStartup',db='scriptTagAdded',eb='moduleRequested',fb='meta',gb='name',hb='webSimple::',ib='::',jb='gwt:property',kb='content',lb='=',mb='gwt:onPropertyErrorFn',nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb='gwt:onLoadErrorFn',qb='" for "gwt:onLoadErrorFn"',rb='#',sb='?',tb='/',ub='img',vb='clear.cache.gif',wb='baseUrl',xb='webSimple.nocache.js',yb='base',zb='//',Ab='selectingPermutation',Bb='webSimple.devmode.js',Cb='4B19686283BEF852F4C88C93522FB9A3',Db=':',Eb='.cache.js',Fb='loadExternalRefs',Gb='end';var n=window;var o=document;q(H,I);function p(){var a=n.location.search;return a.indexOf(J)!=-1||a.indexOf(K)!=-1} function webSimple(){var H='bootstrap',I='begin',J='gwt.codesvr.webSimple=',K='gwt.codesvr=',L='webSimple',M='startup',N='DUMMY',O=0,P=1,Q='iframe',R='position:absolute; width:0; height:0; border:none; left: -1000px;',S=' top: -1000px;',T='Chrome',U='CSS1Compat',V='<!doctype html>',W='',X='<html><head><\/head><body><\/body><\/html>',Y='undefined',Z='readystatechange',$=10,_='script',ab='javascript',bb='Failed to load ',cb='moduleStartup',db='scriptTagAdded',eb='moduleRequested',fb='meta',gb='name',hb='webSimple::',ib='::',jb='gwt:property',kb='content',lb='=',mb='gwt:onPropertyErrorFn',nb='Bad handler "',ob='" for "gwt:onPropertyErrorFn"',pb='gwt:onLoadErrorFn',qb='" for "gwt:onLoadErrorFn"',rb='#',sb='?',tb='/',ub='img',vb='clear.cache.gif',wb='baseUrl',xb='webSimple.nocache.js',yb='base',zb='//',Ab='selectingPermutation',Bb='webSimple.devmode.js',Cb='C0345F6F027EF2F0263E39640B37309E',Db=':',Eb='.cache.js',Fb='loadExternalRefs',Gb='end';var n=window;var o=document;q(H,I);function p(){var a=n.location.search;return a.indexOf(J)!=-1||a.indexOf(K)!=-1}
function q(a,b){if(n.__gwtStatsEvent){n.__gwtStatsEvent({moduleName:L,sessionId:n.__gwtStatsSessionId,subSystem:M,evtGroup:a,millis:(new Date).getTime(),type:b})}} function q(a,b){if(n.__gwtStatsEvent){n.__gwtStatsEvent({moduleName:L,sessionId:n.__gwtStatsSessionId,subSystem:M,evtGroup:a,millis:(new Date).getTime(),type:b})}}
webSimple.__sendStats=q;webSimple.__moduleName=L;webSimple.__errFn=null;webSimple.__moduleBase=N;webSimple.__softPermutationId=O;webSimple.__computePropValue=null;webSimple.__getPropMap=null;webSimple.__installRunAsyncCode=function(){};webSimple.__gwtStartLoadingFragment=function(){return null};webSimple.__gwt_isKnownPropertyValue=function(){return false};webSimple.__gwt_getMetaProperty=function(){return null};var r=null;var s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L};webSimple.__moduleStartupDone=function(e){var f=s[L].bindings;s[L].bindings=function(){var a=f?f():{};var b=e[webSimple.__softPermutationId];for(var c=O;c<b.length;c++){var d=b[c];a[d[O]]=d[P]}return a}};var t;function u(){v();return t} webSimple.__sendStats=q;webSimple.__moduleName=L;webSimple.__errFn=null;webSimple.__moduleBase=N;webSimple.__softPermutationId=O;webSimple.__computePropValue=null;webSimple.__getPropMap=null;webSimple.__installRunAsyncCode=function(){};webSimple.__gwtStartLoadingFragment=function(){return null};webSimple.__gwt_isKnownPropertyValue=function(){return false};webSimple.__gwt_getMetaProperty=function(){return null};var r=null;var s=n.__gwt_activeModules=n.__gwt_activeModules||{};s[L]={moduleName:L};webSimple.__moduleStartupDone=function(e){var f=s[L].bindings;s[L].bindings=function(){var a=f?f():{};var b=e[webSimple.__softPermutationId];for(var c=O;c<b.length;c++){var d=b[c];a[d[O]]=d[P]}return a}};var t;function u(){v();return t}
function v(){if(t){return}var a=o.createElement(Q);a.id=L;a.style.cssText=R+S;a.tabIndex=-1;o.body.appendChild(a);t=a.contentWindow.document;if(navigator.userAgent.indexOf(T)==-1){t.open();var b=document.compatMode==U?V:W;t.write(b+X);t.close()}} function v(){if(t){return}var a=o.createElement(Q);a.id=L;a.style.cssText=R+S;a.tabIndex=-1;o.body.appendChild(a);t=a.contentWindow.document;if(navigator.userAgent.indexOf(T)==-1){t.open();var b=document.compatMode==U?V:W;t.write(b+X);t.close()}}

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
/* X_ITE v9.2.4 */(() => { // webpackBootstrap /* X_ITE v9.7.0 */(() => { // webpackBootstrap
/******/ "use strict"; /******/ "use strict";
/******/ // The require scope /******/ // The require scope
/******/ var __webpack_require__ = {}; /******/ var __webpack_require__ = {};
@ -39,25 +39,25 @@ var __webpack_exports__ = {};
// UNUSED EXPORTS: default // UNUSED EXPORTS: default
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components"); const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components");
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject); var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields"); const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject); var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DFieldDefinition"); const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DFieldDefinition");
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject); var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/FieldDefinitionArray"); const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/FieldDefinitionArray");
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject); var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DChildNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DChildNode\")"
const X3DChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Core/X3DChildNode"); const X3DChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Core/X3DChildNode");
var X3DChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DChildNode_namespaceObject); var X3DChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DChildNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DConstants"); const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DConstants");
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject); var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Namespace"); const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Namespace");
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject); var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/EventUtilities/BooleanFilter.js ;// CONCATENATED MODULE: ./src/x_ite/Components/EventUtilities/BooleanFilter.js
/******************************************************************************* /*******************************************************************************
@ -183,7 +183,7 @@ const __default__ = BooleanFilter;
Namespace_default().add ("BooleanFilter", "x_ite/Components/EventUtilities/BooleanFilter", __default__); Namespace_default().add ("BooleanFilter", "x_ite/Components/EventUtilities/BooleanFilter", __default__);
/* harmony default export */ const EventUtilities_BooleanFilter = (__default__); /* harmony default export */ const EventUtilities_BooleanFilter = (__default__);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")"
const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Algorithm"); const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Algorithm");
var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject); var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/EventUtilities/X3DSequencerNode.js ;// CONCATENATED MODULE: ./src/x_ite/Components/EventUtilities/X3DSequencerNode.js
/******************************************************************************* /*******************************************************************************

View File

@ -1,4 +1,4 @@
/* X_ITE v9.2.4 */(() => { // webpackBootstrap /* X_ITE v9.7.0 */(() => { // webpackBootstrap
/******/ "use strict"; /******/ "use strict";
/******/ // The require scope /******/ // The require scope
/******/ var __webpack_require__ = {}; /******/ var __webpack_require__ = {};
@ -39,19 +39,19 @@ var __webpack_exports__ = {};
// UNUSED EXPORTS: default // UNUSED EXPORTS: default
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components"); const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components");
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject); var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DBaseNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DBaseNode\")"
const X3DBaseNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DBaseNode"); const X3DBaseNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DBaseNode");
var X3DBaseNode_default = /*#__PURE__*/__webpack_require__.n(X3DBaseNode_namespaceObject); var X3DBaseNode_default = /*#__PURE__*/__webpack_require__.n(X3DBaseNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DConstants"); const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DConstants");
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject); var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields"); const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject); var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Namespace"); const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Namespace");
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject); var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Arc2DOptions.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Arc2DOptions.js
/******************************************************************************* /*******************************************************************************
@ -204,10 +204,10 @@ const ArcClose2DOptions_default_ = ArcClose2DOptions;
Namespace_default().add ("ArcClose2DOptions", "x_ite/Browser/Geometry2D/ArcClose2DOptions", ArcClose2DOptions_default_); Namespace_default().add ("ArcClose2DOptions", "x_ite/Browser/Geometry2D/ArcClose2DOptions", ArcClose2DOptions_default_);
/* harmony default export */ const Geometry2D_ArcClose2DOptions = (ArcClose2DOptions_default_); /* harmony default export */ const Geometry2D_ArcClose2DOptions = (ArcClose2DOptions_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DGeometryNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DGeometryNode\")"
const X3DGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Rendering/X3DGeometryNode"); const X3DGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Rendering/X3DGeometryNode");
var X3DGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DGeometryNode_namespaceObject); var X3DGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DGeometryNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Complex\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Complex\")"
const Complex_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Complex"); const Complex_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Numbers/Complex");
var Complex_default = /*#__PURE__*/__webpack_require__.n(Complex_namespaceObject); var Complex_default = /*#__PURE__*/__webpack_require__.n(Complex_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Circle2DOptions.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Circle2DOptions.js
/******************************************************************************* /*******************************************************************************
@ -415,10 +415,10 @@ Object .assign (Object .setPrototypeOf (Disk2DOptions .prototype, (X3DBaseNode_d
{ {
const const
half = new (Complex_default()) (0.5, 0.5), half = new (Complex_default()) (0.5, 0.5),
texCoord1 = new (Complex_default()) (0, 0), texCoord1 = new (Complex_default()) (),
texCoord2 = new (Complex_default()) (0, 0), texCoord2 = new (Complex_default()) (),
point1 = new (Complex_default()) (0, 0), point1 = new (Complex_default()) (),
point2 = new (Complex_default()) (0, 0); point2 = new (Complex_default()) ();
return function () return function ()
{ {
@ -487,13 +487,13 @@ const Disk2DOptions_default_ = Disk2DOptions;
Namespace_default().add ("Disk2DOptions", "x_ite/Browser/Geometry2D/Disk2DOptions", Disk2DOptions_default_); Namespace_default().add ("Disk2DOptions", "x_ite/Browser/Geometry2D/Disk2DOptions", Disk2DOptions_default_);
/* harmony default export */ const Geometry2D_Disk2DOptions = (Disk2DOptions_default_); /* harmony default export */ const Geometry2D_Disk2DOptions = (Disk2DOptions_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Geometry3D/IndexedFaceSet\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Geometry3D/IndexedFaceSet\")"
const IndexedFaceSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Geometry3D/IndexedFaceSet"); const IndexedFaceSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Geometry3D/IndexedFaceSet");
var IndexedFaceSet_default = /*#__PURE__*/__webpack_require__.n(IndexedFaceSet_namespaceObject); var IndexedFaceSet_default = /*#__PURE__*/__webpack_require__.n(IndexedFaceSet_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/Coordinate\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/Coordinate\")"
const Coordinate_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Rendering/Coordinate"); const Coordinate_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Rendering/Coordinate");
var Coordinate_default = /*#__PURE__*/__webpack_require__.n(Coordinate_namespaceObject); var Coordinate_default = /*#__PURE__*/__webpack_require__.n(Coordinate_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Texturing/TextureCoordinate\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Texturing/TextureCoordinate\")"
const TextureCoordinate_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Texturing/TextureCoordinate"); const TextureCoordinate_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Texturing/TextureCoordinate");
var TextureCoordinate_default = /*#__PURE__*/__webpack_require__.n(TextureCoordinate_namespaceObject); var TextureCoordinate_default = /*#__PURE__*/__webpack_require__.n(TextureCoordinate_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js
/******************************************************************************* /*******************************************************************************
@ -548,7 +548,6 @@ var TextureCoordinate_default = /*#__PURE__*/__webpack_require__.n(TextureCoordi
function Rectangle2DOptions (executionContext) function Rectangle2DOptions (executionContext)
{ {
X3DBaseNode_default().call (this, executionContext); X3DBaseNode_default().call (this, executionContext);
@ -602,7 +601,7 @@ const Rectangle2DOptions_default_ = Rectangle2DOptions;
Namespace_default().add ("Rectangle2DOptions", "x_ite/Browser/Geometry2D/Rectangle2DOptions", Rectangle2DOptions_default_); Namespace_default().add ("Rectangle2DOptions", "x_ite/Browser/Geometry2D/Rectangle2DOptions", Rectangle2DOptions_default_);
/* harmony default export */ const Geometry2D_Rectangle2DOptions = (Rectangle2DOptions_default_); /* harmony default export */ const Geometry2D_Rectangle2DOptions = (Rectangle2DOptions_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Core/PrimitiveQuality\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Core/PrimitiveQuality\")"
const PrimitiveQuality_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Browser/Core/PrimitiveQuality"); const PrimitiveQuality_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Browser/Core/PrimitiveQuality");
var PrimitiveQuality_default = /*#__PURE__*/__webpack_require__.n(PrimitiveQuality_namespaceObject); var PrimitiveQuality_default = /*#__PURE__*/__webpack_require__.n(PrimitiveQuality_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js
/******************************************************************************* /*******************************************************************************
@ -744,16 +743,16 @@ const X3DGeometry2DContext_default_ = X3DGeometry2DContext;
Namespace_default().add ("X3DGeometry2DContext", "x_ite/Browser/Geometry2D/X3DGeometry2DContext", X3DGeometry2DContext_default_); Namespace_default().add ("X3DGeometry2DContext", "x_ite/Browser/Geometry2D/X3DGeometry2DContext", X3DGeometry2DContext_default_);
/* harmony default export */ const Geometry2D_X3DGeometry2DContext = (X3DGeometry2DContext_default_); /* harmony default export */ const Geometry2D_X3DGeometry2DContext = (X3DGeometry2DContext_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DFieldDefinition"); const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DFieldDefinition");
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject); var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/FieldDefinitionArray"); const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/FieldDefinitionArray");
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject); var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DLineGeometryNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DLineGeometryNode\")"
const X3DLineGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Rendering/X3DLineGeometryNode"); const X3DLineGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Rendering/X3DLineGeometryNode");
var X3DLineGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DLineGeometryNode_namespaceObject); var X3DLineGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DLineGeometryNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")"
const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Algorithm"); const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Algorithm");
var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject); var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Arc2D.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Arc2D.js
/******************************************************************************* /*******************************************************************************
@ -828,7 +827,9 @@ Object .assign (Object .setPrototypeOf (Arc2D .prototype, (X3DLineGeometryNode_d
{ {
X3DLineGeometryNode_default().prototype .set_live__ .call (this); X3DLineGeometryNode_default().prototype .set_live__ .call (this);
if (this .getLive () .getValue ()) const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
if (this .getLive () .getValue () || alwaysUpdate)
this .getBrowser () .getArc2DOptions () .addInterest ("requestRebuild", this); this .getBrowser () .getArc2DOptions () .addInterest ("requestRebuild", this);
else else
this .getBrowser () .getArc2DOptions () .removeInterest ("requestRebuild", this); this .getBrowser () .getArc2DOptions () .removeInterest ("requestRebuild", this);
@ -997,7 +998,9 @@ Object .assign (Object .setPrototypeOf (ArcClose2D .prototype, (X3DGeometryNode_
{ {
X3DGeometryNode_default().prototype .set_live__ .call (this); X3DGeometryNode_default().prototype .set_live__ .call (this);
if (this .getLive () .getValue ()) const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
if (this .getLive () .getValue () || alwaysUpdate)
this .getBrowser () .getArcClose2DOptions () .addInterest ("requestRebuild", this); this .getBrowser () .getArcClose2DOptions () .addInterest ("requestRebuild", this);
else else
this .getBrowser () .getArcClose2DOptions () .removeInterest ("requestRebuild", this); this .getBrowser () .getArcClose2DOptions () .removeInterest ("requestRebuild", this);
@ -1223,7 +1226,9 @@ Object .assign (Object .setPrototypeOf (Circle2D .prototype, (X3DLineGeometryNod
{ {
X3DLineGeometryNode_default().prototype .set_live__ .call (this); X3DLineGeometryNode_default().prototype .set_live__ .call (this);
if (this .getLive () .getValue ()) const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
if (this .getLive () .getValue () || alwaysUpdate)
this .getBrowser () .getCircle2DOptions () .addInterest ("requestRebuild", this); this .getBrowser () .getCircle2DOptions () .addInterest ("requestRebuild", this);
else else
this .getBrowser () .getCircle2DOptions () .removeInterest ("requestRebuild", this); this .getBrowser () .getCircle2DOptions () .removeInterest ("requestRebuild", this);
@ -1290,7 +1295,7 @@ const Circle2D_default_ = Circle2D;
Namespace_default().add ("Circle2D", "x_ite/Components/Geometry2D/Circle2D", Circle2D_default_); Namespace_default().add ("Circle2D", "x_ite/Components/Geometry2D/Circle2D", Circle2D_default_);
/* harmony default export */ const Geometry2D_Circle2D = (Circle2D_default_); /* harmony default export */ const Geometry2D_Circle2D = (Circle2D_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DPointGeometryNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DPointGeometryNode\")"
const X3DPointGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Rendering/X3DPointGeometryNode"); const X3DPointGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Rendering/X3DPointGeometryNode");
var X3DPointGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DPointGeometryNode_namespaceObject); var X3DPointGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DPointGeometryNode_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Disk2D.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Disk2D.js
/******************************************************************************* /*******************************************************************************
@ -1368,7 +1373,9 @@ Object .assign (Object .setPrototypeOf (Disk2D .prototype, (X3DGeometryNode_defa
{ {
X3DGeometryNode_default().prototype .set_live__ .call (this); X3DGeometryNode_default().prototype .set_live__ .call (this);
if (this .getLive () .getValue ()) const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
if (this .getLive () .getValue () || alwaysUpdate)
this .getBrowser () .getDisk2DOptions () .addInterest ("requestRebuild", this); this .getBrowser () .getDisk2DOptions () .addInterest ("requestRebuild", this);
else else
this .getBrowser () .getDisk2DOptions () .removeInterest ("requestRebuild", this); this .getBrowser () .getDisk2DOptions () .removeInterest ("requestRebuild", this);
@ -1509,8 +1516,8 @@ Object .assign (Object .setPrototypeOf (Disk2D .prototype, (X3DGeometryNode_defa
this .buildTexCoords = base .prototype .buildTexCoords; this .buildTexCoords = base .prototype .buildTexCoords;
this .displaySimple = base .prototype .displaySimple; this .displaySimple = base .prototype .displaySimple;
this .display = base .prototype .display; this .display = base .prototype .display;
this .displaySimpleParticles = base .prototype .displaySimpleParticles; this .displaySimpleInstanced = base .prototype .displaySimpleInstanced;
this .displayParticles = base .prototype .displayParticles; this .displayInstanced = base .prototype .displayInstanced;
}, },
updateRenderFunctions () updateRenderFunctions ()
{ }, { },
@ -1787,10 +1794,8 @@ const Polypoint2D_default_ = Polypoint2D;
Namespace_default().add ("Polypoint2D", "x_ite/Components/Geometry2D/Polypoint2D", Polypoint2D_default_); Namespace_default().add ("Polypoint2D", "x_ite/Components/Geometry2D/Polypoint2D", Polypoint2D_default_);
/* harmony default export */ const Geometry2D_Polypoint2D = (Polypoint2D_default_); /* harmony default export */ const Geometry2D_Polypoint2D = (Polypoint2D_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector2\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector2\")"
const Vector2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Vector2"); const Vector2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Numbers/Vector2");
var Vector2_default = /*#__PURE__*/__webpack_require__.n(Vector2_namespaceObject); var Vector2_default = /*#__PURE__*/__webpack_require__.n(Vector2_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector3\")"
const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Vector3");
;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Rectangle2D.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Geometry2D/Rectangle2D.js
/******************************************************************************* /*******************************************************************************
* *
@ -1846,7 +1851,6 @@ const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .requir
function Rectangle2D (executionContext) function Rectangle2D (executionContext)
{ {
X3DGeometryNode_default().call (this, executionContext); X3DGeometryNode_default().call (this, executionContext);

View File

@ -1,4 +1,4 @@
/* X_ITE v9.2.4 */(() => { // webpackBootstrap /* X_ITE v9.7.0 */(() => { // webpackBootstrap
/******/ "use strict"; /******/ "use strict";
/******/ // The require scope /******/ // The require scope
/******/ var __webpack_require__ = {}; /******/ var __webpack_require__ = {};
@ -39,13 +39,10 @@ var __webpack_exports__ = {};
// UNUSED EXPORTS: default // UNUSED EXPORTS: default
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components"); const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components");
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject); var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Namespace"); const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Namespace");
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject); var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js
/******************************************************************************* /*******************************************************************************
@ -95,8 +92,6 @@ var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceOb
* *
******************************************************************************/ ******************************************************************************/
const const
_keyDeviceSensorNodes = Symbol (), _keyDeviceSensorNodes = Symbol (),
_keydown = Symbol (), _keydown = Symbol (),
@ -149,17 +144,20 @@ const __default__ = X3DKeyDeviceSensorContext;
Namespace_default().add ("X3DKeyDeviceSensorContext", "x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext", __default__); Namespace_default().add ("X3DKeyDeviceSensorContext", "x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext", __default__);
/* harmony default export */ const KeyDeviceSensor_X3DKeyDeviceSensorContext = (__default__); /* harmony default export */ const KeyDeviceSensor_X3DKeyDeviceSensorContext = (__default__);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DFieldDefinition"); const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DFieldDefinition");
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject); var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/FieldDefinitionArray"); const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/FieldDefinitionArray");
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject); var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DSensorNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DSensorNode\")"
const X3DSensorNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Core/X3DSensorNode"); const X3DSensorNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Core/X3DSensorNode");
var X3DSensorNode_default = /*#__PURE__*/__webpack_require__.n(X3DSensorNode_namespaceObject); var X3DSensorNode_default = /*#__PURE__*/__webpack_require__.n(X3DSensorNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DConstants"); const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DConstants");
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject); var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js ;// CONCATENATED MODULE: ./src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js
/******************************************************************************* /*******************************************************************************
@ -747,7 +745,7 @@ Object .assign (Object .setPrototypeOf (StringSensor .prototype, KeyDeviceSensor
if (this ._deletionAllowed .getValue ()) if (this ._deletionAllowed .getValue ())
{ {
if (this ._enteredText .length) if (this ._enteredText .length)
this ._enteredText = this ._enteredText .getValue () .substr (0, this ._enteredText .length - 1); this ._enteredText = this ._enteredText .getValue () .substring (0, this ._enteredText .length - 1);
} }
} }

View File

@ -1,11 +1,11 @@
/* X_ITE v9.2.4 */(() => { // webpackBootstrap /* X_ITE v9.7.0 */(() => { // webpackBootstrap
/******/ "use strict"; /******/ "use strict";
/******/ var __webpack_modules__ = ({ /******/ var __webpack_modules__ = ({
/***/ 72: /***/ 823:
/***/ ((module) => { /***/ ((module) => {
module.exports = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("lib/jquery"); module.exports = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("lib/jquery");
/***/ }) /***/ })
@ -73,97 +73,97 @@ var __webpack_exports__ = {};
// UNUSED EXPORTS: default // UNUSED EXPORTS: default
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components"); const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components");
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject); var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DBaseNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DBaseNode\")"
const X3DBaseNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DBaseNode"); const X3DBaseNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DBaseNode");
var X3DBaseNode_default = /*#__PURE__*/__webpack_require__.n(X3DBaseNode_namespaceObject); var X3DBaseNode_default = /*#__PURE__*/__webpack_require__.n(X3DBaseNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DFieldDefinition"); const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DFieldDefinition");
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject); var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/FieldDefinitionArray"); const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/FieldDefinitionArray");
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject); var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DField\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DField\")"
const X3DField_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DField"); const X3DField_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DField");
var X3DField_default = /*#__PURE__*/__webpack_require__.n(X3DField_namespaceObject); var X3DField_default = /*#__PURE__*/__webpack_require__.n(X3DField_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DArrayField\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DArrayField\")"
const X3DArrayField_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DArrayField"); const X3DArrayField_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DArrayField");
var X3DArrayField_default = /*#__PURE__*/__webpack_require__.n(X3DArrayField_namespaceObject); var X3DArrayField_default = /*#__PURE__*/__webpack_require__.n(X3DArrayField_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields"); const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject); var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/X3DBrowser\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/X3DBrowser\")"
const X3DBrowser_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Browser/X3DBrowser"); const X3DBrowser_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Browser/X3DBrowser");
var X3DBrowser_default = /*#__PURE__*/__webpack_require__.n(X3DBrowser_namespaceObject); var X3DBrowser_default = /*#__PURE__*/__webpack_require__.n(X3DBrowser_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ComponentInfo\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ComponentInfo\")"
const ComponentInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/ComponentInfo"); const ComponentInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/ComponentInfo");
var ComponentInfo_default = /*#__PURE__*/__webpack_require__.n(ComponentInfo_namespaceObject); var ComponentInfo_default = /*#__PURE__*/__webpack_require__.n(ComponentInfo_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ComponentInfoArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ComponentInfoArray\")"
const ComponentInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/ComponentInfoArray"); const ComponentInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/ComponentInfoArray");
var ComponentInfoArray_default = /*#__PURE__*/__webpack_require__.n(ComponentInfoArray_namespaceObject); var ComponentInfoArray_default = /*#__PURE__*/__webpack_require__.n(ComponentInfoArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ProfileInfo\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ProfileInfo\")"
const ProfileInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/ProfileInfo"); const ProfileInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/ProfileInfo");
var ProfileInfo_default = /*#__PURE__*/__webpack_require__.n(ProfileInfo_namespaceObject); var ProfileInfo_default = /*#__PURE__*/__webpack_require__.n(ProfileInfo_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ProfileInfoArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ProfileInfoArray\")"
const ProfileInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/ProfileInfoArray"); const ProfileInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/ProfileInfoArray");
var ProfileInfoArray_default = /*#__PURE__*/__webpack_require__.n(ProfileInfoArray_namespaceObject); var ProfileInfoArray_default = /*#__PURE__*/__webpack_require__.n(ProfileInfoArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ConcreteNodesArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/ConcreteNodesArray\")"
const ConcreteNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/ConcreteNodesArray"); const ConcreteNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/ConcreteNodesArray");
var ConcreteNodesArray_default = /*#__PURE__*/__webpack_require__.n(ConcreteNodesArray_namespaceObject); var ConcreteNodesArray_default = /*#__PURE__*/__webpack_require__.n(ConcreteNodesArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/AbstractNodesArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/AbstractNodesArray\")"
const AbstractNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/AbstractNodesArray"); const AbstractNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/AbstractNodesArray");
var AbstractNodesArray_default = /*#__PURE__*/__webpack_require__.n(AbstractNodesArray_namespaceObject); var AbstractNodesArray_default = /*#__PURE__*/__webpack_require__.n(AbstractNodesArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/UnitInfo\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/UnitInfo\")"
const UnitInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/UnitInfo"); const UnitInfo_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/UnitInfo");
var UnitInfo_default = /*#__PURE__*/__webpack_require__.n(UnitInfo_namespaceObject); var UnitInfo_default = /*#__PURE__*/__webpack_require__.n(UnitInfo_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/UnitInfoArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Configuration/UnitInfoArray\")"
const UnitInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Configuration/UnitInfoArray"); const UnitInfoArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Configuration/UnitInfoArray");
var UnitInfoArray_default = /*#__PURE__*/__webpack_require__.n(UnitInfoArray_namespaceObject); var UnitInfoArray_default = /*#__PURE__*/__webpack_require__.n(UnitInfoArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/NamedNodesArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/NamedNodesArray\")"
const NamedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/NamedNodesArray"); const NamedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/NamedNodesArray");
var NamedNodesArray_default = /*#__PURE__*/__webpack_require__.n(NamedNodesArray_namespaceObject); var NamedNodesArray_default = /*#__PURE__*/__webpack_require__.n(NamedNodesArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/ImportedNodesArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/ImportedNodesArray\")"
const ImportedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/ImportedNodesArray"); const ImportedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/ImportedNodesArray");
var ImportedNodesArray_default = /*#__PURE__*/__webpack_require__.n(ImportedNodesArray_namespaceObject); var ImportedNodesArray_default = /*#__PURE__*/__webpack_require__.n(ImportedNodesArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DImportedNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DImportedNode\")"
const X3DImportedNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/X3DImportedNode"); const X3DImportedNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/X3DImportedNode");
var X3DImportedNode_default = /*#__PURE__*/__webpack_require__.n(X3DImportedNode_namespaceObject); var X3DImportedNode_default = /*#__PURE__*/__webpack_require__.n(X3DImportedNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/ExportedNodesArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/ExportedNodesArray\")"
const ExportedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/ExportedNodesArray"); const ExportedNodesArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/ExportedNodesArray");
var ExportedNodesArray_default = /*#__PURE__*/__webpack_require__.n(ExportedNodesArray_namespaceObject); var ExportedNodesArray_default = /*#__PURE__*/__webpack_require__.n(ExportedNodesArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DExportedNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DExportedNode\")"
const X3DExportedNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/X3DExportedNode"); const X3DExportedNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/X3DExportedNode");
var X3DExportedNode_default = /*#__PURE__*/__webpack_require__.n(X3DExportedNode_namespaceObject); var X3DExportedNode_default = /*#__PURE__*/__webpack_require__.n(X3DExportedNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DExecutionContext\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DExecutionContext\")"
const X3DExecutionContext_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/X3DExecutionContext"); const X3DExecutionContext_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/X3DExecutionContext");
var X3DExecutionContext_default = /*#__PURE__*/__webpack_require__.n(X3DExecutionContext_namespaceObject); var X3DExecutionContext_default = /*#__PURE__*/__webpack_require__.n(X3DExecutionContext_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DScene\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Execution/X3DScene\")"
const X3DScene_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Execution/X3DScene"); const X3DScene_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Execution/X3DScene");
var X3DScene_default = /*#__PURE__*/__webpack_require__.n(X3DScene_namespaceObject); var X3DScene_default = /*#__PURE__*/__webpack_require__.n(X3DScene_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/ExternProtoDeclarationArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/ExternProtoDeclarationArray\")"
const ExternProtoDeclarationArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Prototype/ExternProtoDeclarationArray"); const ExternProtoDeclarationArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Prototype/ExternProtoDeclarationArray");
var ExternProtoDeclarationArray_default = /*#__PURE__*/__webpack_require__.n(ExternProtoDeclarationArray_namespaceObject); var ExternProtoDeclarationArray_default = /*#__PURE__*/__webpack_require__.n(ExternProtoDeclarationArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/ProtoDeclarationArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/ProtoDeclarationArray\")"
const ProtoDeclarationArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Prototype/ProtoDeclarationArray"); const ProtoDeclarationArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Prototype/ProtoDeclarationArray");
var ProtoDeclarationArray_default = /*#__PURE__*/__webpack_require__.n(ProtoDeclarationArray_namespaceObject); var ProtoDeclarationArray_default = /*#__PURE__*/__webpack_require__.n(ProtoDeclarationArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DExternProtoDeclaration\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DExternProtoDeclaration\")"
const X3DExternProtoDeclaration_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Prototype/X3DExternProtoDeclaration"); const X3DExternProtoDeclaration_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Prototype/X3DExternProtoDeclaration");
var X3DExternProtoDeclaration_default = /*#__PURE__*/__webpack_require__.n(X3DExternProtoDeclaration_namespaceObject); var X3DExternProtoDeclaration_default = /*#__PURE__*/__webpack_require__.n(X3DExternProtoDeclaration_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DProtoDeclaration\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DProtoDeclaration\")"
const X3DProtoDeclaration_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Prototype/X3DProtoDeclaration"); const X3DProtoDeclaration_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Prototype/X3DProtoDeclaration");
var X3DProtoDeclaration_default = /*#__PURE__*/__webpack_require__.n(X3DProtoDeclaration_namespaceObject); var X3DProtoDeclaration_default = /*#__PURE__*/__webpack_require__.n(X3DProtoDeclaration_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DProtoDeclarationNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Prototype/X3DProtoDeclarationNode\")"
const X3DProtoDeclarationNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Prototype/X3DProtoDeclarationNode"); const X3DProtoDeclarationNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Prototype/X3DProtoDeclarationNode");
var X3DProtoDeclarationNode_default = /*#__PURE__*/__webpack_require__.n(X3DProtoDeclarationNode_namespaceObject); var X3DProtoDeclarationNode_default = /*#__PURE__*/__webpack_require__.n(X3DProtoDeclarationNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Routing/RouteArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Routing/RouteArray\")"
const RouteArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Routing/RouteArray"); const RouteArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Routing/RouteArray");
var RouteArray_default = /*#__PURE__*/__webpack_require__.n(RouteArray_namespaceObject); var RouteArray_default = /*#__PURE__*/__webpack_require__.n(RouteArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Routing/X3DRoute\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Routing/X3DRoute\")"
const X3DRoute_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Routing/X3DRoute"); const X3DRoute_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Routing/X3DRoute");
var X3DRoute_default = /*#__PURE__*/__webpack_require__.n(X3DRoute_namespaceObject); var X3DRoute_default = /*#__PURE__*/__webpack_require__.n(X3DRoute_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Namespace"); const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Namespace");
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject); var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Scripting/evaluate.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Scripting/evaluate.js
/******************************************************************************* /*******************************************************************************
@ -239,13 +239,13 @@ const __default__ = evaluate;
Namespace_default().add ("evaluate", "x_ite/Browser/Scripting/evaluate", __default__); Namespace_default().add ("evaluate", "x_ite/Browser/Scripting/evaluate", __default__);
/* harmony default export */ const Scripting_evaluate = (__default__); /* harmony default export */ const Scripting_evaluate = (__default__);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DChildNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DChildNode\")"
const X3DChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Core/X3DChildNode"); const X3DChildNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Core/X3DChildNode");
var X3DChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DChildNode_namespaceObject); var X3DChildNode_default = /*#__PURE__*/__webpack_require__.n(X3DChildNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Networking/X3DUrlObject\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Networking/X3DUrlObject\")"
const X3DUrlObject_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Networking/X3DUrlObject"); const X3DUrlObject_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Networking/X3DUrlObject");
var X3DUrlObject_default = /*#__PURE__*/__webpack_require__.n(X3DUrlObject_namespaceObject); var X3DUrlObject_default = /*#__PURE__*/__webpack_require__.n(X3DUrlObject_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DConstants"); const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DConstants");
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject); var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Scripting/X3DScriptNode.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Scripting/X3DScriptNode.js
/******************************************************************************* /*******************************************************************************
@ -342,13 +342,13 @@ const X3DScriptNode_default_ = X3DScriptNode;
Namespace_default().add ("X3DScriptNode", "x_ite/Components/Scripting/X3DScriptNode", X3DScriptNode_default_); Namespace_default().add ("X3DScriptNode", "x_ite/Components/Scripting/X3DScriptNode", X3DScriptNode_default_);
/* harmony default export */ const Scripting_X3DScriptNode = (X3DScriptNode_default_); /* harmony default export */ const Scripting_X3DScriptNode = (X3DScriptNode_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/InputOutput/FileLoader\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/InputOutput/FileLoader\")"
const FileLoader_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/InputOutput/FileLoader"); const FileLoader_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/InputOutput/FileLoader");
var FileLoader_default = /*#__PURE__*/__webpack_require__.n(FileLoader_namespaceObject); var FileLoader_default = /*#__PURE__*/__webpack_require__.n(FileLoader_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields/SFNodeCache\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields/SFNodeCache\")"
const SFNodeCache_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields/SFNodeCache"); const SFNodeCache_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields/SFNodeCache");
var SFNodeCache_default = /*#__PURE__*/__webpack_require__.n(SFNodeCache_namespaceObject); var SFNodeCache_default = /*#__PURE__*/__webpack_require__.n(SFNodeCache_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Scripting/Script.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Scripting/Script.js
/* provided dependency */ var $ = __webpack_require__(72); /* provided dependency */ var $ = __webpack_require__(823);
/******************************************************************************* /*******************************************************************************
* *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@ -482,11 +482,36 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
}, },
unloadData () unloadData ()
{ {
this .initialize__ (""); // Call shutdown.
const shutdown = this .context ?.get ("shutdown");
if (typeof shutdown === "function")
this .call__ (shutdown, "shutdown");
// Disconnect shutdown.
$(window) .off (`.Script${this .getId ()}`);
// Disconnect prepareEvents.
this .getBrowser () .prepareEvents () .removeInterest ("call__", this);
// Disconnect eventsProcessed.
this .removeInterest ("call__", this);
// Disconnect fields.
for (const field of this .getUserDefinedFields ())
field .removeInterest ("set_field__", this);
}, },
loadData () async loadData ()
{ {
new (FileLoader_default()) (this) .loadDocument (this ._url, (data) => // See: 29.2.2 Script execution
await this .unloadData ();
new (FileLoader_default()) (this) .loadDocument (this ._url, data =>
{ {
if (data === null) if (data === null)
{ {
@ -502,7 +527,25 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
}, },
createGlobalObject () createGlobalObject ()
{ {
const browser = this .getBrowser (); const getScriptNode = () => this;
const handler =
{
get (target, key)
{
switch (key)
{
case "getScriptNode":
return getScriptNode;
case "currentScene":
return getScriptNode () .getExecutionContext ();
default:
return target [key];
}
},
};
const browser = new Proxy (this .getBrowser (), handler);
function SFNode (vrmlSyntax) function SFNode (vrmlSyntax)
{ {
@ -602,28 +645,25 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
for (const field of this .getUserDefinedFields ()) for (const field of this .getUserDefinedFields ())
{ {
const name = field .getName ();
if (field .getAccessType () === (X3DConstants_default()).inputOnly) if (field .getAccessType () === (X3DConstants_default()).inputOnly)
continue; continue;
if (!(name in globalObject)) const names = [field .getName ()];
if (field .getAccessType () === (X3DConstants_default()).inputOutput)
names .push (field .getName () + "_changed");
for (const name of names)
{ {
if (name in globalObject)
continue;
globalObject [name] = globalObject [name] =
{ {
get: field .valueOf .bind (field), get: field .valueOf .bind (field),
set: field .setValue .bind (field), set: field .setValue .bind (field),
}; };
} }
if (field .getAccessType () === (X3DConstants_default()).inputOutput)
{
globalObject [name + "_changed"] =
{
get: field .valueOf .bind (field),
set: field .setValue .bind (field),
};
}
} }
return Object .create (Object .prototype, globalObject); return Object .create (Object .prototype, globalObject);
@ -658,26 +698,13 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
}, },
evaluate (sourceText) evaluate (sourceText)
{ {
const browser = this .getBrowser (); if (!this .globalObject)
this .globalObject = this .createGlobalObject ();
try return Scripting_evaluate (SFNodeCache_default().get (this), this .globalObject, sourceText);
{
browser .getScriptStack () .push (this);
if (!this .globalObject)
this .globalObject = this .createGlobalObject ();
return Scripting_evaluate (SFNodeCache_default().get (this), this .globalObject, sourceText);
}
finally
{
browser .getScriptStack () .pop ();
}
}, },
initialize__ (sourceText) async initialize__ (sourceText)
{ {
this .disconnect ();
const browser = this .getBrowser (); const browser = this .getBrowser ();
// Create context. // Create context.
@ -690,7 +717,7 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
const shutdown = this .context .get ("shutdown"); const shutdown = this .context .get ("shutdown");
if (typeof shutdown === "function") if (typeof shutdown === "function")
$(window) .on ("unload.Script" + this .getId (), this .call__ .bind (this, shutdown, "shutdown")); $(window) .on (`unload.Script${this .getId ()}`, () => this .call__ (shutdown, "shutdown"));
// Connect prepareEvents. // Connect prepareEvents.
@ -717,7 +744,7 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
const callback = this .context .get (field .getName ()); const callback = this .context .get (field .getName ());
if (typeof callback === "function") if (typeof callback === "function")
field .addInterest ("set_field__", this, callback); field .addInterest ("set_field__", this, callback, [ ]);
break; break;
} }
@ -726,7 +753,7 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
const callback = this .context .get ("set_" + field .getName ()); const callback = this .context .get ("set_" + field .getName ());
if (typeof callback === "function") if (typeof callback === "function")
field .addInterest ("set_field__", this, callback); field .addInterest ("set_field__", this, callback, [ ]);
break; break;
} }
@ -738,43 +765,37 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
const initialize = this .context .get ("initialize"); const initialize = this .context .get ("initialize");
if (typeof initialize === "function") if (typeof initialize === "function")
this .call__ (initialize, "initialize"); await this .call__ (initialize, "initialize");
}, },
call__ (callback, name) async call__ (callback, name)
{ {
const browser = this .getBrowser ();
browser .getScriptStack () .push (this);
try try
{ {
callback .call (SFNodeCache_default().get (this), browser .getCurrentTime ()); await callback .call (SFNodeCache_default().get (this), this .getBrowser () .getCurrentTime ());
} }
catch (error) catch (error)
{ {
this .setError (`in function '${name}'`, error); this .setError (`in function '${name}'`, error);
} }
browser .getScriptStack () .pop ();
}, },
set_field__ (callback, field) async set_field__ (callback, cache, field)
{ {
const browser = this .getBrowser (); const copy = cache .pop () ?? field .create ();
field .setTainted (true);
browser .getScriptStack () .push (this);
try try
{ {
callback .call (SFNodeCache_default().get (this), field .valueOf (), browser .getCurrentTime ()); copy .assign (field);
await callback .call (SFNodeCache_default().get (this), copy .valueOf (), this .getBrowser () .getCurrentTime ());
} }
catch (error) catch (error)
{ {
this .setError (`in function '${field .getName()}'`, error); this .setError (`in function '${field .getName ()}'`, error);
}
finally
{
cache .push (copy);
} }
browser .getScriptStack () .pop ();
field .setTainted (false);
}, },
setError (reason, error) setError (reason, error)
{ {
@ -785,35 +806,9 @@ Object .assign (Object .setPrototypeOf (Script .prototype, Scripting_X3DScriptNo
console .error (`JavaScript Error in Script '${this .getName ()}', ${reason}\nworld url is '${worldURL}':`); console .error (`JavaScript Error in Script '${this .getName ()}', ${reason}\nworld url is '${worldURL}':`);
console .error (error); console .error (error);
}, },
disconnect ()
{
// Call shutdown.
const shutdown = this .context ?.get ("shutdown");
if (typeof shutdown === "function")
this .call__ (shutdown, "shutdown");
// Disconnect shutdown.
$(window) .off (".Script" + this .getId ());
// Disconnect prepareEvents.
this .getBrowser () .prepareEvents () .removeInterest ("call__", this);
// Disconnect eventsProcessed.
this .removeInterest ("call__", this);
// Disconnect fields.
for (const field of this .getUserDefinedFields ())
field .removeInterest ("set_field__", this);
},
dispose () dispose ()
{ {
this .disconnect (); this .unloadData ();
Scripting_X3DScriptNode .prototype .dispose .call (this); Scripting_X3DScriptNode .prototype .dispose .call (this);
}, },

View File

@ -1,7 +1,7 @@
/* X_ITE v9.2.4 */(() => { // webpackBootstrap /* X_ITE v9.7.0 */(() => { // webpackBootstrap
/******/ var __webpack_modules__ = ({ /******/ var __webpack_modules__ = ({
/***/ 636: /***/ 134:
/***/ (function(__unused_webpack_module, exports, __webpack_require__) { /***/ (function(__unused_webpack_module, exports, __webpack_require__) {
/** /**
@ -13599,7 +13599,7 @@
console.warn('Font file could not be downloaded. Try using a different browser.'); console.warn('Font file could not be downloaded. Try using a different browser.');
} }
} else { } else {
var fs = __webpack_require__(432); var fs = __webpack_require__(256);
var buffer = arrayBufferToNodeBuffer(arrayBuffer); var buffer = arrayBufferToNodeBuffer(arrayBuffer);
fs.writeFileSync(fileName, buffer); fs.writeFileSync(fileName, buffer);
} }
@ -14072,7 +14072,7 @@
* @param {Function} callback - The function to call when the font load completes * @param {Function} callback - The function to call when the font load completes
*/ */
function loadFromFile(path, callback) { function loadFromFile(path, callback) {
var fs = __webpack_require__(432); var fs = __webpack_require__(256);
fs.readFile(path, function(err, buffer) { fs.readFile(path, function(err, buffer) {
if (err) { if (err) {
return callback(err.message); return callback(err.message);
@ -14449,7 +14449,7 @@
* @return {opentype.Font} * @return {opentype.Font}
*/ */
function loadSync(url, opt) { function loadSync(url, opt) {
var fs = __webpack_require__(432); var fs = __webpack_require__(256);
var buffer = fs.readFileSync(url); var buffer = fs.readFileSync(url);
return parseBuffer(nodeBufferToArrayBuffer(buffer), opt); return parseBuffer(nodeBufferToArrayBuffer(buffer), opt);
} }
@ -14484,15 +14484,15 @@
/***/ }), /***/ }),
/***/ 72: /***/ 823:
/***/ ((module) => { /***/ ((module) => {
"use strict"; "use strict";
module.exports = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("lib/jquery"); module.exports = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("lib/jquery");
/***/ }), /***/ }),
/***/ 432: /***/ 256:
/***/ (() => { /***/ (() => {
/* (ignored) */ /* (ignored) */
@ -14564,25 +14564,25 @@ var __webpack_exports__ = {};
// UNUSED EXPORTS: default // UNUSED EXPORTS: default
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components"); const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components");
var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject); var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Fields"); const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Fields");
var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject); var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DFieldDefinition"); const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DFieldDefinition");
var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject); var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/FieldDefinitionArray"); const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/FieldDefinitionArray");
var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject); var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DNode\")"
const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Core/X3DNode"); const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Core/X3DNode");
var X3DNode_default = /*#__PURE__*/__webpack_require__.n(X3DNode_namespaceObject); var X3DNode_default = /*#__PURE__*/__webpack_require__.n(X3DNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Networking/X3DUrlObject\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Networking/X3DUrlObject\")"
const X3DUrlObject_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Networking/X3DUrlObject"); const X3DUrlObject_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Networking/X3DUrlObject");
var X3DUrlObject_default = /*#__PURE__*/__webpack_require__.n(X3DUrlObject_namespaceObject); var X3DUrlObject_default = /*#__PURE__*/__webpack_require__.n(X3DUrlObject_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Namespace"); const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Namespace");
var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject); var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/TextAlignment.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/TextAlignment.js
/******************************************************************************* /*******************************************************************************
@ -14648,12 +14648,12 @@ const __default__ = TextAlignment;
Namespace_default().add ("TextAlignment", "x_ite/Browser/Text/TextAlignment", __default__); Namespace_default().add ("TextAlignment", "x_ite/Browser/Text/TextAlignment", __default__);
/* harmony default export */ const Text_TextAlignment = (__default__); /* harmony default export */ const Text_TextAlignment = (__default__);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/InputOutput/FileLoader\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/InputOutput/FileLoader\")"
const FileLoader_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/InputOutput/FileLoader"); const FileLoader_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/InputOutput/FileLoader");
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DConstants"); const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DConstants");
var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject); var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Networking/URLs\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Networking/URLs\")"
const URLs_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Browser/Networking/URLs"); const URLs_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Browser/Networking/URLs");
var URLs_default = /*#__PURE__*/__webpack_require__.n(URLs_namespaceObject); var URLs_default = /*#__PURE__*/__webpack_require__.n(URLs_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Text/X3DFontStyleNode.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Text/X3DFontStyleNode.js
/******************************************************************************* /*******************************************************************************
@ -14712,30 +14712,29 @@ var URLs_default = /*#__PURE__*/__webpack_require__.n(URLs_namespaceObject);
/* /*
* Font paths for default SERIF, SANS and TYPWRITER families. * Font paths for default SERIF, SANS and TYPEWRITER families.
*/ */
const Fonts = const Fonts = new Map ([
{ ["SERIF", new Map ([
SERIF: { ["PLAIN", URLs_default().getFontsURL ("DroidSerif-Regular.ttf")],
PLAIN: URLs_default().getFontsURL ("DroidSerif-Regular.ttf"), ["ITALIC", URLs_default().getFontsURL ("DroidSerif-Italic.ttf")],
ITALIC: URLs_default().getFontsURL ("DroidSerif-Italic.ttf"), ["BOLD", URLs_default().getFontsURL ("DroidSerif-Bold.ttf")],
BOLD: URLs_default().getFontsURL ("DroidSerif-Bold.ttf"), ["BOLDITALIC", URLs_default().getFontsURL ("DroidSerif-BoldItalic.ttf")],
BOLDITALIC: URLs_default().getFontsURL ("DroidSerif-BoldItalic.ttf"), ])],
}, ["SANS", new Map ([
SANS: { ["PLAIN", URLs_default().getFontsURL ("Ubuntu-R.ttf")],
PLAIN: URLs_default().getFontsURL ("Ubuntu-R.ttf"), ["ITALIC", URLs_default().getFontsURL ("Ubuntu-RI.ttf")],
ITALIC: URLs_default().getFontsURL ("Ubuntu-RI.ttf"), ["BOLD", URLs_default().getFontsURL ("Ubuntu-B.ttf")],
BOLD: URLs_default().getFontsURL ("Ubuntu-B.ttf"), ["BOLDITALIC", URLs_default().getFontsURL ("Ubuntu-BI.ttf")],
BOLDITALIC: URLs_default().getFontsURL ("Ubuntu-BI.ttf"), ])],
}, ["TYPEWRITER", new Map ([
TYPEWRITER: { ["PLAIN", URLs_default().getFontsURL ("UbuntuMono-R.ttf")],
PLAIN: URLs_default().getFontsURL ("UbuntuMono-R.ttf"), ["ITALIC", URLs_default().getFontsURL ("UbuntuMono-RI.ttf")],
ITALIC: URLs_default().getFontsURL ("UbuntuMono-RI.ttf"), ["BOLD", URLs_default().getFontsURL ("UbuntuMono-B.ttf")],
BOLD: URLs_default().getFontsURL ("UbuntuMono-B.ttf"), ["BOLDITALIC", URLs_default().getFontsURL ("UbuntuMono-BI.ttf")],
BOLDITALIC: URLs_default().getFontsURL ("UbuntuMono-BI.ttf"), ])],
}, ]);
};
function X3DFontStyleNode (executionContext) function X3DFontStyleNode (executionContext)
{ {
@ -14837,10 +14836,10 @@ Object .assign (Object .setPrototypeOf (X3DFontStyleNode .prototype, (X3DNode_de
}, },
getDefaultFont (familyName) getDefaultFont (familyName)
{ {
const family = Fonts [familyName]; const family = Fonts .get (familyName);
if (family) if (family)
return family [this ._style .getValue ()] || family .PLAIN; return family .get (this ._style .getValue ()) ?? family .get ("PLAIN");
return; return;
}, },
@ -14857,7 +14856,7 @@ Object .assign (Object .setPrototypeOf (X3DFontStyleNode .prototype, (X3DNode_de
this .familyStack .length = 0; this .familyStack .length = 0;
for (const familyName of family) for (const familyName of family)
this .familyStack .push (this .getDefaultFont (familyName) || familyName); this .familyStack .push (this .getDefaultFont (familyName) ?? familyName);
this .loadNext (); this .loadNext ();
}, },
@ -14922,19 +14921,19 @@ const X3DFontStyleNode_default_ = X3DFontStyleNode;
Namespace_default().add ("X3DFontStyleNode", "x_ite/Components/Text/X3DFontStyleNode", X3DFontStyleNode_default_); Namespace_default().add ("X3DFontStyleNode", "x_ite/Components/Text/X3DFontStyleNode", X3DFontStyleNode_default_);
/* harmony default export */ const Text_X3DFontStyleNode = (X3DFontStyleNode_default_); /* harmony default export */ const Text_X3DFontStyleNode = (X3DFontStyleNode_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Core/PrimitiveQuality\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Core/PrimitiveQuality\")"
const PrimitiveQuality_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Browser/Core/PrimitiveQuality"); const PrimitiveQuality_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Browser/Core/PrimitiveQuality");
var PrimitiveQuality_default = /*#__PURE__*/__webpack_require__.n(PrimitiveQuality_namespaceObject); var PrimitiveQuality_default = /*#__PURE__*/__webpack_require__.n(PrimitiveQuality_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Box2\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Box2\")"
const Box2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Geometry/Box2"); const Box2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Geometry/Box2");
var Box2_default = /*#__PURE__*/__webpack_require__.n(Box2_namespaceObject); var Box2_default = /*#__PURE__*/__webpack_require__.n(Box2_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Box3\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Box3\")"
const Box3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Geometry/Box3"); const Box3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Geometry/Box3");
var Box3_default = /*#__PURE__*/__webpack_require__.n(Box3_namespaceObject); var Box3_default = /*#__PURE__*/__webpack_require__.n(Box3_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector2\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector2\")"
const Vector2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Vector2"); const Vector2_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Numbers/Vector2");
var Vector2_default = /*#__PURE__*/__webpack_require__.n(Vector2_namespaceObject); var Vector2_default = /*#__PURE__*/__webpack_require__.n(Vector2_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector3\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector3\")"
const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Vector3"); const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Numbers/Vector3");
var Vector3_default = /*#__PURE__*/__webpack_require__.n(Vector3_namespaceObject); var Vector3_default = /*#__PURE__*/__webpack_require__.n(Vector3_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/X3DTextGeometry.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/X3DTextGeometry.js
/******************************************************************************* /*******************************************************************************
@ -14993,22 +14992,22 @@ var Vector3_default = /*#__PURE__*/__webpack_require__.n(Vector3_namespaceObject
var var
bbox = new (Box2_default()) (), bbox = new (Box2_default()) (),
lineBBox = new (Box2_default()) (), lineBBox = new (Box2_default()) (),
min = new (Vector2_default()) (0, 0), min = new (Vector2_default()) (),
max = new (Vector2_default()) (0, 0), max = new (Vector2_default()) (),
glyphMin = new (Vector2_default()) (0, 0), glyphMin = new (Vector2_default()) (),
glyphMax = new (Vector2_default()) (0, 0), glyphMax = new (Vector2_default()) (),
min3 = new (Vector3_default()) (0, 0, 0), min3 = new (Vector3_default()) (),
max3 = new (Vector3_default()) (0, 0, 0), max3 = new (Vector3_default()) (),
size = new (Vector2_default()) (0, 0), size = new (Vector2_default()) (),
center = new (Vector2_default()) (0, 0), center = new (Vector2_default()) (),
size1_2 = new (Vector2_default()) (0, 0), size1_2 = new (Vector2_default()) (),
translation = new (Vector2_default()) (0, 0), translation = new (Vector2_default()) (),
lineBound = new (Vector2_default()) (0, 0), lineBound = new (Vector2_default()) (),
origin = new (Vector3_default()) (0, 0, 0), origin = new (Vector3_default()) (),
vector = new (Vector2_default()) (0, 0), vector = new (Vector2_default()) (),
box2 = new (Box2_default()) (), box2 = new (Box2_default()) (),
zero2 = new (Vector2_default()) (0, 0), zero2 = new (Vector2_default()) (),
zero3 = new (Vector3_default()) (0, 0, 0); zero3 = new (Vector3_default()) ();
function X3DTextGeometry (text, fontStyle) function X3DTextGeometry (text, fontStyle)
{ {
@ -15016,10 +15015,10 @@ function X3DTextGeometry (text, fontStyle)
this .text = text; this .text = text;
this .fontStyle = fontStyle; this .fontStyle = fontStyle;
this .glyphs = [ ]; this .glyphs = [ ];
this .minorAlignment = new (Vector2_default()) (0, 0); this .minorAlignment = new (Vector2_default()) ();
this .translations = [ ]; this .translations = [ ];
this .charSpacings = [ ]; this .charSpacings = [ ];
this .bearing = new (Vector2_default()) (0, 0); this .bearing = new (Vector2_default()) ();
this .yPad = [ ]; this .yPad = [ ];
this .bbox = new (Box3_default()) (); this .bbox = new (Box3_default()) ();
} }
@ -15108,7 +15107,7 @@ Object .assign (X3DTextGeometry .prototype,
// Resize array in grow only fashion. // Resize array in grow only fashion.
for (var i = array .length; i < size; ++ i) for (var i = array .length; i < size; ++ i)
array .push (new (Vector2_default()) (0, 0)); array .push (new (Vector2_default()) ());
array .length = size; array .length = size;
}, },
@ -15556,13 +15555,13 @@ const X3DTextGeometry_default_ = X3DTextGeometry;
Namespace_default().add ("X3DTextGeometry", "x_ite/Browser/Text/X3DTextGeometry", X3DTextGeometry_default_); Namespace_default().add ("X3DTextGeometry", "x_ite/Browser/Text/X3DTextGeometry", X3DTextGeometry_default_);
/* harmony default export */ const Text_X3DTextGeometry = (X3DTextGeometry_default_); /* harmony default export */ const Text_X3DTextGeometry = (X3DTextGeometry_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Matrix4\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Matrix4\")"
const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Numbers/Matrix4"); const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Numbers/Matrix4");
var Matrix4_default = /*#__PURE__*/__webpack_require__.n(Matrix4_namespaceObject); var Matrix4_default = /*#__PURE__*/__webpack_require__.n(Matrix4_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithms/Bezier\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithms/Bezier\")"
const Bezier_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("standard/Math/Algorithms/Bezier"); const Bezier_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("standard/Math/Algorithms/Bezier");
var Bezier_default = /*#__PURE__*/__webpack_require__.n(Bezier_namespaceObject); var Bezier_default = /*#__PURE__*/__webpack_require__.n(Bezier_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"lib/libtess\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"lib/libtess\")"
const libtess_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("lib/libtess"); const libtess_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("lib/libtess");
var libtess_default = /*#__PURE__*/__webpack_require__.n(libtess_namespaceObject); var libtess_default = /*#__PURE__*/__webpack_require__.n(libtess_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/PolygonText.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/PolygonText.js
/******************************************************************************* /*******************************************************************************
@ -15639,8 +15638,8 @@ Object .assign (Object .setPrototypeOf (PolygonText .prototype, Text_X3DTextGeom
build: (() => build: (() =>
{ {
const const
min = new (Vector3_default()) (0, 0, 0), min = new (Vector3_default()) (),
max = new (Vector3_default()) (0, 0, 0); max = new (Vector3_default()) ();
return function () return function ()
{ {
@ -15891,7 +15890,7 @@ Object .assign (Object .setPrototypeOf (PolygonText .prototype, Text_X3DTextGeom
tessy .gluTessCallback ((libtess_default()).gluEnum .GLU_TESS_VERTEX_DATA, vertexCallback); tessy .gluTessCallback ((libtess_default()).gluEnum .GLU_TESS_VERTEX_DATA, vertexCallback);
tessy .gluTessCallback ((libtess_default()).gluEnum .GLU_TESS_COMBINE, combineCallback); tessy .gluTessCallback ((libtess_default()).gluEnum .GLU_TESS_COMBINE, combineCallback);
tessy .gluTessProperty ((libtess_default()).gluEnum .GLU_TESS_WINDING_RULE, (libtess_default()).windingRule .GLU_TESS_WINDING_ODD); tessy .gluTessProperty ((libtess_default()).gluEnum .GLU_TESS_WINDING_RULE, (libtess_default()).windingRule .GLU_TESS_WINDING_NONZERO);
tessy .gluTessNormal (0, 0, 1); tessy .gluTessNormal (0, 0, 1);
return function (contours, triangles) return function (contours, triangles)
@ -16048,8 +16047,8 @@ const FontStyle_default_ = FontStyle;
Namespace_default().add ("FontStyle", "x_ite/Components/Text/FontStyle", FontStyle_default_); Namespace_default().add ("FontStyle", "x_ite/Components/Text/FontStyle", FontStyle_default_);
/* harmony default export */ const Text_FontStyle = (FontStyle_default_); /* harmony default export */ const Text_FontStyle = (FontStyle_default_);
;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/X3DTextContext.js ;// CONCATENATED MODULE: ./src/x_ite/Browser/Text/X3DTextContext.js
/* provided dependency */ var $ = __webpack_require__(72); /* provided dependency */ var $ = __webpack_require__(823);
/* provided dependency */ var opentype = __webpack_require__(636); /* provided dependency */ var opentype = __webpack_require__(134);
/******************************************************************************* /*******************************************************************************
* *
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@ -16189,10 +16188,10 @@ const X3DTextContext_default_ = X3DTextContext;
Namespace_default().add ("X3DTextContext", "x_ite/Browser/Text/X3DTextContext", X3DTextContext_default_); Namespace_default().add ("X3DTextContext", "x_ite/Browser/Text/X3DTextContext", X3DTextContext_default_);
/* harmony default export */ const Text_X3DTextContext = (X3DTextContext_default_); /* harmony default export */ const Text_X3DTextContext = (X3DTextContext_default_);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DGeometryNode\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/X3DGeometryNode\")"
const X3DGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Components/Rendering/X3DGeometryNode"); const X3DGeometryNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Components/Rendering/X3DGeometryNode");
var X3DGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DGeometryNode_namespaceObject); var X3DGeometryNode_default = /*#__PURE__*/__webpack_require__.n(X3DGeometryNode_namespaceObject);
;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DCast\")" ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DCast\")"
const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.2.4")] .require ("x_ite/Base/X3DCast"); const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-9.7.0")] .require ("x_ite/Base/X3DCast");
var X3DCast_default = /*#__PURE__*/__webpack_require__.n(X3DCast_namespaceObject); var X3DCast_default = /*#__PURE__*/__webpack_require__.n(X3DCast_namespaceObject);
;// CONCATENATED MODULE: ./src/x_ite/Components/Text/Text.js ;// CONCATENATED MODULE: ./src/x_ite/Components/Text/Text.js
/******************************************************************************* /*******************************************************************************
@ -16287,8 +16286,10 @@ Object .assign (Object .setPrototypeOf (Text .prototype, (X3DGeometryNode_defaul
{ {
X3DGeometryNode_default().prototype .set_live__ .call (this); X3DGeometryNode_default().prototype .set_live__ .call (this);
if (this .getLive () .getValue ()) const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
this .getBrowser () .getBrowserOptions () ._PrimitiveQuality .addInterest ("requestRebuild", this);
if (this .getLive () .getValue () || alwaysUpdate)
this .getBrowser () .getBrowserOptions () ._PrimitiveQuality .addInterest ("requestRebuild", this);
else else
this .getBrowser () .getBrowserOptions () ._PrimitiveQuality .removeInterest ("requestRebuild", this); this .getBrowser () .getBrowserOptions () ._PrimitiveQuality .removeInterest ("requestRebuild", this);
}, },

File diff suppressed because one or more lines are too long

View File

@ -4,7 +4,7 @@
// Handle both importing via UMD and modules: // Handle both importing via UMD and modules:
export default X3D; export default X3D;
//export = X3D; export = X3D;
declare const X3D: X3D; declare const X3D: X3D;
@ -45,6 +45,7 @@ interface X3D
readonly ProtoDeclarationArray: typeof ProtoDeclarationArray; readonly ProtoDeclarationArray: typeof ProtoDeclarationArray;
readonly X3DExternProtoDeclaration: typeof X3DExternProtoDeclaration; readonly X3DExternProtoDeclaration: typeof X3DExternProtoDeclaration;
readonly X3DProtoDeclaration: typeof X3DProtoDeclaration; readonly X3DProtoDeclaration: typeof X3DProtoDeclaration;
readonly NamedNodesArray: typeof NamedNodesArray;
readonly ImportedNodesArray: typeof ImportedNodesArray; readonly ImportedNodesArray: typeof ImportedNodesArray;
readonly X3DImportedNode: typeof X3DImportedNode; readonly X3DImportedNode: typeof X3DImportedNode;
readonly ExportedNodesArray: typeof ExportedNodesArray; readonly ExportedNodesArray: typeof ExportedNodesArray;
@ -176,6 +177,10 @@ declare class X3DBrowser
* Returns a list of all abstract node classes that are supported by this browser. * Returns a list of all abstract node classes that are supported by this browser.
*/ */
readonly abstractNodes: AbstractNodesArray; readonly abstractNodes: AbstractNodesArray;
/**
* Returns a list of all field type classes that are supported by this browser.
*/
readonly fieldTypes: FieldTypesArray;
/** /**
* A String value containing the URL against which relative URLs are resolved. By default, this is the address of the web page itself. Although this feature is rarely needed, it can be useful when loading a `data:` or `blob:` URL with `Browser.loadURL`, or when using `Browser.createX3DFromString`. The value of *baseURL* will only be used with the external browser. * A String value containing the URL against which relative URLs are resolved. By default, this is the address of the web page itself. Although this feature is rarely needed, it can be useful when loading a `data:` or `blob:` URL with `Browser.loadURL`, or when using `Browser.createX3DFromString`. The value of *baseURL* will only be used with the external browser.
*/ */
@ -184,7 +189,10 @@ declare class X3DBrowser
* The real type of this class is dependent on whether the user code is inside a prototype instance or not. If the user code is inside a prototype instance the property represent an X3DExecutionContext otherwise it represent an X3DScene. * The real type of this class is dependent on whether the user code is inside a prototype instance or not. If the user code is inside a prototype instance the property represent an X3DExecutionContext otherwise it represent an X3DScene.
*/ */
readonly currentScene: X3DScene; readonly currentScene: X3DScene;
/**
* Returns a reference to the corresponding X3DCanvasElement.
*/
readonly element: X3DCanvasElement;
/** /**
* Replace the current world with this new scene that has been loaded or constructed from somewhere. A Promise is returned that will be resolved when the scene is completely loaded. * Replace the current world with this new scene that has been loaded or constructed from somewhere. A Promise is returned that will be resolved when the scene is completely loaded.
*/ */
@ -278,6 +286,26 @@ declare class X3DBrowser
* Prints *args* to the browsers console, inserting a newline character after the output. Successive calls to this function will result in each output presented on separate lines. The output is the implicit call to the objects `toString ()` function. * Prints *args* to the browsers console, inserting a newline character after the output. Successive calls to this function will result in each output presented on separate lines. The output is the implicit call to the objects `toString ()` function.
*/ */
printLn (... args: any []): void; printLn (... args: any []): void;
/**
* Returns the X3D VRML-encoded string of current scene that, if parsed as the value of `createX3DFromString ()` of X3DBrowser, produce this scene.
*/
toVRMLString (options?: ToStringOptions): string;
/**
* Returns the X3D XML-encoded string of current scene that, if parsed as the value of `createX3DFromString ()` of X3DBrowser, produce this scene.
*
* For *options* see `X3DScene.toVRMLString`.
*/
toXMLString (options?: ToStringOptions): string;
/**
* Returns the X3D JSON-encoded string of current scene that, if parsed as the value of `createX3DFromString ()` of X3DBrowser, produce this scene.
*
* For *options* see `X3DScene.toVRMLString`.
*/
toJSONString (options?: ToStringOptions): string;
/**
* Disposes this object.
*/
dispose (): void;
// VRML methods // VRML methods
@ -304,7 +332,7 @@ declare class X3DBrowser
/** /**
* Replace the current world with this new nodes that has been loaded or constructed from somewhere. * Replace the current world with this new nodes that has been loaded or constructed from somewhere.
*/ */
replaceWorld (nodes: MFNode): string; replaceWorld (nodes: MFNode): Promise <void>;
/** /**
* The string may be any valid VRML content. * The string may be any valid VRML content.
*/ */
@ -421,13 +449,13 @@ type ContextMenuOptions = {
callback?: MenuCallback, callback?: MenuCallback,
build?: ($triggerElement: unknown, e: Event) => ContextMenuOptions, build?: ($triggerElement: unknown, e: Event) => ContextMenuOptions,
itemClickEvent?: string, itemClickEvent?: string,
} };
type UserMenuCallback = () => UserMenuItems type UserMenuCallback = (browser: X3DBrowser) => UserMenuItems;
type UserMenuItems = Record <string, UserMenuItem> type UserMenuItems = Record <string, UserMenuItem>;
type MenuCallback = (itemKey: string, options: ContextMenuOptions, event: Event) => (boolean | void) type MenuCallback = (itemKey: string, options: ContextMenuOptions, event: Event) => (boolean | void);
type MenuIconCallback = (options: ContextMenuOptions, $itemElement: HTMLElement, itemKey: string, item: unknown) => string type MenuIconCallback = (options: ContextMenuOptions, $itemElement: HTMLElement, itemKey: string, item: unknown) => string;
type MenuBoolCallback = (itemKey: string, options: ContextMenuOptions) => boolean type MenuBoolCallback = (itemKey: string, options: ContextMenuOptions) => boolean;
type UserMenuItem = { type UserMenuItem = {
name: string, name: string,
isHtmlName?: boolean, isHtmlName?: boolean,
@ -446,7 +474,7 @@ type UserMenuItem = {
items?: UserMenuItems, items?: UserMenuItems,
accesskey?: string, accesskey?: string,
dataAttr?: Record <string, string>, dataAttr?: Record <string, string>,
} };
/** /**
* A scene is an extension of the execution context services with additional services provided. * A scene is an extension of the execution context services with additional services provided.
@ -529,6 +557,10 @@ declare class X3DScene extends X3DExecutionContext
* For *options* see `X3DScene.toVRMLString`. * For *options* see `X3DScene.toVRMLString`.
*/ */
toJSONString (options?: ToStringOptions): string; toJSONString (options?: ToStringOptions): string;
/**
* Disposes this object.
*/
dispose (): void;
} }
/** /**
@ -656,11 +688,11 @@ interface X3DConcreteNode extends X3DAbstractNode
/** /**
* The default container field name for this node. This property is read only. * The default container field name for this node. This property is read only.
*/ */
readonly containerField: string; static readonly containerField: string;
/** /**
* Returns an array with two strings defining the first version and last version where this node is specified. This property is read only. * Returns an array with two strings defining the first version and last version where this node is specified. This property is read only.
*/ */
readonly specificationRange: static readonly specificationRange:
{ {
readonly from: string, readonly from: string,
readonly to: string, readonly to: string,
@ -668,7 +700,7 @@ interface X3DConcreteNode extends X3DAbstractNode
/** /**
* Returns a list of fields defined for the SFNode object. * Returns a list of fields defined for the SFNode object.
*/ */
readonly fieldDefinitions: FieldDefinitionArray; static readonly fieldDefinitions: FieldDefinitionArray;
} }
/** /**
@ -684,17 +716,22 @@ interface X3DAbstractNode
/** /**
* The node type name for this class. This property is read only. * The node type name for this class. This property is read only.
*/ */
readonly typeName: string; static readonly typeName: string;
/** /**
* Returns an object with two properties *name* and *level* which can be used to get a ComponentInfo object from the X3D browser. This property is read only. * Returns an object with two properties *name* and *level* which can be used to get a ComponentInfo object from the X3D browser. This property is read only.
*/ */
readonly componentInfo: static readonly componentInfo:
{ {
readonly name: string, readonly name: string,
readonly level: number, readonly level: number,
}; };
} }
/**
* FieldTypesArray is an object that represents an array of classes derived from X3DField. This is a read-only object. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. *FieldTypesArray*[*index*], where *index* is an integer-valued expression with 0\<=*index*\<length and length is the number of elements in the array).
*/
declare class FieldTypesArray extends X3DInfoArray <X3DField> { }
/** /**
* ProfileInfoArray is an object that represents an array of ProfileInfo objects. This is a read-only object. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. *profileInfoArrayName*[*index*], where *index* is an integer-valued expression with 0\<=*index*\<length and length is the number of elements in the array). * ProfileInfoArray is an object that represents an array of ProfileInfo objects. This is a read-only object. Individual elements of the array can be referenced using the standard C-style dereferencing operator (e.g. *profileInfoArrayName*[*index*], where *index* is an integer-valued expression with 0\<=*index*\<length and length is the number of elements in the array).
*/ */
@ -788,7 +825,7 @@ declare class ImportedNodesArray extends X3DInfoArray <X3DImportedNode> { }
/** /**
* The X3DImportedNode object stores information about a particular import declaration. The object consists solely of read-only properties. It does not define any additional functions. * The X3DImportedNode object stores information about a particular import declaration. The object consists solely of read-only properties. It does not define any additional functions.
*/ */
declare class X3DImportedNode class X3DImportedNode
{ {
/** /**
* The SFNode object of the Inline node. This property is read only. * The SFNode object of the Inline node. This property is read only.
@ -816,7 +853,7 @@ declare class ExportedNodesArray extends X3DInfoArray <X3DExportedNode> { }
/** /**
* The X3DExportedNode object stores information about a particular export declaration. The object consists solely of read-only properties. It does not define any additional functions. * The X3DExportedNode object stores information about a particular export declaration. The object consists solely of read-only properties. It does not define any additional functions.
*/ */
declare class X3DExportedNode class X3DExportedNode
{ {
/** /**
* A string of the exported name. This property is read only. * A string of the exported name. This property is read only.
@ -1435,6 +1472,9 @@ declare class X3DFieldDefinition
*/ */
declare class X3DField declare class X3DField
{ {
/**
* Returns a copy of this X3DField.
*/
copy (): this; copy (): this;
/** /**
* Returns true if the passed SF* or MF* *field* of the same type is equals to this object, otherwise false. * Returns true if the passed SF* or MF* *field* of the same type is equals to this object, otherwise false.
@ -1462,7 +1502,7 @@ declare class X3DField
getFieldInterests (): Set <this> getFieldInterests (): Set <this>
addFieldCallback (key: any, callback: (value: unknown) => void): void; addFieldCallback (key: any, callback: (value: unknown) => void): void;
removeFieldCallback (key: any): void; removeFieldCallback (key: any): void;
getFieldCallbacks (): Map <any, (value: X3DField) => void>; getFieldCallbacks (): Map <any, (value: this) => void>;
addInputRoute (route: X3DRoute): void; addInputRoute (route: X3DRoute): void;
removeInputRoute (route: X3DRoute): void; removeInputRoute (route: X3DRoute): void;
getInputRoutes (): Set <X3DRoute>; getInputRoutes (): Set <X3DRoute>;
@ -1472,6 +1512,9 @@ declare class X3DField
addRouteCallback (key: any, callback: () => void): void; addRouteCallback (key: any, callback: () => void): void;
removeRouteCallback (key: any): void; removeRouteCallback (key: any): void;
getRouteCallbacks (): Map <any, () => void>; getRouteCallbacks (): Map <any, () => void>;
/**
* Disposes this object.
*/
dispose (): void; dispose (): void;
} }
@ -1890,6 +1933,10 @@ declare class SFNode extends X3DField
* @deprecated Use `node .getField (name) .addFieldCallback (key, callback)`. * @deprecated Use `node .getField (name) .addFieldCallback (key, callback)`.
*/ */
addFieldCallback (name: string, key: any, callback: (value: unknown) => void): void; addFieldCallback (name: string, key: any, callback: (value: unknown) => void): void;
/**
* Returns the corresponding X3DFieldDefinition object associated with *name*.
*/
getFieldDefinition (name: string): X3DFieldDefinition;
/** /**
* Returns a list of fields defined for the SFNode object. * Returns a list of fields defined for the SFNode object.
*/ */
@ -2040,11 +2087,15 @@ declare class SFRotation extends X3DField
/** /**
* Set the value of this rotation to the rotation matrix passed in *matrix*. * Set the value of this rotation to the rotation matrix passed in *matrix*.
*/ */
setMatrix (matrix: SFMatrix3): void; setMatrix (matrix: SFMatrix3d | SFMatrix3f): void;
/** /**
* Returns a SFRotation whose value is the spherical linear interpolation between this object's rotation and *destRotation* at value 0 <= *t* <= 1. For *t* = 0, the value is this object's rotation. For *t* = 1, the value is *destRotation*. * Returns a SFRotation whose value is the spherical linear interpolation between this object's rotation and *destRotation* at value 0 <= *t* <= 1. For *t* = 0, the value is this object's rotation. For *t* = 1, the value is *destRotation*.
*/ */
slerp (destination: SFRotation, t: number): SFRotation; slerp (destination: SFRotation, t: number): SFRotation;
/**
* Straightens the rotation so that the x-axis of the resulting rotation is parallel to the plane spawned by upVector. The default value for *upVector* is the y-axis.
*/
straighten (upVector?: SFVec3d | SFVec3f): SFRotation;
} }
/** /**
@ -5127,7 +5178,7 @@ interface ComposedShaderProxy extends X3DShaderNodeProxy, X3DProgrammableShaderO
* *
* This field is of access type 'inputOutput' and type MFNode. * This field is of access type 'inputOutput' and type MFNode.
*/ */
field: MFNode <X3DChildNodeProxy>; field: MFNode <fieldProxy>;
/** /**
* isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events. * isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
* *
@ -13097,7 +13148,7 @@ interface PackagedShaderProxy extends X3DShaderNodeProxy, X3DUrlObjectProxy, X3D
* *
* This field is of access type 'inputOutput' and type MFNode. * This field is of access type 'inputOutput' and type MFNode.
*/ */
field: MFNode <X3DChildNodeProxy>; field: MFNode <fieldProxy>;
/** /**
* isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events. * isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
* *
@ -15457,7 +15508,7 @@ interface ScriptProxy extends X3DScriptNodeProxy
* *
* This field is of access type 'inputOutput' and type MFNode. * This field is of access type 'inputOutput' and type MFNode.
*/ */
field: MFNode <X3DChildNodeProxy>; field: MFNode <fieldProxy>;
/** /**
* load=true means load immediately, load=false means defer loading or else unload a previously loaded scene. * load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.
* *
@ -15681,7 +15732,7 @@ interface ShaderProgramProxy extends X3DNodeProxy, X3DUrlObjectProxy, X3DProgram
* *
* This field is of access type 'inputOutput' and type MFNode. * This field is of access type 'inputOutput' and type MFNode.
*/ */
field: MFNode <X3DChildNodeProxy>; field: MFNode <fieldProxy>;
/** /**
* load=true means load immediately, load=false means defer loading or else unload a previously loaded scene. * load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.
* *

File diff suppressed because it is too large Load Diff

73
etc/jsxgraph_types.patch Normal file
View File

@ -0,0 +1,73 @@
--- node_modules/jsxgraph/distrib/index.d.ts 2024-04-29 23:05:16.785680814 -0700
+++ tsbuild/deps/jsxgraphcore.d.mts 2024-06-11 19:48:54.158169983 -0700
@@ -15,7 +15,7 @@
/**
* JSXGraph in the namespace JXG.
*/
-declare namespace JXG {
+// export namespace JXG {
/**
* Store a reference to every board in this central list.
* This will at some point replace JXG.JSXGraph.boards.
@@ -421,7 +421,7 @@
parents: unknown[],
attrClass: string,
attrArray: unknown[]
- ): JXG.Point[] | false;
+ ): Point[] | false;
/**
* This registers a new construction element to JSXGraph for the construction via the JXG.Board.create interface.
* @param element The elements name. This is case-insensitive, existing elements with the same name will be overwritten.
@@ -5125,6 +5125,10 @@
export interface ZoomOptions {
/**
+ * Whether it is allowed to zoom
+ */
+ enabled?: boolean;
+ /**
* Horizontal zoom factor (multiplied to Board.zoomX).
*/
factorX?: number;
@@ -5742,8 +5746,8 @@
/**
*
*/
- const JSXGraph: Graph;
- let Options: JXGOptions;
+ export const JSXGraph: Graph;
+ export let Options: JXGOptions;
/**
*
@@ -5756,7 +5760,7 @@
/**
* Dump Namespace.
*/
- const Dump: Dump;
+ export const Dump: Dump;
/**
*
@@ -6054,7 +6058,7 @@
/**
* Math Namespace
*/
- const Math: Math;
+ export const Math: Math;
/**
* This namespace contains algorithms for Boolean operations on paths, i.e. intersection, union and difference of paths.
@@ -6303,11 +6307,4 @@
}
export type touchProperty = string;
-}
-
-/**
- * JSXGraph in the module "jsxgraph".
- */
-declare module "jsxgraph" {
- export = JXG;
-}
+//}

View File

@ -47,6 +47,8 @@
"deps/x_ite/assets/components/Scripting.js", "deps/x_ite/assets/components/Scripting.js",
"deps/x_ite/assets/components/Text.js", "deps/x_ite/assets/components/Text.js",
"deps/x_ite/assets/images/logo.128.png", "deps/x_ite/assets/images/logo.128.png",
"deps/jsxgraphcore.mjs",
"deps/jsxgraph.css",
"adapptlet.js", "adapptlet.js",
"adapptypes.js", "adapptypes.js",
"conway.js", "conway.js",

153
etc/x_ite_types.patch Normal file
View File

@ -0,0 +1,153 @@
--- etc/deps/x_ite/x_ite.d.mts 2024-06-09 21:07:39.573824568 -0700
+++ tsbuild/deps/x_ite/x_ite.d.mts 2024-06-09 21:08:25.037633672 -0700
@@ -4,7 +4,7 @@
// Handle both importing via UMD and modules:
export default X3D;
-export = X3D;
+// export = X3D;
declare const X3D: X3D;
@@ -688,11 +688,11 @@
/**
* The default container field name for this node. This property is read only.
*/
- static readonly containerField: string;
+ /* static */ readonly containerField: string;
/**
* Returns an array with two strings defining the first version and last version where this node is specified. This property is read only.
*/
- static readonly specificationRange:
+ /* static */ readonly specificationRange:
{
readonly from: string,
readonly to: string,
@@ -700,7 +700,7 @@
/**
* Returns a list of fields defined for the SFNode object.
*/
- static readonly fieldDefinitions: FieldDefinitionArray;
+ /* static */ readonly fieldDefinitions: FieldDefinitionArray;
}
/**
@@ -716,11 +716,11 @@
/**
* The node type name for this class. This property is read only.
*/
- static readonly typeName: string;
+ /* static */ readonly typeName: string;
/**
* Returns an object with two properties *name* and *level* which can be used to get a ComponentInfo object from the X3D browser. This property is read only.
*/
- static readonly componentInfo:
+ /* static */ readonly componentInfo:
{
readonly name: string,
readonly level: number,
@@ -825,7 +825,7 @@
/**
* The X3DImportedNode object stores information about a particular import declaration. The object consists solely of read-only properties. It does not define any additional functions.
*/
-class X3DImportedNode
+declare class X3DImportedNode
{
/**
* The SFNode object of the Inline node. This property is read only.
@@ -853,7 +853,7 @@
/**
* The X3DExportedNode object stores information about a particular export declaration. The object consists solely of read-only properties. It does not define any additional functions.
*/
-class X3DExportedNode
+declare class X3DExportedNode
{
/**
* A string of the exported name. This property is read only.
@@ -2573,7 +2573,7 @@
static readonly typeName: "MFMatrix4f";
}
-declare class MFNode <T extends SFNode | null = SFNode | null> extends X3DArrayField <T>
+declare class MFNode <T /* extends SFNode | null */ = SFNode | null> extends X3DArrayField <T>
{
static readonly typeName: "MFNode";
}
@@ -4188,7 +4188,7 @@
}
/** CADPart is an atomic part that defines both coordinate-system location and the faces that constitute a part in a Computer-Aided Design (CAD) model. */
-interface CADPartProxy extends X3DProductStructureChildNodeProxy, X3DGroupingNodeProxy
+interface CADPartProxy extends X3DProductStructureChildNodeProxy, X3DGroupingNodeProxy<CADFaceProxy>
{
/**
* This field is of access type 'inputOnly' and type MFNode.
@@ -5178,7 +5178,7 @@
*
* This field is of access type 'inputOutput' and type MFNode.
*/
- field: MFNode <fieldProxy>;
+ // field: MFNode <fieldProxy>;
/**
* isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
*
@@ -13148,7 +13148,7 @@
*
* This field is of access type 'inputOutput' and type MFNode.
*/
- field: MFNode <fieldProxy>;
+ // field: MFNode <fieldProxy>;
/**
* isSelected indicates this shader instance is selected for use by browser Warning: it is an error to define this transient outputOnly field in an X3D file, instead only use it a source for ROUTE events.
*
@@ -15508,7 +15508,7 @@
*
* This field is of access type 'inputOutput' and type MFNode.
*/
- field: MFNode <fieldProxy>;
+ // field: MFNode <fieldProxy>;
/**
* load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.
*
@@ -15732,7 +15732,7 @@
*
* This field is of access type 'inputOutput' and type MFNode.
*/
- field: MFNode <fieldProxy>;
+ // field: MFNode <fieldProxy>;
/**
* load=true means load immediately, load=false means defer loading or else unload a previously loaded scene.
*
@@ -20040,12 +20040,12 @@
}
/** Grouping nodes can contain other nodes as children, thus making up the backbone of a scene graph. */
-interface X3DGroupingNodeProxy extends X3DChildNodeProxy, X3DBoundedObjectProxy
+interface X3DGroupingNodeProxy<T = X3DChildNodeProxy> extends X3DChildNodeProxy, X3DBoundedObjectProxy
{
/**
* This field is of access type 'inputOnly' and type MFNode.
*/
- addChildren: MFNode <X3DChildNodeProxy>;
+ addChildren: MFNode <T>;
/**
* This field is of access type 'initializeOnly' and type SFVec3f.
*/
@@ -20061,7 +20061,7 @@
/**
* This field is of access type 'inputOutput' and type MFNode.
*/
- children: MFNode <X3DChildNodeProxy>;
+ children: MFNode <T>;
/**
* This field is of access type 'inputOutput' and type SFNode.
*/
@@ -20069,7 +20069,7 @@
/**
* This field is of access type 'inputOnly' and type MFNode.
*/
- removeChildren: MFNode <X3DChildNodeProxy>;
+ removeChildren: MFNode <T>;
/**
* This field is of access type 'inputOutput' and type SFBool.
*/

View File

@ -1,6 +1,6 @@
{ {
name: 'archematics', name: 'archematics',
version: '0.4.0', version: '0.5.2',
description: 'Uncovering lost digital mathematical treasures', description: 'Uncovering lost digital mathematical treasures',
scripts: { scripts: {
test: 'echo "Error: no test specified" && exit 1', test: 'echo "Error: no test specified" && exit 1',
@ -17,6 +17,7 @@
build_plugin: 'bash tools/makePlugin.bash archematicsFull full', build_plugin: 'bash tools/makePlugin.bash archematicsFull full',
build_half: 'bash tools/makePlugin.bash archematics wrl', build_half: 'bash tools/makePlugin.bash archematics wrl',
build: 'pnpm --sequential /build_/', build: 'pnpm --sequential /build_/',
locbuild: 'pnpm --sequential /build_/', // avoids fetch
start: 'node public/js', start: 'node public/js',
go: 'pnpm --sequential "/build|start/"', go: 'pnpm --sequential "/build|start/"',
serve: 'pnpm build && http-server', serve: 'pnpm build && http-server',
@ -35,17 +36,18 @@
url: 'https://code.studioinfinity.org/glen/archematics.git', url: 'https://code.studioinfinity.org/glen/archematics.git',
}, },
devDependencies: { devDependencies: {
'@danielx/civet': '^0.6.78', '@danielx/civet': '^0.7.11',
'@types/firefox-webext-browser': '^120.0.0', '@types/firefox-webext-browser': '^120.0.3',
'@types/jquery': '^3.5.29', '@types/jquery': '^3.5.30',
'@webcomponents/custom-elements': '^1.6.0', '@webcomponents/custom-elements': '^1.6.0',
'http-server': '^14.1.1', 'http-server': '^14.1.1',
rollup: '^4.12.0', rollup: '^4.18.0',
typescript: '^5.3.3', typescript: '^5.4.5',
'webextension-polyfill': '^0.10.0', 'webextension-polyfill': '^0.12.0',
}, },
dependencies: { dependencies: {
colorsea: '^1.2.1', colorsea: '^1.2.2',
jsxgraph: '^1.8.0',
vrml1to97: '^0.4.0', vrml1to97: '^0.4.0',
}, },
} }

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,12 @@ import ./deps/jquery.js
import type {AppletObject} from ./deps/geotypes/api.ts import type {AppletObject} from ./deps/geotypes/api.ts
import {AppletDescription, AdapParams, params, contains3d} from ./adapptypes.ts import {AppletDescription, AdapParams, params, contains3d} from ./adapptypes.ts
colorsea from ./deps/colorsea.js colorsea from ./deps/colorsea.js
JXG from ./deps/jsxgraphcore.mjs
/* NOTE that the actual actions of the script are at the very bottom,
* so that all of the lexical variables will have been initialized by
* the time that those actions execute.
*/
joyceApplets: AppletDescription[] := [] joyceApplets: AppletDescription[] := []
$('applet[code="Geometry"]').before (i, html) -> $('applet[code="Geometry"]').before (i, html) ->
@ -20,22 +26,25 @@ function assertJoyceClass(s: string): asserts s is JoyceClass
unless classes.includes s then throw new Error `Oops ${s} slipped through` unless classes.includes s then throw new Error `Oops ${s} slipped through`
type JoyceName = string // we use this to indicate where the names type JoyceName = string // we use this to indicate where the names
// from the Joyce commands (which are used as captions in the GeoGebra // from the Joyce commands (which are used as captions in the dynamic geometry
// applet) go. // applet) go.
type GeoName = string // and this to indicate where GeoGebra identifiers go type DyName = string // and this to indicate where dynamic geometry identifiers go
type AnyName = GeoName | JoyceName // and this for slots that can be either type AnyName = DyName | JoyceName // and this for slots that can be either
type Description type Description // the semantic information needed about a Joyce geometry elt
otherName: AnyName otherName: AnyName
jsxElement?: JXG.GeometryElement // only JSX exposes JavaScript entities
usesCaptions: JoyceName[] usesCaptions: JoyceName[]
klass: JoyceClass klass: JoyceClass
ends?: [GeoName, GeoName] ends?: [DyName, DyName]
parts?: string[][] parts?: string[][] // FIXME: Should be DyName[][], I think
// We put both JoyceNames and GeoNames in here, pointing to each other // We put both JoyceNames and DyNames in here, pointing to each other
// with the otherName property: // with the otherName property:
type JoyceElements = Record<AnyName, Description> type JoyceElements = Record<AnyName, Description>
type DynApp = AppletObject | JXG.Board | JXG.GeometryElement
adapptScript := findAdappt() as HTMLScriptElement adapptScript := findAdappt() as HTMLScriptElement
function findAdappt() function findAdappt()
@ -57,19 +66,33 @@ function vertFlipped(coords: number[], cdata: ConstructionData): XYZ
coords = coords.slice() coords = coords.slice()
if cdata.is3d if cdata.is3d
if coords[Z] then coords[Z] = -coords[Z] if coords[Z] then coords[Z] = -coords[Z]
while coords.length < 3
coords.push 0
coords[Y] = cdata.height - coords[Y] coords[Y] = cdata.height - coords[Y]
return coords as XYZ return coords as XYZ
type RGB = [number, number, number]
type ConstructionData type ConstructionData
id: string id: string
bg: RGB bg: RGB
is3d: boolean is3d: boolean
isJSX: boolean
width: number width: number
height: number height: number
labelOffset?: [number, number]
elements: JoyceElements elements: JoyceElements
pivot: string pivot: string
title?: string title?: string
// Helper function to deal with typing the various apis
type DiscriminatedAPI
jsxApi?: JXG.Board | JXG.View3D
geoApi?: AppletObject
function getApis(api: DynApp|undefined, cdata: ConstructionData) : DiscriminatedAPI
if cdata.isJSX then return {jsxApi: api as JXG.Board | JXG.View3D}
else return {geoApi: api as AppletObject}
// Global data setup for pivoting (ugh, but necessary because the api // Global data setup for pivoting (ugh, but necessary because the api
// is not passed to the callback, so we have to look up the slider in // is not passed to the callback, so we have to look up the slider in
// a global list): // a global list):
@ -86,6 +109,47 @@ pivotData: Record<string, PivotData> := {}
function postApplets(jApplets: AppletDescription[], codebase = '') function postApplets(jApplets: AppletDescription[], codebase = '')
for each jApp of jApplets for each jApp of jApplets
is3d := contains3d jApp.params
isJSX := is3d // For now; will eventually just be always true
elements := {}
pivot .= ''
cdata: ConstructionData := {
bg: ([255, 255, 255] as RGB),
is3d, isJSX, jApp.id, jApp.width, jApp.height, elements, pivot}
if 'pivot' in jApp.params
if is3d
console.warn('Geometry Applet "pivot" only supported for '
+ '2D constructions. Ignoring.')
// FIXME: JSXGraph might well support "pivot" for 3D, by moving
// the implicit centerpoint of the "trackball navigation" mode of
// dragging to the pivot point.
else
pivot = dyname(jApp.id, cdata, 'point') + 'Pivot'
cdata.pivot = pivot
if isJSX
// for now, only use JSXGraph for 3D constructions
console.log('Making a board', jApp.id, jApp.width, jApp.height)
board := JXG.JSXGraph.initBoard jApp.id //, {
// boundingbox:
// [-jApp.width-10, jApp.height+10, jApp.width+10, -jApp.height-10],
//}
//zoom: {+enabled, -needShift},
//pan: {+enabled, -needShift},
//drag: {+enabled},
//-grid }
if is3d // redundant for now, but won't be when we use JSXGraph always
depth .= jApp.width
if jApp.height > depth then depth = jApp.height
depth /= 8
view := undefined and //board.create 'view3d',
[ [-jApp.width, -jApp.height],
[2*jApp.width, 2*jApp.height],
[ [-10 + jApp.width/6, 10 + 4*jApp.width/6],
[-10 + jApp.height/6, 10 + 4*jApp.height/6],
[-2*depth - 10, depth + 10]]]
for name, value in jApp.params
dispatchJcommand view, name, value, cdata
continue
params := { params := {
appName: 'classic', appName: 'classic',
-enableRightClick, -enableRightClick,
@ -93,7 +157,6 @@ function postApplets(jApplets: AppletDescription[], codebase = '')
jApp.width, jApp.width,
jApp.height, jApp.height,
appletOnLoad: (api: AppletObject) => appletOnLoad: (api: AppletObject) =>
is3d := contains3d jApp.params
if is3d if is3d
api.enable3D true api.enable3D true
api.setPerspective 'T' api.setPerspective 'T'
@ -105,20 +168,10 @@ function postApplets(jApplets: AppletDescription[], codebase = '')
api.setPerspective 'G' api.setPerspective 'G'
if adapParams.config?.algebra if adapParams.config?.algebra
api.setPerspective '+A' api.setPerspective '+A'
elements := {} if pivot
pivot .= '' pivotData[pivot] = {
if 'pivot' in jApp.params api, jApp.params.pivot,
if is3d lastAngle: 0, rotatable: [], maybeRotatable: {}, fixed: {}}
console.warn('Geometry Applet "pivot" only supported for '
+ '2D constrcutions. Ignoring.')
else
pivot = geoname(jApp.id, elements, 'point') + 'Pivot'
pivotData[pivot] = {
api, jApp.params.pivot,
lastAngle: 0, rotatable: [], maybeRotatable: {}, fixed: {}}
cdata: ConstructionData := {
bg: ([255, 255, 255] as RGB),
is3d, jApp.id, jApp.width, jApp.height, elements, pivot}
for name, value in jApp.params for name, value in jApp.params
dispatchJcommand dispatchJcommand
api, name, value, cdata api, name, value, cdata
@ -147,22 +200,19 @@ function postApplets(jApplets: AppletDescription[], codebase = '')
if codebase then geoApp.setHTML5Codebase codebase if codebase then geoApp.setHTML5Codebase codebase
geoApp.inject jApp.id geoApp.inject jApp.id
// Always use the final joyceApplets if there are any: type JoyceArguments =
if joyceApplets.length Partial<Record<JoyceClass|'subpoints', DyName[]> & {scalar: number[]}>
adapParams.joyceApplets = joyceApplets type Element // the syntactic specfication of a Joyce construction element
index: number
name: DyName
jname: JoyceName
klass: JoyceClass
method: string
args: JoyceArguments
usesCaptions: JoyceName[]
colors: string[]
if adapParams.joyceApplets.length type DimParts = [string[], string[], string[]] // Gives DyNames
if adapParams.loader
jQuery.getScript adapParams.loader, =>
postApplets adapParams.joyceApplets
else
postApplets adapParams.joyceApplets, adapParams.codebase
/* That's all of the actions of this script. All of the remainder is
* implementation.
*/
type DimParts = [string[], string[], string[]] // Gives GeoNames
// or expressions for 0-, 1-, and 2-dimensional parts for coloring // or expressions for 0-, 1-, and 2-dimensional parts for coloring
// need to pass the parts into the callbacks because sometimes the parts // need to pass the parts into the callbacks because sometimes the parts
@ -172,8 +222,8 @@ type Commander
commands: string[] commands: string[]
callbacks: GeogebraCallback[] callbacks: GeogebraCallback[]
parts: DimParts parts: DimParts
auxiliaries: GeoName[] // extra entities needed in GeoGebra auxiliaries: DyName[] // extra entities needed in JavaScript dynamic app
ends?: [GeoName, GeoName] ends?: [DyName, DyName]
function freshCommander(): Commander function freshCommander(): Commander
commands: [] commands: []
@ -181,265 +231,79 @@ function freshCommander(): Commander
parts: [[], [], []] parts: [[], [], []]
auxiliaries: [] auxiliaries: []
type JoyceArguments =
Partial<Record<JoyceClass|'subpoints', GeoName[]> & {scalar: number[]}> type ClassHandler = (elt: Element, cdata: ConstructionData) => Commander
type ClassHandler = (
name: GeoName,
method: string,
args: JoyceArguments,
index: number,
cdata: ConstructionData,
colors: string[],
jname: string) => Commander
type RGB = [number, number, number]
type XYZ = RGB type XYZ = RGB
// For interpreting Joyce applet `align` parameter
alignTranslation: Record<string, [number, number]|undefined> := {
above: [0,10]
right: [10, 0]
below: [0,-10]
left: [-10, 0]
central: undefined }
// Executes the command corresponding to param against the GeoGebra applet // Executes the command corresponding to param against the GeoGebra applet
// api, consulting and extending by side effect the elements that are // api, consulting and extending by side effect the elements that are
// present in that applet // present in that applet
function dispatchJcommand( function dispatchJcommand(
api: AppletObject, api: DynApp | undefined,
name: string, name: string,
value: string, value: string,
cdata: ConstructionData): void cdata: ConstructionData): void
{geoApi, jsxApi} := getApis api, cdata
switch name switch name
'background' 'background'
cdata.bg = joyce2rgb value, cdata.bg cdata.bg = joyce2rgb value, cdata.bg
if adapParams.config?.commands if adapParams.config?.commands
console.log 'Setting background to', value, 'interpreted as', console.log 'Setting background to', value, 'interpreted as',
cdata.bg cdata.bg
api.setGraphicsOptions 1, bgColor: colorsea(cdata.bg).hex() col := colorsea(cdata.bg).hex()
if cdata.isJSX // just take advantage of JSXGraph transparency
domElt := document.getElementById(cdata.id)
if domElt then domElt.style.background = col
else if geoApi then geoApi.setGraphicsOptions 1, bgColor: col
'title' 'title'
if adapParams.config?.commands if adapParams.config?.commands
console.log 'Setting title to', value console.log 'Setting title to', value
cdata.title = value cdata.title = value
api.evalCommand `TitlePoint = Corner(1,1) if cdata.isJSX // Currently no good way to make titles :-(
Text("${value}", TitlePoint + (2,5))` console.log('Title of Joyce applet', cdata.id, 'is', value)
else if geoApi
geoApi.evalCommand `TitlePoint = Corner(1,1)
Text("${value}", TitlePoint + (2,5))`
'pivot' 'pivot'
return // already handled in postApplets return // already handled in postApplets
'align' 'align'
console.warn if cdata.isJSX // need to change the default offset of labels
cdata.labelOffset = alignTranslation[value.toLowerCase()]
// FIXME: need to actually read this when labeling
else console.warn
'Label alignment is not available in GeoGebra' 'Label alignment is not available in GeoGebra'
'translation, as there is no facility for automatically' 'translation, as there is no facility for automatically'
'positioning labels. However, they can be dragged manually.' 'positioning labels. However, they can be dragged manually.'
return return
/e\[\d+\]/ /e\[\d+\]/
num := parseInt(name.slice(2)) num := parseInt(name.slice(2))
{commands, callbacks, parts} := if jsxApi
jToG value, num, cdata jAsJSX value, num, jsxApi, cdata
if commands.length else if geoApi
lastTried .= 0 {commands, callbacks, parts} := jToG value, num, cdata
if commands.filter((&)).every (cmd) => if commands.length
if adapParams.config?.commands lastTried .= 0
console.log 'Translated to:', cmd if commands.filter(&).every (cmd) =>
api.evalCommand(cmd) and ++lastTried if adapParams.config?.commands
callbacks.forEach &(api, parts) console.log 'Translated to:', cmd
else console.warn geoApi.evalCommand(cmd) and ++lastTried
`Geogebra command '${commands[lastTried]}' callbacks.forEach &(geoApi, parts)
(part of translation of '${value}') else console.warn
failed.` `Geogebra command '${commands[lastTried]}'
else console.warn `Could not parse command '${value}'` (part of translation of '${value}')
failed.`
else console.warn `Could not parse command '${value}'`
else console.warn `Unknown param ${name} = ${value}` else console.warn `Unknown param ${name} = ${value}`
// Parses a Joyce element-creating command, extending the elements
// by side effect:
function jToG(
jCom: string,
index: number,
cdata: ConstructionData): Commander
[jname, klass, method, data, ...colors] := jCom.split ';'
if adapParams.config?.commands
console.log 'Defining', jname, 'as a', klass, 'constructed by',
method, 'from', data, 'colored as', colors
cmdr .= freshCommander()
unless klass in classHandler
console.warn `Unknown entity class ${klass}`
return cmdr
assertJoyceClass klass // shouldn't need to do that :-/
isPivot := !!cdata.pivot and jname is pivotData[cdata.pivot].pivot
name := geoname jname, cdata.elements, klass
if isPivot then pivotData[cdata.pivot].pivot = name
args: JoyceArguments := {}
usesCaptions := []
for each jdep of data.split ','
scalar := Number jdep
if scalar is scalar // not NaN
(args.scalar ?= []).push scalar
continue
if jdep is 'screen'
// special case for Joyce; assume xOyPlane
(args.plane ?= []).push 'xOyPlane'
else
unless jdep in cdata.elements
console.warn
`Reference to unknown geometric entity ${jdep} in ${jCom}`
return cmdr
usesCaptions.push jdep
{klass: depKlass, otherName: depGeo, ends} := cdata.elements[jdep]
(args[depKlass] ?= []).push depGeo
if depKlass is 'point'
(args.subpoints ?= []).push depGeo
else if depKlass is 'line'
(args.subpoints ?= []).push ...ends ?? []
cmdr = classHandler[klass] name, method, args, index, cdata, colors, jname
unless name is jname then cmdr.callbacks.push (api: AppletObject) =>
api.setCaption name, jname
api.setLabelStyle name, 3 // style CAPTION = 3
if cmdr.auxiliaries.length and not adapParams.config?.showaux
cmdr.callbacks.push (api: AppletObject) =>
for each aux of cmdr.auxiliaries
api.setAuxiliary aux, true
api.setLabelVisible aux, false
api.setVisible aux,false
// set up the pivot if there is one
if isPivot
unless klass is 'point'
console.warn(`Can only pivot around a point, not the ${klass}`
+ `named ${jname}. Ignoring.`)
cdata.pivot = ''
cmdr.commands.push(`${cdata.pivot} = `
+ `Slider(0°,360°,1°,1,${cdata.width/3},true,true,false,false)`)
cmdr.callbacks.push (api: AppletObject) =>
api.setCaption cdata.pivot, 'Rotate Display'
api.setLabelStyle cdata.pivot, 3
api.setCoords(cdata.pivot, 2*cdata.width/3, cdata.height-10)
// Not sure how to let TypeScript deal with putting a new function
// on the global window object, so punting at least for now:
// @ts-ignore
window.pivotListener = pivotListener
api.registerObjectUpdateListener(cdata.pivot, 'pivotListener')
// Create callback to assign colors
traceC := adapParams.config?.color
console.log 'Considering coloring', name, 'with', colors if traceC
if colors.length is 4 and colors.every (color) => invisible color
cmdr.callbacks.push (api: AppletObject) => api.setVisible name, false
else // we have to decorate
dimension .= cmdr.parts.findLastIndex .includes name
cmdr.callbacks.push (api: AppletObject, parts: DimParts) =>
// Operate in order faces, lines, point, caption so that
// we can adjust components after setting overall color, etc.
// Color the "Faces"; they default to 'brighter':
if invisible(colors[3]) and (klass !== 'sphere' or invisible colors[2])
for each face of parts[2]
if face is name
console.log 'Fading out interior of', face if traceC
// hide the interior by making it transparent
api.setFilling face, 0
else if face not in cdata.elements
console.log 'Hiding face', face if traceC
api.setVisible face, false
else
surface .= colors[3]
if klass is 'sphere' and invisible surface
surface = colors[2] // for Joyce, spheres had one circular "edge"
faceRGB := joyce2rgb(surface or 'brighter', cdata.bg)
deep := ['circle', 'polygon', 'sector']
filling := deep.includes(klass) ? 0.7 : 0.2
for each face of parts[2]
if traceC
console.log 'Coloring face', face, 'to',
surface, '=', faceRGB
api.setVisible face, true
api.setFilling face, filling
api.setColor face, ...faceRGB
// Lines default to black:
if invisible colors[2]
for each line of parts[1]
if line is name or line not in cdata.elements
console.log 'Hiding line', line if traceC
api.setVisible line, false
else
lineRGB := joyce2rgb(colors[2] or 'black', cdata.bg)
if traceC
console.log 'Need to color lines', parts[1], 'with', lineRGB
for each line of parts[1]
console.log 'Coloring line', line, 'to', colors[2] if traceC
api.setVisible line, true
api.setColor line, ...lineRGB
// Now color the points:
if traceC
console.log
'Considering point colors for', name, 'of dimension', dimension
if invisible colors[1]
// Hide all the dim-0 elements that are not distinct independent
// items:
for each point of parts[0]
if point is name or point not in cdata.elements
console.log 'Hiding point', point if traceC
api.setVisible point, false
else if dimension is 0 or colors[1] // Need to color the points
if not colors[1]
colors[1] = pointDefaultColorName name, method, isPivot
ptRGB := joyce2rgb colors[1], cdata.bg
for each point of parts[0]
console.log 'Coloring point', point, 'to', colors[1] if traceC
api.setVisible point, true
api.setColor point, ...ptRGB
// Make the caption the correct color
if invisible colors[0]
console.log 'Hiding label', name if traceC
api.setLabelVisible name, false
else if colors[0]
if colors[dimension+1] and colors[dimension+1] is not colors[0]
// Have to make a text to provide the caption, since GeoGebra
// doesn't allow caption different color from entity.
textName := 'GeoText' + index
locationExpr := switch klass
when 'point' then `1.02${name}`
when 'line'
(`Midpoint(${name})`
+ ` + Rotate(Direction(${name})`
+ `*Length(${name})*0.025/Length(Direction(${name})),`
+ `pi/2)`)
when 'circle'
(`Center(${name})`
+ ` + Radius(${name})*Vector((12/13,5/13))*1.03`)
when 'polygon' then `Centroid(${name})`
when 'sector'
(`(5*Center(${name})`
+ ` - ${cmdr.ends?[0]} - ${cmdr.ends?[1]})/3`)
when 'plane'
`Intersect(${name}, PerpendicularLine((0, 0, 0), ${name}))`
when 'sphere'
(`Center(${name})`
+ ` + Radius(${name})*Vector((12/13,0,5/13))*1.03`)
when 'polyhedron'
// The "ends" are faces or vertices roughly opposite
// from each other
[ex1, ex2] .= cmdr.ends ?? ['', '']
unless parts[0].includes ex1 then ex1 = `Centroid(${ex1})`
unless parts[0].includes ex2 then ex2 = `Centroid(${ex2})`
`(4*${ex1}+${ex2})/5`
textCmd := `${textName} = Text("${jname}", ${locationExpr})`
textCol := joyce2rgb colors[0], cdata.bg
if traceC
console.log `Making text '${textCmd}' colored`, textCol
api.evalCommand textCmd
api.setColor textName, ...textCol
// and hide the underlying GeoGebra label
api.setLabelVisible name, false
else // specified label color matches the entity color
// So label gets the correct color from element
// but we had better make sure it is visible:
console.log 'Showing label', name if traceC
api.setLabelVisible name, true
else // label color is defaulting
// Make it same as the element for points, invisible otherwise:
show := klass is 'point'
console.log 'Setting label vis of', name, 'to', show if traceC
api.setLabelVisible name, show
cdata.elements[jname] =
{otherName: name, usesCaptions, klass, cmdr.ends, cmdr.parts}
cdata.elements[name] =
{otherName: jname, usesCaptions, klass, cmdr.ends, cmdr.parts}
cmdr
function pivotListener(slider: string) function pivotListener(slider: string)
pd := pivotData[slider] pd := pivotData[slider]
@ -527,8 +391,9 @@ function pointDefaultColorName(
'orange' 'orange'
else 'black' else 'black'
function geoname( function dyname(
jname: JoyceName, elements: JoyceElements, klass: JoyceClass): GeoName jname: JoyceName, cd: ConstructionData, klass: JoyceClass): DyName
if cd.isJSX then return jname
unless jname is 'floor' or jname.substring(0,3) is 'Geo' // those might clash unless jname is 'floor' or jname.substring(0,3) is 'Geo' // those might clash
// Names with word characters starting with a capital are always good: // Names with word characters starting with a capital are always good:
if /^[A-Z]['\w]*$/.test jname then return jname if /^[A-Z]['\w]*$/.test jname then return jname
@ -538,7 +403,7 @@ function geoname(
numCode .= 0n numCode .= 0n
numCode = numCode*128n + BigInt ch.codePointAt(0) ?? 1 for each ch of jname numCode = numCode*128n + BigInt ch.codePointAt(0) ?? 1 for each ch of jname
return .= 'Geo' + numCode.toString(36); return .= 'Geo' + numCode.toString(36);
return += '1' while return.value in elements return += '1' while return.value in cd.elements
// Helpers for some corresponding point/line functions: // Helpers for some corresponding point/line functions:
function cutoffExtend( function cutoffExtend(
@ -583,7 +448,8 @@ function proportionSimilar(
// All of the detailed semantics of each available command lies in this // All of the detailed semantics of each available command lies in this
// function. // function.
classHandler: Record<JoyceClass, ClassHandler> := classHandler: Record<JoyceClass, ClassHandler> :=
point: (name, method, args, index, cdata, colors, jname): Commander => point: (elt, cdata): Commander =>
{name, jname, method, args, colors} .= elt // Mutable for hack patches
return := freshCommander() return := freshCommander()
{commands, callbacks, parts, auxiliaries} := return.value {commands, callbacks, parts, auxiliaries} := return.value
zeroVector := cdata.is3d ? 'Vector((0,0,0))' : 'Vector((0,0))' zeroVector := cdata.is3d ? 'Vector((0,0,0))' : 'Vector((0,0))'
@ -801,7 +667,8 @@ classHandler: Record<JoyceClass, ClassHandler> :=
`${name} = Vertex(${args.polygon?[0]},${args.scalar?[0]})` `${name} = Vertex(${args.polygon?[0]},${args.scalar?[0]})`
else console.warn 'Unknown point method:', method else console.warn 'Unknown point method:', method
line: (name, method, args, index, cdata) => line: (elt, cdata) =>
{name, method, args} := elt
return := freshCommander() return := freshCommander()
return.value.ends = ['', ''] return.value.ends = ['', '']
{commands, callbacks, parts, auxiliaries, ends} := return.value {commands, callbacks, parts, auxiliaries, ends} := return.value
@ -951,7 +818,8 @@ classHandler: Record<JoyceClass, ClassHandler> :=
callbacks.push (api: AppletObject) => api.setLabelVisible name, true callbacks.push (api: AppletObject) => api.setLabelVisible name, true
parts[0].push ...ends parts[0].push ...ends
circle: (name, method, args, index, cdata) => circle: (elt, cdata) =>
{name, method, args} := elt
return := freshCommander() return := freshCommander()
return.value.ends = ['', ''] return.value.ends = ['', '']
{commands, callbacks, parts, auxiliaries, ends} := return.value {commands, callbacks, parts, auxiliaries, ends} := return.value
@ -987,11 +855,12 @@ classHandler: Record<JoyceClass, ClassHandler> :=
makeLinesInvisible callbacks, aux makeLinesInvisible callbacks, aux
callbacks.push (api: AppletObject) => api.setLabelVisible name, true callbacks.push (api: AppletObject) => api.setLabelVisible name, true
polygon: (name, method, args, index, cdata) => polygon: (elt, cdata) =>
{name, method, args, index} := elt
return := freshCommander() return := freshCommander()
{commands, callbacks, parts, auxiliaries} := return.value {commands, callbacks, parts, auxiliaries} := return.value
parts[2].push name parts[2].push name
aux := geoname name + 'aUx', cdata.elements, 'point' aux := dyname name + 'aUx', cdata, 'point'
switch method switch method
/equilateralTriangle|square|regularPolygon/ /equilateralTriangle|square|regularPolygon/
pt := args.subpoints pt := args.subpoints
@ -1077,7 +946,8 @@ classHandler: Record<JoyceClass, ClassHandler> :=
api.renameObject obj, newObj api.renameObject obj, newObj
moreParts[1].push newObj moreParts[1].push newObj
sector: (name, method, args, index, cdata) => sector: (elt, cdata) =>
{name, method, args} := elt
return := freshCommander() return := freshCommander()
return.value.ends = ['', ''] return.value.ends = ['', '']
{commands, callbacks, parts, auxiliaries, ends} := return.value {commands, callbacks, parts, auxiliaries, ends} := return.value
@ -1108,7 +978,8 @@ classHandler: Record<JoyceClass, ClassHandler> :=
auxiliaries.push aux + 1 auxiliaries.push aux + 1
makeLinesInvisible callbacks, name makeLinesInvisible callbacks, name
plane: (name, method, args, index, cdata) => plane: (elt, cdata) =>
{name, method, args} := elt
return := freshCommander() return := freshCommander()
{commands, callbacks, parts, auxiliaries} := return.value {commands, callbacks, parts, auxiliaries} := return.value
parts[2].push name parts[2].push name
@ -1126,7 +997,8 @@ classHandler: Record<JoyceClass, ClassHandler> :=
commands.push commands.push
`${name} = PerpendicularPlane(${thru}, Line(${thru}, ${perp}))` `${name} = PerpendicularPlane(${thru}, Line(${thru}, ${perp}))`
sphere: (name, method, args) => sphere: (elt, cdata) =>
{name, method, args} := elt
return := freshCommander() return := freshCommander()
return.value.ends = ['', ''] return.value.ends = ['', '']
{commands, callbacks, parts, auxiliaries, ends} := return.value {commands, callbacks, parts, auxiliaries, ends} := return.value
@ -1144,11 +1016,12 @@ classHandler: Record<JoyceClass, ClassHandler> :=
radius := `Distance(${pt[1]}, ${pt[2]})` radius := `Distance(${pt[1]}, ${pt[2]})`
commands.push `${name} = Sphere(${center}, ${radius})` commands.push `${name} = Sphere(${center}, ${radius})`
polyhedron: (name, method, args, index, cdata) => polyhedron: (elt, cdata) =>
{name, method, args, index} := elt
return := freshCommander() return := freshCommander()
return.value.ends = ['', ''] return.value.ends = ['', '']
{commands, callbacks, parts, auxiliaries, ends} := return.value {commands, callbacks, parts, auxiliaries, ends} := return.value
aux := geoname name + 'aUx', cdata.elements, 'point' aux := dyname name + 'aUx', cdata, 'point'
switch method switch method
'parallelepiped' 'parallelepiped'
pt .= args.subpoints pt .= args.subpoints
@ -1260,6 +1133,217 @@ classHandler: Record<JoyceClass, ClassHandler> :=
'triangle' 'triangle'
moreParts[2].push newObj moreParts[2].push newObj
// Parses a Joyce element-creating command
function parseElement(
jCom: string,
index: number,
cdata: ConstructionData): Element | undefined
[jname, klass, method, data, ...colors] := jCom.split ';'
if adapParams.config?.commands
console.log 'Defining', jname, 'as a', klass, 'constructed by',
method, 'from', data, 'colored as', colors
unless klass in classHandler
console.warn `Unknown entity class ${klass}`
return undefined
assertJoyceClass klass // shouldn't need to do that :-/
name := dyname jname, cdata, klass
args: JoyceArguments := {}
usesCaptions: JoyceName[] := []
for each jdep of data.split ','
scalar := Number jdep
if scalar is scalar // not NaN
(args.scalar ?= []).push scalar
continue
if jdep is 'screen'
// special case for Joyce; assume xOyPlane
(args.plane ?= []).push 'xOyPlane'
else
unless jdep in cdata.elements
console.warn
`Reference to unknown geometric entity ${jdep} in ${jCom}`
return undefined
usesCaptions.push jdep
{klass: depKlass, otherName: depDyn, ends} := cdata.elements[jdep]
(args[depKlass] ?= []).push depDyn
if depKlass is 'point'
(args.subpoints ?= []).push depDyn
else if depKlass is 'line'
(args.subpoints ?= []).push ...ends ?? []
return {index, name, jname, klass, method, args, usesCaptions, colors}
// Parses a Joyce element-creating command, extending the elements
// by side effect:
function jToG(
jCom: string,
index: number,
cdata: ConstructionData): Commander
elt := parseElement jCom, index, cdata
cmdr .= freshCommander()
unless elt then return cmdr
{name, jname, klass, method, usesCaptions, colors} := elt
isPivot := !!cdata.pivot and elt.jname is pivotData[cdata.pivot].pivot
if isPivot then pivotData[cdata.pivot].pivot = elt.name
cmdr = classHandler[klass] elt, cdata
unless name is jname then cmdr.callbacks.push (api: AppletObject) =>
api.setCaption name, jname
api.setLabelStyle name, 3 // style CAPTION = 3
if cmdr.auxiliaries.length and not adapParams.config?.showaux
cmdr.callbacks.push (api: AppletObject) =>
for each aux of cmdr.auxiliaries
api.setAuxiliary aux, true
api.setLabelVisible aux, false
api.setVisible aux,false
// set up the pivot if there is one
if isPivot
unless klass is 'point'
console.warn(`Can only pivot around a point, not the ${klass}`
+ `named ${jname}. Ignoring.`)
cdata.pivot = ''
cmdr.commands.push(`${cdata.pivot} = `
+ `Slider(0°,360°,1°,1,${cdata.width/3},true,true,false,false)`)
cmdr.callbacks.push (api: AppletObject) =>
api.setCaption cdata.pivot, 'Rotate Display'
api.setLabelStyle cdata.pivot, 3
api.setCoords(cdata.pivot, 2*cdata.width/3, cdata.height-10)
// Not sure how to let TypeScript deal with putting a new function
// on the global window object, so punting at least for now:
// @ts-ignore
window.pivotListener = pivotListener
api.registerObjectUpdateListener(cdata.pivot, 'pivotListener')
// Create callback to assign colors
traceC := adapParams.config?.color
console.log 'Considering coloring', name, 'with', colors if traceC
if colors.length is 4 and colors.every (color) => invisible color
cmdr.callbacks.push (api: AppletObject) => api.setVisible name, false
else // we have to decorate
dimension .= cmdr.parts.findLastIndex .includes name
cmdr.callbacks.push (api: AppletObject, parts: DimParts) =>
// Operate in order faces, lines, point, caption so that
// we can adjust components after setting overall color, etc.
// Color the "Faces"; they default to 'brighter':
if invisible(colors[3]) and (klass !== 'sphere' or invisible colors[2])
for each face of parts[2]
if face is name
console.log 'Fading out interior of', face if traceC
// hide the interior by making it transparent
api.setFilling face, 0
else if face not in cdata.elements
console.log 'Hiding face', face if traceC
api.setVisible face, false
else
surface .= colors[3]
if klass is 'sphere' and invisible surface
surface = colors[2] // for Joyce, spheres had one circular "edge"
faceRGB := joyce2rgb(surface or 'brighter', cdata.bg)
deep := ['circle', 'polygon', 'sector']
filling := deep.includes(klass) ? 0.7 : 0.2
for each face of parts[2]
if traceC
console.log 'Coloring face', face, 'to',
surface, '=', faceRGB
api.setVisible face, true
api.setFilling face, filling
api.setColor face, ...faceRGB
// Lines default to black:
if invisible colors[2]
for each line of parts[1]
if line is name or line not in cdata.elements
console.log 'Hiding line', line if traceC
api.setVisible line, false
else
lineRGB := joyce2rgb(colors[2] or 'black', cdata.bg)
if traceC
console.log 'Need to color lines', parts[1], 'with', lineRGB
for each line of parts[1]
console.log 'Coloring line', line, 'to', colors[2] if traceC
api.setVisible line, true
api.setColor line, ...lineRGB
// Now color the points:
if traceC
console.log
'Considering point colors for', name, 'of dimension', dimension
if invisible colors[1]
// Hide all the dim-0 elements that are not distinct independent
// items:
for each point of parts[0]
if point is name or point not in cdata.elements
console.log 'Hiding point', point if traceC
api.setVisible point, false
else if dimension is 0 or colors[1] // Need to color the points
if not colors[1]
colors[1] = pointDefaultColorName name, method, isPivot
ptRGB := joyce2rgb colors[1], cdata.bg
for each point of parts[0]
console.log 'Coloring point', point, 'to', colors[1] if traceC
api.setVisible point, true
api.setColor point, ...ptRGB
// Make the caption the correct color
if invisible colors[0]
console.log 'Hiding label', name if traceC
api.setLabelVisible name, false
else if colors[0]
if colors[dimension+1] and colors[dimension+1] is not colors[0]
// Have to make a text to provide the caption, since GeoGebra
// doesn't allow caption different color from entity.
textName := 'GeoText' + index
locationExpr := switch klass
when 'point' then `1.02${name}`
when 'line'
(`Midpoint(${name})`
+ ` + Rotate(Direction(${name})`
+ `*Length(${name})*0.025/Length(Direction(${name})),`
+ `pi/2)`)
when 'circle'
(`Center(${name})`
+ ` + Radius(${name})*Vector((12/13,5/13))*1.03`)
when 'polygon' then `Centroid(${name})`
when 'sector'
(`(5*Center(${name})`
+ ` - ${cmdr.ends?[0]} - ${cmdr.ends?[1]})/3`)
when 'plane'
`Intersect(${name}, PerpendicularLine((0, 0, 0), ${name}))`
when 'sphere'
(`Center(${name})`
+ ` + Radius(${name})*Vector((12/13,0,5/13))*1.03`)
when 'polyhedron'
// The "ends" are faces or vertices roughly opposite
// from each other
[ex1, ex2] .= cmdr.ends ?? ['', '']
unless parts[0].includes ex1 then ex1 = `Centroid(${ex1})`
unless parts[0].includes ex2 then ex2 = `Centroid(${ex2})`
`(4*${ex1}+${ex2})/5`
textCmd := `${textName} = Text("${jname}", ${locationExpr})`
textCol := joyce2rgb colors[0], cdata.bg
if traceC
console.log `Making text '${textCmd}' colored`, textCol
api.evalCommand textCmd
api.setColor textName, ...textCol
// and hide the underlying GeoGebra label
api.setLabelVisible name, false
else // specified label color matches the entity color
// So label gets the correct color from element
// but we had better make sure it is visible:
console.log 'Showing label', name if traceC
api.setLabelVisible name, true
else // label color is defaulting
// Make it same as the element for points, invisible otherwise:
show := klass is 'point'
console.log 'Setting label vis of', name, 'to', show if traceC
api.setLabelVisible name, show
cdata.elements[jname] =
{otherName: name, usesCaptions, klass, cmdr.ends, cmdr.parts}
if name !== jname
cdata.elements[name] =
{otherName: jname, usesCaptions, klass, cmdr.ends, cmdr.parts}
cmdr
// Helper for dividing an angle // Helper for dividing an angle
function makeAngDiv( function makeAngDiv(
method:string, method:string,
@ -1303,3 +1387,94 @@ function makeLinesInvisible(callbacks: GeogebraCallback[], name: string)
// evaluating the modified XML created a sort of second // evaluating the modified XML created a sort of second
// copy of the entity, and so we have to hide the original one // copy of the entity, and so we have to hide the original one
api.setVisible name, false api.setVisible name, false
// ------------------------------------------------------------------------
// JSXGraph translation below this line, up to the actual actions of script
// ------------------------------------------------------------------------
type AuxiliaryData
jsxElement?: JXG.GeometryElement
auxiliaries: JXG.GeometryElement[]
ends?: [DyName, DyName]
parts: [DyName[], DyName[], DyName[]]
function freshAuxEndsParts(): AuxiliaryData
auxiliaries: []
parts: [[], [], []]
// Execute the commands needed to create the element encoded by jCom
// against the given api entity
function jAsJSX(
jCom: string,
index: number,
api: JXG.Board | JXG.View3D,
cdata: ConstructionData)
elt := parseElement jCom, index, cdata
unless elt then return
{jsxElement, auxiliaries, ends, parts} :=
jsxHandler[elt.klass] elt, api, cdata
unless jsxElement then return
cdata.elements[elt.name] = {
otherName: elt.jname,
jsxElement, elt.usesCaptions, elt.klass, ends, parts}
if elt.name !== elt.jname
cdata.elements[elt.jname] =
Object.assign {}, cdata.elements[elt.name], {otherName: elt.name}
type JSXHandler = (
elt: Element,
api: JXG.Board | JXG.View3D,
cdata: ConstructionData) => AuxiliaryData
// Helper function to deal with TypeScript typing of JSX classes
type JSX_APIS
jsx2d?: JXG.Board
jsx3d?: JXG.View3D
function getJSXapi(
api: JXG.Board | JXG.View3D,
cdata: ConstructionData): JSX_APIS
if cdata.is3d then return {jsx3d: api as JXG.View3D}
else return {jsx2d: api as JXG.Board}
jsxHandler: Record<JoyceClass, JSXHandler> :=
point: (elt, api, cdata) =>
return .= freshAuxEndsParts()
{jsxElement, auxiliaries, ends, parts} .= return.value
parts[0].push elt.name
{jname, args} := elt
{jsx2d, jsx3d} := getJSXapi api, cdata
// FIXME: put Joyce hacks here
switch elt.method
'free'
unless args.scalar then return
coords := vertFlipped args.scalar, cdata
// FIXME: Is something needed here for supporting pivot?
if jsx3d
console.log 'Pretend to create point3d', coords, jname
//jsx3d.create 'point3d', coords, {name: jname}
// FIXME: Handle 2d
return.value = {jsxElement, auxiliaries, ends, parts}
line: (elt, api, cdata) => freshAuxEndsParts()
polygon: (elt, api, cdata) => freshAuxEndsParts()
circle: (elt, api, cdata) => freshAuxEndsParts()
sector: (elt, api, cdata) => freshAuxEndsParts()
plane: (elt, api, cdata) => freshAuxEndsParts()
polyhedron: (elt, api, cdata) => freshAuxEndsParts()
sphere: (elt, api, cdata) => freshAuxEndsParts()
// ------------------------------------------------------------------------
// The actual actions of the script follow:
// ------------------------------------------------------------------------
// Always use the final joyceApplets if there are any:
if joyceApplets.length
adapParams.joyceApplets = joyceApplets
if adapParams.joyceApplets.length
if adapParams.loader
jQuery.getScript adapParams.loader, =>
postApplets adapParams.joyceApplets
else
postApplets adapParams.joyceApplets, adapParams.codebase

View File

@ -27,9 +27,9 @@ export function generateVRML(n: number, d: number, chk: boolean[])
unless 1 <= d < n unless 1 <= d < n
return err: 'Denominator should be strictly between 1 and numerator.' return err: 'Denominator should be strictly between 1 and numerator.'
if d > n/2 then d = n-d // equivalent if d > n/2 then d = n-d // equivalent
which := chk.findIndex (&) which := chk.findIndex &
chk[which] = false chk[which] = false
if chk.some (&) return err: 'Currently only one shape option may be checked.' if chk.some & return err: 'Currently only one shape option may be checked.'
name .= d > 1 ? `${n}/${d}-gonal` : name .= d > 1 ? `${n}/${d}-gonal` :
switch n switch n
when 3: 'triangular' when 3: 'triangular'

View File

@ -2,8 +2,13 @@
mkdir -p $1 mkdir -p $1
cp etc/deps/jquery.js $1 cp etc/deps/jquery.js $1
cp -r etc/deps/x_ite $1 cp -r etc/deps/x_ite $1
patch -u $1/x_ite/x_ite.d.mts -i etc/x_ite_types.patch
cp -r etc/deps/geotypes $1 cp -r etc/deps/geotypes $1
cp -rL node_modules/vrml1to97/{deps,vrml1to97,streamToString.js} $1 cp -rL node_modules/vrml1to97/{deps,vrml1to97,streamToString.js} $1
cp -rL node_modules/jsxgraph/distrib/jsxgraph{core.mjs,.css} $1
cp -rL node_modules/jsxgraph/distrib/index.d.ts $1/jsxgraphcore.d.mts
patch -u $1/jsxgraphcore.d.mts -i etc/jsxgraph_types.patch
cp -rL node_modules/colorsea/dist/index.esm.js $1/colorsea.js cp -rL node_modules/colorsea/dist/index.esm.js $1/colorsea.js
cp -rL node_modules/colorsea/dist/index.d.ts $1/colorsea.d.ts cp -rL node_modules/colorsea/dist/index.d.ts $1/colorsea.d.ts
patch -u $1/colorsea.d.ts -i etc/colorsea_types.patch #patch -u $1/colorsea.d.ts -i etc/colorsea_types.patch
#FIXME: If no longer needed, remove patch

View File

@ -2,8 +2,8 @@ mkdir -p etc/deps/geotypes
mkdir -p etc/deps/x_ite/assets/components mkdir -p etc/deps/x_ite/assets/components
mkdir -p etc/deps/x_ite/assets/images mkdir -p etc/deps/x_ite/assets/images
// source code at https://github.com/geogebra/geogebra/releases/tag/5.2.823.0 # source code at https://github.com/geogebra/geogebra/releases/tag/5.2.823.0
curl 'https://download.geogebra.org/installers/5.2/geogebra-math-apps-bundle-5-2-823-0.zip' --output etc/deps/geo.zip curl 'https://download.geogebra.org/installers/5.2/geogebra-math-apps-bundle-5-2-843-0.zip' --output etc/deps/geo.zip
unzip -o -d etc/deps etc/deps/geo.zip unzip -o -d etc/deps etc/deps/geo.zip
rm etc/deps/geo.zip rm etc/deps/geo.zip
cp etc/geogebraPreamble.txt etc/deps/geotypes/api.ts cp etc/geogebraPreamble.txt etc/deps/geotypes/api.ts

View File

@ -48,6 +48,7 @@ then
cp -r etc/$trimspec $1/$dest cp -r etc/$trimspec $1/$dest
done done
cp public/js/deps/jsxgraph{.css,core.mjs} $1/deps
npx rollup public/js/adapptlet.js --file $1/adapptlet.js npx rollup public/js/adapptlet.js --file $1/adapptlet.js
npx rollup public/js/adapptext.js --file $1/adapptext.js npx rollup public/js/adapptext.js --file $1/adapptext.js