1+ //define(["nbextensions/vpython_libraries/plotly.min",
2+ // "nbextensions/vpython_libraries/glow.min",
3+ // "nbextensions/vpython_libraries/jquery-ui.custom.min"], function(Plotly) {
4+
15import 'script-loader!./vpython_libraries/jquery.min.js' ;
26import 'script-loader!./vpython_libraries/jquery-ui.custom.min.js' ;
37import 'script-loader!./vpython_libraries/glow.min.js' ;
48import 'script-loader!./vpython_libraries/plotly.min.js' ;
59import '../style/jquery-ui.custom.css'
610import '../style/ide.css'
711
8- // Ensure downstream JupyterLab webpack places the fonts and images in predictable locations
9- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/earth_texture.jpg'
10- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/favicon.ico'
11- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/flower_texture.jpg'
12- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/granite_texture.jpg'
13- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/gravel_bumpmap.jpg'
14- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/gravel_texture.jpg'
15- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/metal_texture.jpg'
16- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/NimbusRomNo9L-Med.otf'
17- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/Roboto-Medium.ttf'
18- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/rock_bumpmap.jpg'
19- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/rock_texture.jpg'
20- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/rough_texture.jpg'
21- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/rug_texture.jpg'
22- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/stones_bumpmap.jpg'
23- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/stones_texture.jpg'
24- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/stucco_bumpmap.jpg'
25- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/stucco_texture.jpg'
26- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/wood_old_bumpmap.jpg'
27- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/wood_old_texture.jpg'
28- import '!!file-loader?name=/vpython_data/[name].[ext]!../vpython_data/wood_texture.jpg'
29-
3012export var comm
3113var ws = null
3214var isopen = false
3315
3416console . log ( 'START OF GLOWCOMM' )
3517
36- export function createWebsocket ( msg , serviceUrl ) {
18+ export function createWebsocket ( msg ) {
3719 if ( msg . content . data . wsport !== undefined ) {
3820 // create websocket instance
39- var port = msg . content . data . wsport
40- var uri = msg . content . data . wsuri
41- var url ;
42-
43- if ( document . location . hostname . includes ( "localhost" ) ) {
44- url = "ws://localhost:" + port + uri ;
45- }
46- else {
47- url = serviceUrl + port + uri ;
48- }
49- ws = new WebSocket ( url ) ;
50- ws . binaryType = "arraybuffer" ;
21+ var port = msg . content . data . wsport
22+ var uri = msg . content . data . wsuri
23+ ws = new WebSocket ( "ws://localhost:" + port + uri ) ;
24+ ws . binaryType = "arraybuffer" ;
5125
5226 // Handle incoming websocket message callback
5327 ws . onmessage = function ( evt ) {
54- console . log ( "WebSocket Message Received: " + evt . data )
28+ console . log ( "WebSocket Message Received: " + evt . data )
5529 } ;
5630
5731 // Close Websocket callback
@@ -69,22 +43,25 @@ export function createWebsocket(msg, serviceUrl) {
6943 }
7044}
7145
72- function wscheckfontsloaded ( msg , serviceUrl ) {
46+ var wsmsg
47+
48+ function wscheckfontsloaded ( ) {
7349 "use strict" ;
7450 if ( window . __font_sans === undefined || window . __font_serif === undefined ) {
75- setTimeout ( wscheckfontsloaded , 10 , msg , serviceUrl )
51+ setTimeout ( wscheckfontsloaded , 10 )
7652 } else {
77- createWebsocket ( msg , serviceUrl )
53+ createWebsocket ( wsmsg )
7854 }
7955}
8056
81- export function setupWebsocket ( msg , serviceUrl ) {
57+ export function setupWebsocket ( msg ) {
8258 "use strict" ;
83- wscheckfontsloaded ( msg , serviceUrl )
59+ wsmsg = msg
60+ wscheckfontsloaded ( )
8461}
8562
86- var datadir = '. /static/lab /vpython_data/'
87- window . Jupyter_VPython = "./static/ lab/vpython_data/" // prefix used by glow.min.js for textures
63+ var datadir = window . location . href + ' /static/vpython_data/'
64+ window . Jupyter_VPython = "/ lab/static /vpython_data/" // prefix used by glow.min.js for textures
8865
8966function fontloading ( ) {
9067 "use strict" ;
@@ -649,7 +626,7 @@ function handle_cmds(dcmds) {
649626 }
650627 cfg [ attr ] = ptlist
651628 } else if ( attr === "axis" && obj == 'arrow' ) {
652- cfg [ 'axis_and_length' ] = o2vec3 ( val )
629+ cfg [ 'axis_and_length' ] = o2vec3 ( val )
653630 } else if ( vlst . indexOf ( attr ) !== - 1 ) {
654631 cfg [ attr ] = o2vec3 ( val )
655632 } else if ( triangle_quad . indexOf ( attr ) !== - 1 ) {
@@ -705,6 +682,8 @@ function handle_cmds(dcmds) {
705682 }
706683 // creating the objects
707684 cfg . idx = idx // reinsert idx, having looped thru all other attributes
685+ // triangle and quad objects should not have a canvas attribute; canvas is provided in the vertex objectsE
686+ if ( ( obj == 'triangle' || obj == 'quad' ) && cfg . canvas !== undefined ) delete cfg . canvas
708687 switch ( obj ) {
709688 case 'box' : { glowObjs [ idx ] = box ( cfg ) ; break }
710689 case 'sphere' : { glowObjs [ idx ] = sphere ( cfg ) ; break }
@@ -923,7 +902,7 @@ function handle_cmds(dcmds) {
923902 } // end of cmds (constructors and special data)
924903}
925904
926- function handle_methods ( dmeth ) {
905+ async function handle_methods ( dmeth ) {
927906 "use strict" ;
928907 //console.log('METHODS')
929908 for ( var idmeth = 0 ; idmeth < dmeth . length ; idmeth ++ ) { // methods; cmd is ['idx':idx, 'attr':method, 'val':val]
@@ -965,7 +944,7 @@ function handle_methods(dmeth) {
965944 } else if ( method === "follow" ) {
966945 obj . camera . follow ( glowObjs [ val ] )
967946 } else if ( method === "capture" ) {
968- obj . capture ( val )
947+ await obj . capture ( val )
969948 } else if ( method === 'waitfor' ) {
970949 waitfor_canvas = idx
971950 waitfor_options = val
@@ -974,10 +953,11 @@ function handle_methods(dmeth) {
974953 waitfor_canvas = idx
975954 waitfor_options = 'click'
976955 if ( val . length > 0 ) {
977- obj . pause ( val , process_pause )
956+ await obj . pause ( val )
978957 } else {
979- obj . pause ( process_pause )
958+ await obj . pause ( )
980959 }
960+ process_pause ( )
981961 } else if ( method === 'pick' ) {
982962 var p = glowObjs [ val ] . mouse . pick ( ) // wait for pick render; val is canvas
983963 var seg = null
@@ -1039,4 +1019,4 @@ function handle_attrs(dattrs) {
10391019}
10401020console . log ( "END OF GLOWCOMM" )
10411021
1042- //});
1022+ //});
0 commit comments