.. role:: blue :class: blue C3D API ======== .. _C3D_API: Все модули C3D предоставляют программные интерфейсы (API) для использования их функциональности в инженерном приложении, которые состоят из констант, перечислений, функций, структур, классов. Особенностями C3D API являются открытость и расширяемость. C3D предоставляет прямой доступ к объектам, что позволяет расширить функциональность за счет наследования от объектов C3D. Кроме того, важной особенностью C3D API являются его стабильность и обратная совместимость. Стабильность означает, что API не должен сильно меняться в течение как можно более длительного периода времени. Обратная совместимость означает, что код, написанный с использованием предыдущей версии, функционально работает так же, как и со следующей версией API. Для случаев, когда возникает необходимость модифицировать существующий интерфейс, существует четкая процедура замены его на новый интерфейс, направленная в первую очередь на поддержание удобства использования API пользователями. Интерфейс, который необходимо изменить, объявляется устаревшим с помощью макросов :blue:`DEPRECATE_DECLARE` и :blue:`DEPRECATE_DECLARE_REPLACE`, определенных в файле *math_x.h*. Эти макросы отображают предупреждающее сообщение при компиляции кода, использующего устаревшую функцию. Кроме того, на платформе Windows выданное предупреждение содержит информацию о сроках удаления устаревшего интерфейса, а макрос :blue:`DEPRECATE_DECLARE_REPLACE` дополнительно указывает интерфейс, который заменяет устаревшую функцию.