Changeset 1020 for cpp/frams/util/3d.cpp
- Timestamp:
- 07/24/20 21:44:10 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/frams/util/3d.cpp
r375 r1020 1 1 // This file is a part of Framsticks SDK. http://www.framsticks.com/ 2 // Copyright (C) 1999-20 15Maciej Komosinski and Szymon Ulatowski.2 // Copyright (C) 1999-2020 Maciej Komosinski and Szymon Ulatowski. 3 3 // See LICENSE.txt for details. 4 4 … … 6 6 #include <common/log.h> 7 7 #include "3d.h" 8 #include <algorithm> // std::min(), std::max() 8 9 9 10 Pt3D operator+(const Pt3D &p1, const Pt3D &p2) { return Pt3D(p1.x + p2.x, p1.y + p2.y, p1.z + p2.z); } … … 16 17 double Pt3D::operator()() const 17 18 { 18 double q = x *x + y*y + z*z;19 double q = x * x + y * y + z * z; 19 20 if (q < 0) { if (report_errors) logPrintf("Pt3D", "operator()", LOG_ERROR, "sqrt(%g): domain error", q); return 0; } 20 21 return sqrt(q); … … 34 35 double dy = y - p.y; 35 36 double dz = z - p.z; 36 return sqrt(dx *dx + dy*dy + dz*dz);37 return sqrt(dx * dx + dy * dy + dz * dz); 37 38 } 38 39 … … 48 49 { 49 50 double s = sin(k), c = cos(k); 50 double t = c *x - s*y;51 y = s *x + c*y;51 double t = c * x - s * y; 52 y = s * x + c * y; 52 53 x = t; 53 54 } … … 55 56 void rotate2D(double s, double c, double &x, double &y) 56 57 { 57 double t = c *x - s*y;58 y = s *x + c*y;58 double t = c * x - s * y; 59 y = s * x + c * y; 59 60 x = t; 60 61 } … … 105 106 } 106 107 108 double Pt3D::minComponent() const 109 { 110 return std::min(x, std::min(y, z)); 111 } 112 113 double Pt3D::maxComponent() const 114 { 115 return std::max(x, std::max(y, z)); 116 } 117 107 118 void Pt3D::vectorProduct(const Pt3D& a, const Pt3D& b) 108 119 { 109 x = a.y *b.z - a.z*b.y;110 y = a.z *b.x - a.x*b.z;111 z = a.x *b.y - a.y*b.x;120 x = a.y * b.z - a.z * b.y; 121 y = a.z * b.x - a.x * b.z; 122 z = a.x * b.y - a.y * b.x; 112 123 } 113 124 … … 146 157 double d2(double x, double y) 147 158 { 148 double q = x *x + y*y;159 double q = x * x + y * y; 149 160 if (q < 0) { if (Pt3D::report_errors) logPrintf("", "d2()", LOG_ERROR, "sqrt(%g): domain error", q); return 0; } 150 161 return sqrt(q); … … 192 203 void Orient::transform(Pt3D& target, const Pt3D &s) const 193 204 { 194 target.x = s.x *x.x + s.y*y.x + s.z*z.x;195 target.y = s.x *x.y + s.y*y.y + s.z*z.y;196 target.z = s.x *x.z + s.y*y.z + s.z*z.z;205 target.x = s.x * x.x + s.y * y.x + s.z * z.x; 206 target.y = s.x * x.y + s.y * y.y + s.z * z.y; 207 target.z = s.x * x.z + s.y * y.z + s.z * z.z; 197 208 } 198 209 199 210 void Orient::revTransform(Pt3D& target, const Pt3D &s) const 200 211 { 201 target.x = s.x *x.x + s.y*x.y + s.z*x.z;202 target.y = s.x *y.x + s.y*y.y + s.z*y.z;203 target.z = s.x *z.x + s.y*z.y + s.z*z.z;212 target.x = s.x * x.x + s.y * x.y + s.z * x.z; 213 target.y = s.x * y.x + s.y * y.y + s.z * y.z; 214 target.z = s.x * z.x + s.y * z.y + s.z * z.z; 204 215 } 205 216
Note: See TracChangeset
for help on using the changeset viewer.