Difference between revisions of "BRL-CAD's core C++ interface"

(Application Domain)
m (The interface should be self-contained)
 
Line 11: Line 11:
  
 
== 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 =

Latest revision as of 10:31, 22 June 2009

Design icon.png This page contains the design document for an enhancement or feature. The design should be considered a work in progress and may not represent the final design. As this is a collaborative design, contributions and participation from other developers and users is encouraged. Use the discussion page for providing comments and suggestions.


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.).


Examples[edit]