Adjusting content display orientation on a screen based on user orientation

A system for adjusting content display orientation on a screen is disclosed. The system may include a processor that may detect both eyes and a body part of a user that is proximal to one or more of the user's eyes. The system may then determine an eye gaze plane based on the positions of the first and second eyes of the user. The eye gaze plane may be determined by identifying a first line of sight extending from the first eye and a second line of sight extending from the second eye. Additionally, the eye gaze plane may bisect a center of the first eye and a center of the second eye of the user. Once the eye gaze plane is determined, the system may adjust the orientation of content displayed on a display device based on the eye gaze plane and on the position of the body part.

FIELD OF THE INVENTION

The present application relates to display orientation, and more particularly, to a system and method for adjusting display orientation based on user orientation.

BACKGROUND

In today's society, people have been increasingly adopting use of devices such as mobile phones, computer tablets, interactive displays, and laptops over traditional personal computers for a variety of things including work, entertainment, or other tasks. With such widespread acceptance, engineers and scientists have had to develop a variety of technologies and systems to ensure that the users can view and access content on such devices as effectively and as easily as possible. For example, technologies have been developed to automatically adjust the display orientation of media content at 90 degree increments based on a device's position relative to the force of gravity. Many smartphones or computer tablets, which often have a rectangular shape, often utilize technology that allow them to change the orientation of content that is displayed at 90 degree increments based on the smartphone or tablet being held in a particular position. Such smartphones or tablets typically use internal gyroscopes to sense the position of the device relative to the force of gravity and adjust the orientation of the content displayed on the screen of the smartphone or tablet at 90 degree increments only when the position of the smartphone or tablet is changed by more than a predetermined threshold position variable. In addition to using gyroscopes, some technologies utilize accelerometers to measure the rate of acceleration and use the measure rate of acceleration to adjust the orientation of the content by 90 degree increments only.

SUMMARY

A system and accompanying methods for adjusting content display orientation on a screen based on a user's orientation are disclosed. The system may be configured to determine the positions of a user's eyes and the position of the user's nose to adjust the content display orientation displayed on a device that the user is interacting with. In order to do so, the position of the user's eyes may be used by the system to determine an eye gaze plane that is formed based on the line of sight for each eye of the user. Additionally, the eye gaze plane may be configured to bisect the center of each of the eyes of the user. Once the eye gaze plane is determined, any content that the user is viewing on the device may be aligned with the eye gaze plane in real time or periodically, and the content display orientation may be based both on the eye gaze plane and on the position of the user's nose relative to the eye gaze plane. By ensuring that the orientation of the content is based on the eye gaze plane and on the position of the user's nose relative to the eye gaze plane, the user may enjoy content on the device without having to worry about how the user holds the device or if the user changes his or her position.

The system for adjusting content display orientation on a screen may include a memory that stores instructions and a processor that executes the instructions to perform operations. The processor may determine an eye gaze plane based on a position of a first eye and a position of a second eye of a user located in a vicinity of a display device by executing instructions stored in memory. The eye gaze plane may be determined by identifying a first line of sight extending from the first eye and identifying a second line of sight extending from the second eye. Additionally, the eye gaze plane may bisect a center of the first eye and a center of the second eye. Furthermore, the processor may adjust the content display orientation displayed on the display device such that content is aligned with the eye gaze plane. Notably, the content display orientation may be based on the eye gaze plane and a position of a body part positioned proximally relative to the first eye of the user.

In another embodiment, a method for adjusting content display orientation on a screen is provided. The method may include determining an eye gaze plane based on a position of a first eye and a position of a second eye of a user located in a vicinity of a display device by utilizing a processor. The eye gaze plane may be determined by identifying a first line of sight extending from the first eye and identifying a second line of sight extending from the second eye. Also, the eye gaze plane may bisect a center of the first eye and a center of the second eye. The method may also include adjusting the content display orientation displayed on the display device such that the content is aligned with the eye gaze plane by utilizing the processor. The content display orientation may be based on the eye gaze plane and a position of a body part positioned proximally relative to the first eye of the user.

