aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/3D/hit-record.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/3D/hit-record.js')
-rwxr-xr-xjs/helper-classes/3D/hit-record.js55
1 files changed, 54 insertions, 1 deletions
diff --git a/js/helper-classes/3D/hit-record.js b/js/helper-classes/3D/hit-record.js
index 265bf2a4..d72e33bd 100755
--- a/js/helper-classes/3D/hit-record.js
+++ b/js/helper-classes/3D/hit-record.js
@@ -292,6 +292,59 @@ var HitRecord = exports.HitRecord = Object.create(Object.prototype,
292 292
293 return str; 293 return str;
294 } 294 }
295 } 295 },
296
297 test:
298 {
299 value: function()
300 {
301 var elt = this.getElement();
302 var stage = viewUtils.getStage();
303 if (elt === stage) return;
304
305 var localPt = this.calculateElementPreTransformScreenPoint();
306 var stageWorldPt = this.calculateStageWorldPoint();
307 var globalPt = this.getScreenPoint();
308 var err = false;
309
310 var test1 = viewUtils.localToGlobal( localPt, elt );
311 var dist = vecUtils.vecDist(3, test1, globalPt);
312 if (MathUtils.fpSign(dist) != 0)
313 {
314 err = true;
315 console.log( "**** transform error 1 ***** " + dist + ", localPt: " + localPt );
316 }
317
318 var stageWorldToGlobal = viewUtils.getStageWorldToGlobalMatrix();
319 var test2 = MathUtils.transformAndDivideHomogeneousPoint( stageWorldPt, stageWorldToGlobal );
320 dist = vecUtils.vecDist(3, test2, globalPt);
321 if (MathUtils.fpSign(dist) != 0)
322 {
323 err = true;
324 console.log( "**** transform error 2 ***** " + dist + ", localPt: " + localPt );
325 }
326
327 var localToGlobal = viewUtils.getLocalToGlobalMatrix( elt );
328 var globalToLocal = glmat4.inverse( localToGlobal, [] );
329 var test3 = MathUtils.transformAndDivideHomogeneousPoint( globalPt, globalToLocal );
330 dist = vecUtils.vecDist(3, test3, localPt);
331 if (MathUtils.fpSign(dist) != 0)
332 {
333 err = true;
334 console.log( "**** transform error 3 ***** " + dist + ", localPt: " + localPt );
335 }
336
337 var objToStageWorld = viewUtils.getObjToStageWorldMatrix( elt, true );
338 var test4 = MathUtils.transformAndDivideHomogeneousPoint( localPt, objToStageWorld );
339 dist = vecUtils.vecDist(3, test4, stageWorldPt);
340 if (MathUtils.fpSign(dist) != 0)
341 {
342 err = true;
343 console.log( "**** transform error 4 ***** " + dist + ", localPt: " + localPt );
344 }
345
346 //if (!err) console.log( "no hitRecord error" );
347 }
348 }
296}); 349});
297 350