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 COIN_SOGATE_H
00025 #define COIN_SOGATE_H
00026
00027 #include <Inventor/engines/SoSubEngine.h>
00028 #include <Inventor/fields/SoMField.h>
00029 #include <Inventor/fields/SoSFBool.h>
00030 #include <Inventor/fields/SoSFTrigger.h>
00031
00032 class SoEngineOutput;
00033
00034
00035 class COIN_DLL_API SoGate : public SoEngine {
00036 typedef SoEngine inherited;
00037
00038 SO_ENGINE_HEADER(SoGate);
00039
00040 public:
00041 static void initClass(void);
00042 SoGate(SoType type);
00043
00044 SoSFBool enable;
00045 SoSFTrigger trigger;
00046 SoMField * input;
00047
00048 SoEngineOutput * output;
00049
00050 protected:
00051 virtual void inputChanged(SoField * which);
00052
00053 private:
00054 SoGate(void);
00055 ~SoGate();
00056
00057 virtual void evaluate(void);
00058
00059 virtual SbBool readInstance(SoInput * in, unsigned short flags);
00060 virtual void writeInstance(SoOutput * out);
00061
00062 void initialize(const SoType inputfieldtype);
00063
00064 virtual void copyContents(const SoFieldContainer * from,
00065 SbBool copyconnections);
00066
00067
00068
00069
00070 SoFieldData * dynamicinput;
00071 SoEngineOutputData * dynamicoutput;
00072
00073
00074 friend class dummy;
00075 };
00076
00077 #endif // !COIN_SOGATE_H