.. | .. |
---|
286 | 286 | if (scale == 0) |
---|
287 | 287 | { |
---|
288 | 288 | // Zoom |
---|
289 | | - LA.vecSub(location, lookAt, location); |
---|
290 | | - |
---|
291 | | - cVector p = location; |
---|
292 | | - |
---|
293 | 289 | double factor = Math.exp(-dy/300.0); // (1 + dy/100); |
---|
294 | 290 | |
---|
295 | | - p.x *= factor; |
---|
296 | | - p.y *= factor; |
---|
297 | | - p.z *= factor; |
---|
| 291 | + if (viewCode != 0) |
---|
| 292 | + { |
---|
| 293 | + LA.vecSub(location, lookAt, location); |
---|
298 | 294 | |
---|
299 | | - LA.vecAdd(location, lookAt, location); |
---|
| 295 | + cVector p = location; |
---|
| 296 | + |
---|
| 297 | + p.x *= factor; |
---|
| 298 | + p.y *= factor; |
---|
| 299 | + p.z *= factor; |
---|
| 300 | + |
---|
| 301 | + LA.vecAdd(location, lookAt, location); |
---|
| 302 | + } |
---|
| 303 | + else |
---|
| 304 | + if (//shaper_fovy < 180 && factor > 1 || |
---|
| 305 | + shaper_fovy * factor < 180) |
---|
| 306 | + { |
---|
| 307 | + shaper_fovy *= factor; |
---|
| 308 | + //System.out.println("fovy = " + shaper_fovy); |
---|
| 309 | + } |
---|
300 | 310 | } |
---|
301 | 311 | else |
---|
302 | 312 | { |
---|
303 | 313 | LA.vecSub(location, lookAt, direction); |
---|
304 | 314 | |
---|
305 | 315 | //scale /= Distance(); |
---|
306 | | - scale /= shaper_fovy/20; |
---|
| 316 | + // scale /= shaper_fovy/20; |
---|
307 | 317 | |
---|
308 | 318 | location.x -= dy * direction.x / scale; |
---|
309 | 319 | //location.y -= dy * direction.y / scale; |
---|