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