• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

src/physic/header/Stream.h

Go to the documentation of this file.
00001 // ===============================================================================
00002 //                                                NVIDIA PHYSX SDK TRAINING PROGRAMS
00003 //                                                               USER STREAM
00004 //
00005 //                                                  Written by Bob Schade, 5-1-06
00006 // ===============================================================================
00007 
00008 #ifndef STREAM_H
00009 #define STREAM_H
00010 
00011 #include "NxStream.h"
00012 #include <stdio.h>
00013 
00014 class UserStream : public NxStream
00015 {
00016 public:
00017                                                                 UserStream(const char* filename, bool load);
00018         virtual                                         ~UserStream();
00019 
00020         virtual         NxU8                    readByte()                                                              const;
00021         virtual         NxU16                   readWord()                                                              const;
00022         virtual         NxU32                   readDword()                                                             const;
00023         virtual         float                   readFloat()                                                             const;
00024         virtual         double                  readDouble()                                                    const;
00025         virtual         void                    readBuffer(void* buffer, NxU32 size)    const;
00026 
00027         virtual         NxStream&               storeByte(NxU8 b);
00028         virtual         NxStream&               storeWord(NxU16 w);
00029         virtual         NxStream&               storeDword(NxU32 d);
00030         virtual         NxStream&               storeFloat(NxReal f);
00031         virtual         NxStream&               storeDouble(NxF64 f);
00032         virtual         NxStream&               storeBuffer(const void* buffer, NxU32 size);
00033 
00034                                 FILE*                   fp;
00035 };
00036 
00037 class MemoryWriteBuffer : public NxStream
00038 {
00039         public:
00040                                                                 MemoryWriteBuffer();
00041         virtual                                         ~MemoryWriteBuffer();
00042 
00043         virtual         NxU8                    readByte()                                                              const   { NX_ASSERT(0); return 0;       }
00044         virtual         NxU16                   readWord()                                                              const   { NX_ASSERT(0); return 0;       }
00045         virtual         NxU32                   readDword()                                                             const   { NX_ASSERT(0); return 0;       }
00046         virtual         float                   readFloat()                                                             const   { NX_ASSERT(0); return 0.0f;}
00047         virtual         double                  readDouble()                                                    const   { NX_ASSERT(0); return 0.0;     }
00048         virtual         void                    readBuffer(void* /*buffer*/, NxU32 /*size*/)    const   { NX_ASSERT(0);                         }
00049 
00050         virtual         NxStream&               storeByte(NxU8 b);
00051         virtual         NxStream&               storeWord(NxU16 w);
00052         virtual         NxStream&               storeDword(NxU32 d);
00053         virtual         NxStream&               storeFloat(NxReal f);
00054         virtual         NxStream&               storeDouble(NxF64 f);
00055         virtual         NxStream&               storeBuffer(const void* buffer, NxU32 size);
00056 
00057                                 NxU32                   currentSize;
00058                                 NxU32                   maxSize;
00059                                 NxU8*                   data;
00060 };
00061 
00062 class MemoryReadBuffer : public NxStream
00063 {
00064         public:
00065                                                                 MemoryReadBuffer(const NxU8* data);
00066         virtual                                         ~MemoryReadBuffer();
00067 
00068         virtual         NxU8                    readByte()                                                              const;
00069         virtual         NxU16                   readWord()                                                              const;
00070         virtual         NxU32                   readDword()                                                             const;
00071         virtual         float                   readFloat()                                                             const;
00072         virtual         double                  readDouble()                                                    const;
00073         virtual         void                    readBuffer(void* buffer, NxU32 size)    const;
00074 
00075         virtual         NxStream&               storeByte(NxU8 /*b*/)                                                   { NX_ASSERT(0); return *this;   }
00076         virtual         NxStream&               storeWord(NxU16 /*w*/)                                                  { NX_ASSERT(0); return *this;   }
00077         virtual         NxStream&               storeDword(NxU32 /*d*/)                                                 { NX_ASSERT(0); return *this;   }
00078         virtual         NxStream&               storeFloat(NxReal /*f*/)                                                { NX_ASSERT(0); return *this;   }
00079         virtual         NxStream&               storeDouble(NxF64 /*f*/)                                                { NX_ASSERT(0); return *this;   }
00080         virtual         NxStream&               storeBuffer(const void* /*buffer*/, NxU32 /*size*/)     { NX_ASSERT(0); return *this;   }
00081 
00082         mutable         const NxU8*             buffer;
00083 };
00084 
00085 #endif  // STREAM_H

Generated on Fri Jun 18 2010 17:48:39 for Cannonball by  doxygen 1.7.0