Commit Graph

226 Commits

Author SHA1 Message Date
Jonathan Bosson f10c3783fa set lmverbose to false as default 2017-05-12 09:42:46 -06:00
Alexander Bock 3a6f2a54e5 Add some comments 2017-05-11 23:25:13 -04:00
Jonathan Bosson 00ce0dd56f improvement on unit test 2017-05-11 16:45:36 -06:00
Jonathan Bosson cb3e31212a do a unit test on the LM algorithm and save the data to .csv 2017-05-11 13:37:45 -06:00
Jonathan Bosson 9bc653ec01 save lm data for plots later 2017-05-10 17:07:54 -06:00
Jonathan Bosson 08e3ac8a6b put constants into properties instead 2017-05-10 15:09:29 -06:00
Jonathan Bosson 232ca9c26f cleanup in guimode 2017-05-09 13:42:35 -06:00
Jonathan Bosson 1ca9b144fc allow for spinning on directTouchMode if global/local rot was big enough 2017-05-09 13:38:04 -06:00
Jonathan Bosson b312eb308d activate _guiON if gui is shown (F1), added doubleTap tracking (used for select node/zoom) 2017-05-05 15:10:11 -06:00
Jonathan Bosson 437550505e The imgui can now be controlled by touch by emulating the mouse in '_guiON' 2017-05-05 14:08:17 -06:00
Jonathan Bosson 824cd1be05 guiMode infrastructure, just need to emulate mouse correctly 2017-05-04 17:29:30 -06:00
Jonathan Bosson f3bf3fb5c7 start of guiMode implementation 2017-05-02 16:08:01 -06:00
Jonathan Bosson 7f7b40d736 solve snapping bug by not overwriting selected surface coordinates in case levmarq doesn't converge. 2017-05-02 15:25:22 -06:00
Jonathan Bosson 11c2d063c0 decrease velocity as we get closer to the planet more smoothly, fixed 'lose-focusnode'-bug with direct touch 2017-04-27 15:49:34 -06:00
Jonathan Bosson bbe99f1a11 fix misinterpreted taps 2017-04-27 14:32:35 -06:00
Jonathan Bosson c54f485b0d first pass on scaling _sensitivities with screen size 2017-04-27 14:03:33 -06:00
Jonathan Bosson 86d02fc98b Refactor TouchInteraction class (removed unneeded variables/functions and went back to switch-case for interpret() 2017-04-27 12:44:32 -06:00
Jonathan Bosson 9111151913 Using slerp to interpolate to new local rotation when choosing new focusnode, tried central difference on gradient calc to resolve zoom/roll bug 2017-04-26 16:10:23 -06:00
Jonathan Bosson b5a058121d put direct-manipulation in its own function, dynamic time step for all but the zoom-DOF 2017-04-25 17:06:46 -06:00
Jonathan Bosson 556e81afeb fix diagonal-orbit-only bug and cleanup of code 2017-04-25 13:11:40 -06:00
Jonathan Bosson b8e6e06aef include both interaction modes 2017-04-24 08:38:16 -06:00
Jonathan Bosson 3157ac4378 minimization method now finds best-fit values that manipulates the camera state such a way that the error in screen-space is < epsilon 2017-04-21 16:35:56 -06:00
Jonathan Bosson c54039225d Rotation now uses euler angles and modulus to make use of camera rotational axis, 4th DOF is set to be roll 2017-04-21 13:20:02 -06:00
Jonathan Bosson c129bf1112 find minimum vector q that applies to the transform in camera space 2017-04-20 17:02:19 -06:00
Jonathan Bosson 0542e7cef5 Levmarq gives right q values, need to transform them to camera space correctly 2017-04-20 15:22:53 -06:00
Jonathan Bosson 099c343693 levmarq using correct gradient (finite derivative) and using the error to determine next delta step 2017-04-19 18:14:47 -06:00
Jonathan Bosson 0e1b399458 instead of projecting to screen-space the error is now calculated in modelspace (tracing current viewplane pos to surface coordinates) 2017-04-18 16:52:16 -06:00
Jonathan Bosson 58796ca390 func in levmarq now handles the distance between two screen points (one projected from the spheres surface), need to define gradient correctly 2017-04-18 15:57:07 -06:00
Jonathan Bosson 4c19391f63 found potential reasons for why par returns small values, might want to swap to rotate instead of trans on low DOF cases 2017-04-14 17:00:46 -06:00
Jonathan Bosson 9c6ecdc6d3 debugging camera transform for manipulation 2017-04-14 15:24:15 -06:00
Jonathan Bosson 581f29ba95 Using levmarq correctly now, need to double check if grad is the partial derivative of s(xi,q). Added name on credits 2017-04-14 14:58:11 -06:00
Jonathan Bosson 3635bbcefc start testing levmarq use 2017-04-14 12:02:11 -06:00
Jonathan Bosson 99c5956588 merge with feature/planetradius for boundingSphere 2017-04-13 16:56:55 -06:00
Jonathan Bosson 47535e38f9 func and grad should now be defined correctly, needs to be tested 2017-04-13 16:20:20 -06:00
Jonathan Bosson f2aebcd880 one step closer, need to figure out gradient of func and how to send cam/node/aspectratio with void* fdata 2017-04-12 16:54:13 -06:00
Jonathan Bosson ab877feaf9 first step for LM algorithm on screen-space points, camera/focusnode causes crashes if not initialized, where do we do this best? 2017-04-12 14:37:28 -06:00
Jonathan Bosson 53f679ae92 crash fix, _camera and _focusNode now have to be declared outside the constructor 2017-04-11 15:15:13 -06:00
Jonathan Bosson 60849e266b small cleanup 2017-04-10 21:03:55 -06:00
Jonathan Bosson d749d864a1 attempted to make zooming velocities smoother 2017-04-07 16:30:40 -06:00
Jonathan Bosson 1c1570e854 defined a function to go from modelview to screen space view, comments on step-by-step method for the direct-touch solution 2017-04-07 11:12:02 -06:00
Jonathan Bosson 31e175232a the point on the surface of a body can now be described in spherical coordinates 2017-04-06 15:16:25 -06:00
Jonathan Bosson cbc8a2cb7e touch is more snappy, nice 2017-04-06 14:06:40 -06:00
Jonathan Bosson 4416707931 find traced rays intersection point on boundingsphere for direct touch interaction 2017-04-04 13:36:35 -06:00
Jonathan Bosson c6b8917d4b rotation correction when selecting new node 2017-03-31 16:27:06 -06:00
Jonathan Bosson 7b23c17b10 TuioEar can now detect a tap, implemented picking feature. If a selectable node is tapped at that is set as the new focusNode and the camera does a panning to that direction. If not will the camera zoom in towards the focusNode 2017-03-31 14:39:05 -06:00
Jonathan Bosson a5873c3002 tracing now works correctly with panning, there's an issue when OpenSpace aspect Ratio is not the same as the touch interface aspect ratio 2017-03-30 16:28:51 -06:00
Jonathan Bosson 55157ab429 Cleanup of TouchInteraction, selected can now only have one node per id 2017-03-30 13:05:10 -06:00
Jonathan Bosson 15450d9a9c all contact points are now traced into the scene to find a selection (distance calc still iffy with the rotation quat) 2017-03-29 15:16:05 -06:00
Jonathan Bosson 31f0960c42 improvements to the interpret function so the interaction is more intuitive (now using an immobile finger as the centroid on roll) 2017-03-29 12:38:49 -06:00
Jonathan Bosson 0ea349a70c convert cursor coordinates to ray direction in world space and calculate the distance from planets to the ray to get picking 2017-03-28 14:15:23 -06:00