diff options
Diffstat (limited to 'js/helper-classes/RDGE/GLGeomObj.js')
-rwxr-xr-x | js/helper-classes/RDGE/GLGeomObj.js | 324 |
1 files changed, 0 insertions, 324 deletions
diff --git a/js/helper-classes/RDGE/GLGeomObj.js b/js/helper-classes/RDGE/GLGeomObj.js deleted file mode 100755 index 955f0f39..00000000 --- a/js/helper-classes/RDGE/GLGeomObj.js +++ /dev/null | |||
@@ -1,324 +0,0 @@ | |||
1 | /* <copyright> | ||
2 | This file contains proprietary software owned by Motorola Mobility, Inc.<br/> | ||
3 | No 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 | /////////////////////////////////////////////////////////////////////// | ||
8 | // Class GLGeomObj | ||
9 | // Super class for all geometry classes | ||
10 | /////////////////////////////////////////////////////////////////////// | ||
11 | function GLGeomObj() | ||
12 | { | ||
13 | /////////////////////////////////////////////////////////////////////// | ||
14 | // Constants | ||
15 | /////////////////////////////////////////////////////////////////////// | ||
16 | this.GEOM_TYPE_RECTANGLE = 1; | ||
17 | this.GEOM_TYPE_CIRCLE = 2; | ||
18 | this.GEOM_TYPE_LINE = 3; | ||
19 | this.GEOM_TYPE_PATH = 4; | ||
20 | this.GEOM_TYPE_CUBIC_BEZIER = 5; | ||
21 | this.GEOM_TYPE_UNDEFINED = -1; | ||
22 | |||
23 | // Needed for calculating dashed/dotted strokes | ||
24 | this.DASH_LENGTH = 0.15; | ||
25 | this.DOT_LENGTH = 0.05; | ||
26 | this.GAP_LENGTH = 0.05; | ||
27 | |||
28 | /////////////////////////////////////////////////////////////////////// | ||
29 | // Instance variables | ||
30 | /////////////////////////////////////////////////////////////////////// | ||
31 | this._matrix = Matrix.I(4); | ||
32 | |||
33 | this._next = undefined; | ||
34 | this._prev = undefined; | ||
35 | this._child = undefined; | ||
36 | this._parent = undefined; | ||
37 | |||
38 | this.m_world = null; | ||
39 | |||
40 | // stroke and fill colors | ||
41 | this._strokeColor = [0,0,0,0]; | ||
42 | this._fillColor = [0,0,0,0]; | ||
43 | |||
44 | // stroke and fill materials | ||
45 | this._fillMaterial; | ||
46 | this._strokeMaterial; | ||
47 | |||
48 | // array of primitives - used in RDGE | ||
49 | this._primArray = []; | ||
50 | this._materialNodeArray = []; | ||
51 | this._materialArray = []; | ||
52 | this._materialTypeArray = []; | ||
53 | |||
54 | // the transform node used by RDGE | ||
55 | this._trNode = null; | ||
56 | |||
57 | |||
58 | /////////////////////////////////////////////////////////////////////// | ||
59 | // Property accessors | ||
60 | /////////////////////////////////////////////////////////////////////// | ||
61 | this.setWorld = function( world ) { this.m_world = world; } | ||
62 | this.getWorld = function() { return this.m_world; } | ||
63 | |||
64 | this.getMatrix = function() { return this._matrix.slice(0); } | ||
65 | this.setMatrix = function(m) { this._matrix = m.slice(0); } | ||
66 | |||
67 | this.setNext = function( next ) { this._next = next; } | ||
68 | this.getNext = function() { return this._next; } | ||
69 | this.setPrev = function( prev ) { this._prev = prev; } | ||
70 | this.getPrev = function() { return this._prev; } | ||
71 | this.setChild = function( child ) { this._child = child; } | ||
72 | this.getChild = function() { return this._child; } | ||
73 | this.setParent = function( parent ) { this._parent = parent; } | ||
74 | this.getParent = function() { return this._parent; } | ||
75 | |||
76 | this.geomType = function() { return this.GEOM_TYPE_UNDEFINED; } | ||
77 | |||
78 | this.getPrimitiveArray = function() { return this._primArray; } | ||
79 | this.getMaterialNodeArray = function() { return this._materialNodeArray; } | ||
80 | this.getMaterialArray = function() { return this._materialArray; } | ||
81 | |||
82 | this.getTransformNode = function() { return this._trNode; } | ||
83 | this.setTransformNode = function(t) { this._trNode = t; } | ||
84 | |||
85 | /////////////////////////////////////////////////////////////////////// | ||
86 | // Methods | ||
87 | /////////////////////////////////////////////////////////////////////// | ||
88 | this.setMaterialColor = function(c, type) | ||
89 | { | ||
90 | if (type == "fill") | ||
91 | this._fillColor = c.slice(0); | ||
92 | else | ||
93 | this._strokeColor = c.slice(0); | ||
94 | if (this._materialArray && this._materialTypeArray) | ||
95 | { | ||
96 | var nMats = this._materialArray.length; | ||
97 | if (nMats === this._materialTypeArray.length) | ||
98 | { | ||
99 | for (var i=0; i<nMats; i++) | ||
100 | { | ||
101 | if (this._materialTypeArray[i] == type) | ||
102 | this._materialArray[i].setProperty( "color", c.slice(0) ); | ||
103 | } | ||
104 | } | ||
105 | } | ||
106 | |||
107 | var world = this.getWorld(); | ||
108 | if (world) world.restartRenderLoop(); | ||
109 | } | ||
110 | |||
111 | this.setFillColor = function(c) { this.setMaterialColor(c, "fill"); } | ||
112 | this.setStrokeColor = function(c) { this.setMaterialColor(c, "stroke"); } | ||
113 | |||
114 | this.makeStrokeMaterial = function() | ||
115 | { | ||
116 | var strokeMaterial; | ||
117 | if (this.getStrokeMaterial()) | ||
118 | strokeMaterial = this.getStrokeMaterial().dup(); | ||
119 | else | ||
120 | strokeMaterial = new FlatMaterial(); | ||
121 | |||
122 | if (strokeMaterial) | ||
123 | { | ||
124 | strokeMaterial.init( this.getWorld() ); | ||
125 | if(this._strokeColor) | ||
126 | { | ||
127 | strokeMaterial.setProperty("color", this._strokeColor); | ||
128 | } | ||
129 | } | ||
130 | |||
131 | this._materialArray.push( strokeMaterial ); | ||
132 | this._materialTypeArray.push( "stroke" ); | ||
133 | |||
134 | return strokeMaterial; | ||
135 | } | ||
136 | |||
137 | this.makeFillMaterial = function() | ||
138 | { | ||
139 | var fillMaterial; | ||
140 | if (this.getFillMaterial()) | ||
141 | fillMaterial = this.getFillMaterial().dup(); | ||
142 | else | ||
143 | fillMaterial = new FlatMaterial(); | ||
144 | |||
145 | if (fillMaterial) | ||
146 | { | ||
147 | fillMaterial.init( this.getWorld() ); | ||
148 | //if(!this.getFillMaterial() && this._fillColor) | ||
149 | if (this._fillColor) | ||
150 | { | ||
151 | fillMaterial.setProperty("color", this._fillColor); | ||
152 | } | ||
153 | } | ||
154 | |||
155 | this._materialArray.push( fillMaterial ); | ||
156 | this._materialTypeArray.push( "fill" ); | ||
157 | |||
158 | return fillMaterial; | ||
159 | } | ||
160 | |||
161 | this.exportMaterials = function() | ||
162 | { | ||
163 | var rtnStr = ""; | ||
164 | if (this._materialArray && this._materialNodeArray) | ||
165 | { | ||
166 | var nMats = this._materialArray.length; | ||
167 | rtnStr += "nMaterials: " + nMats + "\n"; | ||
168 | for (var i=0; i<nMats; i++) | ||
169 | { | ||
170 | var matNode = this._materialNodeArray[i]; | ||
171 | rtnStr += "materialNodeName: " + matNode.name + "\n"; | ||
172 | |||
173 | var material = this._materialArray[i]; | ||
174 | rtnStr += material.export(); | ||
175 | } | ||
176 | } | ||
177 | else | ||
178 | rtnStr += "nMaterials: 0\n" ; | ||
179 | |||
180 | return rtnStr; | ||
181 | } | ||
182 | |||
183 | this.importMaterials = function(importStr) | ||
184 | { | ||
185 | var nMaterials = Number( this.getPropertyFromString( "nMaterials: ", importStr ) ); | ||
186 | for (var i=0; i<nMaterials; i++) | ||
187 | { | ||
188 | var mat; | ||
189 | var materialType = this.getPropertyFromString( "material: ", importStr ); | ||
190 | switch (materialType) | ||
191 | { | ||
192 | case "flat": mat = new FlatMaterial(); break; | ||
193 | |||
194 | default: | ||
195 | console.log( "material type: " + materialType + " is not supported" ); | ||
196 | break; | ||
197 | } | ||
198 | |||
199 | if (mat) | ||
200 | mat.import( importStr ); | ||
201 | |||
202 | var endIndex = importStr.indexOf( "endMaterial\n" ); | ||
203 | if (endIndex < 0) break; | ||
204 | importStr = importStr.substr( endIndex ); | ||
205 | } | ||
206 | } | ||
207 | |||
208 | this.translate = function(v) | ||
209 | { | ||
210 | var mat = Matrix.Translation( v ); | ||
211 | //var mat2 = mat.multiply( this._matrix ); | ||
212 | //this._matrix = mat2; | ||
213 | glmat4.multiply(mat, this._matrix, this._matrix); | ||
214 | } | ||
215 | |||
216 | this.transform = function( mat ) | ||
217 | { | ||
218 | if (mat) | ||
219 | { | ||
220 | //this._matrix = mat.multiply( this._matrix ); | ||
221 | glmat4.multiply(mat, this._matrix, this._matrix); | ||
222 | } | ||
223 | } | ||
224 | |||
225 | this.setMatrix = function(mat) | ||
226 | { | ||
227 | var gl = this.getWorld().getGLContext(); | ||
228 | if (gl) | ||
229 | { | ||
230 | gl.uniformMatrix4fv(this.getWorld().getShaderProgram().mvMatrixUniform, false, new Float32Array(mat)); | ||
231 | } | ||