RENDERING APPARATUS AND METHOD
A rendering apparatus and method are provided. A plurality of nodes of interface data are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items that are analyzed, and the interface data is rendered based on a result of the analysis. Consequently, a creator of interface data to be rendered can expect a time-to-market reduction when creating interface data described in a standardized format.
Latest Samsung Electronics Patents:
This application is a divisional of U.S. application Ser. No. 11/898,777 filed Sep. 14, 2007 which claims the benefit of Korean Patent Application No. 10-2006-0118639, filed on Nov. 28, 2006, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein in their entirety by reference.
BACKGROUND1. Field
One or more embodiments of the present invention relate to rendering, and more particularly, to rendering of interface data having a plurality of selectable items.
2. Description of the Related Art
A user of a terminal can manipulate the terminal while being provided with a user interface (UI) screen that changes with a result of manipulation with respect to the terminal from the terminal. The UI screen displays one of various menus that can be provided by the terminal. A single menu includes a plurality of selectable items.
Interface data having graphic information of UI screens displaying menus is described in the unique format of each terminal. Thus, in order to create interface data for authored content, a programmer has to reconstruct the authored content so as to be suitable for the unique format of each terminal.
In other words, in spite of fast content authoring, the authored content has to be suitably reconstructed for the unique format of each terminal in order to create interface data, causing a limitation in terms of how fast the interface data can be created. Such a limitation becomes more distinct when the programmer is not familiar with the unique format of each terminal and the authored content is 3-dimensional (3D) content.
SUMMARYOne or more embodiments of the present invention provide a rendering apparatus which renders interface data that is described in such a way that it can be created quickly.
One or more embodiments of the present invention also provide a rendering method which renders interface data that is described in such a way that it can be created quickly.
One or more embodiments of the present invention also provide a computer-readable recording medium having recorded thereon interface data that is described in such a way that it can be created quickly.
Additional aspects and/or advantages will be set forth in part in the description which follows and, in part, will be apparent from the description, or may be learned by practice of the invention.
To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include a rendering apparatus including, an analysis unit to analyze a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items, and a rendering unit to render the interface data based on a result of the analysis.
To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include a rendering method including, analyzing a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items, and rendering the interface data based on a result of the analysis.
To achieve at least the above and/or other aspects and advantages, embodiments of the present invention include a computer-readable recording medium having recorded thereon data described using a plurality of nodes connected hierarchically, the plurality of nodes including, at least one user interface (UI) node, a plurality of menu nodes that are nearest neighbor sub nodes of the UI node and are selectable, and a plurality of item nodes that are nearest neighbor sub nodes of the menu nodes and describe a plurality of selectable items.
These and/or other aspects and advantages will become apparent and more readily appreciated from the following description of the embodiments, taken in conjunction with the accompanying drawings of which:
Reference will now be made in detail to embodiments, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. Embodiments are described below to explain the present invention by referring to the figures.
More specifically,
In this case, a user may manipulate the terminal in order to select one of the 9 items, thereby instructing the terminal to execute the selected item. For example, the user may manipulate a button included in the terminal in order to select “Message” from among the 9 items, thereby instructing the terminal to execute the SMS function.
As illustrated in
In
In this case, the user may manipulate the terminal in order to select one of the 5 items, thereby instructing the terminal to execute the selected item. For example, the user may manipulate the terminal in order to select “Sentbox”, thereby instructing the terminal to execute the sent message management function.
As illustrated in
The same description as in
In
Here, the user may manipulate the terminal in order to select one of the 5 items, thereby instructing the terminal to execute the selected item. For example, the user may manipulate the terminal in order to select “Winni”, thereby allowing the user to review an SMS message sent to Winni.
In
Hereinafter, a “state” may denote an image displayed or to be displayed by a terminal having a display function. Such a terminal, specifically, a terminal like a portable phone capable of performing various functions such as a call origination/reception function, a music playback function, and a camera function as well as the display function, is an example of a rendering apparatus, according to an embodiment of the present invention. For example, a “state” illustrated in
As such, “states” of UI screens having a hierarchical relationship may be different from each other and “states” of UI screens having a non-hierarchical relationship may also be different from each other. For example, for images displayed in the form of rows as illustrated in
Interface data that is rendered, i.e., visualized, by the rendering apparatus, according to the present invention may be described in a standardized format. More specifically, interface data according to the present invention may be described using a plurality of nodes connected hierarchically. For convenience of explanation, it is assumed that a node, a field, and an event mentioned herein typically have the same meanings as those of a node, a field, and an event prescribed in representative text-format language expressing 3D graphics, i.e., virtual reality modeling language (VRML). In other words, the node can include the field defining the attributes of the node and the event that is a message transmitted from one node to another node. Each node may have its own fixed field group.
However, nodes describing interface data, according to the present invention are not prescribed in the VRML standard. In other words, the VRML standard does not prescribe a node for describing interface data, e.g., data having graphic information of UI screens displaying menus. Nodes describing interface data according to the present invention may include at least one UI node, a plurality of selectable menu nodes that are nearest neighbor sub nodes of the UI node, and a plurality of item nodes that are nearest neighbor sub nodes of the menu nodes and describe a plurality of selectable items. The nodes will be described later with reference to
In an embodiment of the present invention, it is preferable that the rendering apparatus, include a file storage unit (not shown). The file storage unit (not shown) may store interface data provided to the rendering apparatus, according to the present invention.
When the rendering apparatus, according to an embodiment of the present invention, renders the stored interface data the loading unit 210 may load the stored interface data.
The analysis unit 220 may analyze nodes describing the loaded interface data. More specifically, the analysis unit 220 may analyze which node, among all nodes describing the loaded interface data, is to be rendered and may analyze the contents of the node to be rendered.
The node update unit 230 may incorporate a state transition table (STT) of at least one node that is subordinate to each of all nodes describing the loaded interface data into each of the nodes. The STT is a table that stores “information about a state to be transited to” using a manipulation result of the rendering apparatus, according to the present invention, as an address. Hereinafter, the “state” may mean unique identification information of an item node, e.g., a unique ID of an item node. In an embodiment, it is preferable that the expression “Node A is subordinate to Node B” denotes that Node A is subordinate to Node B as the nearest neighbor sub node of Node B. As will be described later below in more detail, among all nodes describing interface data provided to the rendering apparatus, according to the present invention, a node indicating a state information table is originally an item node. As also will be described later below in more detail, when a button in the rendering apparatus, according to the present invention is manipulated, the analysis unit 220 may determine a state corresponding to the “manipulation result” and determine nodes corresponding to the determined state as nodes that are to be rendered. At this time, the analysis unit 220 may have to consider the “latest result of rendering performed by the rendering unit 250,” as well as the “manipulation result,” in order to determine the “state” to be transited to. The analysis unit 220 may determine the state corresponding to the “manipulation result” by analyzing the STT of each item node. Here, the analysis unit 220 may have to conduct an analysis all nodes which are from UI node to item node and describe an interface data, thus consuming much time in analyzing STTs.
In order to speed up the analysis of the STTs, the node update unit 230 may create a single STT by collecting the STTs of a plurality of item nodes that are subordinate to each menu node and incorporate the created STT into each menu node. The node update unit 230 may then create a single STT by collecting the STTs of a plurality of menu nodes that are subordinate to each UI node and incorporate the created STT into each menu node. In this way, the analysis unit 220 may determine the state corresponding to the manipulation result by analyzing only UI nodes without analyzing item nodes.
When the node update unit 230 incorporates the STT of at least one node that is subordinate to each node describing the loaded interface data into each node, in an embodiment, it is preferable that the analysis unit 220 analyzes the interface data output from the node update unit 230.
A plurality of nodes describing the interface data may be changed during operation of the analysis unit 220. More specifically, during operation of the rendering apparatus, according to an embodiment of the present invention, the rendering apparatus may be provided with a node from outside through an input terminal IN and thus the number of nodes describing interface data may increase, or the number of nodes describing interface data may decrease. In particular, a new menu node may be added to menu nodes constituting interface data or some of the menu nodes constituting the interface data may be erased. Likewise, a new item node may be added to item nodes constituting interface data or some of the item nodes constituting the interface data may be erased. When a new menu node is added, in an embodiment it is preferable that the menu node includes a certain STT.
Nodes indicating the initial screen displayed by the rendering apparatus are some of the nodes describing the interface data. The initial screen may be a UI screen displayed by the rendering apparatus, which has not yet been manipulated by the user after the rendering apparatus is turned on.
More specifically, the number of UI nodes among the nodes describing the interface data may be more than 1 and one of the UI nodes may need to be selected in order for the rendering apparatus to display the initial screen. In the following description, the selection of one of the UI nodes may be referred to as the binding of the UI node. In other words, hereinafter a UI node may be a bindable node. The basic concept of “bind” is disclosed in detail in the VRML standard.
Whichever of the UI nodes is to be bound may be prescribed or may not be prescribed in the interface data. If the interface data does not prescribe which one of the UI nodes is to be bound, the first UI node that is analyzed by the analysis unit 220 may be bound.
As such, when one of the UI nodes is bound, a menu node and an item node may need to be selected as sub nodes to be rendered from among sub nodes of the bound UI node. In the following description, the selection of a sub node from among sub nodes of the bound UI node may be referred to as the activation of the sub node.
A sub node that is to be activated from among sub nodes of the bound UI node in order for the rendering apparatus to display the initial screen may be prescribed in the interface data. The activated sub node may differ each time the rendering apparatus is manipulated. In other words, each time the rendering apparatus is manipulated, the “state” of the rendering apparatus may be changed.
The manipulation recognition unit 240 may recognize the manipulation result of the rendering apparatus. For example, when the user manipulates a button of the rendering apparatus, the manipulation recognition unit 240 may recognize which button has been manipulated. The manipulation recognition unit 240 may also recognize how the user manipulates the button, such as whether the user presses the button for a short or long time or takes a finger off the button. The manipulation recognition unit 240 may incorporate the recognition result into the bound UI node of the loaded interface data.
In this case, the node update unit 230 may incorporate the recognition result into the activated item node and the analysis unit 220 may determine the “state” corresponding to the recognition result incorporated into the activated item node by searching the STTs. At this time, the analysis unit 220 may search STTs included in item nodes or the STT incorporated into the UI node by the node update unit 230.
Here, the analysis unit 220 may search in sub nodes of the bound UI node for an item node and a menu node corresponding to the “state”. More specifically, the analysis unit 220 may search in the sub nodes of the bound UI node for an item node and a menu node having unique ID information indicating the “state”.
To this end, the analysis unit 220 may first analyze other item nodes that are subordinate to a menu node to which the activated item node is subordinate. If there is no item node corresponding to the “state” in the other item nodes that are subordinate to the menu node to which the activated item node is subordinate, the analysis unit 220 may analyze item nodes that are subordinate to a menu node to which the activated item node is not subordinate.
The analysis unit 220 may then analyze the contents of a node corresponding to the determined “state.” In other words, the analysis unit 220 may analyze the contents of the found item node and menu node.
The rendering unit 250 may render the interface data based on the analysis result obtained by the analysis unit 220 and output the rendering result through an output terminal OUT 1. A display device such as a liquid crystal display (LCD) may display the rendering result.
The operation of the rendering apparatus when a UI node is bound will be described later below in more detail with reference to
As mentioned above, a UI node is typically a root node, among all nodes describing interface data. The number of UI nodes describing the interface data may be more than 1. In other words, a UI node is generally a bindable node. Menu nodes are nearest neighbor sub nodes of each of the UI nodes and item nodes are nearest neighbor sub nodes of each of the menu nodes. The relationship between the UI nodes, the menu nodes, and the item nodes may be described with reference to
A plurality of nodes describing interface data may also include a Transition node, an animator node, an animator group node (AnimatorGroup), a key sensor node (KeySensor), and a switch node (Switch) as well as a UI node, a menu node, and an item node.
At least one of an animator node describing information about activeAnimation and an animator node describing information about inactiveAnimation may be subordinate to a menu node. For convenience of explanation, it is assumed that both of the animator nodes may be subordinate to the menu node.
At least one of a Transition node describing the contents of a STT, an animator node describing information about transAnimation, an animator node describing information about inactiveAnimation, and an animator node describing information about focusAnimation may be subordinate to an item node. For convenience of explanation, it is assumed that the Transition node and all of the animator nodes may be subordinate to the item node.
An animator node may denote a node describing animation that is to be applied to an object to be displayed. The object may be an “object indicated by a menu node, e.g., an image except for items in an UI screen” or an “object indicated by an item node, e.g., the items in the UI screen”. The object to be displayed may also be a 3D object. Hereinafter, object data may mean data indicating the object.
An animator group node typically means a node including at least one animator node.
ActiveAnimation, inactiveAnimation, transAnimation, and focusAnimation are examples of animation that may be applied to the object.
ActiveAnimation described in an animator node included in an animator group node that is subordinate to a menu node may mean motion information for making an object distinguishable on the UI screen. At this time, the object that may be an object indicated by the menu node.
Similarly, inactiveAnimation described in an animator node included in an animator group node that is subordinate to a menu node may mean motion information for hiding the object on the UI screen.
TransAnimation described in an animator node included in an animator group node that is subordinate to an item node may mean motion information that is required when the “state” of the rendering apparatus is changed due to manipulation with respect to the rendering apparatus and thus allows the user to recognize the change.
ActiveAnimation described in an animator node included in an animator group node that is subordinate to an item node may mean motion information for making an object distinguishable on the UI screen. At this time, the object may be an object indicated by the item node.
FocusAnimation described in an animator node included in an animator group node that is subordinate to an item node may mean motion information for highlighting movement of an object that moves according to active animation.
Each of ActiveAnimation described in an animator node included in an animator group node that is subordinate to a menu node, inactiveAnimation described in an animator node included in an animator group node that is subordinate to a menu node, transAnimation described in an animator node included in an animator group node that is subordinate to an item node, activeAnimation described in an animator node included in an animator group node that is subordinate to an item node, and focusAnimation described in an animator node included in an animator group node that is subordinate to an item node may be described with reference to
In
Upon selection of the item “Message” from among the 9 items illustrated in
In this case, the size increase of the UI screen displaying the 5 items may correspond to activeAnimation described in an animator node that is subordinate to a menu node among nodes describing the UI screen illustrated in
The key sensor node describes the manipulation result of the rendering apparatus. More specifically, the key sensor node may describe a result of manipulation with respect to a button provided in the rendering apparatus. Here, the button manipulation result may refer to ‘which of the buttons provided in the rendering apparatus has been manipulated’ and ‘how the button has been manipulated’. ‘How the button has been manipulated’ may mean ‘the button is pressed for a short or long time or the pressed button is raised to its original position’.
The switch node may describe information about “states” indicating item nodes that can be rendered and information about “states” indicating item nodes that cannot be rendered.
The analysis unit 220 may analyze the above-described nodes (the UI node, the menu node, the item node, the Transition node, the animator node, the animator group node, the key sensor node, and the switch node) and output the analysis result to the rendering unit 250 through an output terminal OUT 2.
In association with the attributes of a field 410, “field” may mean that the field cannot be an event delivered to or from a node, “eventIn” may mean an event delivered to a node, “eventOut” may mean an event delivered from a node, “exposedField” may mean that the field can be an event delivered to or from a node. In
In association with the type of a field value 420, “SFInt32” may mean that the field value is an integer, “MFNode” may mean that the field value is a plurality of nodes, “SFBool” may mean that the field value is a Boolean value (TRUE or FALSE), “SFTime” may mean that the field value is a time value, and “SFNode” may mean that the field value is a node.
In association with a field 430, a state field may mean a “state”, and a state field value, i.e., state information, may mean unique ID information, e.g., a unique ID, of an item node. The state field value is variable, but typically has to be one of unique ID information of item nodes that are subordinate to a UI node.
The initial value of the state field value defined in a UI node may mean an item node that is first activated among item nodes that are subordinate to a menu node that is first activated when the UI node is bound.
The “state of the rendering apparatus is changed when the rendering apparatus is manipulated. Once the “state” is changed, e.g., an item node to be activated is changed, ‘state information indicating the changed item node, i.e., information about a state to be transited to’ may be delivered to a UI node through the state field. Here, the state field value of the UI node may be updated with the delivered state information. The UI node may deliver the delivered state information to the switch node. In this case, the analysis unit 220 may determine whether an item node indicated by the delivered state information can be rendered by analyzing the switch node.
A “children” field may have a plurality of menu nodes as field values.
A “resetWhenBind” field may mean that “the state field value of the UI node is changed to the initial value when the same UI node is bound again” if the field value is a predetermined value, e.g., resetWhenBind=TRUE, and that “the state field value of the UI node may maintain the latest value when the same UI node is bound again” if the field value is not the predetermined value, e.g., resetWhenBind=FALSE.
A “keyPressed” field may have a field value when the user presses a button provided in the rendering apparatus for a short time, a “keyreleased” field may have a field value when the pressed button is released from the pressed state, and a “keyLongPressed’ may have a field value when the user presses the button for a long time.
When the user manipulates a button provided in the rendering apparatus, the manipulation recognition unit 240 may recognize the manipulation result and incorporate the recognition result into a UI node. At this time, the recognition result may be one of the keyPressed field value, the keyReleased field value, and the keyLongPressed field value and may be delivered to the UI node through one of the keyPressed field, the keyReleased field, and the keyLongPressed field of the UI node. Here, the UI node may deliver the delivered field value to its sub node, strictly an activated item node from among item nodes that are subordinate to the UI node, i.e., an item node indicated by an activeMenuComponent field value.
A set_bind field, a bindTime field, and an isBound field may be associated with a bindable node. The concepts of the set_bind field, the bindTime field, and the isBound field are disclosed in greater detail in the VRML standard.
When a UI node is bound, it may deliver its bindTime field value to a menu node to which an item node indicated by the state field value of the UI node is subordinate through an activeTime field of the menu node. The activeTime field of the menu node will be described later.
When a menu node indicated by a state to be transited to by a user's manipulation of the rendering apparatus and a menu node activated during the user's manipulation of the rendering apparatus are different from each other, a UI node may receive an inactiveTime field value, which is delivered from the activated menu node through an inactiveTime field of the activated menu node, through a transitionTime field of the UI node. The UI node may also receive a state field value, which is delivered from the activated menu node through the state field of the activated menu node, through a state field of the UI node. Thus, the state field value of the UI may be updated with the received state field value. Here, a transitionTime field value of the UI node may be delivered to a menu node to which an item menu indicated by the updated state field value is subordinate through an activeTime field of the menu node. Thus, the menu node to which the item node indicated by the updated state field value is subordinate may be newly activated.
An activeMenu field typically has information indicating which one of menu nodes that are subordinate to the bound UI node is currently activated as a field value. An activeMenuComponent field may have information indicating which one of the item nodes that are subordinate to the bound UI node is currently activated as a field value. Since the activeMenu field and the activeMenuComponent field may be considered by the rendering unit 250 during rendering of the interface data, they generally cannot be used by the user who desires to design the syntax of the interface data.
In
“state 5” may mean that a unique ID of an item node to be activated is 5. As illustrated in
“ROUTE USER_INPUT.actionKeyPressed TO MENU_SYSTEM.keyPressed” may mean that ‘when the user manipulates a button provided in a terminal by pressing the button short, an event “action.KeyPressed” of a key sensor node defined as USER_INPUT may be delivered to a UI node defined as MENU_SYSTEM through a keyPressed field of the UI node.
Other syntaxes may be described using the same logic as described above.
In association with a field 630, a state field may mean a “state” and a state field value, i.e., state information, may mean unique ID information, e.g., a unique ID, of an item node. The state field value may be variable, but typically has to be one of unique ID information of item nodes that are subordinate to a menu node.
An initial value of the state field value defined in a menu node may mean an item node that is first activated among item nodes that are subordinate to a menu node when the menu node is activated.
As mentioned above, the “state” of the rendering apparatus may be changed when the rendering apparatus is manipulated. When the “state” is changed, i.e., an item node to be activated is changed, ‘state information indicating the changed item node, e.g., information about a state to be transited to’ is delivered to the menu node through the state field of the menu node. In this case, the state field vale of the menu node may be updated with the delivered state information.
A children field may have a plurality of item nodes as field values.
An activeAnimation field may have an animator node describing information about activeAnimation as a field value. An inactiveAnimation field may have an animator node describing information about inactiveAnimation as a field value.
An animationOrder field may indicate a temporal relationship between the start point of rendering of activeAnimation described in an activated menu node and the activation point of an item node that is subordinate to the activated menu node as a field value. For example, when an animationOrder field value is 0, the start point of rendering of activeAnimation described in the activated menu node may be the same as the activation point of the item node that is subordinate to the activated menu node. If the animationOrder field value is 1, the stop point of rendering of animation described in the activated menu node may be the same as the activation point of the item node that is subordinate to the activated menu node.
A resetWhenActive field may mean “when the same menu node is activated again, the state field value of the menu node is changed first” if a field value is a predetermined value, e.g., resetWhenActive=TRUE, and may mean “when the same menu node is bound again, the state field value of the menu node maintains the latest value” if the field value is not the predetermined value, e.g., resetWhenActive=FALSE.
“activeTime” and “inactiveTime” may be described as follows. A menu node may be activated upon receipt of an activeTime field value of the menu node from a UI node and may be deactivated upon receipt of an inactiveTime field value of the menu node from the UI node.
In a similar principle to the above description, an item node may be activated by receiving activeTime from a menu node to which the item node is subordinate. More specifically, the item node may be activated by receiving an activeTime field value of the menu node through the activeTime field of the item node. The other fields included in the item node in addition to the activeTime field will be described in greater detail later below with reference to
A transitionTime field may have a time value required for activating a menu node indicated by a state to be transited to by a user's manipulation of the rendering apparatus as a field value when the menu node is different from a menu node that is activated at the time of the user's manipulation of the rendering apparatus.
An activeMenuComponent field may be the same as that described with reference to
In
“state 5” typically means that the unique ID of an item node to be activated is 5. “loop FALSE” means that the rendering apparatus according to the present invention usually does not repetitively render animation described in an animator node. In
As illustrated in
In association with a field, a state field may indicate a “state” and a state field value, i.e., state information, may mean unique ID information, e.g., a unique ID, of an item node.
A transitions field typically has at least one transition node as a field value. Each transition node may describe “the manipulation result of the rendering apparatus” and “a state to be transited to” corresponding thereto. Thus, a transitions field value may be referred to as an STT.
Each transAnimations field may have an ‘animator group node including an animator node describing information about transAnimation’ as a field value. Each animator group node constituting a transAnimations field value may correspond to each transition node constituting the transitions field value. Thus, the number of animator group nodes constituting the transAnimations field value may be equal to the number of transition nodes constituting the transitions field value.
An activeAnimation field may have an animator node describing information about activeAnimation as a field value, and a focusAnimation field may have an animator node describing information about focusAnimation as a field value.
When a first activated item node is deactivated and a second deactivated item node is activated, an animationOrder field may indicate a temporal relationship between the start point of rendering of activeAnimation described in the second deactivated item node and the start point of rendering of focusAnimation described in the second deactivated item node as a field value and may also indicate a temporal relationship between the start point of rendering of transAnimation described in the first activated item node and the activation point of the second deactivated item node as a field value.
More specifically, the animationOrder field may be expressed with two bits.
At this time, an upper bit may indicate the temporal relationship between the start point of rendering of activeAnimation described in the second deactivated item node and the start point of rendering of focusAnimation described in the second deactivated item node. For example, if the upper bit is 0, it may mean that the start point of rendering of activeAnimation described in the second deactivated item node and the start point of rendering of focusAnimation described in the second deactivated item node may be the same as each other. On the other hand, if the upper bit is 1, it may mean that the stop point of rendering of activeAnimation described in the second deactivated item node and the start point of rendering of focusAnimation described in the second deactivated item node may not be the same as each other.
A lower bit may indicate a temporal relationship between the start point of rendering of transAnimation described in the first activated item node and the activation point of the second deactivated item node. For example, if the lower bit is 0, it may mean that the start point, i.e., transitionStartTime, of rendering of transAnimation described in the first activated item node and the activation point of the second deactivated item node may be the same as each other. On the other hand, if the lower bit is 1, the completion point, i.e., transitionStopTime, of rendering of transAnimation described in the first activated item node and the activation point of the second deactivated item node may be the same as each other.
“activeTime” and “inactiveTime” may be described as follows. In other words, an item node may be activated upon receipt of an activeTime field value of the item node from a menu node and may be deactivated upon receipt of an inactiveTime field value of the item node from the menu node.
A keyPressed field value may be updated when a keyPressed field value of a UI node is updated. A keyReleased field value may be updated when a keyReleased field value of the UI node is updated. A keyLongPressed field value may be updated when a keyLongPressed field value of the UI node is updated.
In
“key17 state 7” may mean that the “state” of the rendering apparatus transits to a state corresponding to 7 when the user presses a button corresponding to 17 for a short time. “key18 state 7” may mean that the “state” of the rendering apparatus transits to a state corresponding to 18 when the user presses a button corresponding to 18 for a short time. “key19 state 6” may mean that the “state” of the rendering apparatus transits to a state corresponding to 6 when the user presses a button corresponding to 19 for a short time. “key20 state 6” may mean that the “state” of the rendering apparatus transits to a state corresponding to 6 when the user presses a button corresponding to 20 for a short time. “key21 state 1” may mean that the “state” of the rendering apparatus transits to a state corresponding to 1 when the user presses a button corresponding to 21 for a short time.
Each of 4 animator group nodes from among 5 animator group nodes constituting the transAnimations field value may indicate animation that is to be rendered in a forward direction from fractions=0.75 to 0.8, from fractions=0.8 to 0.85, from fractions=0.85 to 0.9, or from fractions=0.9 to 0.95, which is described in a position interpolator node defined as CAMERA_POSINTERP, whereas the remaining 1 animator group node may indicate animation that is to be rendered in a backward direction from fractions=0.75 to 0.5, which are described in position interpolator nodes defined as CAMERA_POSINTERP, MENU2_OBJECT1_POSINTERP, MENU2_OBJECT2_POSINTERP, MENU2_OBJECT3_POSINTERP, and MENU2_OBJECT4_POSINTERP.
On the other hand, an animator group node that is a focusAnimation field value may indicate animation to be rendered in a forward direction from fractions=0.0 to 0.5, which is described in an interpolator node defined as MENU2_OBJECT1_MESH1_INTERP.
In
As illustrated in
In
In addition, a fractions field, a cycleInterval field, an enabled field, a loop field, a startTime field, a stopTime field, a cycleTime field, and an isActive field may also be fields of a time sensor node defined in the VRML standard.
However, an interpolators field and a fraction— changed field will be described separately.
As described with reference to
fractions.x may indicate the start point of rendering of animation and fractions.y may indicate the stop point of rendering of animation. For this reason, a plurality of fractions between fractions.x and fractions.y may have to be calculated for rendering animation. The ‘calculated fractions (fraction_changed)’ may be a fraction_changed field value of the animator node.
The fraction_changed field value may also be calculated as illustrated in
In
Once the loading unit 210 loads the interface data, one of at least one UI node that is present among a plurality of nodes constituting the interface data may be bound. More specifically, the rendering apparatus, according to the present invention may recognize “now” and the recognized “now” may be delivered to one of the at least one UI node through a bindTime field of the UI node, thereby binding the UI node. At this time, the rendering apparatus, according to an embodiment of the present invention may recognize time at which any one of the at least one UI node is not bound as “now”.
If the bound UI node has never been previously bound, ‘a menu node designated as default’ among menu nodes that are subordinate to the bound UI may now be activated. Here, information indicating the menu node designated as default may be an activeMenu field value of the UI node.
On the other hand, if the bound UI node has been previously bound, a menu node to be now activated among the menu nodes that are subordinate to the bound UI may be determined according to a resetWhenBind field value.
In other words, if the resetWhenBind field value is a Boolean value FALSE, e.g., 0, the latest activated menu node among the menu nodes that are subordinate to the bound UI may now be activated. Here, information indicating the latest activated menu node may already be included in the UI node as the activeMenu field value.
On the other hand, if the resetWhenBind field value is a Boolean value TRUE, e.g., 1, ‘the menu node designated as default’ among the menu nodes that are subordinate to the bound UI may now be activated. In this case, information indicating the menu node designated as default may be the activeMenu field value of the UI node.
Thereafter, the UI node may deliver its state field value and bindTime field value to the menu node to be now activated through its activeMenu field. Thus, a state field value and an activeTime field value of the menu node to be now activated may be updated with the delivered state field value and bindTime field value. In this way, the menu node to be now activated is activated.
At this time, if the activated menu node has never been previously activated, ‘an item node designated as default’ from among item nodes that are subordinate to the activated menu node may now be activated. Here, information indicating the item node designated as default may be an activeMenuComponent field value of each of a menu node and a UI node to which the menu node is subordinate.
On the other hand, if the activated menu node has been previously activated, an item node to be now activated from among the item nodes that are subordinate to the activated menu node may be determined according to a resetWhenActive field value.
In other words, if the resetWhenActive field value is a Boolean value FALSE, e.g., 0, the latest activated item node from among the item nodes that are subordinate to the activated menu node may now be activated. Here, information indicating the latest activated item node is already included in a menu node and a UI node to which the menu node is subordinate may have an activeMenuComponent field value.
On the other hand, if the resetWhenActive field value is a Boolean value TRUE, e.g., 1, ‘an item node designated as default’ from among the item nodes that are subordinate to the activated menu node may now be activated. Here, information indicating the item node designated as default may be the activeMenuComponent field value of each of a menu node and a UI node to which the menu node is subordinate.
If the activated menu node indicates activeAnimation, i.e., an animator node describing information about activeAnimation is subordinate to the activated menu node, the menu node may deliver its activeTime field value to the animator node through its activeTime field. Thus, the startTime field value of the animator node may be updated with the delivered activeTime field value. In this way, the rendering of activeAnimation described in the animator node may be started.
If an animationOrder field value of the menu node indicates that “the start point of rendering of activeAnimation described in the activated menu node is the same as the start time of rendering of animation described in the activated item node”, the menu node may deliver its state field value and activeTime field value to an item node indicated by its activeMenuComponent field value, i.e., the item node to be now activated. Thus, the state field value and the active time field value of the item node to be now activated may be respectively updated with the delivered state field value and activeTime field value. In this way, the item node to be now activated may be activated.
On the other hand, if the animationOrder field value of the menu node indicates that “the stop point of rendering of activeAnimation described in the activated menu node is the same as the start point of rendering of animation described in the activated item node”, the menu node may obtain ‘the stop point of rendering of activeAnimation indicated by the menu node, i.e., a stopTime field value of an animator node that is subordinate to the menu node and indicates activeAnimation’ from the animator node that is subordinate to the menu node. Thereafter, the menu node may deliver its state field value and the obtained stopTime field value to an item node indicated by its activeMenuComponent field value, i.e., the item node to be now activated. Thus, the state field value and the activeTime field value of the item node to be now activated may be respectively updated with the delivered state field value and stopTime field value. In this way, the item node to be now activated may be activated.
If the activated item node indicates activeAnimation and focusAnimation, i.e., animator group nodes describing information about activeAnimation and information about focusAnimation are subordinate to the activated item node, the rendering of activeAnimation and focusAnimation may be performed based on the animationOrder field value of the activated item node.
More specifically, if the animationOrder field value of the item node indicates that “the start point of rendering of activeAnimation described in the activated item node is the same as the start point of rendering of focusAnimation described in the activated item node”, the item node may deliver its activeTime field value to both an animator group node that is subordinate to the item node and indicate activeAnimation and an animator group node that is subordinate to the item node and indicate focusAnimation. Thus, a startTime field value of each animator node included in the animator group node indicating activeAnimation may be the same as that of each animator node included in the animator group node indicating focusAnimation. As a result, the start point of rendering of activeAnimation described in the activated item node may be the same as the start point of rendering of focusAnimation described in the activated item node.
On the other hand, if the animationOrder field value of the item node indicates that “the stop point of rendering of activeAnimation described in the activated item node is the same as the start point of rendering of focusAnimation described in the activated item node”, the item node may obtain ‘the stop point of rendering of activeAnimation applied to the item node, i.e., the stopTime field value of an animator node included in an animator group node that is subordinate to the item node and indicate activeAnimation’ from the animator group node that is subordinate to the item node and indicate activeAnimation. Thereafter, the item node may deliver the obtained stopTime field value to an animator group node that is subordinate to the item node and indicate focusAnimation. Thus, the stopTime field value of each animator node included in the animator group node indicating activeAnimation and the startTime field value of each animator node included in the animator group node indicating focusAnimation may be the same as each other. As a result, the stop point of rendering of activeAnimation described in the activated item node and the start point of rendering of focusAnimation described in the activated item node may be the same as each other.
The analysis unit 220 may analyze the above nodes (e.g., a UI node, a menu node, an item node, a transition node, an animator node, and an animator group node) and output the analysis result to the rendering unit 250 through an output terminal OUT 3.
If the user presses any one of the buttons provided in the rendering apparatus for a short time, the manipulation result may be a keyPressed field value of a key sensor node. The keyPressed field value of the key sensor node may be delivered to a UI node and thus a keyPressed field value of the UI node may be updated with the delivered keyPressed field value.
A “state to be transited to” corresponding to the keyPressed field value of the UI node may be determined according to a description in a transitions field value of the activated item node, and information about the determined state is delivered to a menu node as a state field value of a transition node. Thus, a state field value of the menu node may be updated with the delivered state field value. In addition, the state field value of the menu node may be delivered to the UI node as a state field value of the UI node. Thus, the state field value of the UI node may be updated with the delivered state field value. The state field value of the UI node may be delivered to a switch node as a state field value of the switch node. Thus, the state field value of the switch node is updated with the delivered state field value.
If there is an item node indicated by a state to be transited to from among item nodes that are subordinate to a menu node as in an embodiment of the present invention, “now” may be an activeTime field value of the item node indicated by the state to be transit to. “now” may also be a startTime field value of an animator node included in an animator group node describing transAnimation indicated in an item node that is being activated at the time of user's manipulation of a button included in the rendering apparatus. In
“Now” serves as the activeTime field value of the item node indicated by the state to be transited to, thereby activating the item node indicated by the state to be transited to. In this case, a temporal relationship between the start point of rendering of activeAnimation applied to the item node and the start point of rendering of focusAnimation applied to the item node is prescribed in the animationOrder field value of the item node.
The analysis unit 220 may analyze the above nodes (e.g., a UI node, a menu node, an item node, a transition node, an animator node, and an animator group node) and output the analysis result to the rendering unit 250 through an output terminal OUT 4.
Once the user presses any one of the buttons included in the rendering apparatus for a short time, the manipulation result may be a keyPressed field value of a key sensor node. The keyPressed field value of the key sensor node may be delivered to a UI node and thus a keyPressed field value of the UI node may be updated with the delivered keyPressed field value.
A “state to be transited to” corresponding to the keyPressed field value of the UI node may be determined according to a description in a transitions field value of the activated item node, and information about the determined state may be delivered to a menu node as a state field value of a transition node. Thus, a state field value of the menu node may be updated with the delivered state field value. In addition, the state field value of the menu node may be delivered to the UI node as a state field value of the UI node. Thus, the state field value of the UI node may be updated with the delivered state field value. The state field value of the UI node may be delivered to a switch node as a state field value of the switch node. Thus, the state field value of the switch node may be updated with the delivered state field value.
If there is no item node indicated by a state to be transited to from among item nodes that are subordinate to a menu node as in an embodiment of the present invention, a transitionTime field value of the UI node may be an activeTime field value of the item node indicated by the state to be transited to. To this end, the startTime field value of an animator node included in an animator group node describing inactive animation applied to the menu node activated at the time of user's manipulation of the button included in the rendering apparatus may be updated with “now”, and the transitionTime field value of the UI node may be updated with the updated startTime field value. In addition, “now” may be the startTime field value3 of an animator node included in an animator group node describing transAnimation applied to an item node activated at the time of the user's manipulation of the button. In
The transitionTime field value of the UI node may serve as the activeTime field value of the menu node indicated by the state to be transit to, thereby activating the menu node indicated by the state to be transited to.
Here, if the start point of rendering of activeAnimation applied to the item node indicated by the state to be transited to is not the same as the start point of rendering of activeAnimation applied to the menu node, whether or not the start point of rendering of activeAnimation applied to the item node may be the same as the stop point of rendering of activeAnimation applied to the menu node is prescribed in the animationOrder field value of the menu node indicated by the state to be transit to.
Moreover, whether the start point of rendering of focusAnimation applied to the item node indicated by the state to be transited to is the start point of rendering of activeAnimation applied to the item node indicated by the state to be transit to or the stop point of rendering of activeAnimation applied to the item node indicated by the state to be transit to may be prescribed in the animationOrder field value of the item node indicated by the state to be transit to.
The analysis unit 220 may analyze the above nodes (e.g., a UI node, a menu node, an item node, a transition node, an animator node, and an animator group node) and output the analysis result, e.g., to the rendering unit 250 through an output terminal OUT 5.
The analysis unit 220 may analyze a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and may have a plurality of selectable items in operation 1710.
In operation 1720, the rendering unit 250 may render the interface data based on the analysis result of operation 1710.
In addition to the above described embodiments, embodiments of the present invention may also be implemented through computer readable code/instructions in/on a medium, e.g., a computer readable medium, to control at least one processing element to implement any above described embodiment. The medium can correspond to any medium/media permitting the storing and/or transmission of the computer readable code.
The computer readable code may be recorded/transferred on a medium in a variety of ways, with examples of the medium including recording media, such as magnetic storage media (e.g., ROM, floppy disks, hard disks, etc.) and optical recording media (e.g., CD-ROMs, or DVDs), and transmission media such as carrier waves, as well as through the Internet, for example. Thus, the medium may further be a signal, such as a resultant signal or bitstream, according to embodiments of the present invention. The media may also be a distributed network, so that the computer readable code is stored/transferred and executed in a distributed fashion. Still further, as only an example, the processing element could include a processor or a computer processor, and processing elements may be distributed and/or included in a single device.
Although a few embodiments have been shown and described, it would be appreciated by those skilled in the art that changes may be made in these embodiments without departing from the principles and spirit of the invention, the scope of which is defined in the claims and their equivalents.
Claims
1. A rendering apparatus comprising:
- an analysis unit to analyze a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items; and
- a rendering unit to render the interface data based on a result of the analysis,
- wherein the analysis unit analyzes a node corresponding to a latest rendering result and a result of manipulation with respect to the rendering apparatus, and
- wherein the analysis unit determines a state corresponding to the latest rendering result and a result of manipulation with respect to the rendering apparatus and analyzes the node corresponding to the determined state, and
- wherein the analysis unit checks if the determined state is a predetermined state and analyzes the node corresponding to the determined state in response to a result of the check.
2. The rendering apparatus of claim 1, further comprising a node update unit incorporating state transition tables (STTs) of at least one of the nodes that is subordinate to a predetermined one of the nodes, into the predetermined node.
3. The rendering apparatus of claim 1, wherein a root node from among the plurality of nodes is a bindable node.
4. The rendering apparatus of claim 1, wherein the analysis unit determines a node to be activated among the at least one node that is subordinate to the predetermined node based on bind information of the predetermined node and analyzes the determined node.
5. The rendering apparatus of claim 1, wherein when a root node is bound again, the analysis unit analyzes the latest activated node among the plurality of nodes.
6. The rendering apparatus of claim 1, wherein when a root node is bound again, the analysis unit analyzes a node that is designated as a default among the plurality of nodes.
7. The rendering apparatus of claim 1, wherein when a root node is bound for the first time, node indication information indicating a node designated as a default is included in the bound root node.
8. The rendering apparatus of claim 1, further comprising a manipulation recognition unit recognizing a result of manipulation with respect to the rendering apparatus and incorporating the recognition result into the predetermined node.
9. The rendering apparatus of claim 8, wherein the predetermined node is a root node.
10. The rendering apparatus of claim 1, wherein the analysis unit analyzes object data and animation that are represented in the node corresponding to the determined state.
11. The rendering apparatus of claim 1, wherein when a first node from among the plurality of nodes is activated, the rendering unit simultaneously starts rendering of animation represented in the activated node and rendering of animation represented in a second node from among the plurality of nodes.
12. The rendering apparatus of claim 1, wherein when a first node from among the plurality of nodes is activated, the rendering unit starts rendering of animation represented in a second node from among the plurality of nodes after completion of rendering of animation represented in the first node from among the plurality of nodes.
13. The rendering apparatus of claim 12, wherein the first node and the second node are subordinate to the same node.
14. The rendering apparatus of claim 13, wherein the animation represented in the first node is activeAnimation and the animation represented in the second node is focusAnimation.
15. The rendering apparatus of claim 11, wherein one of the first node and the second node is subordinate to the other.
16. The rendering apparatus of claim 15, wherein the first node includes at least one of activeAnimation and inactiveAnimation and the second node includes activeAnimation.
17. The rendering apparatus of claim 15, wherein the first node includes transAnimation and the second node includes inactiveAnimation.
18. The rendering apparatus of claim 1, wherein the plurality of nodes can be changed during operation of the analysis unit.
19. A rendering apparatus comprising:
- an analysis unit to analyze a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items; and
- a rendering unit to render the interface data based on a result of the analysis,
- wherein when a first node from among the plurality of nodes is activated, the rendering unit simultaneously starts rendering of animation represented in the activated node and rendering of animation represented in a second node from among the plurality of nodes, and
- wherein the second node is subordinate to the first node and the rendering unit activates the second node simultaneously with the start of rendering of animation represented in the second node.
20. A rendering method comprising:
- analyzing, by way of a processor, a plurality of nodes of interface data that are described using the plurality of nodes connected hierarchically and indicate a plurality of selectable items; and
- rendering the interface data based on a result of the analysis,
- wherein the analyzing a plurality of nodes of interface data comprises:
- analyzing a node corresponding to a latest rendering result and a result of manipulation with respect to the rendering;
- determining a state corresponding to the latest rendering result and a result of manipulation with respect to the rendering and analyzing the node corresponding to the determined state; and
- checking if the determined state is a predetermined state and analyzing the node corresponding to the determined state in response to a result of the check.
Type: Application
Filed: Apr 15, 2013
Publication Date: Sep 5, 2013
Applicant: Samsung Electronics Co., Ltd. (Suwon-si)
Inventors: Sang-oak WOO (Anyang-si), Kee-chang Lee (Yongin-si), Hee-sae Lee (Yongin-si), Mahn-jin Han (Yongin-si), Do-kyoon Kim (Yongin-si)
Application Number: 13/862,654