#if !defined(FRAME) #define FRAME #include "MyFrame.h" #endif // -------------------------------------------------------------------- // ------------------ MyFrame() ------------------ MyFrame::MyFrame(void) { e1=vector3d(1.0,0.0,0.0); e2=vector3d(0.0,1.0,0.0); e3=vector3d(0.0,0.0,1.0); } // -------------------------------------------------------------------- // ------------------ MyFrame(u,v,w) ------------------ MyFrame::MyFrame(vector3d u,vector3d v,vector3d w) { // should test if the vector are orthogonal to each others e1=u/u.norm(); e2=v/v.norm(); e3=w/w.norm(); } // -------------------------------------------------------------------- // ------------------ operator=(f) ------------------ MyFrame MyFrame::operator=(const MyFrame& f) { if(this!=&f) { e1=f.e1; e2=f.e2; e3=f.e3; } return *this; } // -------------------------------------------------------------------- // ------------------ MyFrame(u,v,w) ------------------ vector3d& MyFrame::operator[](int i) { vector3d u; try { if((i>3)|| (i<1)) throw "MyFrame::operator[], (C) index out of range."; switch(i) { case 1: return e1; break; case 2: return e2; break; case 3: return e3; break; } } catch(const char* message){cerr << message << "\n";} } // ------------------------------------------------------------------------- vector3d MyFrame::ChangeFrame(vector3d& u) { vector3d tmp; //cerr << "u: " << u << endl; tmp[1]=u*e1; tmp[2]=u*e2; tmp[3]=u*e3; //cerr << "change frame:" << tmp << endl; return tmp; }