IP Library Granted Patent US 10,459,598
Granted Patent B2
US 10,459,598 · App. 15/877,571 · Granted Oct 29, 2019

Systems and methods for manipulating a 3D model

Inventor: Zachary Sean Cregan (Kitchener, CA)
Assignee: MAPPEDIN INC.
G06F3/04815G01C21/206G06F3/0484G06F3/0488G06F3/04845G06T17/05G06T19/20G06T2219/2016
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,459,598
App. No.
15/877,571
Granted
Oct 29, 2019
Kind
B2
Abstract

There is provided a method and system for manipulating a 3D model displayed on a display. The method includes detecting one or more display engagement events from a user touch input, determining a location of each display engagement event to generate a corresponding display engagement point, capturing virtual camera state information of a virtual camera, generating and storing an model anchor point for each display engagement point, detecting movement of the display engagement point and capturing an updated display engagement point, and generating a transformation matrix including updated virtual camera state information.

Claims (40)

1. A method for manipulating a 3D model displayed on a display, the method comprising:

detecting one or more display engagement events from a user touch input;

determining a location of each display engagement event to generate a corresponding display engagement point;

capturing virtual camera state information of a virtual camera;

generating and storing a model anchor point for each display engagement point;

detecting movement of the display engagement point and capturing an updated display engagement point; and

generating a transformation matrix including updated virtual camera state information; and

wherein the virtual camera state information is stored as an affine transform matrix and a non-affine perspective matrix.

2. The method of claim 1 further comprising:

where only one display engagement point is provided, constraining traits of the transformation matrix so the transformation is limited to a translation in a x-y plane of a model coordinate system; and

where two display engagement points are provided, constraining traits of the transformation matrix so the transformation is limited to a translation in the x, y, and z axis axes of the model coordinate system and rotation about the model coordinate system's z axis.

3. The method of claim 1 , wherein the virtual camera state information includes virtual camera position and orientation, and wherein the virtual camera position includes X, Y, and Z position values, and the virtual camera orientation includes rotation values about the model coordinate system's x, y, and z axes.

4. The method of claim 3 further comprising:

detecting a single user touch input;

updating the virtual camera position values X, and Y; and

fixing the virtual camera position value Z and the virtual camera orientation.

5. The method of claim 3 further comprising:

detecting a first user touch input and a second user touch input;

updating the virtual camera position values X, Y, Z, and the rotation values of the virtual camera orientation about the model coordinate system's Z axis; and

fixing the rotation values of the virtual camera orientation about the model coordinate system's X and Y axes.

6. The method of claim 1 further comprising:

displaying a 3D map on a touchscreen display;

detecting the display engagement events from a user touch input on the touchscreen display; and

displaying, on the touchscreen display, an updated 3D map based on updated virtual camera position and orientation.

7. The method of claim 1 , wherein the model anchor point is stored in the model coordinate system, and wherein the display engagement event location is stored in a display coordinate system.

8. The method of claim 1 further comprising applying a hit test algorithm for a given display engagement point and capturing camera state values of the virtual camera when the display engagement point is initially created.

9. The method of claim 1 further comprising capturing the virtual camera state information at a different time to provide an updated affine transform matrix.

10. A system for manipulating a 3D model, the system comprising:

a user input configured to detect one or more display engagement events from a user touch input, and detect movement of a display engagement point and capturing an updated display engagement point; and

a camera controller configured to determine a location of each display engagement event to generate a corresponding display engagement point, capture virtual camera state information of a virtual camera, generate and store a model anchor point for each display engagement point, and generate a transformation matrix including updated virtual camera state information; and

wherein the virtual camera state information is stored as an affine transform matrix and a non-affine perspective matrix.

11. The system of claim 10 wherein, where only one display engagement point is provided, the camera controller constrains traits of the transformation matrix so the transformation is limited to a translation in a x-y plane of a model coordinate system; and

wherein, where two display engagement points are provided, the camera controller constrains traits of the transformation matrix so the transformation is limited to a translation in the x, y, and z axis axes of the model coordinate system and rotation about the model coordinate system's z axis.

12. The system of claim 10 , wherein the virtual camera state information includes virtual camera position and orientation, and wherein the virtual camera position includes X, Y, and Z position values, and the virtual camera orientation includes rotation values about the model coordinate system's x, y, and z axes.

13. The system of claim 12 , wherein the user input detects a single user touch input, and the camera controller updates the virtual camera position values X, and Y, and fixes the virtual camera position value Z and the virtual camera orientation.

14. The system of claim 12 , wherein the user input detects a first user touch input and a second user touch input, and the camera controller updates the virtual camera position values X, Y, Z, and the rotation values of the virtual camera orientation about the model coordinate system's Z axis, and fixes the rotation values of the virtual camera orientation about the model coordinate system's X and Y axes.

15. The system of claim 10 further comprising a touchscreen display configured to display a 3D map, detect the display engagement events from a user touch input, and display an updated 3D map based on updated virtual camera position and orientation.

16. The system of claim 10 , wherein the model anchor point is stored in the model coordinate system, and wherein the display engagement event location is stored in a display coordinate system.

17. The system of claim 10 , wherein the camera controller is configured to apply a hit test algorithm for a given display engagement point and capturing camera state values of the virtual camera when the display engagement point is initially created.

18. The system of claim 10 , wherein the camera controller is configured to capture the virtual camera state information at a different time to provide an updated affine transform matrix.

Assignments (2)
SECURITY INTEREST Recorded Aug 16, 2019
From: MAPPEDIN INC
To: COMERICA BANK
Reel/Frame 050069/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 23, 2018
From: CREGAN, ZACHARY SEAN
To: MAPPEDIN INC.
Reel/Frame 044697/0741 →
Continuity (2)
Provisional Application 62479026 · Mar 30, 2017
Related Publication 20180283876A1 · Oct 4, 2018