00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #ifndef COIN_SOSELECTONE_H
00021 #define COIN_SOSELECTONE_H
00022 
00023 #include <Inventor/engines/SoSubEngine.h>
00024 #include <Inventor/fields/SoMField.h>
00025 #include <Inventor/fields/SoSFInt32.h>
00026 
00027 class SoEngineOutput;
00028 
00029 
00030 class COIN_DLL_API SoSelectOne : public SoEngine {
00031   typedef SoEngine inherited;
00032 
00033   SO_ENGINE_HEADER(SoSelectOne);
00034 
00035 public:
00036   SoSFInt32 index;
00037   SoMField * input;
00038 
00039   SoEngineOutput * output; 
00040 
00041   SoSelectOne(SoType inputtype);
00042   static void initClass(void);
00043 
00044 private:
00045   SoSelectOne(void);
00046   ~SoSelectOne();
00047 
00048   virtual void evaluate(void);
00049 
00050   virtual SbBool readInstance(SoInput * in, unsigned short flags);
00051   virtual void writeInstance(SoOutput * out);
00052 
00053   SbBool initialize(const SoType inputfieldtype);
00054 
00055   virtual void copyContents(const SoFieldContainer * from,
00056                             SbBool copyconnections);
00057 
00058   
00059   
00060   
00061   SoFieldData * dynamicinput;
00062   SoEngineOutputData * dynamicoutput;
00063 
00064   
00065   friend class dummy;
00066 };
00067 
00068 #endif // !COIN_SOSELECTONE_H