Kstars
18Matrix ::Matrix(
double v)
20 for (
int i = 0; i < 4; i++)
21 for (
int j = 0;
j < 4;
j++)
22 x[i][
j] = (i ==
j) ? v : 0.0;
29 for (double &item : row)
40 for (
int i = 0; i < 4; i++)
45 for (
int j = 0;
j < 4;
j++)
52 for (
int j = 0;
j < 4;
j++)
59 for (
int k = 0;
k < 4;
k++)
71void Matrix ::Transpose()
74 for (
int i = 0; i < 4; i++)
75 for (
int j = i;
j < 4;
j++)
84Matrix &Matrix ::operator+=(
const Matrix &A)
89 for (
int i = 0; i < 4; i++)
90 for (
int j = 0;
j < 4;
j++)
96Matrix &Matrix ::operator-=(
const Matrix &A)
101 for (
int i = 0; i < 4; i++)
102 for (
int j = 0;
j < 4;
j++)
103 x[i][
j] -= A.x[i][
j];
108Matrix &Matrix ::operator*=(
double v)
111 for (double &item : row)
119Matrix &Matrix ::operator*=(
const Matrix &A)
125 for (
int i = 0; i < 4; i++)
126 for (
int j = 0;
j < 4;
j++)
129 for (
int k = 0;
k < 4;
k++)
130 sum +=
res.x[i][
k] * A.x[
k][
j];
137Matrix
operator+(
const Matrix &A,
const Matrix &B)
140 for (
int i = 0; i < 4; i++)
141 for (
int j = 0;
j < 4;
j++)
142 res.x[i][
j] = A.x[i][
j] + B.x[i][
j];
147Matrix operator-(
const Matrix &A,
const Matrix &B)
150 for (
int i = 0; i < 4; i++)
151 for (
int j = 0;
j < 4;
j++)
152 res.x[i][
j] = A.x[i][
j] - B.x[i][
j];
157Matrix operator*(
const Matrix &A,
const Matrix &B)
160 for (
int i = 0; i < 4; i++)
161 for (
int j = 0;
j < 4;
j++)
164 for (
int k = 0;
k < 4;
k++)
165 sum += A.x[i][
k] * B.x[
k][
j];
173Matrix operator*(
const Matrix &A,
double v)
176 for (
int i = 0; i < 4; i++)
177 for (
int j = 0;
j < 4;
j++)
178 res.x[i][
j] = A.x[i][
j] * v;
183GuiderUtils::Vector operator*(
const GuiderUtils::Vector &v,
const Matrix &M)
185 GuiderUtils::Vector
res;
187 res.x = v.x * M.x[0][0] + v.y * M.x[0][1] + v.z * M.x[0][2] + M.x[0][3];
188 res.y = v.x * M.x[1][0] + v.y * M.x[1][1] + v.z * M.x[1][2] + M.x[1][3];
189 res.z = v.x * M.x[2][0] + v.y * M.x[2][1] + v.z * M.x[2][2] + M.x[2][3];
214Matrix Translate(
const GuiderUtils::Vector &
Loc)
228Matrix Scale(
const GuiderUtils::Vector &v)
238Matrix RotateX(
double Angle)
257Matrix RotateY(
double Angle)
271Matrix RotateZ(
double Angle)
287Matrix Rotate(
const GuiderUtils::Vector &axis,
double angle)
290 double Cosine = cos(angle);
291 double Sine = sin(angle);
293 res.x[0][0] = axis.x * axis.x + (1 - axis.x * axis.x) *
Cosine;
294 res.x[0][1] = axis.x * axis.y * (1 -
Cosine) + axis.z *
Sine;
295 res.x[0][2] = axis.x * axis.z * (1 -
Cosine) - axis.y *
Sine;
298 res.x[1][0] = axis.x * axis.y * (1 -
Cosine) - axis.z *
Sine;
299 res.x[1][1] = axis.y * axis.y + (1 - axis.y * axis.y) *
Cosine;
300 res.x[1][2] = axis.y * axis.z * (1 -
Cosine) + axis.x *
Sine;
303 res.x[2][0] = axis.x * axis.z * (1 -
Cosine) + axis.y *
Sine;
304 res.x[2][1] = axis.y * axis.z * (1 -
Cosine) - axis.x *
Sine;
305 res.x[2][2] = axis.z * axis.z + (1 - axis.z * axis.z) *
Cosine;
316Matrix Transform(
const GuiderUtils::Vector &
v1,
const GuiderUtils::Vector &
v2,
const GuiderUtils::Vector &
v3)
QCA_EXPORT const SecureArray operator+(const SecureArray &a, const SecureArray &b)
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:02 by
doxygen 1.10.0 written
by
Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.