bgc-c/docs/intro-rus.md

54 lines
No EOL
3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Библиотека базовых геометрических вычислений
[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**:
bcg_fp32_vector2_get_length, bgc_fp32_radians_to_degrees.
Функции, которые работают с данными типа **double** имеют суффикс **_fp64**:
bgc_fp64_vector3_reset, bgc_fp64_normalize_radians.
Использование подобных префиксов позволяет расширять библиотеку используя новые
базовые типы в будущем.