00001 00002 // SFPoint.h // 00004 00005 #ifndef POINT3F_H 00006 #define POINT3F_H 00007 00008 #include "SFVec3f.h" 00009 00010 #include <math.h> 00011 #include <iostream> 00012 00013 namespace X3DTK { 00014 00015 class SFString; 00016 00020 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= (SFPoint3f v); 00040 explicit SFPoint3f(const SFString &s); 00041 // Conversion from vector to point. 00042 explicit SFPoint3f(const SFVec3f &V); 00043 00045 friend SFPoint3f operator+ (const SFPoint3f &v1, const SFVec3f &v2); 00047 friend SFPoint3f operator- (const SFPoint3f &v1, const SFVec3f &v2); 00049 friend SFVec3f operator- (const SFPoint3f &v1, const SFPoint3f &v2); 00051 friend SFPoint3f operator* (const float a, const SFPoint3f &v); 00053 friend float distance(const SFPoint3f &A, const SFPoint3f &B); 00054 }; 00055 00056 } 00057 00058 #endif