Next: Combination Objects Up: Toolkit Objects Previous: Toolkit Objects

Media Objects

The MADE toolkit includes media objects, ie, objects whose role is to directly control different media in a unified and hardware/firmware independent way.

The toolkit includes four main categories of media objects: graphics objects (for two and three dimensional graphics), animation, sound and video objects. The functionality of these objects is defined in a device-independent way; porting the toolkit to a new environment involves changes on the interface level only. In other words, all of these objects ``hide'' their respective device-dependencies behind specific, low-level abstract interface objects, thereby cleanly separating their MADE specific behaviour from particular device dependent features. Adaptation of a media object type to a new environment simply requires the definition of a new device-dependent subclass of the appropriate general interface object.

Some of the categories listed above contain relatively simple objects. Their task is to provide a mapping from the MADE library structure onto their respective interface object. This is the case, for example, with video and audio objects. The most critical aspect of the definition of these objects is synchronization. The objects and their device specific interfaces must be matched with the synchronization model of MADE (see §3.2.3 below) and with the requirements and facilities provided be the specific hardware that is used.

Audio and video objects rely on Microsoft's Multimedia Environment for MS-WINDOWS, which is a de-facto standard in this area. On UNIX, portable video and audio services are used: the Video Extension of the X Windows system for analogue video ([5]) and the AudioFile server for audio ([19]). For digital video, the UNIX solution is not yet defined.

2D and 3D graphics require a much higher level of complexity. Indeed, the collections of both the 2D and the 3D graphics objects represent two full-blown subsystems per se, which are also usable stand alone for graphics purposes.

For 2D graphics, the MADE toolkit reuses an already existing object-oriented 2D graphics system, called GoPATH[7], by adapting it to the requirements of MADE. These 2D objects include different two dimensional shapes, associated clipping areas, composition rules, attributes (eg, colour, line type, text font), etc. The programmer has the possibility, via sub-classing, to define new shapes and include these into the full 2D world. GoPATH is currently based on X11R5 for UNIX platforms, and on MS-WINDOWS under MS-DOS; a Windows-NT version is also operational.

The 3D subsystem provided by MADE supports a mapping between general 3D objects (shapes, surfaces, lighting and view control, etc.) and existing 3D packages. A mapping to SGI's GL library is currently being developed. The use of PEX[6] or Open-GL, as a replacement for GL, will be considered in the future. It has to be stressed that it is not the goal of the MADE development to define yet another three dimensional graphics package; the emphasis is more to provide an object-oriented layer on top of existing packages, integrated into the MADE environment. On the other hand, due to the object-oriented nature of the MADE toolkit, it is possible to extend, by sub-classing, the basic 3D functionality (eg, to add a proprietary ray-tracing module).

Graphics objects (both in 2D and 3D) do not have a temporal dimension; essentially, they describe static scenes. This is in contrast with the inherently temporal nature of video and audio objects. To alleviate this contradiction, MADE includes separate animation objects, which describe, and even automatically generate, sequences of scenes. The methods and algorithms used in animation may be extremely complex and, more importantly, dependent on specific application areas. Although simpler, built-in animation techniques based on animation curves are also available, MADE animation objects also allow for animation scripts, using a scripting language, which is then interpreted by the MADE animation objects.

Animation objects may be active objects, too, thereby subject to the same synchronization behaviour and control as audio and video objects (see §3.2.3).



Next: Combination Objects Up: Toolkit Objects Previous: Toolkit Objects


ivan@petunia.cwi.nl
Tue Jan 25 14:21:49 MET 1994