@@ -198,7 +198,7 @@ function changeOperation( select, id ) {
198
198
}
199
199
200
200
function generateOperationSelect ( id , operation ) {
201
-
201
+
202
202
var html = '<select onchange="changeOperation(this, ' + id + ')">' ;
203
203
for ( var i = 0 ; i < operations . length ; i ++ ) {
204
204
if ( operation == operations [ i ] )
@@ -215,7 +215,7 @@ function generateOperationSelect(id, operation) {
215
215
216
216
217
217
TGUI . Texture = function ( ) {
218
-
218
+
219
219
this . steps = [ ] ;
220
220
this . name = "Unknown" ;
221
221
this . counter = 0 ;
@@ -247,7 +247,7 @@ TGUI.Texture.prototype = {
247
247
paramString += '.' + id + '( ' + step . params [ id ] . join ( ', ' ) + ' )' ;
248
248
else
249
249
paramString += '.' + id + '( ' + step . params [ id ] + ' )' ;
250
-
250
+
251
251
}
252
252
253
253
switch ( step . operation ) {
@@ -280,7 +280,7 @@ TGUI.Texture.prototype = {
280
280
281
281
}
282
282
code += ";" ;
283
-
283
+
284
284
ctx . putImageData ( _texture . toImageData ( ctx ) , 0 , 0 ) ;
285
285
286
286
cube . material . map . needsUpdate = true ;
@@ -289,7 +289,7 @@ TGUI.Texture.prototype = {
289
289
Prism . highlightAll ( ) ;
290
290
291
291
} ,
292
-
292
+
293
293
getStepById : function ( id ) {
294
294
295
295
for ( var i = 0 ; i < this . steps . length ; i ++ ) {
@@ -313,34 +313,37 @@ TGUI.Texture.prototype = {
313
313
texture . render ( ) ;
314
314
315
315
}
316
+
316
317
} ,
317
318
318
- regenerateStepList : function ( ) {
319
+ regenerateStepList : function ( ) {
319
320
320
321
var options = [ ] ;
321
-
322
- for ( var i = 0 ; i < this . steps . length ; i ++ ) {
323
-
322
+
323
+ for ( var i = 0 ; i < this . steps . length ; i ++ ) {
324
+
324
325
var step = this . steps [ i ] ;
325
326
var select = generateOperationSelect ( step . id , step . operation ) ;
326
327
options . push ( { value : step . id , html : select + ' (ID=' + step . id + ') ' + step . type + ' <button onclick="texture.deleteStep(' + step . id + ')" style="color:#f99;float:right">delete</button>' } ) ;
328
+
327
329
}
328
-
330
+
329
331
stepList . setOptions ( options ) ;
330
332
331
333
if ( this . steps . length > 0 ) {
332
-
334
+
333
335
var lastId = this . steps [ this . steps . length - 1 ] . id ;
334
336
stepList . setValue ( lastId ) ;
335
337
generatorSelected ( lastId ) ;
336
338
337
- }
338
- else
339
- {
339
+ } else {
340
+
340
341
if ( currentGenerator != null ) {
341
342
generatorPanels [ currentGenerator . type ] . dom . style . display = "none" ;
342
343
}
344
+
343
345
}
346
+
344
347
} ,
345
348
346
349
add : function ( type , operation ) {
@@ -356,7 +359,7 @@ TGUI.Texture.prototype = {
356
359
}
357
360
358
361
function updateControlParameter ( e ) {
359
-
362
+
360
363
if ( e . srcElement . id . indexOf ( "." ) !== - 1 ) {
361
364
362
365
var ids = e . srcElement . id . split ( "." ) ;
@@ -369,6 +372,7 @@ function updateControlParameter( e ) {
369
372
}
370
373
371
374
texture . render ( ) ;
375
+
372
376
}
373
377
374
378
function generatorSelected ( id ) {
@@ -389,14 +393,13 @@ function generatorSelected( id ) {
389
393
for ( var idParam in TGUI . GeneratorDefinitions [ type ] . parameters ) {
390
394
391
395
param = TGUI . GeneratorDefinitions [ type ] . uiparameters [ idParam ] ;
392
-
396
+
393
397
if ( param . length > 1 ) {
394
-
395
- for ( var i = 0 ; i < param . length ; i ++ )
398
+
399
+ for ( var i = 0 ; i < param . length ; i ++ )
396
400
param [ i ] . setValue ( currentGenerator . params [ idParam ] [ i ] ) ;
397
401
398
- }
399
- else {
402
+ } else {
400
403
401
404
param [ 0 ] . setValue ( currentGenerator . params [ idParam ] ) ;
402
405
}
@@ -424,8 +427,8 @@ function init() {
424
427
425
428
document . getElementById ( "sidebar2" ) . appendChild ( stepList . dom ) ;
426
429
427
- for ( var definitionId in TGUI . GeneratorDefinitions )
428
- {
430
+ for ( var definitionId in TGUI . GeneratorDefinitions ) {
431
+
429
432
var panel = new UI . CollapsiblePanel ( ) ;
430
433
panel . setId ( definitionId ) ;
431
434
@@ -440,37 +443,37 @@ function init() {
440
443
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters = { } ;
441
444
442
445
for ( var idParam in parameters ) {
443
-
446
+
444
447
var param = parameters [ idParam ] ;
445
-
448
+
446
449
var row = new UI . Panel ( ) ;
447
-
450
+
448
451
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] = [ ] ;
449
452
450
453
row . setId ( definitionId + "." + idParam ) ;
451
454
row . add ( new UI . Text ( idParam ) . setWidth ( '90px' ) ) ;
452
455
453
456
switch ( param . type ) {
454
457
455
- case "number" :
458
+ case "number" :
456
459
var c = new UI . Number ( ) . setWidth ( '50px' ) . onChange ( updateControlParameter ) . setId ( idParam ) ;
457
- if ( param . step )
460
+ if ( param . step )
458
461
c . step = param . step ;
459
462
460
463
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c ) ;
461
464
462
465
row . add ( c ) ;
463
466
break ;
464
467
465
- case "vec2i" :
468
+ case "vec2i" :
466
469
var c1 = new UI . Integer ( ) . setWidth ( '50px' ) . onChange ( updateControlParameter ) . setId ( idParam + '.0' ) ;
467
470
var c2 = new UI . Integer ( ) . setWidth ( '50px' ) . onChange ( updateControlParameter ) . setId ( idParam + '.1' ) ;
468
471
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c1 ) ;
469
472
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c2 ) ;
470
473
row . add ( c1 , c2 ) ;
471
474
break ;
472
475
473
- case "vec2f" :
476
+ case "vec2f" :
474
477
var c1 = new UI . Number ( ) . setWidth ( '50px' ) . onChange ( updateControlParameter ) . setId ( idParam + '.0' ) ;
475
478
var c2 = new UI . Number ( ) . setWidth ( '50px' ) . onChange ( updateControlParameter ) . setId ( idParam + '.1' ) ;
476
479
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c1 ) ;
@@ -483,20 +486,25 @@ function init() {
483
486
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c ) ;
484
487
row . add ( c ) ;
485
488
break ;
486
-
489
+
487
490
case "color" :
488
491
var c = new UI . Color ( ) . setWidth ( '50px' ) ;
489
492
TGUI . GeneratorDefinitions [ definitionId ] . uiparameters [ idParam ] . push ( c ) ;
490
493
row . add ( c ) ;
491
494
break ;
492
495
493
- default :
496
+ default :
494
497
console . error ( "Unknown param type" , param . type ) ;
495
498
}
499
+
496
500
panel . add ( row ) ;
501
+
497
502
}
503
+
498
504
panel . dom . style . display = "none" ;
505
+
499
506
}
507
+
500
508
document . getElementById ( "sidebar" ) . appendChild ( container . dom ) ;
501
509
502
510
}
@@ -506,55 +514,54 @@ var sphere;
506
514
var material ;
507
515
508
516
function init3D ( ) {
509
-
517
+
510
518
var scene = new THREE . Scene ( ) ;
511
-
519
+
512
520
var container = document . getElementById ( "preview3d" ) ;
513
521
514
- var camera = new THREE . PerspectiveCamera ( 75 , container . clientWidth / container . clientHeight , 0.1 , 1000 ) ;
515
- var renderer = new THREE . WebGLRenderer ( ) ;
522
+ var camera = new THREE . PerspectiveCamera ( 50 , container . clientWidth / container . clientHeight , 0.1 , 1000 ) ;
523
+ var renderer = new THREE . WebGLRenderer ( { antialias : true } ) ;
516
524
517
525
renderer . setSize ( container . clientWidth , container . clientHeight ) ;
518
526
document . getElementById ( "preview3d" ) . appendChild ( renderer . domElement ) ;
519
527
520
- material = new THREE . MeshBasicMaterial ( {
521
- color : 0xffffff ,
528
+ material = new THREE . MeshBasicMaterial ( {
529
+ color : 0xffffff ,
522
530
transparent : true ,
523
531
map : new THREE . Texture ( document . getElementById ( "preview" ) ) } ) ;
524
-
525
- // Add cube
526
- var cubeGeometry = new THREE . BoxGeometry ( 10 , 10 , 10 ) ;
532
+
533
+ // Add cube
534
+ var cubeGeometry = new THREE . BoxGeometry ( 10 , 10 , 10 ) ;
527
535
cube = new THREE . Mesh ( cubeGeometry , material ) ;
528
536
scene . add ( cube ) ;
529
537
530
- var sphereGeometry = new THREE . SphereGeometry ( 10 , 10 , 10 ) ;
538
+ var sphereGeometry = new THREE . SphereGeometry ( 7 , 10 , 10 ) ;
531
539
sphere = new THREE . Mesh ( sphereGeometry , material ) ;
532
540
scene . add ( sphere ) ;
533
541
sphere . visible = false ;
534
542
535
543
scene . add ( new THREE . AmbientLight ( 0x111111 ) ) ;
536
544
537
545
camera . position . z = 20 ;
538
-
539
- function renderScene ( )
540
- {
546
+
547
+ function renderScene ( ) {
541
548
requestAnimationFrame ( renderScene ) ;
542
-
543
- var timer = 0.001 * Date . now ( ) ;
549
+
550
+ var timer = 0.0005 * Date . now ( ) ;
544
551
545
552
cube . rotation . y = timer ;
546
553
sphere . rotation . y = timer ;
547
-
554
+
548
555
renderer . render ( scene , camera ) ;
549
556
}
550
-
551
- renderScene ( ) ;
557
+
558
+ renderScene ( ) ;
552
559
}
553
560
554
561
function showObject ( button ) {
555
562
556
- if ( button . id == "cube" )
557
- {
563
+ if ( button . id == "cube" ) {
564
+
558
565
cube . visible = true ;
559
566
sphere . visible = false ;
560
567
button . className = "selected" ;
@@ -575,4 +582,4 @@ var texture = new TGUI.Texture();
575
582
var stepList ;
576
583
var currentGenerator = null ;
577
584
var generatorPanels = { } ;
578
- var ctx ;
585
+ var ctx ;
0 commit comments