According to another exemplary embodiment, a computer-readable medium comprising instructions for adjusting content display orientation on a screen is provided. The computer instructions, which when loaded and executed by an electronic processor, may cause the electronic processor to perform activities comprising: determining an eye gaze plane based on a position of a first eye and a position of a second eye of a user located in a vicinity of a display device, wherein the eye gaze plane is determined by identifying a first line of sight extending from the first eye and identifying a second line of sight extending from the second eye, wherein the eye gaze plane bisects a center of the first eye and a center of the second eye; and adjusting the content display orientation displayed on the display device such that the content is aligned with the eye gaze plane, wherein the content display orientation is based on the eye gaze plane and a position of a body part positioned proximally relative to the first eye of the user.

These and other features of the screen orientation systems and methods are described in the following detailed description, drawings, and appended claims.

DETAILED DESCRIPTION OF THE INVENTION

A system100for adjusting content display orientation based on user orientation is disclosed in the present disclosure. As users have been increasingly using devices such as mobile phones, computer tablets, interactive displays, and laptops for performing various tasks or enjoying entertainment, such users often interact with such devices in a variety of positions or situations. For example, users often interact with these devices while standing, sitting, lying down, walking, or running, and users even may adjust the position of these devices so that they can interact with the devices in different ways. Referring to the drawings and in particular toFIGS. 1-4, the system100may enable a user105to view content112on a device110so that the content112is aligned with the user's eye gaze plane125and oriented based on the user's body part130even when the user105changes his or her position, or when the user105changes the position of the device110, or both.

In order to effectively align the content112displayed on the device110, the system100may be configured to determine the positions of the user's eyes108a-band the position of a body part130of the user. The body part130is shown inFIG. 1-3as a nose, however, the body part130may be any part of the user105that is positioned proximally relative to either eye108a-bof the user105or to any other desired reference point or points. The position of the user's eyes108a-bmay be used by the system100to determine an eye gaze plane125that is formed based on identifying a first line of sight120afor the first eye108aand identifying the second line of sight120bfor the second eye108bof the user105. Additionally, the eye gaze plane125may be configured to bisect the center of each of the eyes108a-bof the user105, and is shown as line128inFIG. 1A. The eye gaze plane125may be parallel or directly in line with the line of sights120a-bof the user105. Once the eye gaze plane125is determined, any content112that the user105is viewing on the device110may be aligned with the eye gaze125plane in real time. For example, real time may be construed as aligning the content112with the eye gaze plane125within milliseconds, microseconds, or other miniscule unit of time of the eye gaze plane125changing position. In one embodiment, real time may be construed to mean that the content112is aligned with the eye gaze plane125as the eye gaze plane125changes. The content display orientation of the content112may be based both on the eye gaze plane125and on the position of the user's body part130. Also, the eye gaze plane125and the position of the user's body part130may collectively be a reference zone129for use in adjusting the content display orientation of the content112. By ensuring that the orientation of the content112is based on the eye gaze plane125and on the position of the user's body part130, the user may enjoy content112on the device110without having to worry about how the user105holds the device110or if the user105changes his or her position with respect to the device110.

Notably, the system100may utilize a combination of software and hardware to perform the operative functions of the system100disclosed herein. Additionally, althoughFIGS. 1-4illustrate specific example configurations of the various components of the system100, the system100may include any configuration of the components, which may include using a greater or lesser number of the components. For example, the system100is illustratively shown as including a user105and a device110, and as optionally including a communications network135, a server140and a database145. However, the system100may include multiple devices110, multiple servers140, multiple networks135, and multiple databases145. Furthermore, in one embodiment, the entire functionality of the system100may be performed by the device110itself without need for the communications network135, the server140, or the database145, or any combination thereof.

Operatively, the system100may be configured to initially determine or detect a position of the first eye108aof the user105, a position of the second eye108bof the user105, and a position of a body part130of the user105. In one embodiment, the user105may be located in a vicinity of the device110. The position of the first eye108a, the position of the second eye108b, and the position of the body part130of the user105, may be determined by the device110itself. Illustratively, the device110is shown as a mobile phone, however, the device110may also be a computer tablet, a personal computer, a television, an interactive display, or any other device that may be utilized by a user105to view content112. Additionally, the device110may include or otherwise be communicatively linked to one or more electronic processors117that may be configured to perform or process any of the operations conducted in the system100. The electronic processors117may be software, hardware, or a combination of hardware and software. The device110may also include a memory118, which may be configured to store instructions that the electronics processors117may execute to perform various the operations of the system100. Notably, the device110may be communicatively linked with any of the components in the system100and may transmit information associated with the user105or the device110to any of the other components in the system100, such as via communications network135.

