From 7f57e912309599fb267cfe1181c3eff3422d3062 Mon Sep 17 00:00:00 2001 From: nukeulater Date: Wed, 27 Dec 2023 16:41:55 +0200 Subject: [PATCH] fixed/completed random_math implementation, math functions updates removed return values, most of these matrix math functions do not return anything, fixed random math implementation TODO check assembly --- xlive/Blam/Engine/math/matrix_math.cpp | 5 +- xlive/Blam/Engine/math/matrix_math.h | 4 +- .../Blam/Engine/math/random_direction_table.h | 1033 ++++++++++++++++ xlive/Blam/Engine/math/random_math.cpp | 38 +- xlive/Blam/Engine/math/random_math.h | 1037 +---------------- xlive/Blam/Engine/math/real_math.cpp | 19 +- xlive/Blam/Engine/math/real_math.h | 12 +- xlive/Blam/Engine/units/bipeds.cpp | 4 +- xlive/Project_Cartographer.vcxproj | 1 + 9 files changed, 1087 insertions(+), 1066 deletions(-) create mode 100644 xlive/Blam/Engine/math/random_direction_table.h diff --git a/xlive/Blam/Engine/math/matrix_math.cpp b/xlive/Blam/Engine/math/matrix_math.cpp index 0f3fc56e7..85e1eba2c 100644 --- a/xlive/Blam/Engine/math/matrix_math.cpp +++ b/xlive/Blam/Engine/math/matrix_math.cpp @@ -126,7 +126,7 @@ real_vector3d* matrix4x3_transform_vector(const real_matrix4x3* matrix, const re return out; } -real_matrix4x3* matrix4x3_rotation_from_angles(real_matrix4x3* matrix, real32 i, real32 j, real32 k) +void matrix4x3_rotation_from_angles(real_matrix4x3* matrix, real32 i, real32 j, real32 k) { matrix->scale = 1.0f; @@ -152,10 +152,9 @@ real_matrix4x3* matrix4x3_rotation_from_angles(real_matrix4x3* matrix, real32 i, matrix->position.x = 0.0f; matrix->position.y = 0.0f; matrix->position.z = 0.0f; - return matrix; } -real_matrix4x3* __cdecl matrix4x3_rotation_from_axis_and_angle(real_matrix4x3* matrix, real_vector3d* vector, real32 axis, real32 angle) +void __cdecl matrix4x3_rotation_from_axis_and_angle(real_matrix4x3* matrix, real_vector3d* vector, real32 axis, real32 angle) { return INVOKE(0x775C1, 0x751B7, matrix4x3_rotation_from_axis_and_angle, matrix, vector, axis, angle); } diff --git a/xlive/Blam/Engine/math/matrix_math.h b/xlive/Blam/Engine/math/matrix_math.h index 5cf85a2e0..63ac6344a 100644 --- a/xlive/Blam/Engine/math/matrix_math.h +++ b/xlive/Blam/Engine/math/matrix_math.h @@ -40,9 +40,9 @@ real_point3d* matrix4x3_transform_point(const real_matrix4x3* matrix, const real real_vector3d* matrix4x3_transform_vector(const real_matrix4x3* matrix, const real_vector3d* in, real_vector3d* out); -real_matrix4x3* matrix4x3_rotation_from_angles(real_matrix4x3* matrix, real32 i, real32 j, real32 k); +void matrix4x3_rotation_from_angles(real_matrix4x3* matrix, real32 i, real32 j, real32 k); -real_matrix4x3* __cdecl matrix4x3_rotation_from_axis_and_angle(real_matrix4x3* matrix, real_vector3d* vector, real32 axis, real32 angle); +void __cdecl matrix4x3_rotation_from_axis_and_angle(real_matrix4x3* matrix, real_vector3d* vector, real32 axis, real32 angle); void matrix4x3_interpolate(const real_matrix4x3* previous, const real_matrix4x3* target, real32 fractional_ticks, real_matrix4x3* out_mat); diff --git a/xlive/Blam/Engine/math/random_direction_table.h b/xlive/Blam/Engine/math/random_direction_table.h new file mode 100644 index 000000000..65aa61242 --- /dev/null +++ b/xlive/Blam/Engine/math/random_direction_table.h @@ -0,0 +1,1033 @@ +#pragma once + +#define k_random_direction_table_size 1026 + +static const real_vector3d g_random_direction_table[k_random_direction_table_size] = +{ + { 0.0, 0.0, 1.0 }, + { 0.0, 1.0, 0.0 }, + { 1.0, 0.0, 0.0 }, + { 0.0, -1.0, 0.0 }, + { -1.0, 0.0, 0.0 }, + { 0.0, 0.0, -1.0 }, + { 0.066519, 0.0, 0.99778497 }, + { 0.14142101, 0.0, 0.98995 }, + { 0.22486, 0.0, 0.97439098 }, + { 0.316228, 0.0, 0.94868302 }, + { 0.41380301, 0.0, 0.910366 }, + { 0.51449603, 0.0, 0.85749298 }, + { 0.61394101, 0.0, 0.789352 }, + { 0.70710701, 0.0, 0.70710701 }, + { 0.789352, 0.0, 0.61394101 }, + { 0.85749298, 0.0, 0.51449603 }, + { 0.910366, 0.0, 0.41380301 }, + { 0.94868302, 0.0, 0.316228 }, + { 0.97439098, 0.0, 0.22486 }, + { 0.98995, 0.0, 0.14142101 }, + { 0.99778497, 0.0, 0.066519 }, + { 0.0, 0.066519, 0.99778497 }, + { 0.0, 0.14142101, 0.98995 }, + { 0.0, 0.22486, 0.97439098 }, + { 0.0, 0.316228, 0.94868302 }, + { 0.0, 0.41380301, 0.910366 }, + { 0.0, 0.51449603, 0.85749298 }, + { 0.0, 0.61394101, 0.789352 }, + { 0.0, 0.70710701, 0.70710701 }, + { 0.0, 0.789352, 0.61394101 }, + { 0.0, 0.85749298, 0.51449603 }, + { 0.0, 0.910366, 0.41380301 }, + { 0.0, 0.94868302, 0.316228 }, + { 0.0, 0.97439098, 0.22486 }, + { 0.0, 0.98995, 0.14142101 }, + { 0.0, 0.99778497, 0.066519 }, + { 0.071066998, 0.071066998, 0.994937 }, + { 0.15162, 0.07581, 0.98552799 }, + { 0.07581, 0.15162, 0.98552799 }, + { 0.24174701, 0.080582, 0.96698701 }, + { 0.162221, 0.162221, 0.97332799 }, + { 0.080582, 0.24174701, 0.96698701 }, + { 0.34050301, 0.085125998, 0.936382 }, + { 0.259161, 0.172774, 0.95025498 }, + { 0.172774, 0.259161, 0.95025498 }, + { 0.085125998, 0.34050301, 0.936382 }, + { 0.44543499, 0.089087002, 0.89087099 }, + { 0.36514801, 0.182574, 0.912871 }, + { 0.27617201, 0.27617201, 0.92057502 }, + { 0.182574, 0.36514801, 0.912871 }, + { 0.089087002, 0.44543499, 0.89087099 }, + { 0.55234498, 0.092056997, 0.82851702 }, + { 0.476731, 0.19069301, 0.85811597 }, + { 0.38851401, 0.29138601, 0.87415701 }, + { 0.29138601, 0.38851401, 0.87415701 }, + { 0.19069199, 0.476731, 0.85811597 }, + { 0.092056997, 0.55234498, 0.82851702 }, + { 0.65561002, 0.093658999, 0.74926901 }, + { 0.58834797, 0.196116, 0.78446501 }, + { 0.50507599, 0.30304599, 0.80812198 }, + { 0.40824801, 0.40824801, 0.81649703 }, + { 0.30304599, 0.50507599, 0.80812198 }, + { 0.196116, 0.58834797, 0.78446501 }, + { 0.093658999, 0.65561002, 0.74926901 }, + { 0.74926901, 0.093658999, 0.65561002 }, + { 0.69310302, 0.19802999, 0.69310302 }, + { 0.61885297, 0.30942601, 0.721995 }, + { 0.52704602, 0.421637, 0.73786497 }, + { 0.421637, 0.52704602, 0.73786497 }, + { 0.30942601, 0.61885297, 0.721995 }, + { 0.198029, 0.69310302, 0.69310302 }, + { 0.093658999, 0.74926901, 0.65561002 }, + { 0.82851702, 0.092056997, 0.55234498 }, + { 0.78446501, 0.196116, 0.58834797 }, + { 0.721995, 0.30942601, 0.61885297 }, + { 0.63960201, 0.42640099, 0.63960201 }, + { 0.53916401, 0.53916401, 0.64699697 }, + { 0.42640099, 0.63960201, 0.63960201 }, + { 0.30942601, 0.721995, 0.61885297 }, + { 0.196116, 0.78446501, 0.58834797 }, + { 0.092056997, 0.82851702, 0.55234498 }, + { 0.89087099, 0.089087002, 0.44543499 }, + { 0.85811597, 0.19069301, 0.476731 }, + { 0.80812198, 0.30304599, 0.50507599 }, + { 0.73786497, 0.421637, 0.52704602 }, + { 0.64699697, 0.53916401, 0.53916401 }, + { 0.53916401, 0.64699697, 0.53916401 }, + { 0.421637, 0.73786497, 0.52704602 }, + { 0.30304599, 0.80812198, 0.50507599 }, + { 0.19069301, 0.85811597, 0.476731 }, + { 0.089087002, 0.89087099, 0.44543499 }, + { 0.936382, 0.085125998, 0.34050301 }, + { 0.912871, 0.182574, 0.36514801 }, + { 0.87415701, 0.29138601, 0.38851401 }, + { 0.81649703, 0.40824801, 0.40824801 }, + { 0.73786497, 0.52704602, 0.421637 }, + { 0.63960201, 0.63960201, 0.42640099 }, + { 0.52704602, 0.73786497, 0.421637 }, + { 0.40824801, 0.81649703, 0.40824801 }, + { 0.29138601, 0.87415701, 0.38851401 }, + { 0.182574, 0.912871, 0.36514801 }, + { 0.085125998, 0.936382, 0.34050301 }, + { 0.96698803, 0.080582, 0.24174701 }, + { 0.95025498, 0.172774, 0.259161 }, + { 0.92057502, 0.27617201, 0.27617201 }, + { 0.87415701, 0.38851401, 0.29138601 }, + { 0.80812198, 0.50507599, 0.30304599 }, + { 0.721995, 0.61885297, 0.30942601 }, + { 0.61885297, 0.721995, 0.30942601 }, + { 0.50507599, 0.80812198, 0.30304599 }, + { 0.38851401, 0.87415701, 0.29138601 }, + { 0.27617201, 0.92057502, 0.27617201 }, + { 0.172774, 0.95025498, 0.259161 }, + { 0.080582, 0.96698803, 0.24174701 }, + { 0.98552698, 0.07581, 0.15162 }, + { 0.97332901, 0.162221, 0.162221 }, + { 0.95025498, 0.259161, 0.172774 }, + { 0.912871, 0.36514801, 0.182574 }, + { 0.85811597, 0.476731, 0.19069301 }, + { 0.78446501, 0.58834797, 0.196116 }, + { 0.69310302, 0.69310302, 0.19802999 }, + { 0.58834797, 0.78446501, 0.196116 }, + { 0.476731, 0.85811597, 0.19069301 }, + { 0.36514801, 0.912871, 0.182574 }, + { 0.259161, 0.95025498, 0.172774 }, + { 0.162221, 0.97332901, 0.162221 }, + { 0.07581, 0.98552698, 0.15162 }, + { 0.994937, 0.071066998, 0.071066998 }, + { 0.98552698, 0.15162, 0.07581 }, + { 0.96698803, 0.24174701, 0.080582 }, + { 0.936382, 0.34050301, 0.085125998 }, + { 0.89087099, 0.44543499, 0.089087002 }, + { 0.82851702, 0.55234498, 0.092056997 }, + { 0.74926901, 0.65561002, 0.093658999 }, + { 0.65561002, 0.74926901, 0.093658999 }, + { 0.55234498, 0.82851702, 0.092056997 }, + { 0.44543499, 0.89087099, 0.089087002 }, + { 0.34050301, 0.936382, 0.085125998 }, + { 0.24174701, 0.96698803, 0.080582 }, + { 0.15162, 0.98552698, 0.07581 }, + { 0.071066998, 0.994937, 0.071066998 }, + { 0.066519, 0.99778497, 0.0 }, + { 0.14142101, 0.98995, 0.0 }, + { 0.22486, 0.97439098, 0.0 }, + { 0.316228, 0.94868302, 0.0 }, + { 0.41380301, 0.910366, 0.0 }, + { 0.51449603, 0.85749298, 0.0 }, + { 0.61394101, 0.789352, 0.0 }, + { 0.70710701, 0.70710701, 0.0 }, + { 0.789352, 0.61394101, 0.0 }, + { 0.85749298, 0.51449603, 0.0 }, + { 0.910366, 0.41380301, 0.0 }, + { 0.94868302, 0.316228, 0.0 }, + { 0.97439098, 0.22486, 0.0 }, + { 0.98995, 0.14142101, 0.0 }, + { 0.99778497, 0.066519, 0.0 }, + { 0.0, -0.066519, 0.99778497 }, + { 0.0, -0.14142101, 0.98995 }, + { 0.0, -0.22486, 0.97439098 }, + { 0.0, -0.316228, 0.94868302 }, + { 0.0, -0.41380301, 0.910366 }, + { 0.0, -0.51449603, 0.85749298 }, + { 0.0, -0.61394101, 0.789352 }, + { 0.0, -0.70710701, 0.70710701 }, + { 0.0, -0.789352, 0.61394101 }, + { 0.0, -0.85749298, 0.51449603 }, + { 0.0, -0.910366, 0.41380301 }, + { 0.0, -0.94868302, 0.316228 }, + { 0.0, -0.97439098, 0.22486 }, + { 0.0, -0.98995, 0.14142101 }, + { 0.0, -0.99778497, 0.066519 }, + { 0.071066998, -0.071066998, 0.994937 }, + { 0.07581, -0.15162, 0.98552799 }, + { 0.15162, -0.07581, 0.98552799 }, + { 0.080582, -0.24174701, 0.96698701 }, + { 0.162221, -0.162221, 0.97332799 }, + { 0.24174701, -0.080582, 0.96698701 }, + { 0.085125998, -0.34050301, 0.936382 }, + { 0.172774, -0.259161, 0.95025498 }, + { 0.259161, -0.172774, 0.95025498 }, + { 0.34050301, -0.085125998, 0.936382 }, + { 0.089087002, -0.44543499, 0.89087099 }, + { 0.182574, -0.36514801, 0.912871 }, + { 0.27617201, -0.27617201, 0.92057502 }, + { 0.36514801, -0.182574, 0.912871 }, + { 0.44543499, -0.089087002, 0.89087099 }, + { 0.092056997, -0.55234498, 0.82851702 }, + { 0.19069301, -0.476731, 0.85811597 }, + { 0.29138601, -0.38851401, 0.87415701 }, + { 0.38851401, -0.29138601, 0.87415701 }, + { 0.476731, -0.19069199, 0.85811597 }, + { 0.55234498, -0.092056997, 0.82851702 }, + { 0.093658999, -0.65561002, 0.74926901 }, + { 0.196116, -0.58834797, 0.78446501 }, + { 0.30304599, -0.50507599, 0.80812198 }, + { 0.40824801, -0.40824801, 0.81649703 }, + { 0.50507599, -0.30304599, 0.80812198 }, + { 0.58834797, -0.196116, 0.78446501 }, + { 0.65561002, -0.093658999, 0.74926901 }, + { 0.093658999, -0.74926901, 0.65561002 }, + { 0.19802999, -0.69310302, 0.69310302 }, + { 0.30942601, -0.61885297, 0.721995 }, + { 0.421637, -0.52704602, 0.73786497 }, + { 0.52704602, -0.421637, 0.73786497 }, + { 0.61885297, -0.30942601, 0.721995 }, + { 0.69310302, -0.198029, 0.69310302 }, + { 0.74926901, -0.093658999, 0.65561002 }, + { 0.092056997, -0.82851702, 0.55234498 }, + { 0.196116, -0.78446501, 0.58834797 }, + { 0.30942601, -0.721995, 0.61885297 }, + { 0.42640099, -0.63960201, 0.63960201 }, + { 0.53916401, -0.53916401, 0.64699697 }, + { 0.63960201, -0.42640099, 0.63960201 }, + { 0.721995, -0.30942601, 0.61885297 }, + { 0.78446501, -0.196116, 0.58834797 }, + { 0.82851702, -0.092056997, 0.55234498 }, + { 0.089087002, -0.89087099, 0.44543499 }, + { 0.19069301, -0.85811597, 0.476731 }, + { 0.30304599, -0.80812198, 0.50507599 }, + { 0.421637, -0.73786497, 0.52704602 }, + { 0.53916401, -0.64699697, 0.53916401 }, + { 0.64699697, -0.53916401, 0.53916401 }, + { 0.73786497, -0.421637, 0.52704602 }, + { 0.80812198, -0.30304599, 0.50507599 }, + { 0.85811597, -0.19069301, 0.476731 }, + { 0.89087099, -0.089087002, 0.44543499 }, + { 0.085125998, -0.936382, 0.34050301 }, + { 0.182574, -0.912871, 0.36514801 }, + { 0.29138601, -0.87415701, 0.38851401 }, + { 0.40824801, -0.81649703, 0.40824801 }, + { 0.52704602, -0.73786497, 0.421637 }, + { 0.63960201, -0.63960201, 0.42640099 }, + { 0.73786497, -0.52704602, 0.421637 }, + { 0.81649703, -0.40824801, 0.40824801 }, + { 0.87415701, -0.29138601, 0.38851401 }, + { 0.912871, -0.182574, 0.36514801 }, + { 0.936382, -0.085125998, 0.34050301 }, + { 0.080582, -0.96698803, 0.24174701 }, + { 0.172774, -0.95025498, 0.259161 }, + { 0.27617201, -0.92057502, 0.27617201 }, + { 0.38851401, -0.87415701, 0.29138601 }, + { 0.50507599, -0.80812198, 0.30304599 }, + { 0.61885297, -0.721995, 0.30942601 }, + { 0.721995, -0.61885297, 0.30942601 }, + { 0.80812198, -0.50507599, 0.30304599 }, + { 0.87415701, -0.38851401, 0.29138601 }, + { 0.92057502, -0.27617201, 0.27617201 }, + { 0.95025498, -0.172774, 0.259161 }, + { 0.96698803, -0.080582, 0.24174701 }, + { 0.07581, -0.98552698, 0.15162 }, + { 0.162221, -0.97332901, 0.162221 }, + { 0.259161, -0.95025498, 0.172774 }, + { 0.36514801, -0.912871, 0.182574 }, + { 0.476731, -0.85811597, 0.19069301 }, + { 0.58834797, -0.78446501, 0.196116 }, + { 0.69310302, -0.69310302, 0.19802999 }, + { 0.78446501, -0.58834797, 0.196116 }, + { 0.85811597, -0.476731, 0.19069301 }, + { 0.912871, -0.36514801, 0.182574 }, + { 0.95025498, -0.259161, 0.172774 }, + { 0.97332901, -0.162221, 0.162221 }, + { 0.98552698, -0.07581, 0.15162 }, + { 0.071066998, -0.994937, 0.071066998 }, + { 0.15162, -0.98552698, 0.07581 }, + { 0.24174701, -0.96698803, 0.080582 }, + { 0.34050301, -0.936382, 0.085125998 }, + { 0.44543499, -0.89087099, 0.089087002 }, + { 0.55234498, -0.82851702, 0.092056997 }, + { 0.65561002, -0.74926901, 0.093658999 }, + { 0.74926901, -0.65561002, 0.093658999 }, + { 0.82851702, -0.55234498, 0.092056997 }, + { 0.89087099, -0.44543499, 0.089087002 }, + { 0.936382, -0.34050301, 0.085125998 }, + { 0.96698803, -0.24174701, 0.080582 }, + { 0.98552698, -0.15162, 0.07581 }, + { 0.994937, -0.071066998, 0.071066998 }, + { 0.99778497, -0.066519, 0.0 }, + { 0.98995, -0.14142101, 0.0 }, + { 0.97439098, -0.22486, 0.0 }, + { 0.94868302, -0.316228, 0.0 }, + { 0.910366, -0.41380301, 0.0 }, + { 0.85749298, -0.51449603, 0.0 }, + { 0.789352, -0.61394101, 0.0 }, + { 0.70710701, -0.70710701, 0.0 }, + { 0.61394101, -0.789352, 0.0 }, + { 0.51449603, -0.85749298, 0.0 }, + { 0.41380301, -0.910366, 0.0 }, + { 0.316228, -0.94868302, 0.0 }, + { 0.22486, -0.97439098, 0.0 }, + { 0.14142101, -0.98995, 0.0 }, + { 0.066519, -0.99778497, 0.0 }, + { -0.066519, 0.0, 0.99778497 }, + { -0.14142101, 0.0, 0.98995 }, + { -0.22486, 0.0, 0.97439098 }, + { -0.316228, 0.0, 0.94868302 }, + { -0.41380301, 0.0, 0.910366 }, + { -0.51449603, 0.0, 0.85749298 }, + { -0.61394101, 0.0, 0.789352 }, + { -0.70710701, 0.0, 0.70710701 }, + { -0.789352, 0.0, 0.61394101 }, + { -0.85749298, 0.0, 0.51449603 }, + { -0.910366, 0.0, 0.41380301 }, + { -0.94868302, 0.0, 0.316228 }, + { -0.97439098, 0.0, 0.22486 }, + { -0.98995, 0.0, 0.14142101 }, + { -0.99778497, 0.0, 0.066519 }, + { -0.071066998, -0.071066998, 0.994937 }, + { -0.15162, -0.07581, 0.98552799 }, + { -0.07581, -0.15162, 0.98552799 }, + { -0.24174701, -0.080582, 0.96698701 }, + { -0.162221, -0.162221, 0.97332799 }, + { -0.080582, -0.24174701, 0.96698701 }, + { -0.34050301, -0.085125998, 0.936382 }, + { -0.259161, -0.172774, 0.95025498 }, + { -0.172774, -0.259161, 0.95025498 }, + { -0.085125998, -0.34050301, 0.936382 }, + { -0.44543499, -0.089087002, 0.89087099 }, + { -0.36514801, -0.182574, 0.912871 }, + { -0.27617201, -0.27617201, 0.92057502 }, + { -0.182574, -0.36514801, 0.912871 }, + { -0.089087002, -0.44543499, 0.89087099 }, + { -0.55234498, -0.092056997, 0.82851702 }, + { -0.476731, -0.19069301, 0.85811597 }, + { -0.38851401, -0.29138601, 0.87415701 }, + { -0.29138601, -0.38851401, 0.87415701 }, + { -0.19069199, -0.476731, 0.85811597 }, + { -0.092056997, -0.55234498, 0.82851702 }, + { -0.65561002, -0.093658999, 0.74926901 }, + { -0.58834797, -0.196116, 0.78446501 }, + { -0.50507599, -0.30304599, 0.80812198 }, + { -0.40824801, -0.40824801, 0.81649703 }, + { -0.30304599, -0.50507599, 0.80812198 }, + { -0.196116, -0.58834797, 0.78446501 }, + { -0.093658999, -0.65561002, 0.74926901 }, + { -0.74926901, -0.093658999, 0.65561002 }, + { -0.69310302, -0.19802999, 0.69310302 }, + { -0.61885297, -0.30942601, 0.721995 }, + { -0.52704602, -0.421637, 0.73786497 }, + { -0.421637, -0.52704602, 0.73786497 }, + { -0.30942601, -0.61885297, 0.721995 }, + { -0.198029, -0.69310302, 0.69310302 }, + { -0.093658999, -0.74926901, 0.65561002 }, + { -0.82851702, -0.092056997, 0.55234498 }, + { -0.78446501, -0.196116, 0.58834797 }, + { -0.721995, -0.30942601, 0.61885297 }, + { -0.63960201, -0.42640099, 0.63960201 }, + { -0.53916401, -0.53916401, 0.64699697 }, + { -0.42640099, -0.63960201, 0.63960201 }, + { -0.30942601, -0.721995, 0.61885297 }, + { -0.196116, -0.78446501, 0.58834797 }, + { -0.092056997, -0.82851702, 0.55234498 }, + { -0.89087099, -0.089087002, 0.44543499 }, + { -0.85811597, -0.19069301, 0.476731 }, + { -0.80812198, -0.30304599, 0.50507599 }, + { -0.73786497, -0.421637, 0.52704602 }, + { -0.64699697, -0.53916401, 0.53916401 }, + { -0.53916401, -0.64699697, 0.53916401 }, + { -0.421637, -0.73786497, 0.52704602 }, + { -0.30304599, -0.80812198, 0.50507599 }, + { -0.19069301, -0.85811597, 0.476731 }, + { -0.089087002, -0.89087099, 0.44543499 }, + { -0.936382, -0.085125998, 0.34050301 }, + { -0.912871, -0.182574, 0.36514801 }, + { -0.87415701, -0.29138601, 0.38851401 }, + { -0.81649703, -0.40824801, 0.40824801 }, + { -0.73786497, -0.52704602, 0.421637 }, + { -0.63960201, -0.63960201, 0.42640099 }, + { -0.52704602, -0.73786497, 0.421637 }, + { -0.40824801, -0.81649703, 0.40824801 }, + { -0.29138601, -0.87415701, 0.38851401 }, + { -0.182574, -0.912871, 0.36514801 }, + { -0.085125998, -0.936382, 0.34050301 }, + { -0.96698803, -0.080582, 0.24174701 }, + { -0.95025498, -0.172774, 0.259161 }, + { -0.92057502, -0.27617201, 0.27617201 }, + { -0.87415701, -0.38851401, 0.29138601 }, + { -0.80812198, -0.50507599, 0.30304599 }, + { -0.721995, -0.61885297, 0.30942601 }, + { -0.61885297, -0.721995, 0.30942601 }, + { -0.50507599, -0.80812198, 0.30304599 }, + { -0.38851401, -0.87415701, 0.29138601 }, + { -0.27617201, -0.92057502, 0.27617201 }, + { -0.172774, -0.95025498, 0.259161 }, + { -0.080582, -0.96698803, 0.24174701 }, + { -0.98552698, -0.07581, 0.15162 }, + { -0.97332901, -0.162221, 0.162221 }, + { -0.95025498, -0.259161, 0.172774 }, + { -0.912871, -0.36514801, 0.182574 }, + { -0.85811597, -0.476731, 0.19069301 }, + { -0.78446501, -0.58834797, 0.196116 }, + { -0.69310302, -0.69310302, 0.19802999 }, + { -0.58834797, -0.78446501, 0.196116 }, + { -0.476731, -0.85811597, 0.19069301 }, + { -0.36514801, -0.912871, 0.182574 }, + { -0.259161, -0.95025498, 0.172774 }, + { -0.162221, -0.97332901, 0.162221 }, + { -0.07581, -0.98552698, 0.15162 }, + { -0.994937, -0.071066998, 0.071066998 }, + { -0.98552698, -0.15162, 0.07581 }, + { -0.96698803, -0.24174701, 0.080582 }, + { -0.936382, -0.34050301, 0.085125998 }, + { -0.89087099, -0.44543499, 0.089087002 }, + { -0.82851702, -0.55234498, 0.092056997 }, + { -0.74926901, -0.65561002, 0.093658999 }, + { -0.65561002, -0.74926901, 0.093658999 }, + { -0.55234498, -0.82851702, 0.092056997 }, + { -0.44543499, -0.89087099, 0.089087002 }, + { -0.34050301, -0.936382, 0.085125998 }, + { -0.24174701, -0.96698803, 0.080582 }, + { -0.15162, -0.98552698, 0.07581 }, + { -0.071066998, -0.994937, 0.071066998 }, + { -0.066519, -0.99778497, 0.0 }, + { -0.14142101, -0.98995, 0.0 }, + { -0.22486, -0.97439098, 0.0 }, + { -0.316228, -0.94868302, 0.0 }, + { -0.41380301, -0.910366, 0.0 }, + { -0.51449603, -0.85749298, 0.0 }, + { -0.61394101, -0.789352, 0.0 }, + { -0.70710701, -0.70710701, 0.0 }, + { -0.789352, -0.61394101, 0.0 }, + { -0.85749298, -0.51449603, 0.0 }, + { -0.910366, -0.41380301, 0.0 }, + { -0.94868302, -0.316228, 0.0 }, + { -0.97439098, -0.22486, 0.0 }, + { -0.98995, -0.14142101, 0.0 }, + { -0.99778497, -0.066519, 0.0 }, + { -0.071066998, 0.071066998, 0.994937 }, + { -0.07581, 0.15162, 0.98552799 }, + { -0.15162, 0.07581, 0.98552799 }, + { -0.080582, 0.24174701, 0.96698701 }, + { -0.162221, 0.162221, 0.97332799 }, + { -0.24174701, 0.080582, 0.96698701 }, + { -0.085125998, 0.34050301, 0.936382 }, + { -0.172774, 0.259161, 0.95025498 }, + { -0.259161, 0.172774, 0.95025498 }, + { -0.34050301, 0.085125998, 0.936382 }, + { -0.089087002, 0.44543499, 0.89087099 }, + { -0.182574, 0.36514801, 0.912871 }, + { -0.27617201, 0.27617201, 0.92057502 }, + { -0.36514801, 0.182574, 0.912871 }, + { -0.44543499, 0.089087002, 0.89087099 }, + { -0.092056997, 0.55234498, 0.82851702 }, + { -0.19069301, 0.476731, 0.85811597 }, + { -0.29138601, 0.38851401, 0.87415701 }, + { -0.38851401, 0.29138601, 0.87415701 }, + { -0.476731, 0.19069199, 0.85811597 }, + { -0.55234498, 0.092056997, 0.82851702 }, + { -0.093658999, 0.65561002, 0.74926901 }, + { -0.196116, 0.58834797, 0.78446501 }, + { -0.30304599, 0.50507599, 0.80812198 }, + { -0.40824801, 0.40824801, 0.81649703 }, + { -0.50507599, 0.30304599, 0.80812198 }, + { -0.58834797, 0.196116, 0.78446501 }, + { -0.65561002, 0.093658999, 0.74926901 }, + { -0.093658999, 0.74926901, 0.65561002 }, + { -0.19802999, 0.69310302, 0.69310302 }, + { -0.30942601, 0.61885297, 0.721995 }, + { -0.421637, 0.52704602, 0.73786497 }, + { -0.52704602, 0.421637, 0.73786497 }, + { -0.61885297, 0.30942601, 0.721995 }, + { -0.69310302, 0.198029, 0.69310302 }, + { -0.74926901, 0.093658999, 0.65561002 }, + { -0.092056997, 0.82851702, 0.55234498 }, + { -0.196116, 0.78446501, 0.58834797 }, + { -0.30942601, 0.721995, 0.61885297 }, + { -0.42640099, 0.63960201, 0.63960201 }, + { -0.53916401, 0.53916401, 0.64699697 }, + { -0.63960201, 0.42640099, 0.63960201 }, + { -0.721995, 0.30942601, 0.61885297 }, + { -0.78446501, 0.196116, 0.58834797 }, + { -0.82851702, 0.092056997, 0.55234498 }, + { -0.089087002, 0.89087099, 0.44543499 }, + { -0.19069301, 0.85811597, 0.476731 }, + { -0.30304599, 0.80812198, 0.50507599 }, + { -0.421637, 0.73786497, 0.52704602 }, + { -0.53916401, 0.64699697, 0.53916401 }, + { -0.64699697, 0.53916401, 0.53916401 }, + { -0.73786497, 0.421637, 0.52704602 }, + { -0.80812198, 0.30304599, 0.50507599 }, + { -0.85811597, 0.19069301, 0.476731 }, + { -0.89087099, 0.089087002, 0.44543499 }, + { -0.085125998, 0.936382, 0.34050301 }, + { -0.182574, 0.912871, 0.36514801 }, + { -0.29138601, 0.87415701, 0.38851401 }, + { -0.40824801, 0.81649703, 0.40824801 }, + { -0.52704602, 0.73786497, 0.421637 }, + { -0.63960201, 0.63960201, 0.42640099 }, + { -0.73786497, 0.52704602, 0.421637 }, + { -0.81649703, 0.40824801, 0.40824801 }, + { -0.87415701, 0.29138601, 0.38851401 }, + { -0.912871, 0.182574, 0.36514801 }, + { -0.936382, 0.085125998, 0.34050301 }, + { -0.080582, 0.96698803, 0.24174701 }, + { -0.172774, 0.95025498, 0.259161 }, + { -0.27617201, 0.92057502, 0.27617201 }, + { -0.38851401, 0.87415701, 0.29138601 }, + { -0.50507599, 0.80812198, 0.30304599 }, + { -0.61885297, 0.721995, 0.30942601 }, + { -0.721995, 0.61885297, 0.30942601 }, + { -0.80812198, 0.50507599, 0.30304599 }, + { -0.87415701, 0.38851401, 0.29138601 }, + { -0.92057502, 0.27617201, 0.27617201 }, + { -0.95025498, 0.172774, 0.259161 }, + { -0.96698803, 0.080582, 0.24174701 }, + { -0.07581, 0.98552698, 0.15162 }, + { -0.162221, 0.97332901, 0.162221 }, + { -0.259161, 0.95025498, 0.172774 }, + { -0.36514801, 0.912871, 0.182574 }, + { -0.476731, 0.85811597, 0.19069301 }, + { -0.58834797, 0.78446501, 0.196116 }, + { -0.69310302, 0.69310302, 0.19802999 }, + { -0.78446501, 0.58834797, 0.196116 }, + { -0.85811597, 0.476731, 0.19069301 }, + { -0.912871, 0.36514801, 0.182574 }, + { -0.95025498, 0.259161, 0.172774 }, + { -0.97332901, 0.162221, 0.162221 }, + { -0.98552698, 0.07581, 0.15162 }, + { -0.071066998, 0.994937, 0.071066998 }, + { -0.15162, 0.98552698, 0.07581 }, + { -0.24174701, 0.96698803, 0.080582 }, + { -0.34050301, 0.936382, 0.085125998 }, + { -0.44543499, 0.89087099, 0.089087002 }, + { -0.55234498, 0.82851702, 0.092056997 }, + { -0.65561002, 0.74926901, 0.093658999 }, + { -0.74926901, 0.65561002, 0.093658999 }, + { -0.82851702, 0.55234498, 0.092056997 }, + { -0.89087099, 0.44543499, 0.089087002 }, + { -0.936382, 0.34050301, 0.085125998 }, + { -0.96698803, 0.24174701, 0.080582 }, + { -0.98552698, 0.15162, 0.07581 }, + { -0.994937, 0.071066998, 0.071066998 }, + { -0.066519, 0.99778497, 0.0 }, + { -0.14142101, 0.98995, 0.0 }, + { -0.22486, 0.97439098, 0.0 }, + { -0.316228, 0.94868302, 0.0 }, + { -0.41380301, 0.910366, 0.0 }, + { -0.51449603, 0.85749298, 0.0 }, + { -0.61394101, 0.789352, 0.0 }, + { -0.70710701, 0.70710701, 0.0 }, + { -0.789352, 0.61394101, 0.0 }, + { -0.85749298, 0.51449603, 0.0 }, + { -0.910366, 0.41380301, 0.0 }, + { -0.94868302, 0.316228, 0.0 }, + { -0.97439098, 0.22486, 0.0 }, + { -0.98995, 0.14142101, 0.0 }, + { -0.99778497, 0.066519, 0.0 }, + { -0.99778497, 0.0, -0.066519 }, + { -0.98995, 0.0, -0.14142101 }, + { -0.97439098, 0.0, -0.22486 }, + { -0.94868302, 0.0, -0.316228 }, + { -0.910366, 0.0, -0.41380301 }, + { -0.85749298, 0.0, -0.51449603 }, + { -0.789352, 0.0, -0.61394101 }, + { -0.70710701, 0.0, -0.70710701 }, + { -0.61394101, 0.0, -0.789352 }, + { -0.51449603, 0.0, -0.85749298 }, + { -0.41380301, 0.0, -0.910366 }, + { -0.316228, 0.0, -0.94868302 }, + { -0.22486, 0.0, -0.97439098 }, + { -0.14142101, 0.0, -0.98995 }, + { -0.066519, 0.0, -0.99778497 }, + { 0.0, 0.99778497, -0.066519 }, + { 0.0, 0.98995, -0.14142101 }, + { 0.0, 0.97439098, -0.22486 }, + { 0.0, 0.94868302, -0.316228 }, + { 0.0, 0.910366, -0.41380301 }, + { 0.0, 0.85749298, -0.51449603 }, + { 0.0, 0.789352, -0.61394101 }, + { 0.0, 0.70710701, -0.70710701 }, + { 0.0, 0.61394101, -0.789352 }, + { 0.0, 0.51449603, -0.85749298 }, + { 0.0, 0.41380301, -0.910366 }, + { 0.0, 0.316228, -0.94868302 }, + { 0.0, 0.22486, -0.97439098 }, + { 0.0, 0.14142101, -0.98995 }, + { 0.0, 0.066519, -0.99778497 }, + { -0.071066998, 0.071066998, -0.994937 }, + { -0.15162, 0.07581, -0.98552799 }, + { -0.07581, 0.15162, -0.98552799 }, + { -0.24174701, 0.080582, -0.96698701 }, + { -0.162221, 0.162221, -0.97332799 }, + { -0.080582, 0.24174701, -0.96698701 }, + { -0.34050301, 0.085125998, -0.936382 }, + { -0.259161, 0.172774, -0.95025498 }, + { -0.172774, 0.259161, -0.95025498 }, + { -0.085125998, 0.34050301, -0.936382 }, + { -0.44543499, 0.089087002, -0.89087099 }, + { -0.36514801, 0.182574, -0.912871 }, + { -0.27617201, 0.27617201, -0.92057502 }, + { -0.182574, 0.36514801, -0.912871 }, + { -0.089087002, 0.44543499, -0.89087099 }, + { -0.55234498, 0.092056997, -0.82851702 }, + { -0.476731, 0.19069301, -0.85811597 }, + { -0.38851401, 0.29138601, -0.87415701 }, + { -0.29138601, 0.38851401, -0.87415701 }, + { -0.19069199, 0.476731, -0.85811597 }, + { -0.092056997, 0.55234498, -0.82851702 }, + { -0.65561002, 0.093658999, -0.74926901 }, + { -0.58834797, 0.196116, -0.78446501 }, + { -0.50507599, 0.30304599, -0.80812198 }, + { -0.40824801, 0.40824801, -0.81649703 }, + { -0.30304599, 0.50507599, -0.80812198 }, + { -0.196116, 0.58834797, -0.78446501 }, + { -0.093658999, 0.65561002, -0.74926901 }, + { -0.74926901, 0.093658999, -0.65561002 }, + { -0.69310302, 0.19802999, -0.69310302 }, + { -0.61885297, 0.30942601, -0.721995 }, + { -0.52704602, 0.421637, -0.73786497 }, + { -0.421637, 0.52704602, -0.73786497 }, + { -0.30942601, 0.61885297, -0.721995 }, + { -0.198029, 0.69310302, -0.69310302 }, + { -0.093658999, 0.74926901, -0.65561002 }, + { -0.82851702, 0.092056997, -0.55234498 }, + { -0.78446501, 0.196116, -0.58834797 }, + { -0.721995, 0.30942601, -0.61885297 }, + { -0.63960201, 0.42640099, -0.63960201 }, + { -0.53916401, 0.53916401, -0.64699697 }, + { -0.42640099, 0.63960201, -0.63960201 }, + { -0.30942601, 0.721995, -0.61885297 }, + { -0.196116, 0.78446501, -0.58834797 }, + { -0.092056997, 0.82851702, -0.55234498 }, + { -0.89087099, 0.089087002, -0.44543499 }, + { -0.85811597, 0.19069301, -0.476731 }, + { -0.80812198, 0.30304599, -0.50507599 }, + { -0.73786497, 0.421637, -0.52704602 }, + { -0.64699697, 0.53916401, -0.53916401 }, + { -0.53916401, 0.64699697, -0.53916401 }, + { -0.421637, 0.73786497, -0.52704602 }, + { -0.30304599, 0.80812198, -0.50507599 }, + { -0.19069301, 0.85811597, -0.476731 }, + { -0.089087002, 0.89087099, -0.44543499 }, + { -0.936382, 0.085125998, -0.34050301 }, + { -0.912871, 0.182574, -0.36514801 }, + { -0.87415701, 0.29138601, -0.38851401 }, + { -0.81649703, 0.40824801, -0.40824801 }, + { -0.73786497, 0.52704602, -0.421637 }, + { -0.63960201, 0.63960201, -0.42640099 }, + { -0.52704602, 0.73786497, -0.421637 }, + { -0.40824801, 0.81649703, -0.40824801 }, + { -0.29138601, 0.87415701, -0.38851401 }, + { -0.182574, 0.912871, -0.36514801 }, + { -0.085125998, 0.936382, -0.34050301 }, + { -0.96698803, 0.080582, -0.24174701 }, + { -0.95025498, 0.172774, -0.259161 }, + { -0.92057502, 0.27617201, -0.27617201 }, + { -0.87415701, 0.38851401, -0.29138601 }, + { -0.80812198, 0.50507599, -0.30304599 }, + { -0.721995, 0.61885297, -0.30942601 }, + { -0.61885297, 0.721995, -0.30942601 }, + { -0.50507599, 0.80812198, -0.30304599 }, + { -0.38851401, 0.87415701, -0.29138601 }, + { -0.27617201, 0.92057502, -0.27617201 }, + { -0.172774, 0.95025498, -0.259161 }, + { -0.080582, 0.96698803, -0.24174701 }, + { -0.98552698, 0.07581, -0.15162 }, + { -0.97332901, 0.162221, -0.162221 }, + { -0.95025498, 0.259161, -0.172774 }, + { -0.912871, 0.36514801, -0.182574 }, + { -0.85811597, 0.476731, -0.19069301 }, + { -0.78446501, 0.58834797, -0.196116 }, + { -0.69310302, 0.69310302, -0.19802999 }, + { -0.58834797, 0.78446501, -0.196116 }, + { -0.476731, 0.85811597, -0.19069301 }, + { -0.36514801, 0.912871, -0.182574 }, + { -0.259161, 0.95025498, -0.172774 }, + { -0.162221, 0.97332901, -0.162221 }, + { -0.07581, 0.98552698, -0.15162 }, + { -0.994937, 0.071066998, -0.071066998 }, + { -0.98552698, 0.15162, -0.07581 }, + { -0.96698803, 0.24174701, -0.080582 }, + { -0.936382, 0.34050301, -0.085125998 }, + { -0.89087099, 0.44543499, -0.089087002 }, + { -0.82851702, 0.55234498, -0.092056997 }, + { -0.74926901, 0.65561002, -0.093658999 }, + { -0.65561002, 0.74926901, -0.093658999 }, + { -0.55234498, 0.82851702, -0.092056997 }, + { -0.44543499, 0.89087099, -0.089087002 }, + { -0.34050301, 0.936382, -0.085125998 }, + { -0.24174701, 0.96698803, -0.080582 }, + { -0.15162, 0.98552698, -0.07581 }, + { -0.071066998, 0.994937, -0.071066998 }, + { 0.0, -0.99778497, -0.066519 }, + { 0.0, -0.98995, -0.14142101 }, + { 0.0, -0.97439098, -0.22486 }, + { 0.0, -0.94868302, -0.316228 }, + { 0.0, -0.910366, -0.41380301 }, + { 0.0, -0.85749298, -0.51449603 }, + { 0.0, -0.789352, -0.61394101 }, + { 0.0, -0.70710701, -0.70710701 }, + { 0.0, -0.61394101, -0.789352 }, + { 0.0, -0.51449603, -0.85749298 }, + { 0.0, -0.41380301, -0.910366 }, + { 0.0, -0.316228, -0.94868302 }, + { 0.0, -0.22486, -0.97439098 }, + { 0.0, -0.14142101, -0.98995 }, + { 0.0, -0.066519, -0.99778497 }, + { -0.071066998, -0.071066998, -0.994937 }, + { -0.07581, -0.15162, -0.98552799 }, + { -0.15162, -0.07581, -0.98552799 }, + { -0.080582, -0.24174701, -0.96698701 }, + { -0.162221, -0.162221, -0.97332799 }, + { -0.24174701, -0.080582, -0.96698701 }, + { -0.085125998, -0.34050301, -0.936382 }, + { -0.172774, -0.259161, -0.95025498 }, + { -0.259161, -0.172774, -0.95025498 }, + { -0.34050301, -0.085125998, -0.936382 }, + { -0.089087002, -0.44543499, -0.89087099 }, + { -0.182574, -0.36514801, -0.912871 }, + { -0.27617201, -0.27617201, -0.92057502 }, + { -0.36514801, -0.182574, -0.912871 }, + { -0.44543499, -0.089087002, -0.89087099 }, + { -0.092056997, -0.55234498, -0.82851702 }, + { -0.19069301, -0.476731, -0.85811597 }, + { -0.29138601, -0.38851401, -0.87415701 }, + { -0.38851401, -0.29138601, -0.87415701 }, + { -0.476731, -0.19069199, -0.85811597 }, + { -0.55234498, -0.092056997, -0.82851702 }, + { -0.093658999, -0.65561002, -0.74926901 }, + { -0.196116, -0.58834797, -0.78446501 }, + { -0.30304599, -0.50507599, -0.80812198 }, + { -0.40824801, -0.40824801, -0.81649703 }, + { -0.50507599, -0.30304599, -0.80812198 }, + { -0.58834797, -0.196116, -0.78446501 }, + { -0.65561002, -0.093658999, -0.74926901 }, + { -0.093658999, -0.74926901, -0.65561002 }, + { -0.19802999, -0.69310302, -0.69310302 }, + { -0.30942601, -0.61885297, -0.721995 }, + { -0.421637, -0.52704602, -0.73786497 }, + { -0.52704602, -0.421637, -0.73786497 }, + { -0.61885297, -0.30942601, -0.721995 }, + { -0.69310302, -0.198029, -0.69310302 }, + { -0.74926901, -0.093658999, -0.65561002 }, + { -0.092056997, -0.82851702, -0.55234498 }, + { -0.196116, -0.78446501, -0.58834797 }, + { -0.30942601, -0.721995, -0.61885297 }, + { -0.42640099, -0.63960201, -0.63960201 }, + { -0.53916401, -0.53916401, -0.64699697 }, + { -0.63960201, -0.42640099, -0.63960201 }, + { -0.721995, -0.30942601, -0.61885297 }, + { -0.78446501, -0.196116, -0.58834797 }, + { -0.82851702, -0.092056997, -0.55234498 }, + { -0.089087002, -0.89087099, -0.44543499 }, + { -0.19069301, -0.85811597, -0.476731 }, + { -0.30304599, -0.80812198, -0.50507599 }, + { -0.421637, -0.73786497, -0.52704602 }, + { -0.53916401, -0.64699697, -0.53916401 }, + { -0.64699697, -0.53916401, -0.53916401 }, + { -0.73786497, -0.421637, -0.52704602 }, + { -0.80812198, -0.30304599, -0.50507599 }, + { -0.85811597, -0.19069301, -0.476731 }, + { -0.89087099, -0.089087002, -0.44543499 }, + { -0.085125998, -0.936382, -0.34050301 }, + { -0.182574, -0.912871, -0.36514801 }, + { -0.29138601, -0.87415701, -0.38851401 }, + { -0.40824801, -0.81649703, -0.40824801 }, + { -0.52704602, -0.73786497, -0.421637 }, + { -0.63960201, -0.63960201, -0.42640099 }, + { -0.73786497, -0.52704602, -0.421637 }, + { -0.81649703, -0.40824801, -0.40824801 }, + { -0.87415701, -0.29138601, -0.38851401 }, + { -0.912871, -0.182574, -0.36514801 }, + { -0.936382, -0.085125998, -0.34050301 }, + { -0.080582, -0.96698803, -0.24174701 }, + { -0.172774, -0.95025498, -0.259161 }, + { -0.27617201, -0.92057502, -0.27617201 }, + { -0.38851401, -0.87415701, -0.29138601 }, + { -0.50507599, -0.80812198, -0.30304599 }, + { -0.61885297, -0.721995, -0.30942601 }, + { -0.721995, -0.61885297, -0.30942601 }, + { -0.80812198, -0.50507599, -0.30304599 }, + { -0.87415701, -0.38851401, -0.29138601 }, + { -0.92057502, -0.27617201, -0.27617201 }, + { -0.95025498, -0.172774, -0.259161 }, + { -0.96698803, -0.080582, -0.24174701 }, + { -0.07581, -0.98552698, -0.15162 }, + { -0.162221, -0.97332901, -0.162221 }, + { -0.259161, -0.95025498, -0.172774 }, + { -0.36514801, -0.912871, -0.182574 }, + { -0.476731, -0.85811597, -0.19069301 }, + { -0.58834797, -0.78446501, -0.196116 }, + { -0.69310302, -0.69310302, -0.19802999 }, + { -0.78446501, -0.58834797, -0.196116 }, + { -0.85811597, -0.476731, -0.19069301 }, + { -0.912871, -0.36514801, -0.182574 }, + { -0.95025498, -0.259161, -0.172774 }, + { -0.97332901, -0.162221, -0.162221 }, + { -0.98552698, -0.07581, -0.15162 }, + { -0.071066998, -0.994937, -0.071066998 }, + { -0.15162, -0.98552698, -0.07581 }, + { -0.24174701, -0.96698803, -0.080582 }, + { -0.34050301, -0.936382, -0.085125998 }, + { -0.44543499, -0.89087099, -0.089087002 }, + { -0.55234498, -0.82851702, -0.092056997 }, + { -0.65561002, -0.74926901, -0.093658999 }, + { -0.74926901, -0.65561002, -0.093658999 }, + { -0.82851702, -0.55234498, -0.092056997 }, + { -0.89087099, -0.44543499, -0.089087002 }, + { -0.936382, -0.34050301, -0.085125998 }, + { -0.96698803, -0.24174701, -0.080582 }, + { -0.98552698, -0.15162, -0.07581 }, + { -0.994937, -0.071066998, -0.071066998 }, + { 0.99778497, 0.0, -0.066519 }, + { 0.98995, 0.0, -0.14142101 }, + { 0.97439098, 0.0, -0.22486 }, + { 0.94868302, 0.0, -0.316228 }, + { 0.910366, 0.0, -0.41380301 }, + { 0.85749298, 0.0, -0.51449603 }, + { 0.789352, 0.0, -0.61394101 }, + { 0.70710701, 0.0, -0.70710701 }, + { 0.61394101, 0.0, -0.789352 }, + { 0.51449603, 0.0, -0.85749298 }, + { 0.41380301, 0.0, -0.910366 }, + { 0.316228, 0.0, -0.94868302 }, + { 0.22486, 0.0, -0.97439098 }, + { 0.14142101, 0.0, -0.98995 }, + { 0.066519, 0.0, -0.99778497 }, + { 0.071066998, -0.071066998, -0.994937 }, + { 0.15162, -0.07581, -0.98552799 }, + { 0.07581, -0.15162, -0.98552799 }, + { 0.24174701, -0.080582, -0.96698701 }, + { 0.162221, -0.162221, -0.97332799 }, + { 0.080582, -0.24174701, -0.96698701 }, + { 0.34050301, -0.085125998, -0.936382 }, + { 0.259161, -0.172774, -0.95025498 }, + { 0.172774, -0.259161, -0.95025498 }, + { 0.085125998, -0.34050301, -0.936382 }, + { 0.44543499, -0.089087002, -0.89087099 }, + { 0.36514801, -0.182574, -0.912871 }, + { 0.27617201, -0.27617201, -0.92057502 }, + { 0.182574, -0.36514801, -0.912871 }, + { 0.089087002, -0.44543499, -0.89087099 }, + { 0.55234498, -0.092056997, -0.82851702 }, + { 0.476731, -0.19069301, -0.85811597 }, + { 0.38851401, -0.29138601, -0.87415701 }, + { 0.29138601, -0.38851401, -0.87415701 }, + { 0.19069199, -0.476731, -0.85811597 }, + { 0.092056997, -0.55234498, -0.82851702 }, + { 0.65561002, -0.093658999, -0.74926901 }, + { 0.58834797, -0.196116, -0.78446501 }, + { 0.50507599, -0.30304599, -0.80812198 }, + { 0.40824801, -0.40824801, -0.81649703 }, + { 0.30304599, -0.50507599, -0.80812198 }, + { 0.196116, -0.58834797, -0.78446501 }, + { 0.093658999, -0.65561002, -0.74926901 }, + { 0.74926901, -0.093658999, -0.65561002 }, + { 0.69310302, -0.19802999, -0.69310302 }, + { 0.61885297, -0.30942601, -0.721995 }, + { 0.52704602, -0.421637, -0.73786497 }, + { 0.421637, -0.52704602, -0.73786497 }, + { 0.30942601, -0.61885297, -0.721995 }, + { 0.198029, -0.69310302, -0.69310302 }, + { 0.093658999, -0.74926901, -0.65561002 }, + { 0.82851702, -0.092056997, -0.55234498 }, + { 0.78446501, -0.196116, -0.58834797 }, + { 0.721995, -0.30942601, -0.61885297 }, + { 0.63960201, -0.42640099, -0.63960201 }, + { 0.53916401, -0.53916401, -0.64699697 }, + { 0.42640099, -0.63960201, -0.63960201 }, + { 0.30942601, -0.721995, -0.61885297 }, + { 0.196116, -0.78446501, -0.58834797 }, + { 0.092056997, -0.82851702, -0.55234498 }, + { 0.89087099, -0.089087002, -0.44543499 }, + { 0.85811597, -0.19069301, -0.476731 }, + { 0.80812198, -0.30304599, -0.50507599 }, + { 0.73786497, -0.421637, -0.52704602 }, + { 0.64699697, -0.53916401, -0.53916401 }, + { 0.53916401, -0.64699697, -0.53916401 }, + { 0.421637, -0.73786497, -0.52704602 }, + { 0.30304599, -0.80812198, -0.50507599 }, + { 0.19069301, -0.85811597, -0.476731 }, + { 0.089087002, -0.89087099, -0.44543499 }, + { 0.936382, -0.085125998, -0.34050301 }, + { 0.912871, -0.182574, -0.36514801 }, + { 0.87415701, -0.29138601, -0.38851401 }, + { 0.81649703, -0.40824801, -0.40824801 }, + { 0.73786497, -0.52704602, -0.421637 }, + { 0.63960201, -0.63960201, -0.42640099 }, + { 0.52704602, -0.73786497, -0.421637 }, + { 0.40824801, -0.81649703, -0.40824801 }, + { 0.29138601, -0.87415701, -0.38851401 }, + { 0.182574, -0.912871, -0.36514801 }, + { 0.085125998, -0.936382, -0.34050301 }, + { 0.96698803, -0.080582, -0.24174701 }, + { 0.95025498, -0.172774, -0.259161 }, + { 0.92057502, -0.27617201, -0.27617201 }, + { 0.87415701, -0.38851401, -0.29138601 }, + { 0.80812198, -0.50507599, -0.30304599 }, + { 0.721995, -0.61885297, -0.30942601 }, + { 0.61885297, -0.721995, -0.30942601 }, + { 0.50507599, -0.80812198, -0.30304599 }, + { 0.38851401, -0.87415701, -0.29138601 }, + { 0.27617201, -0.92057502, -0.27617201 }, + { 0.172774, -0.95025498, -0.259161 }, + { 0.080582, -0.96698803, -0.24174701 }, + { 0.98552698, -0.07581, -0.15162 }, + { 0.97332901, -0.162221, -0.162221 }, + { 0.95025498, -0.259161, -0.172774 }, + { 0.912871, -0.36514801, -0.182574 }, + { 0.85811597, -0.476731, -0.19069301 }, + { 0.78446501, -0.58834797, -0.196116 }, + { 0.69310302, -0.69310302, -0.19802999 }, + { 0.58834797, -0.78446501, -0.196116 }, + { 0.476731, -0.85811597, -0.19069301 }, + { 0.36514801, -0.912871, -0.182574 }, + { 0.259161, -0.95025498, -0.172774 }, + { 0.162221, -0.97332901, -0.162221 }, + { 0.07581, -0.98552698, -0.15162 }, + { 0.994937, -0.071066998, -0.071066998 }, + { 0.98552698, -0.15162, -0.07581 }, + { 0.96698803, -0.24174701, -0.080582 }, + { 0.936382, -0.34050301, -0.085125998 }, + { 0.89087099, -0.44543499, -0.089087002 }, + { 0.82851702, -0.55234498, -0.092056997 }, + { 0.74926901, -0.65561002, -0.093658999 }, + { 0.65561002, -0.74926901, -0.093658999 }, + { 0.55234498, -0.82851702, -0.092056997 }, + { 0.44543499, -0.89087099, -0.089087002 }, + { 0.34050301, -0.936382, -0.085125998 }, + { 0.24174701, -0.96698803, -0.080582 }, + { 0.15162, -0.98552698, -0.07581 }, + { 0.071066998, -0.994937, -0.071066998 }, + { 0.071066998, 0.071066998, -0.994937 }, + { 0.07581, 0.15162, -0.98552799 }, + { 0.15162, 0.07581, -0.98552799 }, + { 0.080582, 0.24174701, -0.96698701 }, + { 0.162221, 0.162221, -0.97332799 }, + { 0.24174701, 0.080582, -0.96698701 }, + { 0.085125998, 0.34050301, -0.936382 }, + { 0.172774, 0.259161, -0.95025498 }, + { 0.259161, 0.172774, -0.95025498 }, + { 0.34050301, 0.085125998, -0.936382 }, + { 0.089087002, 0.44543499, -0.89087099 }, + { 0.182574, 0.36514801, -0.912871 }, + { 0.27617201, 0.27617201, -0.92057502 }, + { 0.36514801, 0.182574, -0.912871 }, + { 0.44543499, 0.089087002, -0.89087099 }, + { 0.092056997, 0.55234498, -0.82851702 }, + { 0.19069301, 0.476731, -0.85811597 }, + { 0.29138601, 0.38851401, -0.87415701 }, + { 0.38851401, 0.29138601, -0.87415701 }, + { 0.476731, 0.19069199, -0.85811597 }, + { 0.55234498, 0.092056997, -0.82851702 }, + { 0.093658999, 0.65561002, -0.74926901 }, + { 0.196116, 0.58834797, -0.78446501 }, + { 0.30304599, 0.50507599, -0.80812198 }, + { 0.40824801, 0.40824801, -0.81649703 }, + { 0.50507599, 0.30304599, -0.80812198 }, + { 0.58834797, 0.196116, -0.78446501 }, + { 0.65561002, 0.093658999, -0.74926901 }, + { 0.093658999, 0.74926901, -0.65561002 }, + { 0.19802999, 0.69310302, -0.69310302 }, + { 0.30942601, 0.61885297, -0.721995 }, + { 0.421637, 0.52704602, -0.73786497 }, + { 0.52704602, 0.421637, -0.73786497 }, + { 0.61885297, 0.30942601, -0.721995 }, + { 0.69310302, 0.198029, -0.69310302 }, + { 0.74926901, 0.093658999, -0.65561002 }, + { 0.092056997, 0.82851702, -0.55234498 }, + { 0.196116, 0.78446501, -0.58834797 }, + { 0.30942601, 0.721995, -0.61885297 }, + { 0.42640099, 0.63960201, -0.63960201 }, + { 0.53916401, 0.53916401, -0.64699697 }, + { 0.63960201, 0.42640099, -0.63960201 }, + { 0.721995, 0.30942601, -0.61885297 }, + { 0.78446501, 0.196116, -0.58834797 }, + { 0.82851702, 0.092056997, -0.55234498 }, + { 0.089087002, 0.89087099, -0.44543499 }, + { 0.19069301, 0.85811597, -0.476731 }, + { 0.30304599, 0.80812198, -0.50507599 }, + { 0.421637, 0.73786497, -0.52704602 }, + { 0.53916401, 0.64699697, -0.53916401 }, + { 0.64699697, 0.53916401, -0.53916401 }, + { 0.73786497, 0.421637, -0.52704602 }, + { 0.80812198, 0.30304599, -0.50507599 }, + { 0.85811597, 0.19069301, -0.476731 }, + { 0.89087099, 0.089087002, -0.44543499 }, + { 0.085125998, 0.936382, -0.34050301 }, + { 0.182574, 0.912871, -0.36514801 }, + { 0.29138601, 0.87415701, -0.38851401 }, + { 0.40824801, 0.81649703, -0.40824801 }, + { 0.52704602, 0.73786497, -0.421637 }, + { 0.63960201, 0.63960201, -0.42640099 }, + { 0.73786497, 0.52704602, -0.421637 }, + { 0.81649703, 0.40824801, -0.40824801 }, + { 0.87415701, 0.29138601, -0.38851401 }, + { 0.912871, 0.182574, -0.36514801 }, + { 0.936382, 0.085125998, -0.34050301 }, + { 0.080582, 0.96698803, -0.24174701 }, + { 0.172774, 0.95025498, -0.259161 }, + { 0.27617201, 0.92057502, -0.27617201 }, + { 0.38851401, 0.87415701, -0.29138601 }, + { 0.50507599, 0.80812198, -0.30304599 }, + { 0.61885297, 0.721995, -0.30942601 }, + { 0.721995, 0.61885297, -0.30942601 }, + { 0.80812198, 0.50507599, -0.30304599 }, + { 0.87415701, 0.38851401, -0.29138601 }, + { 0.92057502, 0.27617201, -0.27617201 }, + { 0.95025498, 0.172774, -0.259161 }, + { 0.96698803, 0.080582, -0.24174701 }, + { 0.07581, 0.98552698, -0.15162 }, + { 0.162221, 0.97332901, -0.162221 }, + { 0.259161, 0.95025498, -0.172774 }, + { 0.36514801, 0.912871, -0.182574 }, + { 0.476731, 0.85811597, -0.19069301 }, + { 0.58834797, 0.78446501, -0.196116 }, + { 0.69310302, 0.69310302, -0.19802999 }, + { 0.78446501, 0.58834797, -0.196116 }, + { 0.85811597, 0.476731, -0.19069301 }, + { 0.912871, 0.36514801, -0.182574 }, + { 0.95025498, 0.259161, -0.172774 }, + { 0.97332901, 0.162221, -0.162221 }, + { 0.98552698, 0.07581, -0.15162 }, + { 0.071066998, 0.994937, -0.071066998 }, + { 0.15162, 0.98552698, -0.07581 }, + { 0.24174701, 0.96698803, -0.080582 }, + { 0.34050301, 0.936382, -0.085125998 }, + { 0.44543499, 0.89087099, -0.089087002 }, + { 0.55234498, 0.82851702, -0.092056997 }, + { 0.65561002, 0.74926901, -0.093658999 }, + { 0.74926901, 0.65561002, -0.093658999 }, + { 0.82851702, 0.55234498, -0.092056997 }, + { 0.89087099, 0.44543499, -0.089087002 }, + { 0.936382, 0.34050301, -0.085125998 }, + { 0.96698803, 0.24174701, -0.080582 }, + { 0.98552698, 0.15162, -0.07581 }, + { 0.994937, 0.071066998, -0.071066998 } +}; \ No newline at end of file diff --git a/xlive/Blam/Engine/math/random_math.cpp b/xlive/Blam/Engine/math/random_math.cpp index 41c124b5d..764d9d4a7 100644 --- a/xlive/Blam/Engine/math/random_math.cpp +++ b/xlive/Blam/Engine/math/random_math.cpp @@ -7,18 +7,26 @@ #define RANDOM_A 1664525 #define RANDOM_C 1013904223 +#define RANDOM_NEW_SEED(prev_seed) ((RANDOM_A * (prev_seed) + RANDOM_C)) #define RANDOM_FLONE 1.0f -#define RANDOM_MASK 0xffff +#define RANDOM_MASK 65535 // 0xffff -// RANDOM_MULTIPLIER Compiles to 0.000015259022 -#define RANDOM_MULTIPLIER RANDOM_FLONE / (real32)RANDOM_MASK +// DIV_BY_MAX_MASK Compiles to 0.000015259022 +#define DIV_BY_MAX_MASK_REAL (RANDOM_FLONE / (real32)RANDOM_MASK) -#define RANDOM(seed) (((seed) = RANDOM_A * (seed) + RANDOM_C) >> 16) -#define REAL_RANDOM(seed) (RANDOM(seed) * RANDOM_MULTIPLIER) +// get the HIGH bits of the seed (between 65535 ... 0) +#define SEED_HIWORD(seed) (seed >> 16) -#define RANDOM_RANGE(seed, lower_bound, delta) ((lower_bound) + (((delta) * RANDOM(seed)) >> 16)) -#define REAL_RANDOM_RANGE(seed, lower_bound, delta) ((lower_bound) + (delta) * REAL_RANDOM(seed)) +// integer random +#define INTEGER_RANDOM(seed) ((SEED_HIWORD(seed))) +#define RANDOM_RANGE(seed, lower_bound, upper_bound) ((lower_bound) + (INTEGER_RANDOM(seed) * (int32)(upper_bound - lower_bound)) >> 16) + +// floating point random +// generates a value between 1 ... 0 <===> (65535 ... 0) / 65535 +// [65535 = (2^16) - 1] +#define REAL_RANDOM(seed) (SEED_HIWORD(seed) * DIV_BY_MAX_MASK_REAL) +#define REAL_RANDOM_RANGE(seed, lower_bound, upper_bound) ((lower_bound) + ((upper_bound - lower_bound) * REAL_RANDOM(seed))) s_random_math* random_math_get_globals() { @@ -52,17 +60,25 @@ void random_math_set_random_number(uint32 random_number) real32 _real_random_range(uint32* seed, real32 lower_bound, real32 upper_bound) { - return REAL_RANDOM_RANGE(*seed, lower_bound, upper_bound - lower_bound); + *seed = RANDOM_NEW_SEED(*seed); + return REAL_RANDOM_RANGE(*seed, lower_bound, upper_bound); +} + +int32 _random_range(uint32* seed, int16 lower_bound, int16 upper_bound) +{ + *seed = RANDOM_NEW_SEED(*seed); + return RANDOM_RANGE(*seed, lower_bound, upper_bound); } -int16 _random_range(uint32* seed, int16 lower_bound, int16 upper_bound) +int32 _random_integer(uint32* seed) { - return RANDOM_RANGE(*seed, lower_bound, upper_bound - lower_bound); + *seed = RANDOM_NEW_SEED(*seed); + return INTEGER_RANDOM(*seed); } real_vector3d* _random_direction3d(uint32* seed, const char* type, char* file, int32 line, real_vector3d* direction) { - int16 index = _random_range(seed, 0, 1026); + int32 index = _random_range(seed, 0, 1026); *direction = g_random_direction_table[index]; return direction; } diff --git a/xlive/Blam/Engine/math/random_math.h b/xlive/Blam/Engine/math/random_math.h index 7aad0ba52..f1b086665 100644 --- a/xlive/Blam/Engine/math/random_math.h +++ b/xlive/Blam/Engine/math/random_math.h @@ -1,7 +1,6 @@ #pragma once #include "real_math.h" - -#define RANDOM_DIRECTION_TABLE_SIZE 1026 +#include "random_direction_table.h" struct s_random_math { @@ -23,1036 +22,6 @@ void random_math_set_random_number(uint32 random_number); real32 _real_random_range(uint32* seed, real32 lower_bound, real32 upper_bound); -int16 _random_range(uint32* seed, int16 lower_bound, int16 upper_bound); - -real_vector3d* _random_direction3d(uint32* seed, const char* type, char* file, int32 line, real_vector3d* direction); +int32 _random_range(uint32* seed, int16 lower_bound, int16 upper_bound); -static const real_vector3d g_random_direction_table[RANDOM_DIRECTION_TABLE_SIZE] = -{ - { 0.0, 0.0, 1.0 }, - { 0.0, 1.0, 0.0 }, - { 1.0, 0.0, 0.0 }, - { 0.0, -1.0, 0.0 }, - { -1.0, 0.0, 0.0 }, - { 0.0, 0.0, -1.0 }, - { 0.066519, 0.0, 0.99778497 }, - { 0.14142101, 0.0, 0.98995 }, - { 0.22486, 0.0, 0.97439098 }, - { 0.316228, 0.0, 0.94868302 }, - { 0.41380301, 0.0, 0.910366 }, - { 0.51449603, 0.0, 0.85749298 }, - { 0.61394101, 0.0, 0.789352 }, - { 0.70710701, 0.0, 0.70710701 }, - { 0.789352, 0.0, 0.61394101 }, - { 0.85749298, 0.0, 0.51449603 }, - { 0.910366, 0.0, 0.41380301 }, - { 0.94868302, 0.0, 0.316228 }, - { 0.97439098, 0.0, 0.22486 }, - { 0.98995, 0.0, 0.14142101 }, - { 0.99778497, 0.0, 0.066519 }, - { 0.0, 0.066519, 0.99778497 }, - { 0.0, 0.14142101, 0.98995 }, - { 0.0, 0.22486, 0.97439098 }, - { 0.0, 0.316228, 0.94868302 }, - { 0.0, 0.41380301, 0.910366 }, - { 0.0, 0.51449603, 0.85749298 }, - { 0.0, 0.61394101, 0.789352 }, - { 0.0, 0.70710701, 0.70710701 }, - { 0.0, 0.789352, 0.61394101 }, - { 0.0, 0.85749298, 0.51449603 }, - { 0.0, 0.910366, 0.41380301 }, - { 0.0, 0.94868302, 0.316228 }, - { 0.0, 0.97439098, 0.22486 }, - { 0.0, 0.98995, 0.14142101 }, - { 0.0, 0.99778497, 0.066519 }, - { 0.071066998, 0.071066998, 0.994937 }, - { 0.15162, 0.07581, 0.98552799 }, - { 0.07581, 0.15162, 0.98552799 }, - { 0.24174701, 0.080582, 0.96698701 }, - { 0.162221, 0.162221, 0.97332799 }, - { 0.080582, 0.24174701, 0.96698701 }, - { 0.34050301, 0.085125998, 0.936382 }, - { 0.259161, 0.172774, 0.95025498 }, - { 0.172774, 0.259161, 0.95025498 }, - { 0.085125998, 0.34050301, 0.936382 }, - { 0.44543499, 0.089087002, 0.89087099 }, - { 0.36514801, 0.182574, 0.912871 }, - { 0.27617201, 0.27617201, 0.92057502 }, - { 0.182574, 0.36514801, 0.912871 }, - { 0.089087002, 0.44543499, 0.89087099 }, - { 0.55234498, 0.092056997, 0.82851702 }, - { 0.476731, 0.19069301, 0.85811597 }, - { 0.38851401, 0.29138601, 0.87415701 }, - { 0.29138601, 0.38851401, 0.87415701 }, - { 0.19069199, 0.476731, 0.85811597 }, - { 0.092056997, 0.55234498, 0.82851702 }, - { 0.65561002, 0.093658999, 0.74926901 }, - { 0.58834797, 0.196116, 0.78446501 }, - { 0.50507599, 0.30304599, 0.80812198 }, - { 0.40824801, 0.40824801, 0.81649703 }, - { 0.30304599, 0.50507599, 0.80812198 }, - { 0.196116, 0.58834797, 0.78446501 }, - { 0.093658999, 0.65561002, 0.74926901 }, - { 0.74926901, 0.093658999, 0.65561002 }, - { 0.69310302, 0.19802999, 0.69310302 }, - { 0.61885297, 0.30942601, 0.721995 }, - { 0.52704602, 0.421637, 0.73786497 }, - { 0.421637, 0.52704602, 0.73786497 }, - { 0.30942601, 0.61885297, 0.721995 }, - { 0.198029, 0.69310302, 0.69310302 }, - { 0.093658999, 0.74926901, 0.65561002 }, - { 0.82851702, 0.092056997, 0.55234498 }, - { 0.78446501, 0.196116, 0.58834797 }, - { 0.721995, 0.30942601, 0.61885297 }, - { 0.63960201, 0.42640099, 0.63960201 }, - { 0.53916401, 0.53916401, 0.64699697 }, - { 0.42640099, 0.63960201, 0.63960201 }, - { 0.30942601, 0.721995, 0.61885297 }, - { 0.196116, 0.78446501, 0.58834797 }, - { 0.092056997, 0.82851702, 0.55234498 }, - { 0.89087099, 0.089087002, 0.44543499 }, - { 0.85811597, 0.19069301, 0.476731 }, - { 0.80812198, 0.30304599, 0.50507599 }, - { 0.73786497, 0.421637, 0.52704602 }, - { 0.64699697, 0.53916401, 0.53916401 }, - { 0.53916401, 0.64699697, 0.53916401 }, - { 0.421637, 0.73786497, 0.52704602 }, - { 0.30304599, 0.80812198, 0.50507599 }, - { 0.19069301, 0.85811597, 0.476731 }, - { 0.089087002, 0.89087099, 0.44543499 }, - { 0.936382, 0.085125998, 0.34050301 }, - { 0.912871, 0.182574, 0.36514801 }, - { 0.87415701, 0.29138601, 0.38851401 }, - { 0.81649703, 0.40824801, 0.40824801 }, - { 0.73786497, 0.52704602, 0.421637 }, - { 0.63960201, 0.63960201, 0.42640099 }, - { 0.52704602, 0.73786497, 0.421637 }, - { 0.40824801, 0.81649703, 0.40824801 }, - { 0.29138601, 0.87415701, 0.38851401 }, - { 0.182574, 0.912871, 0.36514801 }, - { 0.085125998, 0.936382, 0.34050301 }, - { 0.96698803, 0.080582, 0.24174701 }, - { 0.95025498, 0.172774, 0.259161 }, - { 0.92057502, 0.27617201, 0.27617201 }, - { 0.87415701, 0.38851401, 0.29138601 }, - { 0.80812198, 0.50507599, 0.30304599 }, - { 0.721995, 0.61885297, 0.30942601 }, - { 0.61885297, 0.721995, 0.30942601 }, - { 0.50507599, 0.80812198, 0.30304599 }, - { 0.38851401, 0.87415701, 0.29138601 }, - { 0.27617201, 0.92057502, 0.27617201 }, - { 0.172774, 0.95025498, 0.259161 }, - { 0.080582, 0.96698803, 0.24174701 }, - { 0.98552698, 0.07581, 0.15162 }, - { 0.97332901, 0.162221, 0.162221 }, - { 0.95025498, 0.259161, 0.172774 }, - { 0.912871, 0.36514801, 0.182574 }, - { 0.85811597, 0.476731, 0.19069301 }, - { 0.78446501, 0.58834797, 0.196116 }, - { 0.69310302, 0.69310302, 0.19802999 }, - { 0.58834797, 0.78446501, 0.196116 }, - { 0.476731, 0.85811597, 0.19069301 }, - { 0.36514801, 0.912871, 0.182574 }, - { 0.259161, 0.95025498, 0.172774 }, - { 0.162221, 0.97332901, 0.162221 }, - { 0.07581, 0.98552698, 0.15162 }, - { 0.994937, 0.071066998, 0.071066998 }, - { 0.98552698, 0.15162, 0.07581 }, - { 0.96698803, 0.24174701, 0.080582 }, - { 0.936382, 0.34050301, 0.085125998 }, - { 0.89087099, 0.44543499, 0.089087002 }, - { 0.82851702, 0.55234498, 0.092056997 }, - { 0.74926901, 0.65561002, 0.093658999 }, - { 0.65561002, 0.74926901, 0.093658999 }, - { 0.55234498, 0.82851702, 0.092056997 }, - { 0.44543499, 0.89087099, 0.089087002 }, - { 0.34050301, 0.936382, 0.085125998 }, - { 0.24174701, 0.96698803, 0.080582 }, - { 0.15162, 0.98552698, 0.07581 }, - { 0.071066998, 0.994937, 0.071066998 }, - { 0.066519, 0.99778497, 0.0 }, - { 0.14142101, 0.98995, 0.0 }, - { 0.22486, 0.97439098, 0.0 }, - { 0.316228, 0.94868302, 0.0 }, - { 0.41380301, 0.910366, 0.0 }, - { 0.51449603, 0.85749298, 0.0 }, - { 0.61394101, 0.789352, 0.0 }, - { 0.70710701, 0.70710701, 0.0 }, - { 0.789352, 0.61394101, 0.0 }, - { 0.85749298, 0.51449603, 0.0 }, - { 0.910366, 0.41380301, 0.0 }, - { 0.94868302, 0.316228, 0.0 }, - { 0.97439098, 0.22486, 0.0 }, - { 0.98995, 0.14142101, 0.0 }, - { 0.99778497, 0.066519, 0.0 }, - { 0.0, -0.066519, 0.99778497 }, - { 0.0, -0.14142101, 0.98995 }, - { 0.0, -0.22486, 0.97439098 }, - { 0.0, -0.316228, 0.94868302 }, - { 0.0, -0.41380301, 0.910366 }, - { 0.0, -0.51449603, 0.85749298 }, - { 0.0, -0.61394101, 0.789352 }, - { 0.0, -0.70710701, 0.70710701 }, - { 0.0, -0.789352, 0.61394101 }, - { 0.0, -0.85749298, 0.51449603 }, - { 0.0, -0.910366, 0.41380301 }, - { 0.0, -0.94868302, 0.316228 }, - { 0.0, -0.97439098, 0.22486 }, - { 0.0, -0.98995, 0.14142101 }, - { 0.0, -0.99778497, 0.066519 }, - { 0.071066998, -0.071066998, 0.994937 }, - { 0.07581, -0.15162, 0.98552799 }, - { 0.15162, -0.07581, 0.98552799 }, - { 0.080582, -0.24174701, 0.96698701 }, - { 0.162221, -0.162221, 0.97332799 }, - { 0.24174701, -0.080582, 0.96698701 }, - { 0.085125998, -0.34050301, 0.936382 }, - { 0.172774, -0.259161, 0.95025498 }, - { 0.259161, -0.172774, 0.95025498 }, - { 0.34050301, -0.085125998, 0.936382 }, - { 0.089087002, -0.44543499, 0.89087099 }, - { 0.182574, -0.36514801, 0.912871 }, - { 0.27617201, -0.27617201, 0.92057502 }, - { 0.36514801, -0.182574, 0.912871 }, - { 0.44543499, -0.089087002, 0.89087099 }, - { 0.092056997, -0.55234498, 0.82851702 }, - { 0.19069301, -0.476731, 0.85811597 }, - { 0.29138601, -0.38851401, 0.87415701 }, - { 0.38851401, -0.29138601, 0.87415701 }, - { 0.476731, -0.19069199, 0.85811597 }, - { 0.55234498, -0.092056997, 0.82851702 }, - { 0.093658999, -0.65561002, 0.74926901 }, - { 0.196116, -0.58834797, 0.78446501 }, - { 0.30304599, -0.50507599, 0.80812198 }, - { 0.40824801, -0.40824801, 0.81649703 }, - { 0.50507599, -0.30304599, 0.80812198 }, - { 0.58834797, -0.196116, 0.78446501 }, - { 0.65561002, -0.093658999, 0.74926901 }, - { 0.093658999, -0.74926901, 0.65561002 }, - { 0.19802999, -0.69310302, 0.69310302 }, - { 0.30942601, -0.61885297, 0.721995 }, - { 0.421637, -0.52704602, 0.73786497 }, - { 0.52704602, -0.421637, 0.73786497 }, - { 0.61885297, -0.30942601, 0.721995 }, - { 0.69310302, -0.198029, 0.69310302 }, - { 0.74926901, -0.093658999, 0.65561002 }, - { 0.092056997, -0.82851702, 0.55234498 }, - { 0.196116, -0.78446501, 0.58834797 }, - { 0.30942601, -0.721995, 0.61885297 }, - { 0.42640099, -0.63960201, 0.63960201 }, - { 0.53916401, -0.53916401, 0.64699697 }, - { 0.63960201, -0.42640099, 0.63960201 }, - { 0.721995, -0.30942601, 0.61885297 }, - { 0.78446501, -0.196116, 0.58834797 }, - { 0.82851702, -0.092056997, 0.55234498 }, - { 0.089087002, -0.89087099, 0.44543499 }, - { 0.19069301, -0.85811597, 0.476731 }, - { 0.30304599, -0.80812198, 0.50507599 }, - { 0.421637, -0.73786497, 0.52704602 }, - { 0.53916401, -0.64699697, 0.53916401 }, - { 0.64699697, -0.53916401, 0.53916401 }, - { 0.73786497, -0.421637, 0.52704602 }, - { 0.80812198, -0.30304599, 0.50507599 }, - { 0.85811597, -0.19069301, 0.476731 }, - { 0.89087099, -0.089087002, 0.44543499 }, - { 0.085125998, -0.936382, 0.34050301 }, - { 0.182574, -0.912871, 0.36514801 }, - { 0.29138601, -0.87415701, 0.38851401 }, - { 0.40824801, -0.81649703, 0.40824801 }, - { 0.52704602, -0.73786497, 0.421637 }, - { 0.63960201, -0.63960201, 0.42640099 }, - { 0.73786497, -0.52704602, 0.421637 }, - { 0.81649703, -0.40824801, 0.40824801 }, - { 0.87415701, -0.29138601, 0.38851401 }, - { 0.912871, -0.182574, 0.36514801 }, - { 0.936382, -0.085125998, 0.34050301 }, - { 0.080582, -0.96698803, 0.24174701 }, - { 0.172774, -0.95025498, 0.259161 }, - { 0.27617201, -0.92057502, 0.27617201 }, - { 0.38851401, -0.87415701, 0.29138601 }, - { 0.50507599, -0.80812198, 0.30304599 }, - { 0.61885297, -0.721995, 0.30942601 }, - { 0.721995, -0.61885297, 0.30942601 }, - { 0.80812198, -0.50507599, 0.30304599 }, - { 0.87415701, -0.38851401, 0.29138601 }, - { 0.92057502, -0.27617201, 0.27617201 }, - { 0.95025498, -0.172774, 0.259161 }, - { 0.96698803, -0.080582, 0.24174701 }, - { 0.07581, -0.98552698, 0.15162 }, - { 0.162221, -0.97332901, 0.162221 }, - { 0.259161, -0.95025498, 0.172774 }, - { 0.36514801, -0.912871, 0.182574 }, - { 0.476731, -0.85811597, 0.19069301 }, - { 0.58834797, -0.78446501, 0.196116 }, - { 0.69310302, -0.69310302, 0.19802999 }, - { 0.78446501, -0.58834797, 0.196116 }, - { 0.85811597, -0.476731, 0.19069301 }, - { 0.912871, -0.36514801, 0.182574 }, - { 0.95025498, -0.259161, 0.172774 }, - { 0.97332901, -0.162221, 0.162221 }, - { 0.98552698, -0.07581, 0.15162 }, - { 0.071066998, -0.994937, 0.071066998 }, - { 0.15162, -0.98552698, 0.07581 }, - { 0.24174701, -0.96698803, 0.080582 }, - { 0.34050301, -0.936382, 0.085125998 }, - { 0.44543499, -0.89087099, 0.089087002 }, - { 0.55234498, -0.82851702, 0.092056997 }, - { 0.65561002, -0.74926901, 0.093658999 }, - { 0.74926901, -0.65561002, 0.093658999 }, - { 0.82851702, -0.55234498, 0.092056997 }, - { 0.89087099, -0.44543499, 0.089087002 }, - { 0.936382, -0.34050301, 0.085125998 }, - { 0.96698803, -0.24174701, 0.080582 }, - { 0.98552698, -0.15162, 0.07581 }, - { 0.994937, -0.071066998, 0.071066998 }, - { 0.99778497, -0.066519, 0.0 }, - { 0.98995, -0.14142101, 0.0 }, - { 0.97439098, -0.22486, 0.0 }, - { 0.94868302, -0.316228, 0.0 }, - { 0.910366, -0.41380301, 0.0 }, - { 0.85749298, -0.51449603, 0.0 }, - { 0.789352, -0.61394101, 0.0 }, - { 0.70710701, -0.70710701, 0.0 }, - { 0.61394101, -0.789352, 0.0 }, - { 0.51449603, -0.85749298, 0.0 }, - { 0.41380301, -0.910366, 0.0 }, - { 0.316228, -0.94868302, 0.0 }, - { 0.22486, -0.97439098, 0.0 }, - { 0.14142101, -0.98995, 0.0 }, - { 0.066519, -0.99778497, 0.0 }, - { -0.066519, 0.0, 0.99778497 }, - { -0.14142101, 0.0, 0.98995 }, - { -0.22486, 0.0, 0.97439098 }, - { -0.316228, 0.0, 0.94868302 }, - { -0.41380301, 0.0, 0.910366 }, - { -0.51449603, 0.0, 0.85749298 }, - { -0.61394101, 0.0, 0.789352 }, - { -0.70710701, 0.0, 0.70710701 }, - { -0.789352, 0.0, 0.61394101 }, - { -0.85749298, 0.0, 0.51449603 }, - { -0.910366, 0.0, 0.41380301 }, - { -0.94868302, 0.0, 0.316228 }, - { -0.97439098, 0.0, 0.22486 }, - { -0.98995, 0.0, 0.14142101 }, - { -0.99778497, 0.0, 0.066519 }, - { -0.071066998, -0.071066998, 0.994937 }, - { -0.15162, -0.07581, 0.98552799 }, - { -0.07581, -0.15162, 0.98552799 }, - { -0.24174701, -0.080582, 0.96698701 }, - { -0.162221, -0.162221, 0.97332799 }, - { -0.080582, -0.24174701, 0.96698701 }, - { -0.34050301, -0.085125998, 0.936382 }, - { -0.259161, -0.172774, 0.95025498 }, - { -0.172774, -0.259161, 0.95025498 }, - { -0.085125998, -0.34050301, 0.936382 }, - { -0.44543499, -0.089087002, 0.89087099 }, - { -0.36514801, -0.182574, 0.912871 }, - { -0.27617201, -0.27617201, 0.92057502 }, - { -0.182574, -0.36514801, 0.912871 }, - { -0.089087002, -0.44543499, 0.89087099 }, - { -0.55234498, -0.092056997, 0.82851702 }, - { -0.476731, -0.19069301, 0.85811597 }, - { -0.38851401, -0.29138601, 0.87415701 }, - { -0.29138601, -0.38851401, 0.87415701 }, - { -0.19069199, -0.476731, 0.85811597 }, - { -0.092056997, -0.55234498, 0.82851702 }, - { -0.65561002, -0.093658999, 0.74926901 }, - { -0.58834797, -0.196116, 0.78446501 }, - { -0.50507599, -0.30304599, 0.80812198 }, - { -0.40824801, -0.40824801, 0.81649703 }, - { -0.30304599, -0.50507599, 0.80812198 }, - { -0.196116, -0.58834797, 0.78446501 }, - { -0.093658999, -0.65561002, 0.74926901 }, - { -0.74926901, -0.093658999, 0.65561002 }, - { -0.69310302, -0.19802999, 0.69310302 }, - { -0.61885297, -0.30942601, 0.721995 }, - { -0.52704602, -0.421637, 0.73786497 }, - { -0.421637, -0.52704602, 0.73786497 }, - { -0.30942601, -0.61885297, 0.721995 }, - { -0.198029, -0.69310302, 0.69310302 }, - { -0.093658999, -0.74926901, 0.65561002 }, - { -0.82851702, -0.092056997, 0.55234498 }, - { -0.78446501, -0.196116, 0.58834797 }, - { -0.721995, -0.30942601, 0.61885297 }, - { -0.63960201, -0.42640099, 0.63960201 }, - { -0.53916401, -0.53916401, 0.64699697 }, - { -0.42640099, -0.63960201, 0.63960201 }, - { -0.30942601, -0.721995, 0.61885297 }, - { -0.196116, -0.78446501, 0.58834797 }, - { -0.092056997, -0.82851702, 0.55234498 }, - { -0.89087099, -0.089087002, 0.44543499 }, - { -0.85811597, -0.19069301, 0.476731 }, - { -0.80812198, -0.30304599, 0.50507599 }, - { -0.73786497, -0.421637, 0.52704602 }, - { -0.64699697, -0.53916401, 0.53916401 }, - { -0.53916401, -0.64699697, 0.53916401 }, - { -0.421637, -0.73786497, 0.52704602 }, - { -0.30304599, -0.80812198, 0.50507599 }, - { -0.19069301, -0.85811597, 0.476731 }, - { -0.089087002, -0.89087099, 0.44543499 }, - { -0.936382, -0.085125998, 0.34050301 }, - { -0.912871, -0.182574, 0.36514801 }, - { -0.87415701, -0.29138601, 0.38851401 }, - { -0.81649703, -0.40824801, 0.40824801 }, - { -0.73786497, -0.52704602, 0.421637 }, - { -0.63960201, -0.63960201, 0.42640099 }, - { -0.52704602, -0.73786497, 0.421637 }, - { -0.40824801, -0.81649703, 0.40824801 }, - { -0.29138601, -0.87415701, 0.38851401 }, - { -0.182574, -0.912871, 0.36514801 }, - { -0.085125998, -0.936382, 0.34050301 }, - { -0.96698803, -0.080582, 0.24174701 }, - { -0.95025498, -0.172774, 0.259161 }, - { -0.92057502, -0.27617201, 0.27617201 }, - { -0.87415701, -0.38851401, 0.29138601 }, - { -0.80812198, -0.50507599, 0.30304599 }, - { -0.721995, -0.61885297, 0.30942601 }, - { -0.61885297, -0.721995, 0.30942601 }, - { -0.50507599, -0.80812198, 0.30304599 }, - { -0.38851401, -0.87415701, 0.29138601 }, - { -0.27617201, -0.92057502, 0.27617201 }, - { -0.172774, -0.95025498, 0.259161 }, - { -0.080582, -0.96698803, 0.24174701 }, - { -0.98552698, -0.07581, 0.15162 }, - { -0.97332901, -0.162221, 0.162221 }, - { -0.95025498, -0.259161, 0.172774 }, - { -0.912871, -0.36514801, 0.182574 }, - { -0.85811597, -0.476731, 0.19069301 }, - { -0.78446501, -0.58834797, 0.196116 }, - { -0.69310302, -0.69310302, 0.19802999 }, - { -0.58834797, -0.78446501, 0.196116 }, - { -0.476731, -0.85811597, 0.19069301 }, - { -0.36514801, -0.912871, 0.182574 }, - { -0.259161, -0.95025498, 0.172774 }, - { -0.162221, -0.97332901, 0.162221 }, - { -0.07581, -0.98552698, 0.15162 }, - { -0.994937, -0.071066998, 0.071066998 }, - { -0.98552698, -0.15162, 0.07581 }, - { -0.96698803, -0.24174701, 0.080582 }, - { -0.936382, -0.34050301, 0.085125998 }, - { -0.89087099, -0.44543499, 0.089087002 }, - { -0.82851702, -0.55234498, 0.092056997 }, - { -0.74926901, -0.65561002, 0.093658999 }, - { -0.65561002, -0.74926901, 0.093658999 }, - { -0.55234498, -0.82851702, 0.092056997 }, - { -0.44543499, -0.89087099, 0.089087002 }, - { -0.34050301, -0.936382, 0.085125998 }, - { -0.24174701, -0.96698803, 0.080582 }, - { -0.15162, -0.98552698, 0.07581 }, - { -0.071066998, -0.994937, 0.071066998 }, - { -0.066519, -0.99778497, 0.0 }, - { -0.14142101, -0.98995, 0.0 }, - { -0.22486, -0.97439098, 0.0 }, - { -0.316228, -0.94868302, 0.0 }, - { -0.41380301, -0.910366, 0.0 }, - { -0.51449603, -0.85749298, 0.0 }, - { -0.61394101, -0.789352, 0.0 }, - { -0.70710701, -0.70710701, 0.0 }, - { -0.789352, -0.61394101, 0.0 }, - { -0.85749298, -0.51449603, 0.0 }, - { -0.910366, -0.41380301, 0.0 }, - { -0.94868302, -0.316228, 0.0 }, - { -0.97439098, -0.22486, 0.0 }, - { -0.98995, -0.14142101, 0.0 }, - { -0.99778497, -0.066519, 0.0 }, - { -0.071066998, 0.071066998, 0.994937 }, - { -0.07581, 0.15162, 0.98552799 }, - { -0.15162, 0.07581, 0.98552799 }, - { -0.080582, 0.24174701, 0.96698701 }, - { -0.162221, 0.162221, 0.97332799 }, - { -0.24174701, 0.080582, 0.96698701 }, - { -0.085125998, 0.34050301, 0.936382 }, - { -0.172774, 0.259161, 0.95025498 }, - { -0.259161, 0.172774, 0.95025498 }, - { -0.34050301, 0.085125998, 0.936382 }, - { -0.089087002, 0.44543499, 0.89087099 }, - { -0.182574, 0.36514801, 0.912871 }, - { -0.27617201, 0.27617201, 0.92057502 }, - { -0.36514801, 0.182574, 0.912871 }, - { -0.44543499, 0.089087002, 0.89087099 }, - { -0.092056997, 0.55234498, 0.82851702 }, - { -0.19069301, 0.476731, 0.85811597 }, - { -0.29138601, 0.38851401, 0.87415701 }, - { -0.38851401, 0.29138601, 0.87415701 }, - { -0.476731, 0.19069199, 0.85811597 }, - { -0.55234498, 0.092056997, 0.82851702 }, - { -0.093658999, 0.65561002, 0.74926901 }, - { -0.196116, 0.58834797, 0.78446501 }, - { -0.30304599, 0.50507599, 0.80812198 }, - { -0.40824801, 0.40824801, 0.81649703 }, - { -0.50507599, 0.30304599, 0.80812198 }, - { -0.58834797, 0.196116, 0.78446501 }, - { -0.65561002, 0.093658999, 0.74926901 }, - { -0.093658999, 0.74926901, 0.65561002 }, - { -0.19802999, 0.69310302, 0.69310302 }, - { -0.30942601, 0.61885297, 0.721995 }, - { -0.421637, 0.52704602, 0.73786497 }, - { -0.52704602, 0.421637, 0.73786497 }, - { -0.61885297, 0.30942601, 0.721995 }, - { -0.69310302, 0.198029, 0.69310302 }, - { -0.74926901, 0.093658999, 0.65561002 }, - { -0.092056997, 0.82851702, 0.55234498 }, - { -0.196116, 0.78446501, 0.58834797 }, - { -0.30942601, 0.721995, 0.61885297 }, - { -0.42640099, 0.63960201, 0.63960201 }, - { -0.53916401, 0.53916401, 0.64699697 }, - { -0.63960201, 0.42640099, 0.63960201 }, - { -0.721995, 0.30942601, 0.61885297 }, - { -0.78446501, 0.196116, 0.58834797 }, - { -0.82851702, 0.092056997, 0.55234498 }, - { -0.089087002, 0.89087099, 0.44543499 }, - { -0.19069301, 0.85811597, 0.476731 }, - { -0.30304599, 0.80812198, 0.50507599 }, - { -0.421637, 0.73786497, 0.52704602 }, - { -0.53916401, 0.64699697, 0.53916401 }, - { -0.64699697, 0.53916401, 0.53916401 }, - { -0.73786497, 0.421637, 0.52704602 }, - { -0.80812198, 0.30304599, 0.50507599 }, - { -0.85811597, 0.19069301, 0.476731 }, - { -0.89087099, 0.089087002, 0.44543499 }, - { -0.085125998, 0.936382, 0.34050301 }, - { -0.182574, 0.912871, 0.36514801 }, - { -0.29138601, 0.87415701, 0.38851401 }, - { -0.40824801, 0.81649703, 0.40824801 }, - { -0.52704602, 0.73786497, 0.421637 }, - { -0.63960201, 0.63960201, 0.42640099 }, - { -0.73786497, 0.52704602, 0.421637 }, - { -0.81649703, 0.40824801, 0.40824801 }, - { -0.87415701, 0.29138601, 0.38851401 }, - { -0.912871, 0.182574, 0.36514801 }, - { -0.936382, 0.085125998, 0.34050301 }, - { -0.080582, 0.96698803, 0.24174701 }, - { -0.172774, 0.95025498, 0.259161 }, - { -0.27617201, 0.92057502, 0.27617201 }, - { -0.38851401, 0.87415701, 0.29138601 }, - { -0.50507599, 0.80812198, 0.30304599 }, - { -0.61885297, 0.721995, 0.30942601 }, - { -0.721995, 0.61885297, 0.30942601 }, - { -0.80812198, 0.50507599, 0.30304599 }, - { -0.87415701, 0.38851401, 0.29138601 }, - { -0.92057502, 0.27617201, 0.27617201 }, - { -0.95025498, 0.172774, 0.259161 }, - { -0.96698803, 0.080582, 0.24174701 }, - { -0.07581, 0.98552698, 0.15162 }, - { -0.162221, 0.97332901, 0.162221 }, - { -0.259161, 0.95025498, 0.172774 }, - { -0.36514801, 0.912871, 0.182574 }, - { -0.476731, 0.85811597, 0.19069301 }, - { -0.58834797, 0.78446501, 0.196116 }, - { -0.69310302, 0.69310302, 0.19802999 }, - { -0.78446501, 0.58834797, 0.196116 }, - { -0.85811597, 0.476731, 0.19069301 }, - { -0.912871, 0.36514801, 0.182574 }, - { -0.95025498, 0.259161, 0.172774 }, - { -0.97332901, 0.162221, 0.162221 }, - { -0.98552698, 0.07581, 0.15162 }, - { -0.071066998, 0.994937, 0.071066998 }, - { -0.15162, 0.98552698, 0.07581 }, - { -0.24174701, 0.96698803, 0.080582 }, - { -0.34050301, 0.936382, 0.085125998 }, - { -0.44543499, 0.89087099, 0.089087002 }, - { -0.55234498, 0.82851702, 0.092056997 }, - { -0.65561002, 0.74926901, 0.093658999 }, - { -0.74926901, 0.65561002, 0.093658999 }, - { -0.82851702, 0.55234498, 0.092056997 }, - { -0.89087099, 0.44543499, 0.089087002 }, - { -0.936382, 0.34050301, 0.085125998 }, - { -0.96698803, 0.24174701, 0.080582 }, - { -0.98552698, 0.15162, 0.07581 }, - { -0.994937, 0.071066998, 0.071066998 }, - { -0.066519, 0.99778497, 0.0 }, - { -0.14142101, 0.98995, 0.0 }, - { -0.22486, 0.97439098, 0.0 }, - { -0.316228, 0.94868302, 0.0 }, - { -0.41380301, 0.910366, 0.0 }, - { -0.51449603, 0.85749298, 0.0 }, - { -0.61394101, 0.789352, 0.0 }, - { -0.70710701, 0.70710701, 0.0 }, - { -0.789352, 0.61394101, 0.0 }, - { -0.85749298, 0.51449603, 0.0 }, - { -0.910366, 0.41380301, 0.0 }, - { -0.94868302, 0.316228, 0.0 }, - { -0.97439098, 0.22486, 0.0 }, - { -0.98995, 0.14142101, 0.0 }, - { -0.99778497, 0.066519, 0.0 }, - { -0.99778497, 0.0, -0.066519 }, - { -0.98995, 0.0, -0.14142101 }, - { -0.97439098, 0.0, -0.22486 }, - { -0.94868302, 0.0, -0.316228 }, - { -0.910366, 0.0, -0.41380301 }, - { -0.85749298, 0.0, -0.51449603 }, - { -0.789352, 0.0, -0.61394101 }, - { -0.70710701, 0.0, -0.70710701 }, - { -0.61394101, 0.0, -0.789352 }, - { -0.51449603, 0.0, -0.85749298 }, - { -0.41380301, 0.0, -0.910366 }, - { -0.316228, 0.0, -0.94868302 }, - { -0.22486, 0.0, -0.97439098 }, - { -0.14142101, 0.0, -0.98995 }, - { -0.066519, 0.0, -0.99778497 }, - { 0.0, 0.99778497, -0.066519 }, - { 0.0, 0.98995, -0.14142101 }, - { 0.0, 0.97439098, -0.22486 }, - { 0.0, 0.94868302, -0.316228 }, - { 0.0, 0.910366, -0.41380301 }, - { 0.0, 0.85749298, -0.51449603 }, - { 0.0, 0.789352, -0.61394101 }, - { 0.0, 0.70710701, -0.70710701 }, - { 0.0, 0.61394101, -0.789352 }, - { 0.0, 0.51449603, -0.85749298 }, - { 0.0, 0.41380301, -0.910366 }, - { 0.0, 0.316228, -0.94868302 }, - { 0.0, 0.22486, -0.97439098 }, - { 0.0, 0.14142101, -0.98995 }, - { 0.0, 0.066519, -0.99778497 }, - { -0.071066998, 0.071066998, -0.994937 }, - { -0.15162, 0.07581, -0.98552799 }, - { -0.07581, 0.15162, -0.98552799 }, - { -0.24174701, 0.080582, -0.96698701 }, - { -0.162221, 0.162221, -0.97332799 }, - { -0.080582, 0.24174701, -0.96698701 }, - { -0.34050301, 0.085125998, -0.936382 }, - { -0.259161, 0.172774, -0.95025498 }, - { -0.172774, 0.259161, -0.95025498 }, - { -0.085125998, 0.34050301, -0.936382 }, - { -0.44543499, 0.089087002, -0.89087099 }, - { -0.36514801, 0.182574, -0.912871 }, - { -0.27617201, 0.27617201, -0.92057502 }, - { -0.182574, 0.36514801, -0.912871 }, - { -0.089087002, 0.44543499, -0.89087099 }, - { -0.55234498, 0.092056997, -0.82851702 }, - { -0.476731, 0.19069301, -0.85811597 }, - { -0.38851401, 0.29138601, -0.87415701 }, - { -0.29138601, 0.38851401, -0.87415701 }, - { -0.19069199, 0.476731, -0.85811597 }, - { -0.092056997, 0.55234498, -0.82851702 }, - { -0.65561002, 0.093658999, -0.74926901 }, - { -0.58834797, 0.196116, -0.78446501 }, - { -0.50507599, 0.30304599, -0.80812198 }, - { -0.40824801, 0.40824801, -0.81649703 }, - { -0.30304599, 0.50507599, -0.80812198 }, - { -0.196116, 0.58834797, -0.78446501 }, - { -0.093658999, 0.65561002, -0.74926901 }, - { -0.74926901, 0.093658999, -0.65561002 }, - { -0.69310302, 0.19802999, -0.69310302 }, - { -0.61885297, 0.30942601, -0.721995 }, - { -0.52704602, 0.421637, -0.73786497 }, - { -0.421637, 0.52704602, -0.73786497 }, - { -0.30942601, 0.61885297, -0.721995 }, - { -0.198029, 0.69310302, -0.69310302 }, - { -0.093658999, 0.74926901, -0.65561002 }, - { -0.82851702, 0.092056997, -0.55234498 }, - { -0.78446501, 0.196116, -0.58834797 }, - { -0.721995, 0.30942601, -0.61885297 }, - { -0.63960201, 0.42640099, -0.63960201 }, - { -0.53916401, 0.53916401, -0.64699697 }, - { -0.42640099, 0.63960201, -0.63960201 }, - { -0.30942601, 0.721995, -0.61885297 }, - { -0.196116, 0.78446501, -0.58834797 }, - { -0.092056997, 0.82851702, -0.55234498 }, - { -0.89087099, 0.089087002, -0.44543499 }, - { -0.85811597, 0.19069301, -0.476731 }, - { -0.80812198, 0.30304599, -0.50507599 }, - { -0.73786497, 0.421637, -0.52704602 }, - { -0.64699697, 0.53916401, -0.53916401 }, - { -0.53916401, 0.64699697, -0.53916401 }, - { -0.421637, 0.73786497, -0.52704602 }, - { -0.30304599, 0.80812198, -0.50507599 }, - { -0.19069301, 0.85811597, -0.476731 }, - { -0.089087002, 0.89087099, -0.44543499 }, - { -0.936382, 0.085125998, -0.34050301 }, - { -0.912871, 0.182574, -0.36514801 }, - { -0.87415701, 0.29138601, -0.38851401 }, - { -0.81649703, 0.40824801, -0.40824801 }, - { -0.73786497, 0.52704602, -0.421637 }, - { -0.63960201, 0.63960201, -0.42640099 }, - { -0.52704602, 0.73786497, -0.421637 }, - { -0.40824801, 0.81649703, -0.40824801 }, - { -0.29138601, 0.87415701, -0.38851401 }, - { -0.182574, 0.912871, -0.36514801 }, - { -0.085125998, 0.936382, -0.34050301 }, - { -0.96698803, 0.080582, -0.24174701 }, - { -0.95025498, 0.172774, -0.259161 }, - { -0.92057502, 0.27617201, -0.27617201 }, - { -0.87415701, 0.38851401, -0.29138601 }, - { -0.80812198, 0.50507599, -0.30304599 }, - { -0.721995, 0.61885297, -0.30942601 }, - { -0.61885297, 0.721995, -0.30942601 }, - { -0.50507599, 0.80812198, -0.30304599 }, - { -0.38851401, 0.87415701, -0.29138601 }, - { -0.27617201, 0.92057502, -0.27617201 }, - { -0.172774, 0.95025498, -0.259161 }, - { -0.080582, 0.96698803, -0.24174701 }, - { -0.98552698, 0.07581, -0.15162 }, - { -0.97332901, 0.162221, -0.162221 }, - { -0.95025498, 0.259161, -0.172774 }, - { -0.912871, 0.36514801, -0.182574 }, - { -0.85811597, 0.476731, -0.19069301 }, - { -0.78446501, 0.58834797, -0.196116 }, - { -0.69310302, 0.69310302, -0.19802999 }, - { -0.58834797, 0.78446501, -0.196116 }, - { -0.476731, 0.85811597, -0.19069301 }, - { -0.36514801, 0.912871, -0.182574 }, - { -0.259161, 0.95025498, -0.172774 }, - { -0.162221, 0.97332901, -0.162221 }, - { -0.07581, 0.98552698, -0.15162 }, - { -0.994937, 0.071066998, -0.071066998 }, - { -0.98552698, 0.15162, -0.07581 }, - { -0.96698803, 0.24174701, -0.080582 }, - { -0.936382, 0.34050301, -0.085125998 }, - { -0.89087099, 0.44543499, -0.089087002 }, - { -0.82851702, 0.55234498, -0.092056997 }, - { -0.74926901, 0.65561002, -0.093658999 }, - { -0.65561002, 0.74926901, -0.093658999 }, - { -0.55234498, 0.82851702, -0.092056997 }, - { -0.44543499, 0.89087099, -0.089087002 }, - { -0.34050301, 0.936382, -0.085125998 }, - { -0.24174701, 0.96698803, -0.080582 }, - { -0.15162, 0.98552698, -0.07581 }, - { -0.071066998, 0.994937, -0.071066998 }, - { 0.0, -0.99778497, -0.066519 }, - { 0.0, -0.98995, -0.14142101 }, - { 0.0, -0.97439098, -0.22486 }, - { 0.0, -0.94868302, -0.316228 }, - { 0.0, -0.910366, -0.41380301 }, - { 0.0, -0.85749298, -0.51449603 }, - { 0.0, -0.789352, -0.61394101 }, - { 0.0, -0.70710701, -0.70710701 }, - { 0.0, -0.61394101, -0.789352 }, - { 0.0, -0.51449603, -0.85749298 }, - { 0.0, -0.41380301, -0.910366 }, - { 0.0, -0.316228, -0.94868302 }, - { 0.0, -0.22486, -0.97439098 }, - { 0.0, -0.14142101, -0.98995 }, - { 0.0, -0.066519, -0.99778497 }, - { -0.071066998, -0.071066998, -0.994937 }, - { -0.07581, -0.15162, -0.98552799 }, - { -0.15162, -0.07581, -0.98552799 }, - { -0.080582, -0.24174701, -0.96698701 }, - { -0.162221, -0.162221, -0.97332799 }, - { -0.24174701, -0.080582, -0.96698701 }, - { -0.085125998, -0.34050301, -0.936382 }, - { -0.172774, -0.259161, -0.95025498 }, - { -0.259161, -0.172774, -0.95025498 }, - { -0.34050301, -0.085125998, -0.936382 }, - { -0.089087002, -0.44543499, -0.89087099 }, - { -0.182574, -0.36514801, -0.912871 }, - { -0.27617201, -0.27617201, -0.92057502 }, - { -0.36514801, -0.182574, -0.912871 }, - { -0.44543499, -0.089087002, -0.89087099 }, - { -0.092056997, -0.55234498, -0.82851702 }, - { -0.19069301, -0.476731, -0.85811597 }, - { -0.29138601, -0.38851401, -0.87415701 }, - { -0.38851401, -0.29138601, -0.87415701 }, - { -0.476731, -0.19069199, -0.85811597 }, - { -0.55234498, -0.092056997, -0.82851702 }, - { -0.093658999, -0.65561002, -0.74926901 }, - { -0.196116, -0.58834797, -0.78446501 }, - { -0.30304599, -0.50507599, -0.80812198 }, - { -0.40824801, -0.40824801, -0.81649703 }, - { -0.50507599, -0.30304599, -0.80812198 }, - { -0.58834797, -0.196116, -0.78446501 }, - { -0.65561002, -0.093658999, -0.74926901 }, - { -0.093658999, -0.74926901, -0.65561002 }, - { -0.19802999, -0.69310302, -0.69310302 }, - { -0.30942601, -0.61885297, -0.721995 }, - { -0.421637, -0.52704602, -0.73786497 }, - { -0.52704602, -0.421637, -0.73786497 }, - { -0.61885297, -0.30942601, -0.721995 }, - { -0.69310302, -0.198029, -0.69310302 }, - { -0.74926901, -0.093658999, -0.65561002 }, - { -0.092056997, -0.82851702, -0.55234498 }, - { -0.196116, -0.78446501, -0.58834797 }, - { -0.30942601, -0.721995, -0.61885297 }, - { -0.42640099, -0.63960201, -0.63960201 }, - { -0.53916401, -0.53916401, -0.64699697 }, - { -0.63960201, -0.42640099, -0.63960201 }, - { -0.721995, -0.30942601, -0.61885297 }, - { -0.78446501, -0.196116, -0.58834797 }, - { -0.82851702, -0.092056997, -0.55234498 }, - { -0.089087002, -0.89087099, -0.44543499 }, - { -0.19069301, -0.85811597, -0.476731 }, - { -0.30304599, -0.80812198, -0.50507599 }, - { -0.421637, -0.73786497, -0.52704602 }, - { -0.53916401, -0.64699697, -0.53916401 }, - { -0.64699697, -0.53916401, -0.53916401 }, - { -0.73786497, -0.421637, -0.52704602 }, - { -0.80812198, -0.30304599, -0.50507599 }, - { -0.85811597, -0.19069301, -0.476731 }, - { -0.89087099, -0.089087002, -0.44543499 }, - { -0.085125998, -0.936382, -0.34050301 }, - { -0.182574, -0.912871, -0.36514801 }, - { -0.29138601, -0.87415701, -0.38851401 }, - { -0.40824801, -0.81649703, -0.40824801 }, - { -0.52704602, -0.73786497, -0.421637 }, - { -0.63960201, -0.63960201, -0.42640099 }, - { -0.73786497, -0.52704602, -0.421637 }, - { -0.81649703, -0.40824801, -0.40824801 }, - { -0.87415701, -0.29138601, -0.38851401 }, - { -0.912871, -0.182574, -0.36514801 }, - { -0.936382, -0.085125998, -0.34050301 }, - { -0.080582, -0.96698803, -0.24174701 }, - { -0.172774, -0.95025498, -0.259161 }, - { -0.27617201, -0.92057502, -0.27617201 }, - { -0.38851401, -0.87415701, -0.29138601 }, - { -0.50507599, -0.80812198, -0.30304599 }, - { -0.61885297, -0.721995, -0.30942601 }, - { -0.721995, -0.61885297, -0.30942601 }, - { -0.80812198, -0.50507599, -0.30304599 }, - { -0.87415701, -0.38851401, -0.29138601 }, - { -0.92057502, -0.27617201, -0.27617201 }, - { -0.95025498, -0.172774, -0.259161 }, - { -0.96698803, -0.080582, -0.24174701 }, - { -0.07581, -0.98552698, -0.15162 }, - { -0.162221, -0.97332901, -0.162221 }, - { -0.259161, -0.95025498, -0.172774 }, - { -0.36514801, -0.912871, -0.182574 }, - { -0.476731, -0.85811597, -0.19069301 }, - { -0.58834797, -0.78446501, -0.196116 }, - { -0.69310302, -0.69310302, -0.19802999 }, - { -0.78446501, -0.58834797, -0.196116 }, - { -0.85811597, -0.476731, -0.19069301 }, - { -0.912871, -0.36514801, -0.182574 }, - { -0.95025498, -0.259161, -0.172774 }, - { -0.97332901, -0.162221, -0.162221 }, - { -0.98552698, -0.07581, -0.15162 }, - { -0.071066998, -0.994937, -0.071066998 }, - { -0.15162, -0.98552698, -0.07581 }, - { -0.24174701, -0.96698803, -0.080582 }, - { -0.34050301, -0.936382, -0.085125998 }, - { -0.44543499, -0.89087099, -0.089087002 }, - { -0.55234498, -0.82851702, -0.092056997 }, - { -0.65561002, -0.74926901, -0.093658999 }, - { -0.74926901, -0.65561002, -0.093658999 }, - { -0.82851702, -0.55234498, -0.092056997 }, - { -0.89087099, -0.44543499, -0.089087002 }, - { -0.936382, -0.34050301, -0.085125998 }, - { -0.96698803, -0.24174701, -0.080582 }, - { -0.98552698, -0.15162, -0.07581 }, - { -0.994937, -0.071066998, -0.071066998 }, - { 0.99778497, 0.0, -0.066519 }, - { 0.98995, 0.0, -0.14142101 }, - { 0.97439098, 0.0, -0.22486 }, - { 0.94868302, 0.0, -0.316228 }, - { 0.910366, 0.0, -0.41380301 }, - { 0.85749298, 0.0, -0.51449603 }, - { 0.789352, 0.0, -0.61394101 }, - { 0.70710701, 0.0, -0.70710701 }, - { 0.61394101, 0.0, -0.789352 }, - { 0.51449603, 0.0, -0.85749298 }, - { 0.41380301, 0.0, -0.910366 }, - { 0.316228, 0.0, -0.94868302 }, - { 0.22486, 0.0, -0.97439098 }, - { 0.14142101, 0.0, -0.98995 }, - { 0.066519, 0.0, -0.99778497 }, - { 0.071066998, -0.071066998, -0.994937 }, - { 0.15162, -0.07581, -0.98552799 }, - { 0.07581, -0.15162, -0.98552799 }, - { 0.24174701, -0.080582, -0.96698701 }, - { 0.162221, -0.162221, -0.97332799 }, - { 0.080582, -0.24174701, -0.96698701 }, - { 0.34050301, -0.085125998, -0.936382 }, - { 0.259161, -0.172774, -0.95025498 }, - { 0.172774, -0.259161, -0.95025498 }, - { 0.085125998, -0.34050301, -0.936382 }, - { 0.44543499, -0.089087002, -0.89087099 }, - { 0.36514801, -0.182574, -0.912871 }, - { 0.27617201, -0.27617201, -0.92057502 }, - { 0.182574, -0.36514801, -0.912871 }, - { 0.089087002, -0.44543499, -0.89087099 }, - { 0.55234498, -0.092056997, -0.82851702 }, - { 0.476731, -0.19069301, -0.85811597 }, - { 0.38851401, -0.29138601, -0.87415701 }, - { 0.29138601, -0.38851401, -0.87415701 }, - { 0.19069199, -0.476731, -0.85811597 }, - { 0.092056997, -0.55234498, -0.82851702 }, - { 0.65561002, -0.093658999, -0.74926901 }, - { 0.58834797, -0.196116, -0.78446501 }, - { 0.50507599, -0.30304599, -0.80812198 }, - { 0.40824801, -0.40824801, -0.81649703 }, - { 0.30304599, -0.50507599, -0.80812198 }, - { 0.196116, -0.58834797, -0.78446501 }, - { 0.093658999, -0.65561002, -0.74926901 }, - { 0.74926901, -0.093658999, -0.65561002 }, - { 0.69310302, -0.19802999, -0.69310302 }, - { 0.61885297, -0.30942601, -0.721995 }, - { 0.52704602, -0.421637, -0.73786497 }, - { 0.421637, -0.52704602, -0.73786497 }, - { 0.30942601, -0.61885297, -0.721995 }, - { 0.198029, -0.69310302, -0.69310302 }, - { 0.093658999, -0.74926901, -0.65561002 }, - { 0.82851702, -0.092056997, -0.55234498 }, - { 0.78446501, -0.196116, -0.58834797 }, - { 0.721995, -0.30942601, -0.61885297 }, - { 0.63960201, -0.42640099, -0.63960201 }, - { 0.53916401, -0.53916401, -0.64699697 }, - { 0.42640099, -0.63960201, -0.63960201 }, - { 0.30942601, -0.721995, -0.61885297 }, - { 0.196116, -0.78446501, -0.58834797 }, - { 0.092056997, -0.82851702, -0.55234498 }, - { 0.89087099, -0.089087002, -0.44543499 }, - { 0.85811597, -0.19069301, -0.476731 }, - { 0.80812198, -0.30304599, -0.50507599 }, - { 0.73786497, -0.421637, -0.52704602 }, - { 0.64699697, -0.53916401, -0.53916401 }, - { 0.53916401, -0.64699697, -0.53916401 }, - { 0.421637, -0.73786497, -0.52704602 }, - { 0.30304599, -0.80812198, -0.50507599 }, - { 0.19069301, -0.85811597, -0.476731 }, - { 0.089087002, -0.89087099, -0.44543499 }, - { 0.936382, -0.085125998, -0.34050301 }, - { 0.912871, -0.182574, -0.36514801 }, - { 0.87415701, -0.29138601, -0.38851401 }, - { 0.81649703, -0.40824801, -0.40824801 }, - { 0.73786497, -0.52704602, -0.421637 }, - { 0.63960201, -0.63960201, -0.42640099 }, - { 0.52704602, -0.73786497, -0.421637 }, - { 0.40824801, -0.81649703, -0.40824801 }, - { 0.29138601, -0.87415701, -0.38851401 }, - { 0.182574, -0.912871, -0.36514801 }, - { 0.085125998, -0.936382, -0.34050301 }, - { 0.96698803, -0.080582, -0.24174701 }, - { 0.95025498, -0.172774, -0.259161 }, - { 0.92057502, -0.27617201, -0.27617201 }, - { 0.87415701, -0.38851401, -0.29138601 }, - { 0.80812198, -0.50507599, -0.30304599 }, - { 0.721995, -0.61885297, -0.30942601 }, - { 0.61885297, -0.721995, -0.30942601 }, - { 0.50507599, -0.80812198, -0.30304599 }, - { 0.38851401, -0.87415701, -0.29138601 }, - { 0.27617201, -0.92057502, -0.27617201 }, - { 0.172774, -0.95025498, -0.259161 }, - { 0.080582, -0.96698803, -0.24174701 }, - { 0.98552698, -0.07581, -0.15162 }, - { 0.97332901, -0.162221, -0.162221 }, - { 0.95025498, -0.259161, -0.172774 }, - { 0.912871, -0.36514801, -0.182574 }, - { 0.85811597, -0.476731, -0.19069301 }, - { 0.78446501, -0.58834797, -0.196116 }, - { 0.69310302, -0.69310302, -0.19802999 }, - { 0.58834797, -0.78446501, -0.196116 }, - { 0.476731, -0.85811597, -0.19069301 }, - { 0.36514801, -0.912871, -0.182574 }, - { 0.259161, -0.95025498, -0.172774 }, - { 0.162221, -0.97332901, -0.162221 }, - { 0.07581, -0.98552698, -0.15162 }, - { 0.994937, -0.071066998, -0.071066998 }, - { 0.98552698, -0.15162, -0.07581 }, - { 0.96698803, -0.24174701, -0.080582 }, - { 0.936382, -0.34050301, -0.085125998 }, - { 0.89087099, -0.44543499, -0.089087002 }, - { 0.82851702, -0.55234498, -0.092056997 }, - { 0.74926901, -0.65561002, -0.093658999 }, - { 0.65561002, -0.74926901, -0.093658999 }, - { 0.55234498, -0.82851702, -0.092056997 }, - { 0.44543499, -0.89087099, -0.089087002 }, - { 0.34050301, -0.936382, -0.085125998 }, - { 0.24174701, -0.96698803, -0.080582 }, - { 0.15162, -0.98552698, -0.07581 }, - { 0.071066998, -0.994937, -0.071066998 }, - { 0.071066998, 0.071066998, -0.994937 }, - { 0.07581, 0.15162, -0.98552799 }, - { 0.15162, 0.07581, -0.98552799 }, - { 0.080582, 0.24174701, -0.96698701 }, - { 0.162221, 0.162221, -0.97332799 }, - { 0.24174701, 0.080582, -0.96698701 }, - { 0.085125998, 0.34050301, -0.936382 }, - { 0.172774, 0.259161, -0.95025498 }, - { 0.259161, 0.172774, -0.95025498 }, - { 0.34050301, 0.085125998, -0.936382 }, - { 0.089087002, 0.44543499, -0.89087099 }, - { 0.182574, 0.36514801, -0.912871 }, - { 0.27617201, 0.27617201, -0.92057502 }, - { 0.36514801, 0.182574, -0.912871 }, - { 0.44543499, 0.089087002, -0.89087099 }, - { 0.092056997, 0.55234498, -0.82851702 }, - { 0.19069301, 0.476731, -0.85811597 }, - { 0.29138601, 0.38851401, -0.87415701 }, - { 0.38851401, 0.29138601, -0.87415701 }, - { 0.476731, 0.19069199, -0.85811597 }, - { 0.55234498, 0.092056997, -0.82851702 }, - { 0.093658999, 0.65561002, -0.74926901 }, - { 0.196116, 0.58834797, -0.78446501 }, - { 0.30304599, 0.50507599, -0.80812198 }, - { 0.40824801, 0.40824801, -0.81649703 }, - { 0.50507599, 0.30304599, -0.80812198 }, - { 0.58834797, 0.196116, -0.78446501 }, - { 0.65561002, 0.093658999, -0.74926901 }, - { 0.093658999, 0.74926901, -0.65561002 }, - { 0.19802999, 0.69310302, -0.69310302 }, - { 0.30942601, 0.61885297, -0.721995 }, - { 0.421637, 0.52704602, -0.73786497 }, - { 0.52704602, 0.421637, -0.73786497 }, - { 0.61885297, 0.30942601, -0.721995 }, - { 0.69310302, 0.198029, -0.69310302 }, - { 0.74926901, 0.093658999, -0.65561002 }, - { 0.092056997, 0.82851702, -0.55234498 }, - { 0.196116, 0.78446501, -0.58834797 }, - { 0.30942601, 0.721995, -0.61885297 }, - { 0.42640099, 0.63960201, -0.63960201 }, - { 0.53916401, 0.53916401, -0.64699697 }, - { 0.63960201, 0.42640099, -0.63960201 }, - { 0.721995, 0.30942601, -0.61885297 }, - { 0.78446501, 0.196116, -0.58834797 }, - { 0.82851702, 0.092056997, -0.55234498 }, - { 0.089087002, 0.89087099, -0.44543499 }, - { 0.19069301, 0.85811597, -0.476731 }, - { 0.30304599, 0.80812198, -0.50507599 }, - { 0.421637, 0.73786497, -0.52704602 }, - { 0.53916401, 0.64699697, -0.53916401 }, - { 0.64699697, 0.53916401, -0.53916401 }, - { 0.73786497, 0.421637, -0.52704602 }, - { 0.80812198, 0.30304599, -0.50507599 }, - { 0.85811597, 0.19069301, -0.476731 }, - { 0.89087099, 0.089087002, -0.44543499 }, - { 0.085125998, 0.936382, -0.34050301 }, - { 0.182574, 0.912871, -0.36514801 }, - { 0.29138601, 0.87415701, -0.38851401 }, - { 0.40824801, 0.81649703, -0.40824801 }, - { 0.52704602, 0.73786497, -0.421637 }, - { 0.63960201, 0.63960201, -0.42640099 }, - { 0.73786497, 0.52704602, -0.421637 }, - { 0.81649703, 0.40824801, -0.40824801 }, - { 0.87415701, 0.29138601, -0.38851401 }, - { 0.912871, 0.182574, -0.36514801 }, - { 0.936382, 0.085125998, -0.34050301 }, - { 0.080582, 0.96698803, -0.24174701 }, - { 0.172774, 0.95025498, -0.259161 }, - { 0.27617201, 0.92057502, -0.27617201 }, - { 0.38851401, 0.87415701, -0.29138601 }, - { 0.50507599, 0.80812198, -0.30304599 }, - { 0.61885297, 0.721995, -0.30942601 }, - { 0.721995, 0.61885297, -0.30942601 }, - { 0.80812198, 0.50507599, -0.30304599 }, - { 0.87415701, 0.38851401, -0.29138601 }, - { 0.92057502, 0.27617201, -0.27617201 }, - { 0.95025498, 0.172774, -0.259161 }, - { 0.96698803, 0.080582, -0.24174701 }, - { 0.07581, 0.98552698, -0.15162 }, - { 0.162221, 0.97332901, -0.162221 }, - { 0.259161, 0.95025498, -0.172774 }, - { 0.36514801, 0.912871, -0.182574 }, - { 0.476731, 0.85811597, -0.19069301 }, - { 0.58834797, 0.78446501, -0.196116 }, - { 0.69310302, 0.69310302, -0.19802999 }, - { 0.78446501, 0.58834797, -0.196116 }, - { 0.85811597, 0.476731, -0.19069301 }, - { 0.912871, 0.36514801, -0.182574 }, - { 0.95025498, 0.259161, -0.172774 }, - { 0.97332901, 0.162221, -0.162221 }, - { 0.98552698, 0.07581, -0.15162 }, - { 0.071066998, 0.994937, -0.071066998 }, - { 0.15162, 0.98552698, -0.07581 }, - { 0.24174701, 0.96698803, -0.080582 }, - { 0.34050301, 0.936382, -0.085125998 }, - { 0.44543499, 0.89087099, -0.089087002 }, - { 0.55234498, 0.82851702, -0.092056997 }, - { 0.65561002, 0.74926901, -0.093658999 }, - { 0.74926901, 0.65561002, -0.093658999 }, - { 0.82851702, 0.55234498, -0.092056997 }, - { 0.89087099, 0.44543499, -0.089087002 }, - { 0.936382, 0.34050301, -0.085125998 }, - { 0.96698803, 0.24174701, -0.080582 }, - { 0.98552698, 0.15162, -0.07581 }, - { 0.994937, 0.071066998, -0.071066998 } -}; +real_vector3d* _random_direction3d(uint32* seed, const char* type, char* file, int32 line, real_vector3d* direction); \ No newline at end of file diff --git a/xlive/Blam/Engine/math/real_math.cpp b/xlive/Blam/Engine/math/real_math.cpp index 2a8486f60..7e7b82c13 100644 --- a/xlive/Blam/Engine/math/real_math.cpp +++ b/xlive/Blam/Engine/math/real_math.cpp @@ -29,11 +29,11 @@ real32 normalize2d(real_vector2d* vector) return result; } -real_vector2d* perpendicular2d(const real_vector2d* in, real_vector2d* out) +void perpendicular2d(const real_vector2d* in, real_vector2d* out) { out->i = -in->j; out->j = in->i; - return out; + return; } real32 normalize3d_with_default(real_vector3d* a, const real_vector3d* b) @@ -90,26 +90,29 @@ bool limit3d(real_vector3d* v, real32 limit) return true; } -real_point3d* points_interpolate(const real_vector3d* previous_point, const real_point3d* target_point, real32 fractional_tick, real_point3d* out) +void points_interpolate(const real_vector3d* previous_point, const real_point3d* target_point, real32 fractional_tick, real_point3d* out) { real_point3d tp1, tp2; scale_vector3d(previous_point, 1.0f - fractional_tick, &tp1); scale_vector3d(target_point, fractional_tick, &tp2); add_vectors3d(&tp1, &tp2, out); - return out; + return; } void scale_interpolate(real32 previous_scale, real32 current_scale, real32 fractional_tick, real32* out_scale) { *out_scale = previous_scale * (1.0f - fractional_tick) + (current_scale * fractional_tick); + return; } -real_vector3d* __cdecl perpendicular3d(const real_vector3d* in, real_vector3d* out) +void __cdecl perpendicular3d(const real_vector3d* in, real_vector3d* out) { - return INVOKE(0x344c9, 0x27B46, perpendicular3d, in, out); + INVOKE(0x344c9, 0x27B46, perpendicular3d, in, out); + return; } -real_vector3d* __cdecl generate_up_vector3d(const real_vector3d* forward, real_vector3d* up) +void __cdecl generate_up_vector3d(const real_vector3d* forward, real_vector3d* up) { - return INVOKE(0x346E2, 0x27D5F, generate_up_vector3d, forward, up); + INVOKE(0x346E2, 0x27D5F, generate_up_vector3d, forward, up); + return; } diff --git a/xlive/Blam/Engine/math/real_math.h b/xlive/Blam/Engine/math/real_math.h index 2e4800fcc..60b8f3c20 100644 --- a/xlive/Blam/Engine/math/real_math.h +++ b/xlive/Blam/Engine/math/real_math.h @@ -243,19 +243,19 @@ static BLAM_MATH_INL real32 normalize3d(real_vector3d* v1) return length; } -static BLAM_MATH_INL real_vector3d* cross_product3d(const real_vector3d* up, const real_vector3d* forward, real_vector3d* out_left) +static void BLAM_MATH_INL cross_product3d(const real_vector3d* up, const real_vector3d* forward, real_vector3d* out_left) { out_left->i = up->j * forward->k - up->k * forward->j; out_left->j = up->k * forward->i - up->i * forward->k; out_left->k = up->i * forward->j - up->j * forward->i; - return out_left; + return; } void __cdecl real_math_reset_precision(void); real32 normalize2d(real_vector2d* vector); -real_vector2d* perpendicular2d(const real_vector2d* in, real_vector2d* out); +void perpendicular2d(const real_vector2d* in, real_vector2d* out); void __cdecl fast_quaternion_interpolate_and_normalize(const real_quaternion* previous, const real_quaternion* current, real32 fractional_ticks, real_quaternion* out_quaternion); @@ -271,10 +271,10 @@ real32 distance3d(const real_point3d* p1, const real_point3d* p2); bool limit3d(real_vector3d* v, real32 limit); -real_point3d* points_interpolate(const real_vector3d* previous_point, const real_point3d* target_point, real32 fractional_tick, real_point3d* out); +void points_interpolate(const real_vector3d* previous_point, const real_point3d* target_point, real32 fractional_tick, real_point3d* out); void scale_interpolate(real32 previous_scale, real32 current_scale, real32 fractional_tick, real32* out_scale); -real_vector3d* __cdecl perpendicular3d(const real_vector3d* in, real_vector3d* out); +void __cdecl perpendicular3d(const real_vector3d* in, real_vector3d* out); -real_vector3d* __cdecl generate_up_vector3d(const real_vector3d* forward, real_vector3d* up); +void __cdecl generate_up_vector3d(const real_vector3d* forward, real_vector3d* up); diff --git a/xlive/Blam/Engine/units/bipeds.cpp b/xlive/Blam/Engine/units/bipeds.cpp index 34cf6edbe..7effed96d 100644 --- a/xlive/Blam/Engine/units/bipeds.cpp +++ b/xlive/Blam/Engine/units/bipeds.cpp @@ -19,7 +19,7 @@ bool __cdecl biped_is_running_invisible_crouched_uber_melee(datum object_index) } -real_vector2d* biped_build_2d_camera_frame(const real_vector3d* forward, const real_vector3d* up, real_vector2d* forward_out, real_vector2d* up_out) +void biped_build_2d_camera_frame(const real_vector3d* forward, const real_vector3d* up, real_vector2d* forward_out, real_vector2d* up_out) { forward_out->i = forward->i; forward_out->j = forward->j; @@ -37,7 +37,7 @@ real_vector2d* biped_build_2d_camera_frame(const real_vector3d* forward, const r *forward_out = global_forward2d; } } - return perpendicular2d(forward_out, up_out); + perpendicular2d(forward_out, up_out); } void __cdecl biped_offset_first_person_camera(const real_vector3d* camera_forward, datum object_index, real_point3d* camera_position, const real_vector3d* camera_up) diff --git a/xlive/Project_Cartographer.vcxproj b/xlive/Project_Cartographer.vcxproj index 9d57d602d..45c072fd0 100644 --- a/xlive/Project_Cartographer.vcxproj +++ b/xlive/Project_Cartographer.vcxproj @@ -507,6 +507,7 @@ +