libvector.h 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef _H_LIBVECTOR
  2. #define _H_LIBVECTOR
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6. #include <functional>
  7. #include <algorithm>
  8. #include <cmath>
  9. template <class T> T sqr(T x) {return x*x;}
  10. class vector2d{
  11. public:
  12. double x,y;
  13. vector2d();
  14. vector2d(double,double);
  15. vector2d operator+(vector2d);
  16. vector2d operator-(vector2d);
  17. double operator*(vector2d);
  18. vector2d operator*(double);
  19. vector2d operator/(double);
  20. double abs();
  21. vector2d normale();
  22. float CyclicDistance(vector2d, vector2d); //assuming xrange=yrange=[0,1]
  23. void print();
  24. void fprintfcs(FILE* out);
  25. void set(double _x=0, double _y=0);
  26. void get(double& _x, double& _y);
  27. };
  28. /// Definiton der Klasse vertex
  29. class vertex {
  30. public:
  31. double x, y, z, u, v;
  32. bool remaped;
  33. vertex();
  34. vertex(double, double,double, double, double);
  35. void setvalue(double, double,double, double, double);
  36. void setuv(double,double);
  37. void print();
  38. void fprintfcs(FILE*);
  39. vertex operator+(vertex);
  40. vertex operator-(vertex);
  41. double operator*(vertex);
  42. vertex operator*(double);
  43. vertex operator/(double);
  44. vertex normal();
  45. void fastnormuv();
  46. void normuv();
  47. double abs();
  48. };
  49. #endif /*_H_LIBVECTOR */