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 _PO_MESHPROBEPOINT_
00026 #define _PO_MESHPROBEPOINT_
00027
00028 #include <Inventor/fields/SoSFVec3f.h>
00029 #include <MeshViz/3Ddata/PoMesh.h>
00030
00031 class PbCell;
00044 class PoMeshProbePoint : public PoMesh {
00045
00046 SO_KIT_HEADER(PoMeshProbePoint) ;
00047
00048
00049 public:
00050
00054 PoMeshProbePoint() ;
00055
00056
00057
00061 SoSFVec3f position;
00062
00067 SoSFFloat tolerance;
00068
00072 virtual void rebuild() ;
00073
00074
00078 typedef void PoProbeCB(void *userData, PoMeshProbePoint *probe, const PbCell *cell);
00079
00083 void setMotionCallback(PoProbeCB *cb, void *data) ;
00084
00088 void setChangeCellCallback(PoProbeCB *cb, void *data) ;
00089
00093 void setEnterMeshCallback(PoProbeCB *cb, void *data) ;
00094
00098 void setLeaveMeshCallback(PoProbeCB *cb, void *data) ;
00099 private:
00100 static void initClass() ;
00101 static void exitClass() ;
00102
00103 private:
00104 virtual ~PoMeshProbePoint() ;
00105
00106
00107 virtual SbBool setUpConnections(SbBool onOff, SbBool doItAlways = FALSE) ;
00108 virtual void setDefaultOnNonWritingFields();
00109
00110 virtual void addElementsAllCaches() ;
00111 virtual void preRebuild();
00112
00113 private:
00114 FieldSensorList m_fieldSensorList ;
00115
00116
00117 SoFieldList m_fieldList ;
00118
00119
00120 const PbCell *m_currentCell;
00121 SbBool m_isInsideMesh;
00122 PoProbeCB *m_motionCB, *m_changeCellCB, *m_enterMeshCB, *m_leaveMeshCB;
00123 void *m_motionData, *m_changeCellData, *m_enterMeshData, *m_leaveMeshData;
00124
00125 } ;
00126
00127
00128
00129 #endif
00130
00131
00132