00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef COIN_SOWRITEACTION_H
00021 #define COIN_SOWRITEACTION_H
00022
00023 #include <Inventor/actions/SoAction.h>
00024 #include <Inventor/actions/SoSubAction.h>
00025
00026 class SoVRMLPROTODef;
00027 class SoVRMLEXTERNPROTODef;
00028
00029
00030 class COIN_DLL_API SoWriteAction : public SoAction {
00031 typedef SoAction inherited;
00032
00033 SO_ACTION_HEADER(SoWriteAction);
00034
00035 public:
00036 SoWriteAction(void);
00037 SoWriteAction(SoOutput * out);
00038 virtual ~SoWriteAction();
00039
00040 static void initClass(void);
00041
00042 SoOutput * getOutput(void) const;
00043
00044 void continueToApply(SoNode * node);
00045 void continueToApply(SoPath * path);
00046
00047 protected:
00048 virtual void beginTraversal(SoNode * node);
00049 virtual SbBool shouldCompactPathLists(void) const;
00050
00051 private:
00052 void commonConstructor(SoOutput * out);
00053
00054 SoOutput * outobj;
00055 SbBool localoutputalloc;
00056 SbBool continuing;
00057 };
00058
00059 #endif // !COIN_SOWRITEACTION_H