@@ -33,66 +33,66 @@ let renderer;
33
33
//lineto renderer objects
34
34
let canvas , context ;
35
35
let physics_element ;
36
- let render_physics ;
37
36
let mouseConstraint ;
38
37
let forces = {
39
38
neighb_start_push :150 ,
40
39
neighb_start_attract :250 ,
41
40
non_neighb_push :300
42
41
} ;
43
42
44
- function init ( phy_el , rend_phy , render_element ) {
43
+ function init ( phy_el , render_element ) {
45
44
physics_element = phy_el ;
46
- render_physics = rend_phy ;
47
45
const start = Date . now ( ) ;
48
46
engine = Matter . Engine . create ( { enableSleeping :true } ) ;
49
47
engine . world . gravity . y = config . system . physics . gravity ;
50
- console . log ( `phy> phy element width = ${ physics_element . offsetWidth } ; height = ${ physics_element . offsetHeight } ` ) ;
51
- console . log ( `phy> rendelement width = ${ render_element . offsetWidth } ; height = ${ render_element . offsetHeight } ` ) ;
52
- let ground = Matter . Bodies . rectangle ( 0 , physics_element . offsetHeight , physics_element . offsetWidth , 20 , { id :"obst0" , label :"ground" , isStatic : true , isvertex :false } ) ;
53
- let ceiling = Matter . Bodies . rectangle ( 0 , 0 , physics_element . offsetWidth * 2 , 20 , { id :"obst1" , label :"ceiling" , isStatic : true , isvertex :false } ) ;
54
- let wall_left = Matter . Bodies . rectangle ( 0 , 0 , 20 , physics_element . offsetHeight * 2 , { id :"obst2" , label :"wall_left" , isStatic : true , isvertex :false } ) ;
55
- //let wall_right = Matter.Bodies.rectangle(physics_element.offsetWidth-20, 0, physics_element.offsetHeight*2-20, physics_element.offsetHeight*2, { id:"obst3" ,label:"wall_right",isStatic: true ,isvertex:false});
56
- Matter . World . add ( engine . world , [ ground , ceiling , wall_left ] ) ;
48
+ if ( config . system . physics . walls ) {
49
+ let brect = physics_element . getBoundingClientRect ( ) ;
50
+ console . log ( `phy> phy element width = ${ physics_element . offsetWidth } ; height = ${ physics_element . offsetHeight } ` ) ;
51
+ console . log ( `phy> rendelement width = ${ render_element . offsetWidth } ; height = ${ render_element . offsetHeight } ` ) ;
52
+ console . log ( `phy> brect width = ${ brect . width } ; height = ${ brect . height } ` ) ;
53
+ let ground = Matter . Bodies . rectangle ( brect . width / 2 , brect . height - 10 , brect . width , 20 , { id :"obst0" , label :"ground" , isStatic : true , isvertex :false } ) ;
54
+ let ceiling = Matter . Bodies . rectangle ( brect . width / 2 , 10 , brect . width , 20 , { id :"obst1" , label :"ceiling" , isStatic : true , isvertex :false } ) ;
55
+ let wall_left = Matter . Bodies . rectangle ( 10 , brect . height / 2 , 20 , brect . height , { id :"obst2" , label :"wall_left" , isStatic : true , isvertex :false } ) ;
56
+ let wall_right = Matter . Bodies . rectangle ( brect . width - 10 , brect . height / 2 , 20 , brect . height , { id :"obst3" , label :"wall_right" , isStatic : true , isvertex :false } ) ;
57
+ Matter . World . add ( engine . world , [ ground , ceiling , wall_left , wall_right ] ) ;
58
+ }
57
59
58
60
window . addEventListener ( 'resize' , onResize , false ) ;
59
61
window . addEventListener ( 'graph_vertex' , onMatterVertex , false ) ;
60
62
window . addEventListener ( 'graph_edge' , onMatterEdge , false ) ;
61
63
window . addEventListener ( 'graph' , onGraph , false ) ;
62
64
window . addEventListener ( 'engine' , onEngine , false ) ;
63
65
64
- if ( render_physics ) {
65
- if ( config . system . physics . renderer . type_lineto ) {
66
- canvas = document . createElement ( 'canvas' ) ;
67
- context = canvas . getContext ( '2d' ) ;
68
- canvas . width = physics_element . offsetWidth ;
69
- canvas . height = physics_element . offsetHeight ;
70
- render_element . appendChild ( canvas ) ;
71
- }
72
- if ( dat . params [ "show physics" ] ) {
73
- renderer = Matter . Render . create ( {
74
- element : render_element ,
75
- engine : engine ,
76
- options : {
77
- width : render_element . offsetWidth ,
78
- height : render_element . offsetHeight ,
79
- showAngleIndicator : false ,
80
- showVelocity : true ,
81
- showBounds : true ,
82
- showBroadphase : true ,
83
- showAxes : true ,
84
- showIds : true ,
85
- showCollisions : true ,
86
- showSleeping :true ,
87
- showDebug :false ,
88
- wireframes : true ,
89
- constraintIterations :config . system . physics . simulation . constraintIterations
90
- //constraintIterations default = 2
91
- //positionIterations default = 6
92
- //velocityIterations default = 4
93
- }
94
- } ) ;
95
- }
66
+ if ( config . system . physics . renderer . type_lineto ) {
67
+ canvas = document . createElement ( 'canvas' ) ;
68
+ context = canvas . getContext ( '2d' ) ;
69
+ canvas . width = physics_element . offsetWidth ;
70
+ canvas . height = physics_element . offsetHeight ;
71
+ render_element . appendChild ( canvas ) ;
72
+ }
73
+ if ( dat . params [ "show physics" ] ) {
74
+ renderer = Matter . Render . create ( {
75
+ element : render_element ,
76
+ engine : engine ,
77
+ options : {
78
+ width : render_element . offsetWidth ,
79
+ height : render_element . offsetHeight ,
80
+ showAngleIndicator : false ,
81
+ showVelocity : true ,
82
+ showBounds : true ,
83
+ showBroadphase : true ,
84
+ showAxes : true ,
85
+ showIds : true ,
86
+ showCollisions : true ,
87
+ showSleeping :true ,
88
+ showDebug :false ,
89
+ wireframes : true ,
90
+ constraintIterations :config . system . physics . simulation . constraintIterations
91
+ //constraintIterations default = 2
92
+ //positionIterations default = 6
93
+ //velocityIterations default = 4
94
+ }
95
+ } ) ;
96
96
}
97
97
canvas = render_element . getElementsByTagName ( "canvas" ) [ 0 ]
98
98
//add_mouse_interaction();
@@ -264,13 +264,11 @@ function run(){
264
264
if ( any_vertex_to_move ) {
265
265
utils . send ( 'graph_edge' , { type :'refresh_all' } ) ;
266
266
}
267
- if ( render_physics ) {
268
- if ( config . system . physics . renderer . type_lineto ) {
269
- render_lineto ( engine , context ) ;
270
- }
271
- if ( dat . params [ "show physics" ] ) {
272
- Matter . Render . world ( renderer ) ;
273
- }
267
+ if ( config . system . physics . renderer . type_lineto ) {
268
+ render_lineto ( engine , context ) ;
269
+ }
270
+ if ( dat . params [ "show physics" ] ) {
271
+ Matter . Render . world ( renderer ) ;
274
272
}
275
273
}
276
274
0 commit comments