CHF118.90
Download est disponible immédiatement
At present, object-oriented programming is emerging from the research labora tories and invading into the field of industrial applications. More and more products have been implemented with the aid of object-oriented programming techniques and tools, usually as extensions of traditional languages in hybrid development systems. Some of the better known examples are OSF-Motif, News, Objective-C on the NeXT computer, the C extension C++, and CLOS an object oriented extension of LISP. All of these developments incorporate interactive graphics. Effective object-oriented systems in combination with a graphics kernel does it mean that the field of computer graphics has now become merely an aspect of the object-oriented world? We do not think so. In spite of interesting individual developments, there are still no sound object-oriented graphics sys tems available. If it is desired to develop a complex graphics application embed ded in a window-oriented system then it is still necessary to work with elemen tary tools. What is to be displayed and interactively modified inside a window must be specified with a set of graphics primitives at a low level, or has to be written with a standardized graphics kernel system such as GKS or PHIGS, i. e. , by kernels specified and implemented in a non-object-oriented style. With the terms GKS and PHIGS we enter the world of international graphics standards. GKS and PHIGS constitute systems, not mere collections of graphics primitives.
Contenu
1 Introduction.- 1.1 Object-Oriented Languages and Tools.- 1.1.1 Support of Graphics.- 1.2 Guidelines for the Design of a Graphics System.- 1.2.1 Transforming the Mental Model into Programming Code.- 1.2.2 Using the Advantages of the Object-Oriented Approach.- 1.3 Overview.- 1.3.1 What Does the Book Concentrate on?.- 2 Object-Oriented Concepts.- 2.1 Objects and Messages.- 2.2 The Class.- 2.2.1 Implementation Descriptions.- 2.3 Message Passing.- 2.3.1 How Can an Object Call Itself?.- 2.3.2 Additional Mechanisms for Message Passing.- 2.3.3 Polymorphism.- 2.4 Inheritance.- 2.4.1 Hierarchical Inheritance.- 2.4.2 Multiple Inheritance.- 2.5 The Smalltalk-80 Programming Environment.- 2.5.1 Programmers' Support in Smalltalk-80.- 2.5.2 Frequently Used Classes and Methods.- 2.5.3 Messages Understood by All Objects.- 2.5.4 Multiple References, Copy Methods.- 2.6 Summary of the Basic Concepts.- 3 Object-Oriented Interface Architecture.- 3.1 Application Framework as Generic Application.- 3.1.1 Disadvantages of Conventional Toolboxes.- 3.1.2 Modification of an Existing Application.- 3.1.3 The Generic Application.- 3.1.4 GINA - A Generic Interactive Application.- 3.1.5 Generic Applications and Graphics Systems.- 3.2 The Model-View-Controller Triad.- 3.2.1 Separation of the Interface.- 3.2.2 Building up the MVC Triad.- 3.2.3 Predefined Classes.- 3.2.4 Establishing Communication.- 3.2.5 The Example of a Counter.- 4 Smalltalk-80 Graphics Kernel.- 4.1 Output Primitives.- 4.1.1 Generation and Instantiation of Primitives.- 4.1.2 Editing and Inquiry Methods.- 4.1.3 Merge Constraint.- 4.1.4 Examples.- 4.1.5 Derivation of New Primitives.- 4.1.6 Primitive Attributes.- 4.2 Generation and Display of Graphics Objects.- 4.2.1 Posting.- 4.2.2 Graphics Input.- 4.2.3 Interactive Generation of an Output Primitive.- 4.2.4 Limitations of Hierarchical Inheritance.- 4.2.5 Comments.- 5 GKS and Object-Oriented System Design.- 5.1 Goals of Standardization.- 5.2 A Short Review of the Main GKS Features.- 5.2.1 The GKS Layer Model.- 5.2.2 Output Primitives.- 5.2.3 Segments.- 5.2.4 Assignment of Primitive Attributes.- 5.2.5 Conceptual Differences Between Primitives and Segments.- 5.2.6 Graphics Input.- 5.3 The Structure of a GKS Program.- 5.3.1 One-to-One GKS Language Binding for Smalltalk-80.- 5.4 Object-Oriented Modifications.- 5.4.1 Segments as Objects.- 5.4.2 Output Primitives as Objects.- 5.5 Guidelines for an Object-Oriented Kernel.- 5.6 An Extended Layer Model.- 5.6.1 Using Inheritance.- 5.6.2 Communication Between Application and Kernel.- 5.7 Assignment of Attributes.- 5.7.1 Attribute Assignment in GKS and PHIGS.- 5.7.2 Facilities of Object-Oriented Systems.- 5.8 Summary.- 6 Graphics Part Hierarchies.- 6.1 Introduction.- 6.2 Part Hierarchies and Computer Graphics.- 6.2.1 Requirements.- 6.2.2 Criteria for Ideal System Support.- 6.2.3 Combination With Other Semantics.- 6.2.4 Manipulation of Part Hierarchies.- 6.3 MacDraw and Part Hierarchies.- 6.3.1 Main Features.- 6.3.2 Semantics of the Part Hierarchy.- 6.3.3 Generation and Editing of Primitives.- 6.3.4 Discussion.- 7 PHIGS and Part Hierarchies.- 7.1 Drawbacks of the GKS Model.- 7.2 Motivation for an Extended Functionality.- 7.3 PHIGS Components.- 7.3.1 Construction and Editing Structure Networks.- 7.3.2 References to Substructures.- 7.3.3 Posting.- 7.3.4 Assignment of Primitive Attributes.- 7.3.5 Transformations.- 7.3.6 Visibility, Detectability, Highlighting.- 7.3.7 Interaction.- 7.3.8 Centralized Structure Store.- 7.4 Modeling Part Hierarchies in PHIGS.- 8 GEO++.- 8.1 Goals and Motivation.- 8.1.1 Integration in the Extended Layer Model.- 8.1.2 Support for Part Hierarchies.- 8.2 GEO++ Model.- 8.2.1 Parts.- 8.2.2 Building Patterns.- 8.2.3 Construction of Parts and Navigation.- 8.2.4 Attributes.- 8.2.5 Editing.- 8.3 Functional Overview by an Example.- 8.3.1 The Insert Process.- 8.3.2 Parts.- 8.3.3 Navigation.- 8.3.4 Attributes for Primitives, Groups and Parts.- 8.3.5 Set Operations.- 8.3.6 Editing.- 8.3.7 Partial Instantiation, Merge.- 8.3.8 Copy Operation.- 8.3.9 Graphics Input.- 8.3.10 Additional Remarks.- 9 Programming Examples.- 9.1 Office Layout Application Programmed With PHIGS.- 9.1.1 Construction of the Screen Layout.- 9.1.2 Interaction.- 9.2 Office Layout Application in GEO++.- 9.2.1 Construction of the Screen Layout.- 9.2.2 Interaction.- 9.3 Comparison of the PHIGS and GEO++ Solution.- 9.3.1 Filter Handling.- 9.3.2 Picking.- 9.4 Pick Object and Assign Attribute.- 9.4.1 Assigning the Selected Attribute in PHIGS.- 9.4.2 Assigning the Selected Attribute in GEO++.- 9.5 Higher Level Hierarchies.- 9.5.1 Desk_Chair in PHIGS.- 9.5.2 Desk_Chair in GEO++.- 9.5.3 Radio Example.- 9.5.4 On the Analogy Between PHIGS and GEO++.- 9.5.5 Redesigning the Building Blocks in PHIGS and GEO++.- 9.5.6 Controlling the Radio.- 9.6 Interactive Editing of a PolyLine.- 9.7 Examination and Comments.- 9.7.1 Overall Structure of PHIGS and GEO++.- 9.7.2 Dynamics.- 9.7.3 Type Checking.- 10 Using Inheritance.- 10.1 Inheritance in GEO++.- 10.2 Alternative Naming.- 10.2.1 Index and Route.- 10.2.2 Advantages of Inheritance.- 10.3 Construction of a Part Hierarchy with Predefined Slots.- 10.3.1 Organization and Protocol.- 10.3.2 The Subclasses FrontPanel, Switchboard, Button.- 10.3.3 Methods for the Parts.- 10.4 Using Call-Backs.- 10.5 Accessing Parts.- 10.5.1 Censored Messages.- 11 Prototypes and Delegation.- 11.1 What are Prototypes?.- 11.2 Relevance for Computer Graphics.- 11.2.1 Why Does GEO++ Work?.- 11.3 A Prototype Model for GEO++.- 11.3.1 Prototype, Descendant, Copy.- 12 GEO++ in Smalltalk-80.- 12.1 Internal Representation of a Group.- 12.1.1 The Acyclic Graph of Contents.- 12.2 Implementation of Parts.- 12.2.1 Comparison with PHIGS.- 12.2.2 Realization of the Internal Representation.- 12.2.3 GEO++ Allows Parallel Posting.- 13 Additional Concepts and Tools.- 13.1 Additional Semantical Concepts.- 13.2 Connectivity.- 13.3 Graphics Constraints.- 13.3.1 What are Constraints?.- 13.3.2 Geometrical Relations Between Visual Objects.- 13.4 Adding Semantics to a Graphics Kernel.- 13.5 Graphics and Hybrid Knowledge Representation.- 13.5.1 Semantic Networks.- 13.6 Computer Graphics and Hybrid Systems.- 13.6.1 Is Computer Graphics an Appropriate Candidate?.- 14 Towards an Object-Oriented Standard?.- 14.1 Chances for an Object-Oriented New API.- 14.1.1 Historical Remarks.- 14.1.2 Why do we Need an Object-Oriented Standard?.- 14.1.3 General Advances - Short Summary.- 14.2 Requirements a…