The Alias API provides developers with access to Alias' internal data. This is done through two products based on the Alias API, OpenModel and OpenAlias. Alias OpenModel (OM) provides a programmer's interface to the Alias wire file (our proprietary data files), while OpenAlias (OA) provides a programmer's interface to the Alias application.
The Alias API is a set of C++ classes that define an interface to the data structures in an Alias wire file (OpenModel) or within Alias (OpenAlias).
The Alias API is written in C++ and is supplied as C++ classes. Most of the discussion in this document is intended for C++ programmers, and we assume that you understand the C++ concepts of classes and inheritance, and have a familiarity with the Alias interactive software.
The components of the API are:
It is particularly important to read the API specific release notes to learn what changes have occurred in the API since the last release.
A brief list of some of the possibilities includes
Plug-ins can be written using OpenAlias, which can read or write new file formats and can interactively generate geometry, lights, and shaders. Many standalone OpenModel applications can be easily converted into OpenAlias plug-ins.
The Alias API does not give access to all functions in Alias. You do not have access to functions such as birail. However, with each release we provide more functionality to the API programmer. Note that new classes and new methods within existing classes are listed at the end of this document.
The Alias wire file format is a binary format and is therefore not modifiable without proprietary knowledge of Alias data structures. We have therefore provided a library that insulates developers from the details of the file format and from any future changes in the file format. Since a library is available to read, write, and query wire files, developers do not need to make software changes to accommodate wire file changes. Re-linking with a new wire file library is sufficient.
If C++ developers want to interact with data internal to the interactive Alias package, then OpenAlias is for them. With OpenAlias it is possible to:
Deciding whether to use OpenModel or OpenAlias is largely a simple matter of deciding whether instantaneous response is a concern. OpenModel allows for the development of stand-alone applications which can operate on several files one after another, or can be launched from a script, and therefore requiring little interaction with a user.
OpenAlias on the other hand is meant for developers who need instant feedback or wish to integrate new custom features into Alias. The results of using a plug-in appear immediately on the screen.
Still unsure? If so, then it is likely best to start developing plug-ins. OpenAlias generally provides a tighter integration with Alias providing a greater number of possible solutions to design decisions.
The body of this document assumes a knowledge of the Alias interactive software. The Alias package is far too complex to explain adequately in these pages, so the Alias manual should be at hand for any unfamiliar terms.
Within the API there is an object called the "Universe", which contains all geometry, lights, cameras and clusters for a model, as well as animation and rendering data. Developers can use the Alias API to change the universe and its contents.
Understanding the Alias universe and the class hierarchy is the best way to get started.
In the documentation, the characters "<", ">" and "|" are used to indicate how an argument is used by a method.