|
129 | 129 | baseSprite.onload = function () { |
130 | 130 |
|
131 | 131 | loadMolecule( "models/molecules/caffeine.pdb" ); |
132 | | - |
133 | | - function generateButtonCallback( url ) { |
134 | | - |
135 | | - return function ( event ) { |
136 | | - |
137 | | - loadMolecule( url ); |
138 | | - |
139 | | - } |
140 | | - |
141 | | - } |
142 | | - |
143 | | - for ( var m in MOLECULES ) { |
144 | | - |
145 | | - var button = document.createElement( 'button' ); |
146 | | - button.innerHTML = m; |
147 | | - menu.appendChild( button ); |
148 | | - |
149 | | - var url = "models/molecules/" + MOLECULES[ m ]; |
150 | | - |
151 | | - button.addEventListener( 'click', generateButtonCallback( url ), false ); |
152 | | - |
153 | | - } |
| 132 | + createMenu(); |
154 | 133 |
|
155 | 134 | }; |
156 | 135 |
|
|
164 | 143 |
|
165 | 144 | // |
166 | 145 |
|
167 | | - function parseColor( colorString ) { |
168 | | - |
169 | | - // default to white opaque |
| 146 | + function generateButtonCallback( url ) { |
170 | 147 |
|
171 | | - var r, g, b, a; |
172 | | - r = g = b = a = 1; |
| 148 | + return function ( event ) { |
173 | 149 |
|
174 | | - var matchRGBA = reRGBA.exec( colorString ); |
| 150 | + loadMolecule( url ); |
175 | 151 |
|
176 | | - if ( matchRGBA ) { |
| 152 | + } |
177 | 153 |
|
178 | | - r = parseInt( matchRGBA[ 1 ] ) / 255; |
179 | | - g = parseInt( matchRGBA[ 2 ] ) / 255; |
180 | | - b = parseInt( matchRGBA[ 3 ] ) / 255; |
181 | | - a = parseFloat( matchRGBA[ 4 ] ); |
| 154 | + } |
182 | 155 |
|
183 | | - } else { |
| 156 | + function createMenu() { |
184 | 157 |
|
185 | | - var matchRGB = reRGB.exec( colorString ); |
| 158 | + for ( var m in MOLECULES ) { |
186 | 159 |
|
187 | | - if ( matchRGB ) { |
| 160 | + var button = document.createElement( 'button' ); |
| 161 | + button.innerHTML = m; |
| 162 | + menu.appendChild( button ); |
188 | 163 |
|
189 | | - r = parseInt( matchRGB[ 1 ] ) / 255; |
190 | | - g = parseInt( matchRGB[ 2 ] ) / 255; |
191 | | - b = parseInt( matchRGB[ 3 ] ) / 255; |
| 164 | + var url = "models/molecules/" + MOLECULES[ m ]; |
192 | 165 |
|
193 | | - } |
| 166 | + button.addEventListener( 'click', generateButtonCallback( url ), false ); |
194 | 167 |
|
195 | 168 | } |
196 | 169 |
|
197 | | - return { "r": r, "g": g, "b": b, "a": a }; |
198 | | - |
199 | 170 | } |
200 | 171 |
|
| 172 | + // |
| 173 | + |
201 | 174 | function colorify( ctx, width, height, color, a ) { |
202 | 175 |
|
203 | 176 | var r = color.r; |
|
247 | 220 |
|
248 | 221 | function loadMolecule( url ) { |
249 | 222 |
|
250 | | - //console.log( "loading", url ); |
251 | | - |
252 | 223 | for ( var i = 0; i < objects.length; i ++ ) { |
253 | 224 |
|
254 | 225 | scene.remove( objects[ i ] ); |
|
268 | 239 | var color = geometry.colors[ i ]; |
269 | 240 | var element = geometry.elements[ i ]; |
270 | 241 |
|
271 | | - if ( !colorSpriteMap[ element ] ) { |
| 242 | + if ( ! colorSpriteMap[ element ] ) { |
272 | 243 |
|
273 | 244 | var canvas = imageToCanvas( baseSprite ); |
274 | 245 | var context = canvas.getContext( '2d' ); |
|
296 | 267 |
|
297 | 268 | } |
298 | 269 |
|
299 | | - //console.log( "atoms", geometry.vertices.length ); |
300 | | - |
301 | 270 | render(); |
302 | 271 |
|
303 | 272 | } ); |
|
0 commit comments