Affine transformations of 3D elements in a virtual environment using a 6DOF input device
The present patent application relates to three-dimensional computer graphics applications for performing an affine transformation of an element in a virtual environment using an input devices. According to the present invention, the method comprises receiving a first data set from the input device, wherein the first data set comprise at least one input data, which comprise the coordinates of at least one point in the physical space and a switch status, selecting at least an affine transformation based on the first data set, receiving a second data set from the input device, wherein the second data set comprises at least one input data, which comprise the coordinates of at least one point in the physical space and a switch status and executing the affine transformation on the element, the transformation being based on the second data provided by the input device.
1. A method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, comprising:
receiving a first data set from the 6 DOF input device, wherein the first data set comprises at least one input data, the input data comprising coordinates of at least one 3D point in a physical space, a switch status and a variation of the input data of the first data set;
selecting at least an affine transformation based on the first data set, wherein selecting an affine transformation comprises comparing the input data of the first data set with its variation and selecting an affine transformation, wherein one or more variations of the first data set is unequivocally associated with a set of affine transformations;
receiving a second data set from the 6 DOF input device, wherein the second data set comprises at least one input data, the input data comprising the coordinates of at least one 3D point in the physical space and a switch status, and a variation of the input data of the second data set,
determining a subset of the affine transformation, a magnitude, and at least one of the following: a direction in 3D space, a 3D anchor point, a 3D reference start point, a 3D reference end point, wherein a plurality of virtual points are arranged around the at least one 3D point of the first data set, wherein each virtual point is associated with a transformation subset, wherein said plurality of virtual points are arranged on the edges, vertices and face centers of a virtual cube having its geometric center in the at least one 3D point of the first data set, and wherein determining the transformation subset comprises evaluating the closest virtual point from at least one 3D point in the physical space of the second data set, and considering the affine transformation associated with the closest virtual point for further steps;
executing the affine transformation on the element, the transformation being based on the first and second data sets provided by the 6 DOF input device, wherein the affine transformation is a subset of the affine transformation including a magnitude and at least one of the following: a direction in 3D space, a 3D anchor point, a 3D reference start point and a 3D reference end point.
2. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 1 , wherein a variation of the coordinates of the 3D point in the first data set determines the selection of a translate transformation, a direction in space, and a module.
3. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 1 , wherein the coordinates of the 3D point in the first data set, the coordinates of the 3D point in the second data set, and a variation of coordinates of the 3D point in the second data set and of the two switch statuses determines a selection of a rotate transformation and a rotation axis in the space, a magnitude, an initial reference 3D point and a final reference 3D point of the rotation transformation.
4. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 1 , wherein the coordinates of the 3D point in the first data set, the coordinates of the 3D point in the second data set, and a variation of coordinates of the 3D point in the second data set determines a selection of a scale transformation and an anchor point, at least a magnitude, a reference start 3D point and a reference end 3D point of the scale transformation.
5. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 4 , wherein the scale transformation is a 1D scale transformation.
6. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 4 , wherein the scale transformation is 2D scale transformation.
7. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 4 wherein the scale transformation is a 3D scale transformation.
8. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 4 , wherein the scale transformation is uniform tridimensional scale transformation.
9. The method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, according to claim 4 , wherein the scale transformation is a non-uniform scale transformation.
10. A system for executing affine transformations on an element in a computer graphics software using a 6 DOF input device, the system comprising:
a hardware processor and a memory storing instructions for execution by the hardware processor, wherein the hardware processor is configured by the instructions to:
receiving a first data set from the 6 DOF input device, wherein the first data set comprises at least one input data, the input data comprising the coordinates of at least one 3D point in a physical space, a switch status, and a variation of the input data of the first data set, selecting at least an affine transformation based on the first data set, wherein selecting an affine transformation comprises comparing the input data of the first data set with its variation and selecting an affine transformation, wherein one or more variations of the first data set is unequivocally associated with a set of affine transformations;
receiving a second data set from the 6 DOF input device, wherein the second data set comprises at least one input data, the input data comprising the coordinates of at least one 3D one point in the physical space and a switch status, and a variation of the input data of the second data set;
determining a subset of the affine transformation, a magnitude, and at least one of the following: a direction in 3D space, a 3D anchor point, a 3D reference start point, a 3D reference end point, wherein a plurality of virtual points are arranged around the at least one 3D point of the first data set, wherein each virtual point is associated with a transformation subset, wherein said plurality of virtual points are arranged on the edges, vertices and face centers of a virtual cube having its geometric center in the at least one 3D point of the first data set, and wherein determining the transformation subset comprises evaluating the closest virtual point from at least one 3D point in the physical space of the second data set, and considering the affine transformation associated with the closest virtual point for further steps;
executing the affine transformation on the element, the transformation being based on the first and second data sets provided by the 6 DOF input device, wherein the affine transformation is a subset of the affine transformation including a magnitude and at least one of the following: a direction in 3D space, a 3D anchor point, a 3D reference start point and a 3D reference end point.
11. A non-transitory computer readable medium having stored thereon instructions that, when executed by one or more processors, cause the one or more processors to execute a method for executing affine transformations on an element in a computer graphics software using a 6 DOF input device according to claim 1 .