Актуализация документации по проекту

This commit is contained in:
Andrey Pokidov 2026-03-31 20:43:10 +07:00
parent ed404690ed
commit 8ba075b557
16 changed files with 279 additions and 222 deletions

View file

@ -4,51 +4,66 @@
## Особенности наименования
### Префиксы
В языке программирования C (Си) нет пространств имён, потому роль пространств имён играют префиксы в названиях.
В языке программирования C (Си) нет пространств имён, потому роль пространств
имён играют префиксы в названиях.
Библиотека использует префиксы в названиях типов, констант и функций для того, чтобы избежать конфликтов в названиях констант, типов и функций с другими библиотеками.
Библиотека использует префиксы в названиях типов, констант и функций для
того, чтобы избежать конфликтов в названиях констант, типов и функций с другими
библиотеками.
### Префикс библиотеки (основной префикс)
Основным префиксом является **BGC** (сокращение от **B**asic **G**eometric
**C**omputations / Базовые Геометрие Вычисления).
Основным префиксом является **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_**, например: bgc_fp32_turn3_combine,
bgc_fp64_matrix3x3_subtract.
Например, структуры:
- 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**).
Библиотека использует два типа чисел с плавающей запятой: **float** и **double** (типы **binary32** и **binary64** стандарта **IEEE 754**).
Поэтому в библиотеке есть два префикса типа:
* **FP32** - означает **F**loating **P**oint **32** bit, то есть, число с
плавающей запятой, 32 бита, что соответствует типу **float** языка Си.
* **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с
плавающей запятой, 64 бита, что соответствует типу **double** языка Си.
- **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.
- 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.
Типы структур и константы, основанные на типе **double** имеют префикс **FP64_**:
- BGC_FP64_Vector2
- BGC_FP64_Matrix2x3
- BGC_FP64_Turn3
- BGC_FP64_HALF_PI
- BGC_FP64_ONE_THIRD
Функции, которые работают с данными типа **float** имеют суффикс **_fp32**:
bcg_fp32_vector2_get_length, bgc_fp32_radians_to_degrees.
Функции, которые работают с данными типа **float** имеют префикс **fp32_**:
- bgc_fp32_vector2_get_length
- bgc_fp32_radians_to_degrees
Функции, которые работают с данными типа **double** имеют суффикс **_fp64**:
bgc_fp64_vector3_reset, bgc_fp64_normalize_radians.
Функции, которые работают с данными типа **double** имеют префикс **fp64_**:
- bgc_fp64_vector3_reset
- bgc_fp64_normalize_radians
Использование подобных префиксов позволяет расширять библиотеку используя новые базовые типы в будущем.
### Типы данных
- [Двумерные векторы](vector2-rus.md)
- [Трёхмерные векторы](vector3-rus.md)
- [Кватернионы](quaternion-rus.md)
Использование подобных префиксов позволяет расширять библиотеку используя новые
базовые типы в будущем.