home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 3 / RISC_DISC_3.iso / resources / etexts / gems / gemsv / ch5_5 / misc.cxx < prev    next >
C/C++ Source or Header  |  1995-03-04  |  1KB  |  35 lines

  1. #include <iostream.h>
  2.  
  3. #include "global.h"
  4.  
  5. list<object*> objects;
  6.  
  7. ostream& operator<<(ostream& o, vector& v) {
  8.         o<<"<"<<v.x<<","<<v.y<<","<<v.z<<">"; 
  9.         return o;
  10. }
  11. vector operator-(vector& v) {return vector(-v.x,-v.y,-v.z);}
  12. ostream& operator<<(ostream& o, xform& T) {
  13.         o<<"xform {\n";
  14.         o<<"\t"<<"orientation {\n";
  15.         o<<"\t"<<"\t"<<T.A.m11<<"\t"<<T.A.m12<<"\t"<<T.A.m13<<"\n";
  16.         o<<"\t"<<"\t"<<T.A.m21<<"\t"<<T.A.m22<<"\t"<<T.A.m23<<"\n";
  17.         o<<"\t"<<"\t"<<T.A.m31<<"\t"<<T.A.m32<<"\t"<<T.A.m33<<"\n";
  18.         o<<"\t"<<"}\n";
  19.         o<<"\t"<<"scale "<<T.s<<"\n";
  20.         o<<"\t"<<"translate "<<T.t<<"\n";
  21.         o<<"}\n";
  22.         return o;
  23. }
  24. ostream& operator<<(ostream& o, color& c) {
  25.         o<<"<red "<<c.r<<" green "<<c.g<<" blue "<<c.b<<" filter "<<c.f<<">";
  26.         return o;
  27. }
  28. ostream& operator<<(ostream& o, intensity& i) {
  29.         o<<"<red "<<i.r<<" green "<<i.g<<" blue "<<i.b<<">";
  30.         return o;
  31. }
  32. ostream& operator<<(ostream& o, object& p) {p.out(o); return o;}
  33.  
  34. vector norm(vector& v) {return v*(1./sqrt(v%v));}
  35.