3.5 KiB
Библиотека базовых геометрических вычислений
English version / Английская версия
Особенности наименования
В языке программирования C (Си) нет пространств имён, потому роль пространств имён играют префиксы в названиях.
Библиотека использует префиксы в названиях типов, констант и функций для того, чтобы избежать конфликтов в названиях констант, типов и функций с другими библиотеками.
Префикс библиотеки (основной префикс)
Основным префиксом является BGC (сокращение от Basic Geometric Computations, что можно перевести как "Базовые Геометрие Вычисления").
Для констант и структур данных префикс имеет вид 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 - означает Floating Point 32 bit, то есть, число с плавающей запятой, 32 бита, что соответствует типу float языка программирования Си.
- FP64 - означает Floating Point 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
Использование подобных префиксов позволяет расширять библиотеку используя новые базовые типы в будущем.