Skip to content

Commit c866d61

Browse files
author
Nikos M
committed
v.0.6.0, final
1 parent 6f565f4 commit c866d61

12 files changed

Lines changed: 505 additions & 50 deletions

File tree

build/MOD3.min.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/mod3.bundle.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/OSG/Bend.html

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@
3232
var mstack, mod;
3333

3434
// dynamic update
35-
osg.Geometry.enableVAO = true;
35+
//osg.Geometry.enableVAO = true;
3636

3737
function SimpleUpdateCallback( ){ }
3838
SimpleUpdateCallback.prototype = {
39-
constructor: SimpleUpdateCallback,
40-
4139
angle: 0,
4240

4341
update: function ( node, nv ) {
@@ -50,10 +48,10 @@
5048
osg.Matrix.makeRotate( -this.angle, 0.0, 1.0, 0.0, m );
5149
osg.Matrix.setTrans( m, 0, 0, 10 );
5250
this.angle += 0.02;
53-
if ( mod.force < 1.8 )
51+
if ( mod.force <= 1.8 )
5452
{
5553
mstack.apply( );
56-
mod.force += 0.1;
54+
mod.force += 0.01;
5755
}
5856
return true;
5957
}
@@ -149,9 +147,8 @@
149147
rotate.addUpdateCallback( new SimpleUpdateCallback() );
150148
viewer.getCamera( ).setClearColor( [ 0.7, 0.7, 0.7, 0.0 ] );
151149
viewer.setSceneData( rotate );
152-
//viewer._requestContinousUpdate = true;
153-
viewer.setupManipulator();
154-
viewer.getManipulator().computeHomePosition();
150+
//viewer.setupManipulator();
151+
//viewer.getManipulator().computeHomePosition();
155152
viewer.run( );
156153

157154
} catch ( er ) {

examples/OSG/Bloat.html

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,156 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Bloat demo and OSG.js</title>
6+
<link rel="stylesheet" type="text/css" href="./base.css">
7+
8+
<!-- Javascript -->
9+
<script type="text/javascript" src="./core.js"></script>
10+
<script type="text/javascript" src="./bluebird-2.10.2.js"></script>
11+
<script type="text/javascript" src="./hammer-2.0.4.js"></script>
12+
<!--<script type="text/javascript" src="./leap.js"></script>-->
13+
<script type="text/javascript" src="./OSG.js"></script>
14+
<script type="text/javascript" src="../../build/mod3.bundle.js"></script>
15+
<script type="text/javascript" src="../../src/plugins/OSG/OSG.js"></script>
16+
</head>
17+
18+
19+
20+
<body class="osgjs-theme-dark">
21+
22+
<div id="ViewContainer" class="osgjs-fullpage">
23+
<!-- very important change the size of the parent element instead-->
24+
<canvas id="View" style="height:100%;width:100%;" oncontextmenu="return false;"></canvas>
25+
</div>
26+
27+
</body>
28+
29+
<script type="text/javascript">
30+
!function( window ){
31+
var OSG = window.OSG, osg = OSG.osg, osgAnimation = OSG.osgAnimation, osgViewer = OSG.osgViewer;
32+
var mstack, mod;
33+
34+
function SimpleUpdateCallback() {}
35+
SimpleUpdateCallback.prototype = {
36+
angle: 0,
37+
38+
update: function ( node, nv ) {
39+
var t = nv.getFrameStamp().getSimulationTime();
40+
var dt = t - node._lastUpdate;
41+
if ( dt < 0 ) { return true; }
42+
node._lastUpdate = t;
43+
44+
var m = node.getMatrix();
45+
osg.Matrix.makeRotate( -this.angle, 0.0, 1.0, 0.0, m );
46+
osg.Matrix.setTrans( m, 0, 0, 10 );
47+
this.angle += 0.02;
48+
49+
if ( mod.radius <= 5 )
50+
{
51+
mstack.apply( );
52+
mod.radius += 0.02;
53+
}
54+
return true;
55+
}
56+
};
57+
58+
function createBox( cx, cy, cz, wx, wy, wz, hx, hy, hz, res1, res2 )
59+
{
60+
cx = cx !== undefined ? cx : -0.5;
61+
cy = cy !== undefined ? cy : -0.5;
62+
cz = cz !== undefined ? cz : 0.0;
63+
64+
wx = wx !== undefined ? wx : 1.0;
65+
wy = wy !== undefined ? wy : 0.0;
66+
wz = wz !== undefined ? wz : 0.0;
67+
68+
hx = hx !== undefined ? hx : 0.0;
69+
hy = hy !== undefined ? hy : 1.0;
70+
hz = hz !== undefined ? hz : 0.0;
71+
72+
res1 = res1 !== undefined ? res1 : 5;
73+
res2 = res2 !== undefined ? res2 : res1;
74+
res1 += 2;
75+
res2 += 2;
76+
77+
var g = new osg.Geometry();
78+
var vertices = new Float32Array( ( res1 /*+ res2*/ ) * 2 * 3 );
79+
//var uv = new Float32Array( ( res1 + res2 ) * 2 * 2 );
80+
//var normal = new Float32Array( vertices.length );
81+
var i = 0;
82+
var j = 0, k;
83+
var sx = wx / ( res1 - 1 );
84+
var sy = wy / ( res1 - 1 );
85+
var sz = wz / ( res1 - 1 );
86+
var ux = cx + wx + hx;
87+
var uy = cy + wy + hy;
88+
var uz = cz + wz + hz;
89+
for ( i = 0; i < res1; ++i ) {
90+
j = i * 6; k = i * 4;
91+
vertices[ j ] = cx + sx * i;
92+
vertices[ j + 1 ] = cy + sy * i;
93+
vertices[ j + 2 ] = cz + sz * i;
94+
vertices[ j + 3 ] = ux - sx * ( res1 - i - 1 );
95+
vertices[ j + 4 ] = uy - sy * ( res1 - i - 1 );
96+
vertices[ j + 5 ] = uz - sz * ( res1 - i - 1 );
97+
}
98+
/*sx = hx / ( res2 - 1 );
99+
sy = hy / ( res2 - 1 );
100+
sz = hz / ( res2 - 1 );
101+
for ( i = 0; i < res2; ++i ) {
102+
j = ( res1 + i ) * 6;
103+
vertices[ j ] = cx + sx * i;
104+
vertices[ j + 1 ] = cy + sy * i;
105+
vertices[ j + 2 ] = cz + sz * i;
106+
vertices[ j + 3 ] = ux - sx * ( res2 - i - 1 );
107+
vertices[ j + 4 ] = uy - sy * ( res2 - i - 1 );
108+
vertices[ j + 5 ] = uz - sz * ( res2 - i - 1 );
109+
}*/
110+
g.getAttributes().Vertex = new osg.BufferArray( osg.BufferArray.ARRAY_BUFFER, vertices, 3 );
111+
var primitive = new osg.DrawArrays( osg.PrimitiveSet.LINES, 0, ( res1 /*+ res2*/ ) * 2 );
112+
g.getPrimitives().push( primitive );
113+
return g;
114+
}
115+
116+
function createScene()
117+
{
118+
var root = new osg.Node();
119+
var cube = createBox( -5, -5, 0.0, 10.0, 0.0, 0.0, 0.0, 10.0, 0, 100, 5 );
120+
root.addChild( cube );
121+
mstack = new MOD3.ModifierStack( MOD3.LibraryOSG, cube );
122+
mod = new MOD3.Bloat( );
123+
mstack.addModifier( mod );
124+
return root;
125+
}
126+
127+
function main( )
128+
{
129+
var canvas = document.getElementById( 'View' );
130+
131+
var viewer;
132+
try {
133+
viewer = new osgViewer.Viewer( canvas, {
134+
antialias: true,
135+
alpha: true
136+
} );
137+
viewer.init();
138+
var scene = createScene();
139+
var rotate = new osg.MatrixTransform();
140+
rotate.addChild( scene );
141+
rotate.addUpdateCallback( new SimpleUpdateCallback() );
142+
viewer.getCamera().setClearColor( [ 0.7, 0.7, 0.7, 0.0 ] );
143+
viewer.setSceneData( rotate );
144+
//viewer.setupManipulator();
145+
//viewer.getManipulator().computeHomePosition();
146+
viewer.run();
147+
148+
} catch ( er ) {
149+
osg.log( 'exception in osgViewer ' + er );
150+
}
151+
}
152+
153+
window.addEventListener( 'load', main, true );
154+
}( window );
155+
</script>
156+
</html>

examples/OSG/Perlin.html

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,9 @@
2828
</body>
2929

3030
<script type="text/javascript">
31-
32-
var OSG = window.OSG;
33-
var osg = OSG.osg;
34-
var osgAnimation = OSG.osgAnimation;
35-
var osgViewer = OSG.osgViewer;
36-
var cube, mstack, mod, rotate;
31+
!function( window ){
32+
var OSG = window.OSG, osg = OSG.osg, osgAnimation = OSG.osgAnimation, osgViewer = OSG.osgViewer;
33+
var mstack, mod;
3734

3835
function generate_noise2d( w, h, perlinNoise2d )
3936
{
@@ -50,7 +47,6 @@
5047

5148
function SimpleUpdateCallback() {}
5249
SimpleUpdateCallback.prototype = {
53-
mod_force: 1,
5450
angle: 0,
5551

5652
update: function ( node, nv ) {
@@ -59,12 +55,11 @@
5955
if ( dt < 0 ) { return true; }
6056
node._lastUpdate = t;
6157

62-
var m = rotate.getMatrix();
58+
var m = node.getMatrix();
6359
osg.Matrix.makeRotate( -this.angle, 0.0, 1.0, 0.0, m );
6460
osg.Matrix.setTrans( m, 0, 0, 10 );
6561
this.angle += 0.02;
6662

67-
mod.force = this.mod_force;
6863
mstack.apply( );
6964
return true;
7065
}
@@ -131,11 +126,10 @@
131126
function createScene()
132127
{
133128
var root = new osg.Node();
134-
cube = createBox( -5, -5, 0.0, 10.0, 0.0, 0.0, 0.0, 10.0, 0, 100, 5 );
135-
cube.addUpdateCallback( new SimpleUpdateCallback() );
129+
var cube = createBox( -5, -5, 0.0, 10.0, 0.0, 0.0, 0.0, 10.0, 0, 100, 5 );
136130
root.addChild( cube );
137131
mstack = new MOD3.ModifierStack( MOD3.LibraryOSG, cube );
138-
mod = new MOD3.Perlin( 20, generate_noise2d( 50, 50 ) );
132+
mod = new MOD3.Perlin( 1.5, generate_noise2d( 50, 50 ) );
139133
mstack.addModifier( mod );
140134
return root;
141135
}
@@ -152,13 +146,13 @@
152146
} );
153147
viewer.init();
154148
var scene = createScene();
155-
rotate = new osg.MatrixTransform();
149+
var rotate = new osg.MatrixTransform();
156150
rotate.addChild( scene );
151+
rotate.addUpdateCallback( new SimpleUpdateCallback() );
157152
viewer.getCamera().setClearColor( [ 0.7, 0.7, 0.7, 0.0 ] );
158153
viewer.setSceneData( rotate );
159154
//viewer.setupManipulator();
160155
//viewer.getManipulator().computeHomePosition();
161-
162156
viewer.run();
163157

164158
} catch ( er ) {
@@ -167,6 +161,6 @@
167161
}
168162

169163
window.addEventListener( 'load', main, true );
170-
164+
}( window );
171165
</script>
172166
</html>

0 commit comments

Comments
 (0)