/[gzz]/gzz/gfx/libcoords/Coords.cxx
ViewVC logotype

Diff of /gzz/gfx/libcoords/Coords.cxx

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.16 by tjl, Mon Sep 30 12:53:33 2002 UTC revision 1.17 by tjl, Mon Sep 30 16:30:10 2002 UTC
# Line 139  namespace Coords { Line 139  namespace Coords {
139          enum { NParams = 4 };          enum { NParams = 4 };
140          virtual void setParams(float *params) {          virtual void setParams(float *params) {
141              CoordSys::setParams(params);              CoordSys::setParams(params);
142                vec.x = params[0];
143                vec.y = params[1];
144                vec.z = params[2];
145                vec = vec.normalized();
146    
147              s = sin(params[3] * M_PI / 180);              s = sin(params[3] * M_PI / 180);
148              c = cos(params[3] * M_PI / 180);              c = cos(params[3] * M_PI / 180);
# Line 147  namespace Coords { Line 151  namespace Coords {
151           * coordsys.           * coordsys.
152           */           */
153          void tr(const ZPt &from, ZPt &to) const {          void tr(const ZPt &from, ZPt &to) const {
154                ZVec v(from);
155              to.x = c * from.x + s * from.y;              float same = v.dot(vec);
156              to.y = -s * from.x + c * from.y;              ZVec para = v - same*vec;
157              to.z = from.z;              float  paral = para.length();
158                para = (1/paral)*para;
159                ZVec ortho = para.crossp(v).normalized();
160                to = ZPt( same * vec + paral * (c * para + s * ortho) );
161          }          }
162          virtual ZPt transform(const ZPt &p) const {          virtual ZPt transform(const ZPt &p) const {
163              ZPt mp;              ZPt mp;

Legend:
Removed from v.1.16  
changed lines
  Added in v.1.17

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26