The device110may capture the position data for the eyes108a-band the body part130by recording media content of the user105by using an image capture device115. Illustratively, the image capture device115is shown as a user-facing camera embedded within the device110itself, however, the image capture device115may be positioned in any location that would allow the image capture device115to determine the position data of the user105. Additionally, the image capture device115may be a video camera or other type of recording device that may be utilized to record media content associated with the user105. The media content recorded by the image capture device115may include visual content, audio content, or any other recordable content. The image capture device115may begin recording media content associated with the user105once the user105selects an option to activate the camera115on the device110. For example, the user105may select an option displayed on a touchscreen interface of the device110to initiate recording of the media content.

After recording is initiated by the image capture device115, the system100may determine the position data for the eyes108a-band the body part130based on the recorded media content. For example, the system100may determine the position data by utilizing contrast detection of a video image of the user105that is captured by the image capture device115. Contrast detection may also be utilized to find the perimeter of each iris for each of the user's105eyes108a-bagainst the sclera of each eye108a-b. Once the position data is determined, the device110can determine the eye gaze plane125for the user105based on identifying the first line of sight120aextending from the first eye108a, the second line of sight120bextending from the second eye108b, and the line128bisecting the center of each of the eyes108a-bof the user105.FIG. 1Aillustratively shows how the eye gaze plane125may be based on the line of sights120a-band the line128bisecting the center of each of the eyes108a-b.

Additionally, the system100can determine the reference zone129of the user105based on the eye gaze plane125and the position of the body part130of the user105. The body part130may be utilized as a reference point between the top and bottom of the user's105gaze region. The reference zone129may be a region of the user's105face that may be utilized to adjust the content display orientation of the content112displayed on the device110. Also, the reference zone129may be different for each unique user105. Notably, the device110may determine all of this information by itself, or the device110may optionally utilize the processing power of the server140and the storage capacity of the database145via communications network135. Furthermore, the device110may be configured to continuously determine the position data for the eyes108a-band body part130whenever the user105adjusts his or her position. Moreover, the device110may be configured to determine position and other data for any number of users105, and may be configured to detect which user105is using the device110based on position data history stored in the system100.

The server140may include one or more electronic processors141, which may be configured to handle any necessary processing for carrying out any and all of various operative functions of the system100. The electronic processors141may be software, hardware, or a combination of hardware and software. Additionally, the server140may also include a memory142, which may be configured to store instructions that the electronics processors141may execute to perform various the operations of the system100. For example, the server150may receive the position data for the user105from the device110and perform the necessary operations to determine the eye gaze plane125and the reference zone129. In one embodiment, multiple servers140may be utilized to process the functions of the system100. The server140or the device110, or both, may utilize the database145for storing the eye and body part position data for the user105, an eye gaze plane history for the user105, a reference zone history for the user105, along with any other data that the devices in the system100may utilize in processing. Additionally, the database145may store data for any number of users105. In an embodiment, multiple databases145may be utilized to store data in the system100. Furthermore, the communications network135may be any other suitable network that may be utilized to allow the various components of the system100to communicate with one another. For instance, the communications network135may be a wireless network, an ethernet network, a satellite network, a broadband network, a cellular network, a private network, a cable network, the Internet, any combination thereof.

Once the eye gaze plane125and the position of the body part130are determined, the system100may be configured to adjust the content display orientation of the content112displayed on the device110based on the eye gaze plane125and the position of the body part130. As an example scenario and referring more particularly toFIGS. 3A and 3B, if the user105is in an upright position and viewing a web page on the device110that shows a list of food items that the user105is interested in, the device110may display the web page such that the content112is aligned with the user's105eye gaze plane125and oriented based on the position of the user's body part130. InFIG. 3A, the device110is held in an upright position in front of the user's face and the content112is displayed so that content112is directly aligned with the user's105eye gaze plane125. Additionally, the content112is displayed in upright orientation because the device110has determined that based on the position of the body part130, the content112should be displayed in an upright orientation to match the user's orientation. However, if the device110is moved to a titled position, as shown inFIG. 3B, the system100can determine if the user105has changed position. If the user105is determined to be in the same upright position as inFIG. 3A, the system100can ensure that the content display orientation remains the same as the upright content display orientation as shown inFIG. 3A, despite the new position of the device110. As a result, the content display orientation is based on the user's orientation. As another example, if the user105tilts his head to the right by 90 degrees, the position data will change by 90 degrees and the content display orientation of the content112will be changed to be aligned with the new position data of the user105. In one embodiment, the content display orientation of the content112may be changed by the system100in real time as the user105moves his position or changes the position of the device110, or both.

