00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00027
00029 #ifndef __DEVICE_LOG_H__
00030 #define __DEVICE_LOG_H__
00031
00032 #include "X3DChildNode.h"
00033 #include "SFString.h"
00034 #ifdef WIN32
00035 #include <Windows.h>
00036 #endif
00037 #include "TimeStamp.h"
00038 using namespace std;
00039
00040 namespace H3D {
00041
00045 class H3DAPI_API DeviceLog : public X3DChildNode {
00046 public:
00047
00049 DeviceLog( Inst< SFNode> _metadata = 0,
00050 Inst< SFString > _filename = 0 ) :
00051 X3DChildNode( _metadata ),
00052 filename( _filename ) {
00053 log_file = 0;
00054 filename->setValue( "log.dat" );
00055 };
00056
00058 virtual ~DeviceLog() {
00059 closeLog();
00060 };
00061
00062 virtual void openLog( );
00063
00064 virtual void writeLog( Vec3f pos, Rotation rot );
00065
00066 virtual void writeMessage( char *msg );
00067
00068 virtual void closeLog();
00069
00070
00071 virtual string defaultXMLContainerField() {
00072 return "deviceLog";
00073 }
00074
00075 auto_ptr< SFString > filename;
00076
00078 static H3DNodeDatabase database;
00079 protected:
00080 FILE *log_file;
00081 double start_time;
00082 };
00083
00084 };
00085
00086 #endif