SFPoint3f.h

Go to the documentation of this file.
00001 #ifndef X3DTK_SFPOINT3F_H
00002 #define X3DTK_SFPOINT3F_H
00003 
00004 #include "SFVec3f.h"
00005 
00006 #include <math.h>
00007 #include <iostream>
00008 
00009 namespace X3DTK {
00010 
00011 class SFString;
00012 
00021 class SFPoint3f
00022 {
00023 public:
00025   float x;
00027   float y;
00029   float z;
00030 
00032   SFPoint3f();
00034   SFPoint3f(float x, float y, float z);
00036   SFPoint3f(const SFPoint3f &p);
00038   SFPoint3f &operator= (const SFPoint3f &v);
00040   SFPoint3f &operator+= (const SFVec3f &v);
00042   SFPoint3f &operator+= (const SFPoint3f &v);
00044   SFPoint3f &operator-= (const SFVec3f &v);
00046   explicit SFPoint3f(const SFString &s);
00047   // Conversion from vector to point.
00048   explicit SFPoint3f(const SFVec3f &V);
00049 
00051   friend SFPoint3f operator+ (const SFPoint3f &v1, const SFVec3f &v2);
00053   friend SFPoint3f operator+ (const SFPoint3f &v1, const SFPoint3f &v2);
00055   friend SFPoint3f operator- (const SFPoint3f &v1, const SFVec3f &v2);
00057   friend SFVec3f operator- (const SFPoint3f &v1, const SFPoint3f &v2);
00059   friend SFPoint3f operator* (const float a, const SFPoint3f &v);
00061   friend float distance(const SFPoint3f &A, const SFPoint3f &B);
00063   inline float *f_data() {return &x;};
00065   inline const float *f_data() const {return &x;};
00067   inline operator float *() {return &x;};
00069   inline operator const float *() const {return &x;};
00071   static const SFPoint3f null;
00072 };
00073 
00074 }
00075 
00076 #endif

Generated on Mon Jul 12 09:40:00 2004 for X3DToolKit by doxygen 1.3.6