Переименование s0 -> s, x1 -> x, x2 -> y, x3 -> z, что должно упростить читаемость кода. Также обновление документации

This commit is contained in:
Andrey Pokidov 2026-03-29 22:06:01 +07:00
parent d83ab7160d
commit b8d383da33
38 changed files with 2104 additions and 2070 deletions

View file

@ -4,26 +4,27 @@
### Префиксы
Библиотека использует префиксы в названиях типов, констант и функций.
В языке программирования C (Си) нет пространств имён, потому роль пространств
имён играют префиксы в названиях.
Библиотека использует префиксы в названиях типов, констант и функций для
того, чтобы избежать конфликтов в названиях констант, типов и функций с другими
библиотеками.
Основным префиксом является **BGC** (сокращение от **B**asic **G**eometric
**C**omputations / Базовые Геометрие Вычисления).
Для структур данных префикс имеет вид **Bgc**, например: BgcVector3FP64,
BgcVersorFP32, BgcMatrix2x2FP32.
Для констант и структур данных префикс имеет вид **BGC_**, например:
BgcVector3FP64, BGC_FP32_Quaternion, BGC_FP32_Matrix2x2, BGC_FP32_EPSILON,
BGC_FP64_TWO_PI.
Константы имеют префикс в виде **BGC_**, например: BGC_EPSYLON_FP32,
BGC_TWO_PI_FP64.
Функции имеют префикс в виде **bgc_**, например: bgc_fp32_turn3_combine,
bgc_fp64_matrix3x3_subtract.
Функции имеют префикс в виде **bgc_**, например: bgc_versor_combine_fp32,
bgc_matrix3x3_subtract_fp64.
После префикса библиотеки идёт префикс базового типа.
### Cуффиксы
Названия констант, типов и функций оканчиваются суффиксом, указывающим на
базовый тип. Библиотека использует два типа чисел с плавающей запятой:
**float** и **double** (типы **binary32** и **binary64** стандарта
**IEEE 754**).
Библиотека использует два типа чисел с плавающей запятой: **float** и **double**
(типы **binary32** и **binary64** стандарта **IEEE 754**).
Поэтому в библиотеке есть два префикса типа:
@ -33,27 +34,19 @@ bgc_matrix3x3_subtract_fp64.
* **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с
плавающей запятой, 64 бита, что соответствует типу **double** языка Си.
Типы структур, использующие тип **float** имеют суффикс **FP32**:
BgcVector3FP32, BgcMatrix3x2FP32, BgcQuaternionFP32
Типы структур и константы, основанные на типе **float** имеют префикс **FP32_**:
BGC_FP32_Vector3, BGC_FP32_Matrix3x2, BGC_FP32_Quaternion, BGC_FP32_PI,
BGC_FP32_EPSILON.
Типы структур, использующие тип **double** имеют суффикс **FP64**:
BgcVector2FP64, BgcMatrix2x3FP64, BgcVersorFP64
Константы типа **float** имеют суффикс **_FP32**: BGC_PI_FP32, BGC_EPSYLON_FP32.
Константы типа **double** имеют суффикс **_FP64**: BGC_HALF_PI_FP64,
BGC_ONE_THIRD_FP64.
Типы структур и константы, основанные на типе **double** имеют префикс
**FP64_**: BGC_FP64_Vector2, BGC_FP64_Matrix2x3, BGC_FP64_Turn3,
BGC_FP64_HALF_PI, BGC_FP64_ONE_THIRD.
Функции, которые работают с данными типа **float** имеют суффикс **_fp32**:
bcg_vector2_get_modulus_fp32, bgc_radians_to_degrees_fp32.
bcg_fp32_vector2_get_length, bgc_fp32_radians_to_degrees.
Функции, которые работают с данными типа **double** имеют суффикс **_fp64**:
bgc_vector3_reset_fp64, bgc_radians_normalize_fp64.
bgc_fp64_vector3_reset, bgc_fp64_normalize_radians.
## Сущности
- [Углы](angle-rus.md)
- [2D векторы](vector2-rus.md)
- [3D векторы](vector2-rus.md)
- [Кватернионы](quaternion-rus.md)
- [Версоры](versor-rus.md)
Использование подобных префиксов позволяет расширять библиотеку используя новые
новые базовые типы в будущем.