In a different example scenario, instead of titling the device110to the right or to the left, the user105may tilt the device110away from himself, as shown inFIGS. 4A and 4B. If the user105tilts the device110away from himself and is not using system100to adjust the content display orientation, the content display orientation of the content112may become inverted, as shown inFIG. 4A. Inversion may occur, for example, if the user105is not using the system100and the device110is using only a gyroscope to adjust content display orientation. If the content display orientation is inverted, the user105may be unable to read, enjoy, or effectively interact with the content112. However, if the user105uses the system100and tilts the device110away from himself, the system100may determine that the user105is in an upright position and that the content display orientation should not be inverted even though the device110is tilted away from the user105. As a result, the content display orientation may be held steady by the system100by utilizing the processor118, for example. This can be clearly seen inFIG. 4B.

An exemplary method500for adjusting content display orientation on a screen based on user orientation, as shown inFIG. 5, involves a situation where a user105shifts his position multiple times. The method500may include, at step505, having the user105shift his position. When the user105shifts his position, the system100may capture new position data for the user's105eyes108a-band body part130at step510. In one embodiment, the new position data may be captured by the device110, server140, any combination thereof, or other appropriate device. A user's105position is typically not steady, and as a result, incorporating some level of hysteresis into the system100may prevent unwanted adjusting of the content display orientation, particularly for minor changes in the user's105position. The hysteresis factor may be utilized by the system100to adjust the content display orientation on the device110only when there is a significant enough mismatch that occurs between the content display orientation of the device110and the user's orientation. As a result, the method500may include determining if the eye gaze plane125, reference zone129, body part130, or a combination thereof, has changed position or orientation by greater than a threshold amount. This threshold amount may be designated by theta (Θ). At step515, the method500may include determining that the user's105orientation and position data has not changed by greater than the threshold amount. At this point, the system100will not change the content display orientation. In one embodiment, the determination that the user's105orientation and position data has not changed by more than a threshold amount may be performed by the device110, server140, any combination thereof, or other appropriate device.

At step520, the method500may include having the user105shift his position again. When the user105shifts his position again, the system100may capture newer position data for the user's105eyes108a-band body part130at step525. In one embodiment, the newer position data may be captured by the device110, server140, any combination thereof, or other appropriate device. At step530, the method500may include determining that the user's orientation and position data have changed by greater than the threshold amount to warrant a change in content display orientation. In one embodiment, the determination that the user's105orientation and position data have changed by greater than a threshold amount may be performed by the device110, server140, any combination thereof, or other appropriate device. At the point that the threshold amount is exceeded, the content display orientation should smoothly rotate to realign the content display orientation of the device110with the new position data and orientation of the user105. As a result, at step535, the method500may include determining how many degrees of adjustment are needed for aligning the content display orientation with the user's orientation. In one embodiment, determining the degrees of adjustment may be performed by the device110, server140, any combination thereof, or other appropriate device. At step540, the method500may include adjusting the content display orientation of content displayed on the device110by the appropriate amount of degrees to align the content display orientation with the user's orientation, which is based on the new position data. For example, the user105may have changed his position such that it would warrant a change in content display orientation of −30 degrees as shown inFIG. 5. In one embodiment, adjusting the content display orientation may be performed by the device110, server140, any combination thereof, or other appropriate device. At step545, the method500may include determining that the user's orientation and the content display orientation or angle are aligned and coincide properly. In one embodiment, determining that the user's orientation and the content display orientation or angle are aligned and coincide properly may be performed by the device110, server140, any combination thereof, or other appropriate device.

