bgc-c/docs/vector3/swap-eng.md

1.4 KiB

Swapping

Русская версия / Russian version

The exchange functions allow two vectors of the same type to exchange coordinate values.

Function for BGC_FP32_Vector3:

inline void bgc_fp32_vector3_swap(BGC_FP32_Vector3* const vector1, BGC_FP32_Vector3* const vector2);

Function for BGC_FP64_Vector3:

inline void bgc_fp64_vector3_swap(BGC_FP64_Vector3* const vector1, BGC_FP64_Vector3* const vector2);

The vector1 and vector2 parameters must be valid pointers. The NULL (0) value is considered invalid.

Vector vector1 after calling this function will have the coordinate values that vector vector3 had before calling the function.

And vector vector3 after calling this function will have the same coordinate values that vector vector1 had before calling the function.

Example of use:

#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;
}

Result:

Vector #1: x = 10.000000, y = -1.000000, z = -3.000000
Vector #2: x = -2.000000, y = 7.000000, z = 5.000000

Documentation / 3D vectors