# Библиотека базовых геометрических вычислений [English version / Английская версия](intro-eng.md) ## Особенности наименования В языке программирования C (Си) нет пространств имён, потому роль пространств имён играют префиксы в названиях. Библиотека использует префиксы в названиях типов, констант и функций для того, чтобы избежать конфликтов в названиях констант, типов и функций с другими библиотеками. ### Префикс библиотеки (основной префикс) Основным префиксом является **BGC** (сокращение от **B**asic **G**eometric **C**omputations, что можно перевести как "Базовые Геометрие Вычисления"). Для констант и структур данных префикс имеет вид **BGC_** Например, структуры: - BGC_FP64_Vector3 - BGC_FP32_Quaternion - BGC_FP32_Matrix2x2 Константы: - BGC_FP32_EPSILON - BGC_FP64_TWO_PI Функции имеют префикс в виде **bgc_**, например: - bgc_fp32_turn3_combine - bgc_fp64_matrix3x3_subtract ### Префикс базового типа (вторичный префикс) После префикса библиотеки идёт префикс базового типа. Библиотека использует два типа чисел с плавающей запятой: **float** и **double** (типы **binary32** и **binary64** стандарта **IEEE 754**). Поэтому в библиотеке есть два префикса типа: - **FP32** - означает **F**loating **P**oint **32** bit, то есть, число с плавающей запятой, 32 бита, что соответствует типу **float** языка программирования Си. - **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с плавающей запятой, 64 бита, что соответствует типу **double** языка программирования Си. Типы структур и константы, основанные на типе **float** имеют префикс **FP32_**: - BGC_FP32_Vector3 - BGC_FP32_Matrix3x2 - BGC_FP32_Quaternion - BGC_FP32_PI - BGC_FP32_EPSILON Типы структур и константы, основанные на типе **double** имеют префикс **FP64_**: - BGC_FP64_Vector2 - BGC_FP64_Matrix2x3 - BGC_FP64_Turn3 - BGC_FP64_HALF_PI - BGC_FP64_ONE_THIRD Функции, которые работают с данными типа **float** имеют префикс **fp32_**: - bgc_fp32_vector2_get_length - bgc_fp32_radians_to_degrees Функции, которые работают с данными типа **double** имеют префикс **fp64_**: - bgc_fp64_vector3_reset - bgc_fp64_normalize_radians Использование подобных префиксов позволяет расширять библиотеку используя новые базовые типы в будущем. ### Типы данных - [Двумерные векторы](vector2-rus.md) - [Трёхмерные векторы](vector3-rus.md) - [Кватернионы](quaternion-rus.md)