File indexing completed on 2024-05-12 15:23:44

0001 /*
0002     SPDX-FileCopyrightText: 2012 Andrew Stepanenko
0003 
0004     Modified by Jasem Mutlaq <mutlaqja@ikarustech.com> for KStars:
0005     SPDX-FileCopyrightText: 2012 Jasem Mutlaq <mutlaqja@ikarustech.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #include "vect.h"
0011 
0012 #include <cmath>
0013 #include <cstdlib>
0014 
0015 namespace GuiderUtils
0016 {
0017 
0018 Vector operator^(const Vector &u, const Vector &v)
0019 {
0020     return Vector(u.y * v.z - u.z * v.y, u.z * v.x - u.x * v.z, u.x * v.y - u.y * v.x);
0021 }
0022 
0023 Vector RndVector()
0024 {
0025     Vector v(rand() - 0.5 * RAND_MAX, rand() - 0.5 * RAND_MAX, rand() - 0.5 * RAND_MAX);
0026     return Normalize(v);
0027 }
0028 
0029 Vector &Clip(Vector &v)
0030 {
0031     if (v.x < 0.0)
0032         v.x = 0.0;
0033     else if (v.x > 1.0)
0034         v.x = 1.0;
0035     if (v.y < 0.0)
0036         v.y = 0.0;
0037     else if (v.y > 1.0)
0038         v.y = 1.0;
0039     if (v.z < 0.0)
0040         v.z = 0.0;
0041     else if (v.z > 1.0)
0042         v.z = 1.0;
0043 
0044     return v;
0045 }
0046 }  // namespace GuiderUtils