00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _PO_STREAMPOINTMOTION_
00025 #define _PO_STREAMPOINTMOTION_
00026
00027 #include <MeshViz/3Ddata/PoStreamParticleMotion.h>
00028 #include <Inventor/fields/SoSFBool.h>
00029
00030
00072 class PoStreamPointMotion : public PoStreamParticleMotion {
00073
00074 SO_KIT_HEADER(PoStreamPointMotion) ;
00075
00076
00077 SO_KIT_CATALOG_ENTRY_HEADER(groupStreamPointMotion) ;
00078
00079
00080 public:
00081
00085 PoStreamPointMotion();
00086
00090 virtual void rebuild();
00091
00092
00093
00098 SoSFFloat pointSize;
00099
00100
00101 private:
00102 static void initClass() ;
00103 static void exitClass() ;
00104
00105 private:
00106 virtual ~PoStreamPointMotion() ;
00107
00108
00109 virtual void setDefaultOnNonWritingFields();
00110 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00111
00112 private:
00113 FieldSensorList m_fieldSensorList ;
00114
00115
00116 SoFieldList m_fieldList ;
00117
00118
00119 void newAnimator(SoGroup *group, SoLineSet *line_set,
00120 SoCoordinate3 *particle_coord, SoCoordinate3 *particle_speed,
00121 SoMFColor *particle_color);
00122 void endAnimator(SoGroup *group, SoLineSet *line_set,
00123 SoCoordinate3 *particle_coord, SoCoordinate3 *particle_speed,
00124 SoMFColor *particle_color);
00125 void newFrame(SoGroup *frame, int frame_ind);
00126 void endFrame(SoGroup *frame, int frame_ind);
00127 void newLine(SoGroup *line, int line_ind);
00128 void endLine(SoGroup *line, int line_ind);
00129 void newParticle(const SbVec3f &pos, const SbVec3f &speed, const SbVec3f &norm, const SbColor *color, int ind);
00130
00131
00132 SoCoordinate3 *m_lineCoordinate;
00133 SoMFColor *m_particleColor;
00134 SoMFColor *m_lineColor;
00135 int m_lineNumPoints;
00136
00137 } ;
00138
00139
00140
00141 #endif
00142
00143
00144