.. role:: blue :class: blue C3D API ======== .. _C3D_API_: All C3D modules provide programming interfaces (API) for using their functionality in an engineering application, which consist of constants, enumerations, functions, structures, and classes. The key features of the C3D API are openness and extensibility. C3D provides direct access to objects, which allows developers to extend the functionality by inheriting from C3D objects. In addition, an important feature of the C3D API is its stability and backward compatibility. Stability means that the API should not change significantly over the longest possible period of time. Backward compatibility means that code written using a previous version works functionally the same with the next version of the API. When there is a need to modify an existing interface, there is a clear procedure for replacing it with a new interface, aimed primarily at maintaining ease of use of the API for users. An interface that needs to be changed is declared deprecated using the :blue:`DEPRECATE_DECLARE` and :blue:`DEPRECATE_DECLARE_REPLACE` macros defined in the *math_x.h* file. These macros display a warning message when compiling code that uses the deprecated function. In addition, on the Windows platform, the warning issued contains information about the timing of the removal of the deprecated interface, and the :blue:`DEPRECATE_DECLARE_REPLACE` macro additionally specifies the interface that replaces the deprecated function.