2.5 KiB
2.5 KiB
Обмен значениями координат
English version / Английская версия
Функция для BGC_FP32_Vector3:
inline void bgc_fp32_vector3_swap(BGC_FP32_Vector3* const vector1, BGC_FP32_Vector3* const vector2);
Функция для BGC_FP64_Vector3:
inline void bgc_fp64_vector3_swap(BGC_FP64_Vector3* const vector1, BGC_FP64_Vector3* const vector2);
Функции обмена значениями позволяют двум векторам одного типа обменяться значениями координат.
Параметры
| Параметр | Направление | Описание |
|---|---|---|
| vector1 | исходящий / входящий | Указатель на вектор, в который будут скопированы значения координат из vector2 |
| vector2 | исходящий / входящий | Указатель на вектор, в который будут скопированы значения координат из vector1 |
Параметры vector1 и vector2 должны быть корректными указателями на структуры трёхмерных векторов. Значение NULL (0) считается некорректным.
После вызова функции вектор vector1 будет иметь такие же значения координат, как вектор vector2 до вызова функции.
А вектор vector2 после вызова функции будет иметь координаты, такие же, как у вектора vector1 до вызова функции.
Пример
#include <stdio.h>
#include <basic-geometry.h>
int main()
{
BGC_FP32_Vector3 v1, v2;
bgc_fp32_vector3_set_values(&v1, -2, 7, 5);
bgc_fp32_vector3_set_values(&v2, 10, -1, -3);
bgc_fp32_vector3_swap(&v1, &v2);
printf("Vector #1: x = %f, y = %f, z = %f\n", v1.x, v1.y, v1.z);
printf("Vector #2: x = %f, y = %f, z = %f\n", v2.x, v2.y, v2.z);
return 0;
}
Результат:
Vector #1: x = 10.000000, y = -1.000000, z = -3.000000
Vector #2: x = -2.000000, y = 7.000000, z = 5.000000