API Features

Features

The MAXON API was build to ensure easy software development, to allow the simple creation of extensions and to provide access to state-of-the-art technologies.

Software Development

The MAXON API provides several tools and concepts to make writing plugins as simple and safe as possible:

  • Easy to use API due to strict naming schemes and use of consistent concepts.
  • Easy creation of safe code using a strict and powerful error handling system, reference-counting and type safety tools. See Error Handling and References.
  • Powerful debugging tools as stack traces, type viewer, debugging output, display of any type as string are provided. See also Debug and Output Functions.
  • Automatic creation of project files for multiple platforms. See Project Tool.
  • Source processor to analyse the source code. See Source Processor.
  • Automatic dependency analysis makes manual registration in the correct order obsolete.

Interfaces & Plugins

The MAXON API is based on interfaces. See Interface Basics. It delivers:

  • Consistent and powerful interface concept, combining of interfaces at runtime.
  • Public interfaces are 100% the same as what MAXON programmers use.
  • Code can be moved around freely, no need for manual initialization/free functions.

New plugins are registered using registries and IDs. See Registries. This approach guarantees:

  • Consistent registration concept.
  • Reverse domain name notation instead of IDs.

Technologies

The MAXON API uses multiple modern concepts and technologies:

  • Extremely fast and efficient algorithms, high performance in all areas.
  • Powerful set of standardized classes (maps, arrays, lists, iterators etc.)
  • Built-in reference-counting, see References.
  • Extremely powerful, yet simple to use threading system, see Threading.
  • Use of modern C++11 concepts, like lambdas. See C++ Techniques.
  • Powerful I/O system that allows you to write complex data (lists, maps, references) easily, implicit support for JSON/XML.
  • Unified I/O concept - no matter if the source is http, ftp, the content of a ZIP file etc. See MAXON API Files & Media.
  • 4-byte Unicode handling. See Strings & Texts.
  • Easy configuration of code via command line, text file or environment variables. See Configuration Variables.
  • Automatic data types, e.g. maxon::BaseArray automatically builds itself without any additional code from the programmer.
  • Observer concept. See Observables.
  • Powerful math/geometry libraries.
  • Powerful bitmap I/O, support for many new features.
  • Efficient intersection interface.

Further Reading