Open CASCADE, the 3D modelling kernel
3D modeling & numerical simulation


Open CASCADEShowroomGet Open CASCADEDeveloper CornerSupportAbout us
Technical overview
Areas of use
Advantages
Public license
FAQ
Screenshots
Shape factory
Shape gallery
Demonstrations
System requirements
What's new
Download Center
CD-ROM
Documentation
Getting started
Forum
Open Source community
Training and e-learning
A la Carte Support
Value-added software
Client Area
Company Profile
Contacts and Locations
Customers
News
Home / Open CASCADE / Technical overview / Foundation classes / Kernel classes

Kernel classes


Vectors and Matrices


Root Classes, primarily implemented in the package Standard, are the classes on which all other Open CASCADE classes are built. They provide:
- Primitive types such as Boolean, Character, Integer or Real
- A memory manager based on reference counting for optimizing
- Allocation and deallocation of large numbers of small C++ objects
- A base class, Standard_Transient, automating memory management
- Through smart pointers - the Open CASCADE handle - most of Open CASCADE classes inherit from this base class

Quantities

The Quantitiy classes provide the following services:
- Definition of primitive types representing most mathematical and physical quantities Unit conversion tools
- Resources to manage time information such as dates and time periods
- Resources to manage color definition

Exceptions

The Exception classes list all the exceptions which can be raised by any Open CASCADE function. Syntax compatible with the ANSI C++ standard allows you to handle abnormal conditions.

Each exception inherits from Standard_Failure either directly or by inheriting from another exception.

Strings

The String classes provide the following services to manipulate character strings:
- Handling of dynamically-sized sequences of characters
- Editing operations on string objects, using built-in memory management

Open CASCADE recognizes both ASCII character types (8-bit) and Unicode character types (16-bit).

Memory management makes string objects easier to use than ordinary character arrays. Strings may also be manipulated by handles and so, can be shared.

These classes are implemented in the package TCollection.

Collections

Besides strings, the TCollection package contains classes of dynamically-sized aggregates of data. They include a wide range of collections such as:
- Arrays - unidimensional and bidimensional - generally used for quick access to an item. Note that an array is a fixed-sized aggregate
- Sequences and lists which are ordered collections of non-unique objects
- Maps, which provide rapid access time for member items
- Queues and stacks, which are minor structures similar to sequences but with different algorithms to explore them.

The TCollection package also offers specific iterators for maps, lists, and stacks.

Collection classes are generic (C++ template-like), that is, they can hold a variety of objects which do not necessarily inherit from a unique root class. When you need to use a collection of a given type of object, you must instantiate the collection for this specific type of element. Once the code for this declaration is compiled, all the functions available on the generic collection are available on your instantiated class.

Most collections follow value semantics, meaning that an instantiation of a collections is the actual collection, not a handle to it. Collections are implemented in the package TCollection.

Collections of Standard Objects

The collections of standard object classes provide frequently used instantiations of generic classes from the TCollection package with objects from the Standard package, strings from the Tcollection package and geometric primitives.


 
 

© Open CASCADE 2000 - 2008  |  Search  |  Contacts