Difference between revisions of "BRL-CAD's core C++ interface"
D rossberg (talk | contribs) |
m (→The interface should be self-contained) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 4: | Line 4: | ||
The C++ interface is a object oriented API to BRL-CAD's core libraries around librt. | The C++ interface is a object oriented API to BRL-CAD's core libraries around librt. | ||
− | The target | + | The target users are developers of applications which use BRL-CAD libraries. |
− | |||
− | |||
+ | Furthermore, this interface should be a good reference to the use of BRL-CAD's standard C interface, although a higher level interface should also be available. | ||
= Requirements = | = Requirements = | ||
== The interface should be self-contained == | == The interface should be self-contained == | ||
− | I.e. source code using this interface should not need to include any other BRL-CAD header file (nor TCL, openNURBS, ...). | + | I.e., source code using this interface should not need to include any other BRL-CAD header file (nor TCL, openNURBS, ...). |
− | As a consequence the interface will hide implementation details. | + | As a consequence, the interface will hide implementation details. |
Therefore the implementation can be changed without affecting an application using this interface. | Therefore the implementation can be changed without affecting an application using this interface. | ||
− | |||
= Main Classes = | = Main Classes = | ||
Line 27: | Line 25: | ||
== Database == | == Database == | ||
− | The '''Database''' class | + | The '''Database''' class is a virtual class which declares a handle to a writable database. |
It is derived from '''ConstDatabase''' and expanded by methods to modify the database's content. | It is derived from '''ConstDatabase''' and expanded by methods to modify the database's content. | ||
+ | |||
+ | == FileDatabase == | ||
+ | The '''FileDatabase''' class provides a handle to writable file-based database derived from '''Database'''. | ||
+ | |||
+ | == MemoryDatabase == | ||
+ | The '''MemoryDatabase''' class provides a handle to writable in-memory database derived from '''Database'''. | ||
+ | |||
+ | == Object == | ||
+ | The '''Object''' class is the base class of all database objects (e.g. primitives etc.). | ||
+ | |||
+ | |||
+ | = Examples = | ||
+ | * [[coreInterface Hallo World Example|A kind of a "Hallo World" program]] | ||
+ | * [[coreInterface PrintTitle Example|PrintTitle]] | ||
+ | * [[coreInterface Tree Walker Example|Tree walker]] |
Latest revision as of 10:31, 22 June 2009
Contents
Application Domain[edit]
The C++ interface is a object oriented API to BRL-CAD's core libraries around librt. The target users are developers of applications which use BRL-CAD libraries.
Furthermore, this interface should be a good reference to the use of BRL-CAD's standard C interface, although a higher level interface should also be available.
Requirements[edit]
The interface should be self-contained[edit]
I.e., source code using this interface should not need to include any other BRL-CAD header file (nor TCL, openNURBS, ...).
As a consequence, the interface will hide implementation details. Therefore the implementation can be changed without affecting an application using this interface.
Main Classes[edit]
ConstDatabase[edit]
The ConstDatabase class provides a handle to read-only database content.
If it is associated with a file the file will be opened read-only. I.e. multiple instances of this class can refer to the same file.
Database[edit]
The Database class is a virtual class which declares a handle to a writable database. It is derived from ConstDatabase and expanded by methods to modify the database's content.
FileDatabase[edit]
The FileDatabase class provides a handle to writable file-based database derived from Database.
MemoryDatabase[edit]
The MemoryDatabase class provides a handle to writable in-memory database derived from Database.
Object[edit]
The Object class is the base class of all database objects (e.g. primitives etc.).