SceneBeans: A Component-Based Animation Framework for Java
|
|
|
- Russell Anderson
- 10 years ago
- Views:
Transcription
1 1. Abstract SceneBeans: A Component-Based Animation Framework for Java Nat Pryce and Jeff Magee Department of Computing, Imperial College. {np2,jnm}@doc.ic.ac.uk DRAFT VERSION This paper presents SceneBeans, a framework for building two-dimensional, interactive animations from Java Beans components. A SceneBeans animation is defined as scene graph, a directed acyclic graph of Java Bean components that define a scene in terms of compositions and transformations of geometric shapes. Animation is achieved by modifying the Java Bean properties of the scene graph nodes between each frame. Animation behaviours are also packaged as Java Bean components, allowing the programmer to take a compositional approach to animating graphics. Animations can be defined in XML. The SceneBeans parser interprets an XML document as a set of configuration commands defining instantiations of, and bindings between, dynamically loaded Java Bean components. Thus the file-format is open ended: new visual and behavioural components can be introduced on a per-application or per-document basis. Finally, we present an example application of the framework where animations are used to visualise formal models of concurrent programs. Keywords: animation, framework, component, Java, Java Beans, XML. 2. Introduction Interactive, animated graphics are a powerful way of displaying complex information to users in a way that aids understanding. Current graphics toolkits and APIs do not provide support for animation, usually only providing functions to share display real-estate between programs, render primitive shapes to the display and collect user input events. Developers, therefore, are hindered from using animation in their applications by the need to implement most of the mechanisms required to define, compose and simulate and render animations. SceneBeans is an object-oriented framework for building and controlling animated graphics. It aims to remove the drudgery of displaying animations, allowing programmers to concentrate on what is being animated, rather than on how that animation is played back to the user. SceneBeans is based upon industry and Internet standards, such as Java Beans [2] and XML [4]. Its component-based architecture allows application developers to easily extend the framework with domain-specific visual and behavioural components. 1
2 3. The Scene Beans Framework 3.1. Structured Graphics The graphics drawn by SceneBeans are defined by a scene graph, a directed, acyclic graph (DAG), each node of which is a Java Bean that encapsulates a simple drawing command. Leaves of the graph draw graphical primitives such as ellipses, polygons, images or text. Intermediate nodes combine the primitive shapes into complex scenes by composing multiple scene graphs or modifying the way that a scene graph is rendered. For anything but the most trivial scene, the root of the graph is a composite node. All nodes of the scene graph implement the SceneGraph interface, which provides operations for drawing the graph onto a graphics context, querying or setting a flag indicating if the node is animated that is used to optimise the rendering process, and passing a Visitor [3], of type SceneGraphProcessor, to the node. The SceneGraphProcessor uses double-dispatch to provide algorithms that walk over the scene graph with type information about the nodes that they are visiting. Scene graphs are composed using Composite nodes. There are currently six types of composite node: Layered, that draws its sub-graphs one above the other; Switch, that draws one of its subgraphs at a time selected by a bean property; and four node types that perform constructive area geometry operations on their sub-graphs: Union, Intersection, Subtraction and Difference. There are two types of node that modify the way a graph is drawn: Style nodes that set the fill and line properties used to draw their subgraphs and Transform nodes that apply an affine transformation to their subgraphs. To facilitate the composition of animated transformations, there are different types of Transform node for each primitive transformation, Translate, Rotate, Scale and Shear, rather than a single type of transform node parameterised by a transformation matrix. Layered Composite Intersect Switch subgraphs n visiblesubgraphs 0..n Primitive +current : int Difference SceneGraph +shape : Shape CAGComposite +isanimated : boolean +draw(g : Graphics2D) +accept(p : SceneGraphProcessor) Union transformed_graph styled_graph Style Rotate +setstyle(g : Graphics2D) +angle : double Subtract Scale Transform +x, y : double +transform : AffineTransform Shear +x, y : double Translate +x, y : double Figure 1. Taxonomy of scene graph nodes (subclasses of Primitive and Style are not shown) 2
3 The SceneBeans framework draws the distinction between Transform and Style nodes to support calculations that require knowledge of the geometry of the scene graph. Such calculations include picking finding the path from the root of the graph to the primitive that contains a point and dirty rectangle caching when updating the screen. A Transform node affects the geometry of its subgraphs and so its transformation must be taken into account when performing such calculations; a Style node, on the other hand, only changes the appearance of its subgraph and its function can be ignored by geometric calculations Animating Scene Graphs Being Java Beans, scene graph nodes expose modifiable properties at their interface. Specifically to SceneBeans, these properties control their appearance when rendered. For example, a Circle bean exposes a radius property that specifies the radius of the circle drawn, an HSVAColor bean exposes a color property that specifies the colour used to draw its subgraph and hue, saturation, value and alpha properties that specify the components of the colour, and a Translate bean exposes x and y properties that specify the translation to be applied to its subgraph. A program can therefore display an animation by modifying properties of beans in the scene graph before drawing each frame. However, programming animations by explicitly locating nodes in the scene graph and modifying their properties is overly complex, and not really much of an improvement over existing methods of animation. Therefore SceneBeans provides components that automate the animation of scene graphs, termed behaviours and activities. A behaviour is a bean that encapsulates a time-varying value and periodically announces an event containing the current value. Behaviours are typed: a DoubleBehaviour encapsulates a double-precision real number value, a PointBehaviour a point value, a ColorBehaviour a colour value and so on. A node in the scene graph is animated by registering an event listener with a behaviour that routes announced changes of the behaviour s value to a property of the bean. Behaviours can encapsulate any time varying value, such as the location of the mouse cursor or size of a window. However, most behaviours used within animations periodically calculate and announce the value of a time varying function. These behaviours are implemented as activities, objects that implement the Activity interface. This interface provides a method, performactivity(t), that is invoked every frame of animation to perform an action based on the duration of that frame. SceneBeans treats the concepts of activity and behaviour as orthogonal: behaviours feed values into a scene graph and activities are simulated every frame, but a behaviour need not be an activity, and vice versa. In this paper we use the term active behaviour to refer to a behaviour that is also an Activity. 3
4 Thread Activity Runner Behaviours Scene Graph Figure 2. Behaviours modify properties of scene graph nodes Each activity is managed by an ActivityRunner that is responsible for invoking its performactivity method. Activities and their runners can be organised as a hierarchy. The root activity runner is a thread that iteratively calculates the duration of each frame and passes the duration down to the activities that it manages. Intermediate nodes of the hierarchy act both as activities invoked by a higher ActivityRunner and as ActivityRunners for lower nodes. In addition to behaviour events that are fired every frame to update time varying properties of scene graph nodes, activities can fire ActivityEvents to report that they have some significant state. A common form of activity is the finite activity that fires an event when it has completed its processing. Finite activities can be organised into hierarchical schedules of sequential and concurrent activities Creating Reusable Animations A program can easily draw multiple copies of a structured graphic defined as a scene graph fragment by referencing that fragment from multiple points of the scene graph that each have different transformation or style nodes above them. Thus the same composite shape is drawn multiple times, with different positions, orientations and colours. Because scene graphs are made up of Java Beans, they can be serialised to files to build a library of clip art. A scene graph fragment cannot be reused so easily when it is animated because serialising a scene graph will not save the behaviours that control it and connections between the application s behaviours and the scene graph will be lost. SceneBeans therefore provides support for bundling a scene graph and the behaviours that control it into a reusable unit. The basis for this support is the Animation class which acts as a Facade [3] for a scene graph and the active behaviours that modify that graph. An Animation is a Composite scene graph node that layers its subgraphs above one another. This allows an Animation to be easily embedded into a larger scene graph. An Animation is also an ActivityRunner that manages all the active behaviours that animate its subgraphs, and is itself an Activity that can be added to the ActivityRunner that manages the active behaviours controlling the graph in which it is embedded. 4
5 subgraphs n SceneGraph visible_subgraphs 0..n Composite ActivityRunner 0..n Activity activities +performactivity(t : double) Animation Figure 3. Animation class hierarchy The Animation class provides a simple control interface for use by applications. Applications may send commands to and receive AnimationEvents from an animation. Commands and AnimationEvents are identified by textual names. An animation can also react to events issued by the animations and beans that it encapsulates. Animations respond to commands or internal events by performing actions. There are a six action types: = Change the values of bean parameters of scene graph nodes or behaviour beans. = Start active behaviours. = Stop active behaviours. = Reset the internal state of an active behaviour to the original values with which it was created. = Invoke a command of an embedded animation. = Announce an event to the application or animation in which it is embedded. Combinations of these few action types allow almost complete control over an animation s behaviour and appearance. It is not possible to dynamically modify the structure an animation, by creating or discarding scene graphs for example, but similar effects can be created by using Switch beans to show or hide scene graphs User Interaction User interaction with the animation is handled by scene graph beans derived from Input (this class is not shown in Figure 1). Concrete Input beans themselves do little more than signify that a portion of the scene graph is sensitive to a particular form of user input. It is the responsibility of the application using the SceneBeans framework to collect user input events, locate Input beans in the scene graph that are sensitive to those events and dispatch the events accordingly. Concrete Input classes provide static dispatch functions that perform most of the work for particular event types, leaving it up to the application to listen for events and dispatch them to the appropriate function. A utility class is provided that does this for mouse events, so the user interface components and the scene graph to be connected with just two lines of code. The classes MouseClick and MouseMotion handle mouse input. The MouseClick class indicates that a portion of the scene-graph can be clicked upon with the mouse and announces 5
6 AnimationEvents when the user presses or releases mouse buttons on the visible portions of that sub-graph. The dispatch function of the MouseClick class traverses the scene graph, transforming the point of the mouse click/release by the inverse transformation of each Transform node to map the point into the coordinate spaces of the transformed subgraphs. When it reaches a primitive node at the edge of the scene graph, it fires an event if the point is within the shape of the primitive and the primitive is a descendent of a MouseClick node. The MouseMotion class reacts to the user moving or dragging the mouse. Instances of MouseMotion act as a behaviours, feeding the location of the mouse pointer and the angle from the origin to the mouse pointer into other scene beans. Unlike MouseClick nodes, which react only to events that occur on their subgraphs, all MouseMotion nodes react to the mouse all the time. The dispatch function of the MouseMotion class traverses the scene graph, transforming the current location of the mouse pointer when it reaches transform nodes, in the same way as that of the MouseClick class. When it reaches a MouseMotion node, it announces the transformed point to the node s behaviour listeners. The MouseMotion node can be used to create interesting interactive effects, such as feeding input from one coordinate space to nodes in another coordinate space. 4. Defining Animations in XML The SceneBeans framework provides programmers with a convenient programming model for creating and controlling animations, and a useful set of components that can be plugged together within that framework. However, it is not practical to expect end users to write Java programs in order to define animations for use in applications, and even for experienced programmers the edit/compile/debug cycle is slow and frustrating when fine-tuning animation parameters. Therefore, we have defined an XML-based file format for animations and implemented a parser that translates XML documents into Animation objects. The XML document type definition (DTD) used by the SceneBeans parser is relatively minimal compared to DTDs for similar applications, such as the W3C s Scalable Vector Graphics (SVG) standard [14]. The DTD does not prescribe a limited number of component types and their options, but instead describes compositions of components that the parser loads dynamically and manipulates generically through the JavaBeans APIs Defining Scene Graphs A SceneBeans document is contained within a top-level <animation> element that contains five types of sub-elements: a single <draw> element defines the scene graph to be rendered; <define> elements define named scene-graph fragments that can be linked into the visible scene graph; <behaviour> elements define behaviours that animate the scene graph; <event> elements define the actions that the animation performs in response to internal events; and <command> elements name a command that can be invoked upon the animation and define the actions taken in response to that command. Figure 4 shows the definition of a simple scene: a red circle with a radius of 32 units centred in a square window of size 128 by 128 units (unless transformed, coordinates in an animation correspond to device coordinates, that is, pixels). The animation contains only the <draw> node and no behaviours, so the circle is not animated in any way. Both <draw> and <define> elements can contain the elements <primitive>, <transform>, <style> and <compose>, that correspond to the four basic classifications of scene graph nodes described in Section 3.1 and illustrated in Figure 1. 6
7 01 <animation width= 128 height= 128 > 02 <draw> 03 <transform type= translate > 04 <param name= translation value= (64,64) /> 05 <style type= RGBAColor > 06 <param name= color value= ff0000 /> 07 <primitive type= circle > 08 <param name= radius value= 32 /> 09 </primitive> 10 </style> 11 </transform> 12 </draw> 13 </animation> Figure 4. An XML document defining a red circle centred in the display window Examining the structure of the document in Figure 4, from the most nested compound element outwards, the <primitive> element instantiates a bean that implements the Primitive interface. The concrete type of the bean to be instantiated is determined by the type attribute; in this case, thetypeiscircle. The SceneBeans parser maps the type name to a Java class by capitalising the first letter of the type name and then searching a list of packages for a class with that name. The <param> element, such as that contained within the <primitive> element, is used to set the value of bean properties. In this case, the radius property of the circle is set to 32. The visual appearance of all types of scene-graph node and properties controlling behaviours are all specified using the <param> element. The primitive element is contained within a <style> element of type RGBAColor that sets the colour of the circle. Finally, the <style> element is contained within a <transform> element that translates the circle 64 units in the positive x and y directions. The <param> element of the style sets the style bean s color property to red; the value attribute is interpreted as six two-digit hexadecimal numbers indicating the red, green and blue components of the colour. The parser interprets the value attribute of <param> elements according to the type of the bean property being set, so convenient syntax can be used for real numbers, colours and points. Furthermore, expressions involving literal values and symbolic constants, such as pi, can be used anywhere that a real value is expected. Scene graphs are composed using the <compose> element; the type attribute of the element defines the type of composition layer, switch, constructive area geometry operator and so on applied to its sub-graphs. However, the <transform> and <style> elements, that correspond to beans that have only a single subgraph, can have multiple sub-elements, in which case the subgraphs are composed using a Layered bean. This reduces the need for compose elements significantly and is convenient when writing the XML by hand Defining Behaviour Documents define animated graphics by creating and naming behaviour beans with the behaviour element and then animating the parameters of scene-graph nodes with the animate tag. Figure 5 shows an example document that defines a rotating rectangle. The behaviour tag is used to instantiate behaviour beans: the parser maps the algorithm of the behaviour to a Java class the same way as it does for scene-graph nodes, although it searches a different set of packages. Like scene graph nodes, param tags are used to configure behaviours by setting their JavaBean properties. Behaviours must be named by an id attribute so that they can be referred by an animate element within the scene graph. Animate elements create a binding between a behaviour and a property of a bean so that the behaviour modifies the value of the property over time, creating animation. 7
8 01 <animation> 02 <behaviour algorithm= loop id= spin > 03 <param name= from value= 0 /> 04 <param name= to value= 2*pi /> 05 <param name= duration value= 1 /> 06 </behaviour> <draw> 09 <transform type= rotate > 10 <animate param= angle behaviour= spin /> 11 <primitive type= rectangle > 12 <param name= x value= -16 /> 13 <param name= y value= -16 /> 14 <param name= width value= 32 /> 15 <param name= height value= 32 /> 16 </primitive> 17 </transform> 18 </draw> 19 </animation> Figure 5. XML definition of a rotating rectangle Commands that can be invoked upon an animation are introduced by <command> elements. as shown in Figure 6. Command elements contain one or more action elements of types <set>, <stop>, <start>, <reset>, <invoke> or <announce>. The <set> tag sets the value of a parameter of a behaviour or scene-graph node in the animation. The <stop>, <start> and <reset> tags respectively pause, resume or reset the execution of an active behaviour. The <invoke> tag invokes another command defined by either the animation itself or by an included animation. The <announce> tag announces an event to the owner of the animation. The <event> tag defines the performed by the animation in response to an event fired by one of its constituent beans. Attributes of the <event> tag identify the source and name of the event. The body of the tag defines the actions performed in exactly the same way as the <command> tag. 01 <command name= start-moving > 02 <invoke command= another-command /> 03 <invoke object= included-animation command= a-command /> 04 <set object= object param= x value= 0 /> 05 <stop behaviour= spin-sprite /> 06 <reset behaviour= move-sprite /> 07 <start behaviour= move-sprite /> 08 </command> <event object= move-sprite event= stopped > 11 <announce event= sprite-stopped /> 12 </event> Figure 6. XML definitions of commands and events 4.3. Extending the Bean Namespace Although the SceneBeans package includes a wide variety of useful visual and behaviour beans, specific animations or programs may need to use application-specific beans. The parser provides two mechanisms for making application specific beans available to an animation. Firstly, the parser provides methods to register additional packages that it searches for beans that implement behaviours or scene graph beans. This allows a program using the SceneBeans library to register its own packages with the parser. Secondly, the XML processor interprets the <?scenebeans?> XML processing instruction by registering additional packages of beans and the URL, relative to the document, of the codebase containing the bean classes. This allows additional beans to be specified for individual animations. 8
9 01 <?scenebeans category= behaviour 02 codebase= spline_move.jar 03 package= uk.ac.ic.doc.nat.spline_move?> 04 <?scenebeans category= scene 05 codebase= 06 package= uk.ac.ic.doc.nat.morebeans?> Figure 7. XML processing instructions make additional beans available in an animation. 5. Animating Formal Models with SceneBeans TO BE WRITTEN. 6. Related Work Scene graphs have been widely used in toolkits for three-dimensional graphics and animation. For example, SGI s Inventor [4], VRML [6] and Java3D [7] all define a graphical scene as a scene graph, the nodes of which nodes are animated by behaviours. However, two-dimensional graphics toolkits have not usually provided a scene graph API. Notable exceptions are the Gnome Canvas and the Jazz toolkit. The Gnome Canvas [8] is a widget for the Gtk user interface toolkit [9], provided as part of Gnome [10], a desktop environment for Linux and other Unix-like operating systems. The Gnome Canvas provides support for displaying flicker-free structured graphics. The application defines a canvas display as a DAG of canvas items. A canvas item is either a primitive graphical object or a group that lets an application treat multiple objects as if they were one. All canvas items have an associated affine transformation that is applied before they are drawn. The transformation is defined as a matrix, making it hard to compose animated transformations. Jazz [11] is a user interface toolkit for building zooming interfaces in which user interface elements are placed in a logically infinite plane, around which the user navigates by panning and zooming. Jazz provides an API based on a DAG-structured scene graph. Like the Gnome Canvas, it associates an affine transformation matrix with each node, with the same disadvantages. Jazz is aimed at implementing user interfaces and supporting zooming, rather than building animations. The zoom level is passed to the nodes of the scene graph when they are rendered, allowing them to select different representations at different levels of zoom. Swing user interface components can be embedded in the scene graph, and therefore zoomed and transformed like any other node. XML has previously been used to represent the structure of Java Bean aggregates. The Koala Bean Markup Language (KBML) [12] saves and loads Java Beans to and from XML documents, although it only supports a subset of possible bean implementations that they term clean beans. IBM s Bean Markup Language (BML) [13] loads bean configurations from XML but cannot save configurations to XML. Thus, XML is used as an architecture description language, albeit one that is not particularly human-friendly. Both of these libraries are more general than SceneBeans use of XML, which can only be used to compose beans that implement interfaces defined by the SceneBeans framework. However, the DTD used by SceneBeans makes the resulting documents much easier for humans to write by hand. The SVG [14] standard from the World Wide Web Consortium (W3C) is an XML document type for describing two-dimensional graphics and animations. SVG is defines a scene using the Document Object Model (DOM), a tree structured representation of an XML document. DOM nodes are used to represent primitive shapes, styles, paths and groups. DAG structures are defined by referencing one part of the document from another with a URI. Like the Gnome Canvas and Jazz, any node can be given an affine transformation. SVG defines a number of basic animation 9
10 algorithms that can be declaratively applied to the properties of DOM nodes. More complex animations can be defined by embedding scripts within the SVG document. SVG is significantly more complex than SceneBeans, mainly because it specifies all properties of the scene within the XML document. SceneBeans, in comparison, interprets the document as commands to load and compose external components that define and animate the scene. Therefore SceneBeans is more open to extension than SVG, at the expense of potential incompatibilities between applications using the framework. This is to be expected: SVG is designed as a standard, platform-neutral graphics format, while SceneBeans is designed for building application-specific animations. It is intended that applications using SceneBeans provide the additional animation components that they need, and that different, incompatible applications will have no need to share SceneBeans documents containing non-standard components. 7. Conclusions and Further Work We have found that the SceneBeans framework provides elegant abstractions for defining animations. The geometric model upon which the scene graph is based provides a powerful mechanism for composition and reuse of animations. A particular benefit of the system is its use of dynamically loaded components; this made it easy for different developers to extend the framework with the components that they needed without requiring changes to the underlying framework or the XML DTD used to define animations. We hope to encourage others to use the framework by demonstrating it in a wider variety of applications. For example, it has been useful in the construction of educational software for teaching junior science: compelling, computer-based physics simulations can be created by writing a simple behaviour bean encapsulating various physical laws and using it to control an animation defined in XML. We are also working on graphical tools to help non-programmers build animations without needing to edit Java or XML code, and libraries of reusable animations for various application domains. We intend to use the framework as a test-bed in various research projects. In particular we are extending it with networking support as part of our research into dynamic software architectures for ad-hoc networking and collaborative applications. This will allow multiple users to share a space in which they can create, view and interact with animated graphics. 8. References [1] K. Arnold and J. Gosling. The Java Programming Language, Second Edition. Addison- Wesley, ISBN [2] R. Englander. Developing JavaBeans. O'Reilly and Associates, ISBN [3] E. Gamma, R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley ISBN [4] T. Bray, J. Paoli and C. Sperberg-McQueen (Editors). Extensible Markup Language (XML) 1.0. World Wide Web Consortium Recommendation 10-February Published on the web at [5] J. Wernecke. The Inventor Mentor : Programming Object-Oriented 3d Graphics With Open Inventor, Release 2. Addison Wesley, ISBN [6] R. Carey and G. Bell. The Annotated VRML 2.0 Reference Manual. Addison-Wesley, ISBN
11 [7] H. Sowizral, K. Rushforth and M. Deering. The Java 3D API Specification. Addison- Wesley, ISBN [8] Havoc Pennington. GTK+/Gnome Application Development. New Riders Publishing ISBN [9] The Gtk Project. Published on the web at [10] The Gnome Project. Published on the web at [11] B. Bederson and B. McAlister. Jazz: An Extensible 2D+Zooming Graphics Toolkit in Java. University of Maryland technical report CS-TR-4015, UMIACS-TR-99-24, May [12] P. Kaplan and T. Kormann. Koala Bean Markup Language. INRIA.Publishedontheweb at [13] S. Weerawarana and M. Duftler. Bean Markup Language. IBM. Published on the web at [14] J. Ferraiolo (Editor). Scalable Vector Graphics (SVG) Specification. World Wide Web Consortiumn Working Draft, 12 August Published on the web at 11
JavaFX Session Agenda
JavaFX Session Agenda 1 Introduction RIA, JavaFX and why JavaFX 2 JavaFX Architecture and Framework 3 Getting Started with JavaFX 4 Examples for Layout, Control, FXML etc Current day users expect web user
Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering
Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying
Visualizing Data: Scalable Interactivity
Visualizing Data: Scalable Interactivity The best data visualizations illustrate hidden information and structure contained in a data set. As access to large data sets has grown, so has the need for interactive
JustClust User Manual
JustClust User Manual Contents 1. Installing JustClust 2. Running JustClust 3. Basic Usage of JustClust 3.1. Creating a Network 3.2. Clustering a Network 3.3. Applying a Layout 3.4. Saving and Loading
ANIMATION a system for animation scene and contents creation, retrieval and display
ANIMATION a system for animation scene and contents creation, retrieval and display Peter L. Stanchev Kettering University ABSTRACT There is an increasing interest in the computer animation. The most of
Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1
Monitoring Infrastructure (MIS) Software Architecture Document Version 1.1 Revision History Date Version Description Author 28-9-2004 1.0 Created Peter Fennema 8-10-2004 1.1 Processed review comments Peter
Event processing in Java: what happens when you click?
Event processing in Java: what happens when you click? Alan Dix In the HCI book chapter 8 (fig 8.5, p. 298), notification-based user interface programming is described. Java uses this paradigm and you
Agents and Web Services
Agents and Web Services ------SENG609.22 Tutorial 1 Dong Liu Abstract: The basics of web services are reviewed in this tutorial. Agents are compared to web services in many aspects, and the impacts of
Visualization of 2D Domains
Visualization of 2D Domains This part of the visualization package is intended to supply a simple graphical interface for 2- dimensional finite element data structures. Furthermore, it is used as the low
ABSTRACT. Keywords Virtual Reality, Java, JavaBeans, C++, CORBA 1. INTRODUCTION
Tweek: Merging 2D and 3D Interaction in Immersive Environments Patrick L Hartling, Allen D Bierbaum, Carolina Cruz-Neira Virtual Reality Applications Center, 2274 Howe Hall Room 1620, Iowa State University
Software Development Kit
Open EMS Suite by Nokia Software Development Kit Functional Overview Version 1.3 Nokia Siemens Networks 1 (21) Software Development Kit The information in this document is subject to change without notice
An introduction to creating JSF applications in Rational Application Developer Version 8.0
An introduction to creating JSF applications in Rational Application Developer Version 8.0 September 2010 Copyright IBM Corporation 2010. 1 Overview Although you can use several Web technologies to create
Visualization Service Bus
Visualization Service Bus Abstract In this research, we are applying modern Service-Oriented Architecture (SOA) technologies to make complex visualizations realizable without intensive graphics programming;
Overview of the Adobe Flash Professional CS6 workspace
Overview of the Adobe Flash Professional CS6 workspace In this guide, you learn how to do the following: Identify the elements of the Adobe Flash Professional CS6 workspace Customize the layout of the
CPIT-285 Computer Graphics
Department of Information Technology B.S.Information Technology ABET Course Binder CPIT-85 Computer Graphics Prepared by Prof. Alhasanain Muhammad Albarhamtoushi Page of Sunday December 4 0 : PM Cover
3D Animation of Java Program Execution for Teaching Object Oriented Concepts
3D Animation of Java Program Execution for Teaching Object Oriented Concepts Tim Storer September 23, 2006 Abstract The successful teaching of the object oriented programming paradigm has been identified
XBRL Processor Interstage XWand and Its Application Programs
XBRL Processor Interstage XWand and Its Application Programs V Toshimitsu Suzuki (Manuscript received December 1, 2003) Interstage XWand is a middleware for Extensible Business Reporting Language (XBRL)
XFlash A Web Application Design Framework with Model-Driven Methodology
International Journal of u- and e- Service, Science and Technology 47 XFlash A Web Application Design Framework with Model-Driven Methodology Ronnie Cheung Hong Kong Polytechnic University, Hong Kong SAR,
Implementação. Interfaces Pessoa Máquina 2010/11. 2009-11 Salvador Abreu baseado em material Alan Dix. Thursday, June 2, 2011
Implementação Interfaces Pessoa Máquina 2010/11 2009-11 baseado em material Alan Dix 1 Windowing systems Architecture Layers Higher level Tool UI Toolkit (Widgets) Window System OS Application Hardware
Working With Animation: Introduction to Flash
Working With Animation: Introduction to Flash With Adobe Flash, you can create artwork and animations that add motion and visual interest to your Web pages. Flash movies can be interactive users can click
Practical Data Visualization and Virtual Reality. Virtual Reality VR Software and Programming. Karljohan Lundin Palmerius
Practical Data Visualization and Virtual Reality Virtual Reality VR Software and Programming Karljohan Lundin Palmerius Synopsis Scene graphs Event systems Multi screen output and synchronization VR software
Fireworks CS4 Tutorial Part 1: Intro
Fireworks CS4 Tutorial Part 1: Intro This Adobe Fireworks CS4 Tutorial will help you familiarize yourself with this image editing software and help you create a layout for a website. Fireworks CS4 is the
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS
ARCHITECTURAL DESIGN OF MODERN WEB APPLICATIONS Lech MADEYSKI *, Michał STOCHMIAŁEK Abstract. Architectural design is about decisions which influence characteristics of arising system e.g. maintainability
Firewall Builder Architecture Overview
Firewall Builder Architecture Overview Vadim Zaliva Vadim Kurland Abstract This document gives brief, high level overview of existing Firewall Builder architecture.
Flash Tutorial Part I
Flash Tutorial Part I This tutorial is intended to give you a basic overview of how you can use Flash for web-based projects; it doesn t contain extensive step-by-step instructions and is therefore not
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Chapter 3: XML Namespaces
3. XML Namespaces 3-1 Chapter 3: XML Namespaces References: Tim Bray, Dave Hollander, Andrew Layman: Namespaces in XML. W3C Recommendation, World Wide Web Consortium, Jan 14, 1999. [http://www.w3.org/tr/1999/rec-xml-names-19990114],
Adobe Illustrator CS5 Part 1: Introduction to Illustrator
CALIFORNIA STATE UNIVERSITY, LOS ANGELES INFORMATION TECHNOLOGY SERVICES Adobe Illustrator CS5 Part 1: Introduction to Illustrator Summer 2011, Version 1.0 Table of Contents Introduction...2 Downloading
BUSINESS RULES CONCEPTS... 2 BUSINESS RULE ENGINE ARCHITECTURE... 4. By using the RETE Algorithm... 5. Benefits of RETE Algorithm...
1 Table of Contents BUSINESS RULES CONCEPTS... 2 BUSINESS RULES... 2 RULE INFERENCE CONCEPT... 2 BASIC BUSINESS RULES CONCEPT... 3 BUSINESS RULE ENGINE ARCHITECTURE... 4 BUSINESS RULE ENGINE ARCHITECTURE...
Developer Tutorial Version 1. 0 February 2015
Developer Tutorial Version 1. 0 Contents Introduction... 3 What is the Mapzania SDK?... 3 Features of Mapzania SDK... 4 Mapzania Applications... 5 Architecture... 6 Front-end application components...
Tutorial: Biped Character in 3D Studio Max 7, Easy Animation
Tutorial: Biped Character in 3D Studio Max 7, Easy Animation Written by: Ricardo Tangali 1. Introduction:... 3 2. Basic control in 3D Studio Max... 3 2.1. Navigating a scene:... 3 2.2. Hide and Unhide
Introduction to XML Applications
EMC White Paper Introduction to XML Applications Umair Nauman Abstract: This document provides an overview of XML Applications. This is not a comprehensive guide to XML Applications and is intended for
A Brief Analysis of Web Design Patterns
A Brief Analysis of Web Design Patterns Ginny Sharma M.Tech Student, Dept. of CSE, MRIU Faridabad, Haryana, India Abstract Design patterns document good design solutions to a recurring problem in a particular
Java 6 'th. Concepts INTERNATIONAL STUDENT VERSION. edition
Java 6 'th edition Concepts INTERNATIONAL STUDENT VERSION CONTENTS PREFACE vii SPECIAL FEATURES xxviii chapter i INTRODUCTION 1 1.1 What Is Programming? 2 J.2 The Anatomy of a Computer 3 1.3 Translating
Silverlight for Windows Embedded Graphics and Rendering Pipeline 1
Silverlight for Windows Embedded Graphics and Rendering Pipeline 1 Silverlight for Windows Embedded Graphics and Rendering Pipeline Windows Embedded Compact 7 Technical Article Writers: David Franklin,
Visualisation in the Google Cloud
Visualisation in the Google Cloud by Kieran Barker, 1 School of Computing, Faculty of Engineering ABSTRACT Providing software as a service is an emerging trend in the computing world. This paper explores
EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer
WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration Developer Web Age Solutions Inc. USA: 1-877-517-6540 Canada: 1-866-206-4644 Web: http://www.webagesolutions.com Chapter 6 - Introduction
Why HTML5 Tests the Limits of Automated Testing Solutions
Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 As Testing Complexity Increases, So
Part 1 Foundations of object orientation
OFWJ_C01.QXD 2/3/06 2:14 pm Page 1 Part 1 Foundations of object orientation OFWJ_C01.QXD 2/3/06 2:14 pm Page 2 1 OFWJ_C01.QXD 2/3/06 2:14 pm Page 3 CHAPTER 1 Objects and classes Main concepts discussed
GenericServ, a Generic Server for Web Application Development
EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student [email protected] Bilal CHEBARO Assistant professor [email protected] Abstract
Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries
First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as
Embedded Software Development with MPS
Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,
Access 2007 Creating Forms Table of Contents
Access 2007 Creating Forms Table of Contents CREATING FORMS IN ACCESS 2007... 3 UNDERSTAND LAYOUT VIEW AND DESIGN VIEW... 3 LAYOUT VIEW... 3 DESIGN VIEW... 3 UNDERSTAND CONTROLS... 4 BOUND CONTROL... 4
Understand the Sketcher workbench of CATIA V5.
Chapter 1 Drawing Sketches in Learning Objectives the Sketcher Workbench-I After completing this chapter you will be able to: Understand the Sketcher workbench of CATIA V5. Start a new file in the Part
Lession: 2 Animation Tool: Synfig Card or Page based Icon and Event based Time based Pencil: Synfig Studio: Getting Started: Toolbox Canvas Panels
Lession: 2 Animation Tool: Synfig In previous chapter we learn Multimedia and basic building block of multimedia. To create a multimedia presentation using these building blocks we need application programs
International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company
International Journal of Software Engineering and Knowledge Engineering c World Scientific Publishing Company Rapid Construction of Software Comprehension Tools WELF LÖWE Software Technology Group, MSI,
Keg Master: a Graph-Aware Visual Editor for 3D Graphs
Keg Master: a Graph-Aware Visual Editor for 3D Graphs Hannah Slay, *Matthew Phillips, Bruce Thomas, and *Rudi Vernik School of Computer and Information Science University of South Australia Mawson Lakes
Publishing Geoprocessing Services Tutorial
Publishing Geoprocessing Services Tutorial Copyright 1995-2010 Esri All rights reserved. Table of Contents Tutorial: Publishing a geoprocessing service........................ 3 Copyright 1995-2010 ESRI,
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
Visualization methods for patent data
Visualization methods for patent data Treparel 2013 Dr. Anton Heijs (CTO & Founder) Delft, The Netherlands Introduction Treparel can provide advanced visualizations for patent data. This document describes
14 Databases. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:
14 Databases 14.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, the student should be able to: Define a database and a database management system (DBMS)
DataDirect XQuery Technical Overview
DataDirect XQuery Technical Overview Table of Contents 1. Feature Overview... 2 2. Relational Database Support... 3 3. Performance and Scalability for Relational Data... 3 4. XML Input and Output... 4
MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool
1 CEIT 323 Lab Worksheet 1 MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool Classic Motion Tween Classic tweens are an older way of
ArcGIS online Introduction... 2. Module 1: How to create a basic map on ArcGIS online... 3. Creating a public account with ArcGIS online...
Table of Contents ArcGIS online Introduction... 2 Module 1: How to create a basic map on ArcGIS online... 3 Creating a public account with ArcGIS online... 3 Opening a Map, Adding a Basemap and then Saving
DESIGN PATTERNS OF WEB MAPS. Bin Li Department of Geography Central Michigan University Mount Pleasant, MI 48858 USA (517) 774-1165 bin.li@cmich.
DESIGN PATTERNS OF WEB MAPS Bin Li Department of Geography Central Michigan University Mount Pleasant, MI 48858 USA (517) 774-1165 [email protected] Abstract Web maps have reached the level of depth and
Software Documentation Guidelines
Software Documentation Guidelines In addition to a working program and its source code, you must also author the documents discussed below to gain full credit for the programming project. The fundamental
Computing Concepts with Java Essentials
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Computing Concepts with Java Essentials 3rd Edition Cay Horstmann
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers
JMulTi/JStatCom - A Data Analysis Toolkit for End-users and Developers Technology White Paper JStatCom Engineering, www.jstatcom.com by Markus Krätzig, June 4, 2007 Abstract JStatCom is a software framework
COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida
COURSE SYLLABUS EDG 6931: Designing Integrated Media Environments 2 Educational Technology Program University of Florida CREDIT HOURS 3 credits hours PREREQUISITE Completion of EME 6208 with a passing
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013
HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all
TATJA: A Test Automation Tool for Java Applets
TATJA: A Test Automation Tool for Java Applets Matthew Xuereb 19, Sanctuary Street, San Ġwann [email protected] Abstract Although there are some very good tools to test Web Applications, such tools neglect
History OOP languages Year Language 1967 Simula-67 1983 Smalltalk
History OOP languages Intro 1 Year Language reported dates vary for some languages... design Vs delievered 1957 Fortran High level programming language 1958 Lisp 1959 Cobol 1960 Algol Structured Programming
SketchUp Instructions
SketchUp Instructions Every architect needs to know how to use SketchUp! SketchUp is free from Google just Google it and download to your computer. You can do just about anything with it, but it is especially
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
SuperViz: An Interactive Visualization of Super-Peer P2P Network
SuperViz: An Interactive Visualization of Super-Peer P2P Network Anthony (Peiqun) Yu [email protected] Abstract: The Efficient Clustered Super-Peer P2P network is a novel P2P architecture, which overcomes
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations
Configuring Firewalls An XML-based Approach to Modelling and Implementing Firewall Configurations Simon R. Chudley and Ulrich Ultes-Nitsche Department of Electronics and Computer Science, University of
Desktop, Web and Mobile Testing Tutorials
Desktop, Web and Mobile Testing Tutorials * Windows and the Windows logo are trademarks of the Microsoft group of companies. 2 About the Tutorial With TestComplete, you can test applications of three major
Welcome to CorelDRAW, a comprehensive vector-based drawing and graphic-design program for the graphics professional.
Workspace tour Welcome to CorelDRAW, a comprehensive vector-based drawing and graphic-design program for the graphics professional. In this tutorial, you will become familiar with the terminology and workspace
An introduction to 3D draughting & solid modelling using AutoCAD
An introduction to 3D draughting & solid modelling using AutoCAD Faculty of Technology University of Plymouth Drake Circus Plymouth PL4 8AA These notes are to be used in conjunction with the AutoCAD software
Simplifying the Development of Rules Using Domain Specific Languages in DROOLS
Simplifying the Development of Rules Using Domain Specific Languages in DROOLS Ludwig Ostermayer, Geng Sun, Dietmar Seipel University of Würzburg, Dept. of Computer Science INAP 2013 Kiel, 12.09.2013 1
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
Concepts of Database Management Seventh Edition. Chapter 9 Database Management Approaches
Concepts of Database Management Seventh Edition Chapter 9 Database Management Approaches Objectives Describe distributed database management systems (DDBMSs) Discuss client/server systems Examine the ways
Creating Drawings in Pro/ENGINEER
6 Creating Drawings in Pro/ENGINEER This chapter shows you how to bring the cell phone models and the assembly you ve created into the Pro/ENGINEER Drawing mode to create a drawing. A mechanical drawing
2. Distributed Handwriting Recognition. Abstract. 1. Introduction
XPEN: An XML Based Format for Distributed Online Handwriting Recognition A.P.Lenaghan, R.R.Malyan, School of Computing and Information Systems, Kingston University, UK {a.lenaghan,r.malyan}@kingston.ac.uk
Voice Driven Animation System
Voice Driven Animation System Zhijin Wang Department of Computer Science University of British Columbia Abstract The goal of this term project is to develop a voice driven animation system that could take
Logging In From your Web browser, enter the GLOBE URL: https://bms.activemediaonline.net/bms/
About GLOBE Global Library of Brand Elements GLOBE is a digital asset and content management system. GLOBE serves as the central repository for all brand-related marketing materials. What is an asset?
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
DEMONSTRATION OF THE SOFTVISION SOFTWARE VISUALIZATION FRAMEWORK
DEMONSTRATION OF THE SOFTVISION SOFTWARE VISUALIZATION FRAMEWORK Abstract Matti Sillanpää Nokia Research Center Helsinki, Finland E-mail: [email protected] Alexandru Telea Eindhoven University
Introducing Apache Pivot. Greg Brown, Todd Volkert 6/10/2010
Introducing Apache Pivot Greg Brown, Todd Volkert 6/10/2010 Speaker Bios Greg Brown Senior Software Architect 15 years experience developing client and server applications in both services and R&D Apache
Standard Languages for Developing Multimodal Applications
Standard Languages for Developing Multimodal Applications James A. Larson Intel Corporation 16055 SW Walker Rd, #402, Beaverton, OR 97006 USA [email protected] Abstract The World Wide Web Consortium
Twelve. Figure 12.1: 3D Curved MPR Viewer Window
Twelve The 3D Curved MPR Viewer This Chapter describes how to visualize and reformat a 3D dataset in a Curved MPR plane: Curved Planar Reformation (CPR). The 3D Curved MPR Viewer is a window opened from
Authoring Within a Content Management System. The Content Management Story
Authoring Within a Content Management System The Content Management Story Learning Goals Understand the roots of content management Define the concept of content Describe what a content management system
Structural Design Patterns Used in Data Structures Implementation
Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: [email protected] November,
3D Viewer. user's manual 10017352_2
EN 3D Viewer user's manual 10017352_2 TABLE OF CONTENTS 1 SYSTEM REQUIREMENTS...1 2 STARTING PLANMECA 3D VIEWER...2 3 PLANMECA 3D VIEWER INTRODUCTION...3 3.1 Menu Toolbar... 4 4 EXPLORER...6 4.1 3D Volume
Course Name: Course in JSP Course Code: P5
Course Name: Course in JSP Course Code: P5 Address: Sh No BSH 1,2,3 Almedia residency, Xetia Waddo Duler Mapusa Goa E-mail Id: [email protected] Tel: (0832) 2465556 (0832) 6454066 Course Code: P5 3i
TABLE OF CONTENTS. INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE...
Starting Guide TABLE OF CONTENTS INTRODUCTION... 5 Advance Concrete... 5 Where to find information?... 6 INSTALLATION... 7 STARTING ADVANCE CONCRETE... 7 ADVANCE CONCRETE USER INTERFACE... 7 Other important
How To Run A Factory I/O On A Microsoft Gpu 2.5 (Sdk) On A Computer Or Microsoft Powerbook 2.3 (Powerpoint) On An Android Computer Or Macbook 2 (Powerstation) On
User Guide November 19, 2014 Contents 3 Welcome 3 What Is FACTORY I/O 3 How Does It Work 4 I/O Drivers: Connecting To External Technologies 5 System Requirements 6 Run Mode And Edit Mode 7 Controls 8 Cameras
Geant4 Visualization. Andrea Dotti April 19th, 2015 Geant4 tutorial @ M&C+SNA+MC 2015
Geant4 Visualization Andrea Dotti April 19th, 2015 Geant4 tutorial @ M&C+SNA+MC 2015 HepRep/HepRApp Slides from Joseph Perl (SLAC) and Laurent Garnier (LAL/IN2P3) DAWN OpenGL OpenInventor RayTracer HepRep/FRED
Outline. 1.! Development Platforms for Multimedia Programming!
Outline 1.! Development Platforms for Multimedia Programming! 1.1.! Classification of Development Platforms! 1.2.! A Quick Tour of Various Development Platforms! 2.! Multimedia Programming with Python
Developing XML Solutions with JavaServer Pages Technology
Developing XML Solutions with JavaServer Pages Technology XML (extensible Markup Language) is a set of syntax rules and guidelines for defining text-based markup languages. XML languages have a number