In another exemplary method600for adjusting content display orientation on a screen based on user orientation, as shown inFIG. 6, the method600may include, at step602, determining a position of a first eye of the user105, the position of the second eye of the user, and the position of a body part130. In one embodiment, the body part130may be positioned proximally relative to the first eye108aof the user105, to the second eye108bof the user105, or to any other desired reference point of the user105. Additionally, the user105may be located in a vicinity of the device110. In one embodiment, position information may be determined by the device110, server140, any combination thereof, or other appropriate device. At step604, the method600may include determining an eye gaze plane125based on the position of each eye108a-bof the user105. In one embodiment, the eye gaze plane125may be determined by the device110, server140, any combination thereof, or other appropriate device. At step606, the method600may include determining if the content display orientation of the content112on the device110is already oriented based on the eye gaze plane125and the body part130. If the content display orientation is already oriented based on the eye gaze plane125and the body part130, then the method600may include maintaining the current content display orientation of the content112on the device110. However, if the content display orientation is not oriented based on the eye gaze plane125and the body part130, the method600may include, at step610, adjusting the content display orientation of the device110to be aligned with the eye gaze plane125and oriented based on the body part130. In one embodiment, maintaining or adjusting the content display orientation may be performed by the device110, server140, any combination thereof, or other appropriate device.

At step612, the method600may include determining if the user105has changed his position enough to cause enough of a mismatch between the content display orientation and the eye gaze plane125and body130such that the content display orientation would need to be adjusted again. In one embodiment, the mismatch may be determined by the device110, server140, any combination thereof, or other appropriate device. If there is not enough of a mismatch after the user105has changed his position, the method600may include maintaining the current content display orientation of the device110and going back to step608. However, if there is enough of a mismatch after the user105has changed his position, the method600may include readjusting the content display orientation of the content on the device110such that the content display orientation is aligned with the new eye gaze plane125and oriented based on the new position of the body part130at step614. In one embodiment, maintaining or readjusting the content display orientation may be performed by the device110, server140, any combination thereof, or other appropriate device.

In one embodiment, the system100and methods described herein may include adjusting the orientation for receiving any gestures or interactions from the user105to match an adjusted content display orientation. For example, if the system100adjusts the content display orientation to be aligned with a current user's105orientation, the orientation for receiving gestures may be matched to the content display orientation. InFIG. 3A, for example, the user105would swipe the touchscreen of the device110right to left or up or down based on the vertical alignment of the content112. InFIG. 3B, however, which shows the tilted device110and the content display orientation aligned with the user's105orientation, the system100can change the orientation for interacting with the device110so that the user105can swipe or interact with the device110based on the orientation of the content112and not the orientation of the tilted device110. For example, inFIG. 3B, a swipe gesture may be directly right to left aligned with the content112displayed, and not the titled orientation of the device110itself.

In one embodiment, the system100and methods described herein may further include utilizing any of the various components described in the system100in conjunction with an accelerometer. The accelerometer may be used to measure a rate of acceleration, and, in turn, measure how fast the user105changes his or her position. The rate of acceleration may be factored into determining whether or not the system100will adjust the content display orientation, or quickly the system100will adjust the content display orientation, or both. In one embodiment, the system100and methods may also include tracking the eyes108a-bto control screen timeouts or screensavers of the device110. For example, the system100may be configured to suspend a screen timeout on the device110when the position of the eyes108a-bare detected by the system100. As another example, the system100may be configured to activate a screen timeout when the position of the eyes108a-bare undetected. As yet another example, the system100may be configured to activate the device110from a sleep state when the position of the eyes108a-bare detected. Of course, the system100may be configured to activate or deactivate any program on the device110based on detection of any desired body part130of the user105, or desired object, or both. In yet another embodiment, the system100may include adjusting the content display orientation of the content112of the device110based on a detected head position of the user105.

In one embodiment, the system100may be configured to simultaneously adjust content display orientations with respect to multiple users using the same device110. For the purposes of adjusting content display orientations with respect to multiple users using the same device110, simultaneously adjusting the content display orientation may involve adjusting the orientations for each user at or near the same time. For example, if a first user is working on the front side of an interactive glass display and a second user is working on the back side of the interactive display, the system100can adjust the content display orientation for content displayed on the front side to be aligned with the eye gaze plane and body part of the first user, and also simultaneously adjust the content display orientation of content displayed on the back side to be aligned with the eye gaze plane and body part of the second user. In traditional systems that do not utilize the technology as described in the present disclosure, if two users are working on opposite sides of an interactive display, one user can typically see the content aligned properly from his perspective, while the other user on the back side will often see content that is inverted.

