logo资料库

OCC学习资料.pdf

第1页 / 共57页
第2页 / 共57页
第3页 / 共57页
第4页 / 共57页
第5页 / 共57页
第6页 / 共57页
第7页 / 共57页
第8页 / 共57页
资料共57页,剩余部分请下载后查看
TABLE OF CONTENTS
1. CDL and Application Architecture
Figure 1. Building an Open CASCADE application
2. Introduction to CDL
2.1 Purposes of the Language
Figure 2. The Development Process
2. 2 Overview of CDL
2. 2. 1 Classes
2. 2. 2 Categories of Types
Figure 3. Manipulation of data types
2. 2. 3 Persistence
2. 2. 4 Packages
2. 2. 5 Inheritance
2. 2. 6 Genericity
2. 2. 7 Exceptions
2. 2. 8 Completeness
2. 3 Lexical Conventions
2. 3. 1 Syntax notation
NOTE
2. 3. 2 Lexical elements
2. 3. 3 Comments
2. 3. 4 Identifiers
2. 3. 5 Keywords
2. 3. 6 Constants
3. Software Components
3. 1 Predefined Resources
3. 1. 1 Primitive types
3. 1. 2 Manipulating types by reference (by handle)
Figure 4. Manipulation of a data type by reference
3. 1. 3 Manipulating types by value
Figure 5. Manipulation of a data type by value
3. 1. 4 Summary of properties
3. 2 Classes
3. 2. 1 Class declaration
3. 2. 2 Categories of classes
Deferred classes
Generic classes
3. 3 Packages
3. 3. 1 Package declaration
Figure 8. Contents of a package
3. 3. 2 Name space
NOTES
3. 3. 3 Declaration of classes
NOTE
3. 4 Other Data Types
3. 4. 1 Enumerations
3. 4. 2 Imports
3. 4. 3 Aliases
3. 4. 4 Exceptions
3. 5 Schemas
3. 6 Executables
4. Defining the Software Components
4. 1 Behavior
4. 1. 1 Object Constructors
4. 1. 2 Instance Methods
4. 1. 3 Class Methods
4. 1. 4 Package Methods
4. 1. 5 Sensitivity to Overloading
4. 2 Internal Representation
4. 3 Exceptions
4. 4 Inheritance
4. 4. 1 Overview
NOTE
4. 4. 2 Redefining methods
4. 4. 3 Non-redefinable methods
4. 4. 4 Deferred Classes and Methods
4. 4. 5 Declaration by Association
NOTE
4. 4. 6 Redefinition of Fields
4. 5 Genericity
4. 5. 1 Overview
4. 5. 2 Declaration of a Generic Class
4. 5. 3 Instantiation of a Generic Class
4. 5. 4 Nested Generic Classes
4. 6 Visibility
4. 6. 1 Overview
4. 6. 2 Visibility of Fields
Example
4. 6. 3 Visibility of Methods
4. 6. 4 Visibility of Classes, Exceptions, & Enumerations
4. 6. 5 Friend Classes & Methods
Figure 9. Visibility of various components
Appendix A. Syntax Summary
Appendix B.
5. 1 Comparison of CDL & C++ Syntax for Data Types manipulated by Handle and by Value
Software Factory (Component Description Language) User’s Guide CDL Version 6.5.3 / April 2012
1 Copyright © 2012, by OPEN CASCADE S.A.S. PROPRIETARY RIGHTS NOTICE: All rights reserved. Verbatim copying and distribution of this entire document are permitted worldwide, without royalty, in any medium, provided the copyright notice and this permission notice are preserved. The information in this document is subject to change without notice and should not be construed as a commitment by OPEN CASCADE S.A.S. OPEN CASCADE S.A.S. assures no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such a license. CAS.CADE, Open CASCADE and Open CASCADE Technology are registered trademarks of OPEN CASCADE S.A.S. Other brand or product names are trademarks or registered trademarks of their respective holders. NOTICE FOR USERS: This User Guide is a general instruction for Open CASCADE Technology study. It may be incomplete and even contain occasional mistakes, particularly in examples, samples, etc. OPEN CASCADE S.A.S. bears no responsibility for such mistakes. If you find any mistakes or imperfections in this document, or if you have suggestions for improving this document, please, contact us and contribute your share to the development of Open CASCADE Technology: bugmaster@opencascade.com http://www.opencascade.com/contact/ 1
TABLE OF CONTENTS 2 TTAABBLLEE OOFF CCOONNTTEENNTTSS TABLE OF CONTENTS ............................................................................................................................. 2 1. CDL AND APPLICATION ARCHITECTURE .................................................................................... 4 2. INTRODUCTION TO CDL .................................................................................................................... 6 2.1 PURPOSES OF THE LANGUAGE ............................................................................................................... 6 2. 2 OVERVIEW OF CDL .............................................................................................................................. 7 2. 2. 1 Classes ......................................................................................................................................... 7 2. 2. 2 Categories of Types ..................................................................................................................... 8 2. 2. 3 Persistence ................................................................................................................................... 9 2. 2. 4 Packages .....................................................................................................................................10 2. 2. 5 Inheritance ..................................................................................................................................10 2. 2. 6 Genericity ...................................................................................................................................11 2. 2. 7 Exceptions...................................................................................................................................11 2. 2. 8 Completeness ..............................................................................................................................12 2. 3 LEXICAL CONVENTIONS ......................................................................................................................12 2. 3. 1 Syntax notation ...........................................................................................................................12 2. 3. 2 Lexical elements .........................................................................................................................13 2. 3. 3 Comments ...................................................................................................................................13 2. 3. 4 Identifiers ....................................................................................................................................14 2. 3. 5 Keywords ....................................................................................................................................14 2. 3. 6 Constants ....................................................................................................................................14 3. SOFTWARE COMPONENTS ...............................................................................................................16 3. 1 PREDEFINED RESOURCES .....................................................................................................................16 3. 1. 1 Primitive types ............................................................................................................................16 3. 1. 2 Manipulating types by reference (by handle) .............................................................................16 3. 1. 3 Manipulating types by value .......................................................................................................17 3. 1. 4 Summary of properties ................................................................................................................18 3. 2 CLASSES ..............................................................................................................................................18 3. 2. 1 Class declaration ........................................................................................................................18 3. 2. 2 Categories of classes ..................................................................................................................20 3. 3 PACKAGES ...........................................................................................................................................21 3. 3. 1 Package declaration ...................................................................................................................21 3. 3. 2 Name space .................................................................................................................................24 3. 3. 3 Declaration of classes ................................................................................................................25 3. 4 OTHER DATA TYPES ............................................................................................................................26 3. 4. 1 Enumerations ..............................................................................................................................26 3. 4. 2 Imports ........................................................................................................................................27 3. 4. 3 Aliases ........................................................................................................................................28 3. 4. 4 Exceptions...................................................................................................................................28 3. 5 SCHEMAS .............................................................................................................................................29 3. 6 EXECUTABLES .....................................................................................................................................29 4. DEFINING THE SOFTWARE COMPONENTS ................................................................................31 4. 1 BEHAVIOR ...........................................................................................................................................31 4. 1. 1 Object Constructors ....................................................................................................................31 4. 1. 2 Instance Methods ........................................................................................................................33 4. 1. 3 Class Methods ............................................................................................................................34 4. 1. 4 Package Methods ........................................................................................................................35 4. 1. 5 Sensitivity to Overloading...........................................................................................................35 4. 2 INTERNAL REPRESENTATION ...............................................................................................................36 2
4. 3 EXCEPTIONS ........................................................................................................................................36 4. 4 INHERITANCE .......................................................................................................................................37 4. 4. 1 Overview .....................................................................................................................................37 4. 4. 2 Redefining methods.....................................................................................................................38 4. 4. 3 Non-redefinable methods ............................................................................................................39 4. 4. 4 Deferred Classes and Methods ...................................................................................................39 4. 4. 5 Declaration by Association ........................................................................................................40 4. 4. 6 Redefinition of Fields ..................................................................................................................42 4. 5 GENERICITY .........................................................................................................................................42 4. 5. 1 Overview .....................................................................................................................................42 4. 5. 2 Declaration of a Generic Class ..................................................................................................43 4. 5. 3 Instantiation of a Generic Class .................................................................................................45 4. 5. 4 Nested Generic Classes ..............................................................................................................45 4. 6 VISIBILITY ...........................................................................................................................................47 4. 6. 1 Overview .....................................................................................................................................47 4. 6. 2 Visibility of Fields .......................................................................................................................47 4. 6. 3 Visibility of Methods ...................................................................................................................48 4. 6. 4 Visibility of Classes, Exceptions, & Enumerations .....................................................................49 4. 6. 5 Friend Classes & Methods .........................................................................................................49 APPENDIX A. SYNTAX SUMMARY ......................................................................................................51 APPENDIX B. ..............................................................................................................................................56 5. 1 COMPARISON OF CDL & C++ SYNTAX FOR DATA TYPES MANIPULATED BY HANDLE AND BY VALUE ...................................................................................................................................................................56 3 3
1. CDL and Application Architecture 4 11.. CCDDLL aanndd AApppplliiccaattiioonn AArrcchhiitteeccttuurree CDL is the component definition language of the Open CASCADE programming platform. Some components, which CDL allows you to create, are specific to Open CASCADE application architecture. These and other components, which you can define using CDL include the following: • Class (including enumeration, exception) • Package • Schema • Executable • Client. A class is the fundamental software component in object-oriented development. Because of a very large number of resources used in large-scale applications, the class itself is too small to be used as a basic management unit. So, while the class is the basic data component defined in CDL, this language also provides a way to group classes, enumerations, and exceptions together – the package. A package groups together a number of classes, which have semantic links. For example, a geometry package would contain Point, Line, and Circle classes. A package can also contain enumerations, exceptions, and package methods. In practice, a class name is prefixed with the name of its package e.g. Geom_Circle. Using the services described in the packages, you can construct an executable. You can also group together services provided by packages. To save data in a file, you need to define persistent classes. Then, you group these classes in a schema, which provides the necessary read/write tools. 4
1. CDL and Application Architecture 5 Figure 1. Building an Open CASCADE application 5
2. Introduction to CDL 6 22.. IInnttrroodduuccttiioonn ttoo CCDDLL 2.1 Purposes of the Language You can use CDL to define data in the Open CASCADE environment. CDL allows you to define various kinds of data types supporting the application architecture and development methodology, which you envision. CDL is neither an analysis formalism (e.g. Booch methodology) nor a data manipulation language (e.g. C++). You use CDL in the design phase of a development process to define a set of software components which best model the concepts stated in the application specification. Figure 2. The Development Process From a structural point of view, CDL is an object-oriented language. It is centered on the notion of the class - a data type, which represents an elementary concept. CDL offers various means of organizing classes, mostly under the fundamental form of packages. A package contains a set of classes, which share some semantic relationship. This greatly simplifies your task of managing individual classes when confronted with a very large number of them. 6
2. Introduction to CDL 7 Once you have defined the classes and packages using CDL, you can implement their methods - i.e., their functionality - in one of the data manipulation languages supported by the Open CASCADE environment (currently C++). Even though you can describe classes directly in C++ and save them as header files (.hxx), to do so would forfeit all the advantages of using CDL. These are: • Precise, complete, and easy-to-read description of the software components. • Creation of a link with the database; object persistence forms part of the predefined environment of the language. • Multi-language access to the services of an application engine – a specific architectural form created using the CDL tools, which serves as the motor of an application. 2. 2 Overview of CDL CDL is an object-oriented language. In other words, it structures a system around data types rather than around the actions carried out on them. In this context, an object is an instance of a data type, and its definition determines how you can use it. Each data type is implemented by one or more classes, which make up the basic elements of the system. 2. 2. 1 Classes A class is an implementation of a data type. It defines its behavior and its representation. The behavior of a class is its programming interface - the services offered by its methods. The representation of a class is its data structure - the fields, which store its data. Every object is an instance of its class. For example, the object p of the data type Point is an instance of the class Point. The class Point could be defined as in the example below: Example class Point from GeomPack ---Purpose: represents a point in 3D space. is Create returns Point; fields x, y, z : Real; end Point; 7
分享到:
收藏