00001 00002 00003 00005 00006 00011 00016 00021 // SFPoint.h // 00023 00024 #ifndef POINT3F_H 00025 #define POINT3F_H 00026 00027 #include "SFVec3f.h" 00028 00029 #include <math.h> 00030 #include <iostream> 00031 00032 namespace X3DTK { 00033 00034 class SFString; 00035 00039 00040 class SFPoint3f 00041 { 00042 public: 00044 float x; 00046 float y; 00048 float z; 00049 00051 SFPoint3f(); 00053 SFPoint3f(float x, float y, float z); 00055 SFPoint3f(const SFPoint3f &p); 00057 SFPoint3f &operator= (const SFPoint3f &v); 00059 SFPoint3f &operator+= (const SFVec3f &v); 00061 SFPoint3f &operator-= (const SFVec3f &v); 00063 explicit SFPoint3f(const SFString &s); 00064 // Conversion from vector to point. 00065 explicit SFPoint3f(const SFVec3f &V); 00066 00068 friend SFPoint3f operator+ (const SFPoint3f &v1, const SFVec3f &v2); 00070 friend SFPoint3f operator- (const SFPoint3f &v1, const SFVec3f &v2); 00072 friend SFVec3f operator- (const SFPoint3f &v1, const SFPoint3f &v2); 00074 friend SFPoint3f operator* (const float a, const SFPoint3f &v); 00076 friend float distance(const SFPoint3f &A, const SFPoint3f &B); 00077 }; 00078 00079 } 00080 00081 #endif