In still another embodiment, the system100may be configured to adjust content display orientation for 3-dimensional (3-D) content and devices. Traditionally, in order to effectively view 3-D content, a user's105head must be aligned properly with the display. Otherwise, if the user's150head is not aligned properly, the 3-D experience and effect are completely ruined. However, if the system100determines the position of the user's105eyes108a-band the position of the reference body part130, the content display orientation for a device110displaying 3-D content may be adjusted accordingly. In one embodiment, the system100may adjust the entire displayed 3-D content to match the user's orientation. In another embodiment, the system100may create a synthetic image that retains the vertical orientation of the content, but the 3-D image offset may be synthesized based on the user's current position and orientation. The device110may process 3-D content and alter it to be adjust to the user's orientation so that the user can effectively enjoy the content and be ensured to have an enjoyable viewing experience. In one embodiment, if the content display is 3-D computer-generated imagery, such as used in video games, the user's105head orientation may be passed to a processor to adjust any disparities in orientation in real time. In another embodiment, if the content is recorded video and the device for displaying the content is a television or other similar device, the device can use any vertical disparities to create a 3-D model of a visual scene. Additionally, the device can re-render the visual scene for the user's105non-vertical head orientation, and use estimation to fill around edges that are now visible that were not visible in a previous view of the scene. This may allow for highly accurate and reliable for 3-D scenes, while minimizing distortions and errors.

It is important to note that the methods described above may incorporate any of the functionality, devices, and/or features of the systems described above, or otherwise, and are not intended to be limited to the description or examples provided herein.

Referring now also toFIG. 8, at least a portion of the methodologies and techniques described with respect to the exemplary embodiments can incorporate a machine, such as, but not limited to, computer system700, or other computing device within which a set of instructions, when executed, may cause the machine to perform any one or more of the methodologies or functions discussed above. The machine may be configured to facilitate various operations conducted by the system100. For example, the machine may be configured to, but is not limited to, assist the system100by providing processing power to assist with processing loads experienced in the system100, by providing storage capacity for storing instructions or data traversing the system100, or by assisting with any other operations conducted by or within the system100.

In some embodiments, the machine operates as a standalone device. In some embodiments, the machine may be connected (e.g., using a network135) to and assist with operations performed by other machines, such as, but not limited to, the device110, the server140, the database145, or any combination thereof. The machine may be connected with any component in the system100. In a networked deployment, the machine may operate in the capacity of a server or a client user machine in server-client user network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may comprise a server computer, a client user computer, a personal computer (PC), a tablet PC, a laptop computer, a desktop computer, a control system, a network router, switch or bridge, or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.

The computer system700may include a processor702(e.g., a central processing unit (CPU), a graphics processing unit (GPU, or both), a main memory704and a static memory704, which communicate with each other via a bus708. The computer system700may further include a video display unit710(e.g., a liquid crystal display (LCD), a flat panel, a solid state display, or a cathode ray tube (CRT)). The computer system700may include an input device712(e.g., a keyboard), a cursor control device714(e.g., a mouse), a disk drive unit716, a signal generation device718(e.g., a speaker or remote control) and a network interface device720.

The disk drive unit716may include a machine-readable medium722on which is stored one or more sets of instructions724(e.g., software) embodying any one or more of the methodologies or functions described herein, including those methods illustrated above. The instructions724may also reside, completely or at least partially, within the main memory704, the static memory706, or within the processor702, or a combination thereof, during execution thereof by the computer system700. The main memory704and the processor702also may constitute machine-readable media.

The present disclosure contemplates a machine readable medium722containing instructions724so that a device connected to the communications network135can send or receive voice, video or data, and to communicate over the network135using the instructions. The instructions724may further be transmitted or received over the network135via the network interface device720.

Thus, although specific arrangements have been illustrated and described herein, it should be appreciated that any arrangement calculated to achieve the same purpose may be substituted for the specific arrangement shown. This disclosure is intended to cover any and all adaptations or variations of various embodiments and arrangements of the invention. Combinations of the above arrangements, and other arrangements not specifically described herein, will be apparent to those of skill in the art upon reviewing the above description. Therefore, it is intended that the disclosure not be limited to the particular arrangement(s) disclosed as the best mode contemplated for carrying out this invention, but that the invention will include all embodiments and arrangements falling within the scope of the appended claims.

The foregoing is provided for purposes of illustrating, explaining, and describing embodiments of this invention. Modifications and adaptations to these embodiments will be apparent to those skilled in the art and may be made without departing from the scope or spirit of this invention. Upon reviewing the aforementioned embodiments, it would be evident to an artisan with ordinary skill in the art that said embodiments can be modified, reduced, or enhanced without departing from the scope and spirit of the claims described below.