aboutsummaryrefslogtreecommitdiff
path: root/js/lib
diff options
context:
space:
mode:
authorPushkar Joshi2012-03-06 17:05:05 -0800
committerPushkar Joshi2012-03-06 17:05:05 -0800
commit794abd077a0cd4c797d3f566281deca77b184bfe (patch)
tree3bf4a83ca714def2671fe8cef93db859b0d5553f /js/lib
parentc155cd238b6f9e0b8191e0fc533f7bc974b762c2 (diff)
parent2e3943a8f751ec572066f168b58464c24b9f29e5 (diff)
downloadninja-794abd077a0cd4c797d3f566281deca77b184bfe.tar.gz
Merge branch 'master' into pentool
Diffstat (limited to 'js/lib')
-rwxr-xr-xjs/lib/drawing/world.js917
-rwxr-xr-xjs/lib/geom/anchor-point.js242
-rwxr-xr-xjs/lib/geom/brush-stroke.js482
-rwxr-xr-xjs/lib/geom/circle.js751
-rwxr-xr-xjs/lib/geom/geom-obj.js280
-rwxr-xr-xjs/lib/geom/line.js488
-rwxr-xr-xjs/lib/geom/rectangle.js1165
-rw-r--r--js/lib/geom/shape-primitive.js54
-rwxr-xr-xjs/lib/geom/sub-path.js1288
-rwxr-xr-xjs/lib/math/matrix.js104
-rwxr-xr-xjs/lib/rdge/materials/bump-metal-material.js314
-rw-r--r--js/lib/rdge/materials/deform-material.js127
-rwxr-xr-xjs/lib/rdge/materials/flat-material.js159
-rw-r--r--js/lib/rdge/materials/fly-material.js119
-rw-r--r--js/lib/rdge/materials/julia-material.js136
-rw-r--r--js/lib/rdge/materials/keleidoscope-material.js144
-rwxr-xr-xjs/lib/rdge/materials/linear-gradient-material.js434
-rw-r--r--js/lib/rdge/materials/mandel-material.js147
-rwxr-xr-xjs/lib/rdge/materials/material-parser.js73
-rwxr-xr-xjs/lib/rdge/materials/material.js346
-rw-r--r--js/lib/rdge/materials/plasma-material.js132
-rw-r--r--js/lib/rdge/materials/pulse-material.js258
-rw-r--r--js/lib/rdge/materials/radial-blur-material.js244
-rwxr-xr-xjs/lib/rdge/materials/radial-gradient-material.js351
-rw-r--r--js/lib/rdge/materials/relief-tunnel-material.js122
-rw-r--r--js/lib/rdge/materials/square-tunnel-material.js120
-rw-r--r--js/lib/rdge/materials/star-material.js124
-rw-r--r--js/lib/rdge/materials/taper-material.js223
-rw-r--r--js/lib/rdge/materials/tunnel-material.js125
-rw-r--r--js/lib/rdge/materials/twist-material.js139
-rw-r--r--js/lib/rdge/materials/twist-vert-material.js248
-rwxr-xr-xjs/lib/rdge/materials/uber-material.js614
-rw-r--r--js/lib/rdge/materials/water-material.js126
-rw-r--r--js/lib/rdge/materials/z-invert-material.js125
34 files changed, 10721 insertions, 0 deletions
diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js
new file mode 100755
index 00000000..3d6c6fc4
--- /dev/null
+++ b/js/lib/drawing/world.js
@@ -0,0 +1,917 @@
1/* <copyright>
2This file contains proprietary software owned by Motorola Mobility, Inc.<br/>
3No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.<br/>
4(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
5</copyright> */
6
7// Useless Global variables.
8// TODO: Remove this as soon as QE test pass
9/*
10var shaderProgramArray = new Array;
11var glContextArray = new Array;
12var vertexShaderSource = "";
13var fragmentShaderSource = "";
14var rdgeStarted = false;
15*/
16
17var nodeCounter = 0;
18
19var GeomObj = require("js/lib/geom/geom-obj").GeomObj;
20var Line = require("js/lib/geom/line").Line;
21var Rectangle = require("js/lib/geom/rectangle").Rectangle;
22var Circle = require("js/lib/geom/circle").Circle;
23var MaterialsModel = require("js/models/materials-model").MaterialsModel;
24
25///////////////////////////////////////////////////////////////////////
26// Class GLWorld
27// Manages display in a canvas
28///////////////////////////////////////////////////////////////////////
29var World = function GLWorld( canvas, use3D ) {
30 ///////////////////////////////////////////////////////////////////////
31 // Instance variables
32 ///////////////////////////////////////////////////////////////////////
33
34 // flag to do the drawing with WebGL
35 this._useWebGL = false;
36 if(use3D) {
37 this._useWebGL = use3D;
38 }
39
40 this._canvas = canvas;
41 if (this._useWebGL) {
42 this._glContext = canvas.getContext("experimental-webgl");
43 } else {
44 this._2DContext = canvas.getContext( "2d" );
45 }
46
47 this._viewportWidth = canvas.width;
48 this._viewportHeight = canvas.height;
49
50 // view parameters
51 this._fov = 45.0;
52 this._zNear = 0.1;
53 this._zFar = 100.0;
54 this._viewDist = 5.0;
55
56 // default light parameters
57 this._ambientLightColor = [0.1, 0.1, 0.1, 1.0];
58 this._diffuseLightColor = [0.1, 0.1, 0.1, 1.0];
59 this._specularLightColor = [0.6, 0.6, 0.6, 1.0];
60 this._pointLightLoc = [0.0, 0.0, 0.05];
61
62 // default material properties. Material properties should be overridden
63 // by the materials used by the objects
64 this._materialShininess = 20.0;
65
66 this._geomRoot = undefined;
67
68 this._cameraMat = Matrix.I(4);
69 this._cameraMat[14] = 5.0;
70 this._cameraMatInv = Matrix.I(4);
71 this._cameraMatInv[14] = -5.0;
72
73 this._camera = null;
74 // keep a flag indicating whether a render has been completed.
75 // this allows us to turn off automatic updating if there are
76 // no animated materials
77 this._firstRender = true;
78
79 ///////////////////////////////////////////////////////////////////////
80 // Property accessors
81 ///////////////////////////////////////////////////////////////////////
82 this.getGLContext = function() { return this._glContext; };
83 this.setGLContext = function(gl) { this._glContext = gl; };
84
85 this.get2DContext = function() { return this._2DContext; };
86 this.set2DContext = function(c) { this._2DContext = c; };
87
88 this.getCanvas = function() { return this._canvas; };
89 this.setCanvas = function(c) { this._canvas = c; };
90
91 this.getShaderProgram = function() { return this._shaderProgram; };
92
93 this.getViewportWidth = function() { return this._viewportWidth; };
94 this.getViewportHeight = function() { return this._viewportHeight; };
95
96 this.getAspect = function() { return this._viewportWidth/this._viewportHeight; };
97
98 this.getGeomRoot = function() { return this._geomRoot; };
99 this.getZNear = function() { return this._zNear; };
100 this.getZFar = function() { return this._zFar; };
101 this.getFOV = function() { return this._fov; };
102
103 this.getCamera = function() { return this._camera; };
104
105 this.getCameraMat = function() { return this._cameraMat.slice(0); };
106 this.setCameraMat = function(c) { this._cameraMat = c.slice(0); this._cameraMatInv = glmat4.inverse(c, []); };
107
108 this.getCameraMatInverse = function() { return this._cameraMatInv.slice(0); };
109
110 this.getViewDistance = function() { return this._viewDist; };
111
112 this.getRootNode = function() { return this._rootNode; };
113 this.setRootNode = function(r) { this._rootNode = r; };
114
115 this.isWebGL = function() { return this._useWebGL; };
116
117 this.getRenderer = function() { return this.renderer; };
118
119 ////////////////////////////////////////////////////////////////////////////////////
120 // RDGE
121 // local variables
122 this.myScene = null;
123 this.elapsed = 0;
124 this.light = null;
125 this.light2 = null;
126 this.fillShader = null;
127 this.strokeShader = null;
128 this.renderer = null;
129
130 // keep an array of texture maps that need to be loaded
131 this._texMapsToLoad = [];
132 this._allMapsLoaded = true;
133
134 // this is the node to which objects get hung
135 this._rootNode = null;
136
137 // set up the camera matrix
138 var camMat = Matrix.I(4);
139 camMat[14] = this.getViewDistance();
140 this.setCameraMat( camMat );
141
142 // post-load processing of the scene
143 this.init = function() {
144 var ctx1 = g_Engine.ctxMan.handleToObject(this._canvas.rdgeCtxHandle),
145 ctx2 = g_Engine.getContext();
146 if (ctx1 != ctx2) console.log( "***** different contexts *****" );
147 this.renderer = ctx1.renderer;
148 this.renderer._world = this;
149
150 // create a camera, set its perspective, and then point it at the origin
151 var cam = new camera();
152 this._camera = cam;
153 cam.setPerspective(this.getFOV(), this.getAspect(), this.getZNear(), this.getZFar());
154 cam.setLookAt([0, 0, this.getViewDistance()], [0, 0, 0], vec3.up());
155
156 // make this camera the active camera
157 this.renderer.cameraManager().setActiveCamera(cam);
158
159 // change clear color
160 //this.renderer.setClearFlags(g_Engine.getContext().DEPTH_BUFFER_BIT);
161 this.renderer.setClearColor([0.0, 0.0, 0.0, 0.0]);
162 //this.renderer.NinjaWorld = this;
163
164 // create an empty scene graph
165 this.myScene = new SceneGraph();
166
167 // create some lights
168 // light 1
169 this.light = createLightNode("myLight");
170 this.light.setPosition([0,0,1.2]);
171 this.light.setDiffuseColor([0.75,0.9,1.0,1.0]);
172
173 // light 2
174 this.light2 = createLightNode