00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _SO_MF_VEC3D_
00026 #define _SO_MF_VEC3D_
00027
00028 #include <Inventor/fields/SoSubField.h>
00029 #include <Inventor/SbLinear.h>
00030
00032
00033
00034
00036
00065 class SoMFVec3d : public SoMField {
00066
00067 SO_MFIELD_HEADER(SoMFVec3d, SbVec3d, const SbVec3d &);
00068
00069 SO_MFIELD_SETVALUESPOINTER_HEADER(double);
00070 SO_MFIELD_SETVALUESPOINTER_HEADER(SbVec3d);
00071 SO_FIELD_SUPPORT_MEMOBJ();
00072
00073 public:
00074
00075
00076
00077
00090 void setValues(int start, int num, const double xyz[][3]);
00091 #ifdef _WIN32
00092
00096 void setValues(int start, int num, double xyz[][3]);
00097 #endif
00098
00105 void set1Value(int index, double x, double y, double z);
00106
00113 void set1Value(int index, const double xyz[3]);
00114
00120 void setValue(double x, double y, double z);
00121
00127 void setValue(const double xyz[3]);
00128
00129 private:
00130 static void initClass();
00131 static void exitClass();
00132 virtual void writeBinaryValues(SoOutput*, int , int ) const;
00133 virtual SbBool readBinaryValues( SoInput*, int, int );
00134
00135 private:
00136
00137 virtual void writeBinaryValues(SoOutput *out) const;
00138 virtual SbBool readBinaryValues(SoInput *in, int numToRead);
00139
00140 };
00141
00142 #endif
00143
00144