diff options
| author | Marijn Tamis <[email protected]> | 2018-05-03 18:22:48 +0200 |
|---|---|---|
| committer | Marijn Tamis <[email protected]> | 2018-05-03 18:22:48 +0200 |
| commit | ca32c59a58d37c1822e185a2d5f3d0d3e8943593 (patch) | |
| tree | b06b9eec03f34344ef8fc31aa147b2714d3962ee /NvCloth/samples/SampleBase/utils/DataStream.cpp | |
| parent | Forced rename of platform folders in cmake dir. Git didn't pick this up before. (diff) | |
| download | nvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.tar.xz nvcloth-ca32c59a58d37c1822e185a2d5f3d0d3e8943593.zip | |
NvCloth 1.1.4 Release. (24070740)
Diffstat (limited to 'NvCloth/samples/SampleBase/utils/DataStream.cpp')
| -rw-r--r-- | NvCloth/samples/SampleBase/utils/DataStream.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/NvCloth/samples/SampleBase/utils/DataStream.cpp b/NvCloth/samples/SampleBase/utils/DataStream.cpp new file mode 100644 index 0000000..c61badc --- /dev/null +++ b/NvCloth/samples/SampleBase/utils/DataStream.cpp @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2008-2017, NVIDIA CORPORATION. All rights reserved. +* +* NVIDIA CORPORATION and its licensors retain all intellectual property +* and proprietary rights in and to this software, related documentation +* and any modifications thereto. Any use, reproduction, disclosure or +* distribution of this software and related documentation without an express +* license agreement from NVIDIA CORPORATION is strictly prohibited. +*/ + +#include "DataStream.h" +#include <fstream> + +DataStream::DataStream() + : + mReadPos(0), + mWritePos(0) +{ + +} +DataStream::DataStream(void* data, int sizeInBytes) + : + mReadPos(0), + mWritePos(0) +{ + write(data, sizeInBytes); +} +DataStream::DataStream(const char* filename) + : + mReadPos(0), + mWritePos(0) +{ + std::ifstream file; + file.open(filename,std::ifstream::binary | std::ios::ate); + assert(file.good()); + + std::streamsize size = file.tellg(); + mBuffer.resize(size); + file.seekg(0, std::ios::beg); + file.read(reinterpret_cast<char*>(mBuffer.data()), size); + + mWritePos = size; + file.close(); +} + +bool DataStream::fileExists(const char* filename) +{ + std::ifstream file; + file.open(filename, std::ifstream::binary | std::ios::ate); + return file.good(); +} + +void DataStream::saveToFile(const char* filename) +{ + std::ofstream file(filename, std::fstream::binary | std::fstream::trunc); + file.write(reinterpret_cast<char*>(mBuffer.data()), mBuffer.size()); + file.flush(); + file.close(); +} + +void DataStream::write(void* data, int sizeInBytes) +{ + if((int)mBuffer.size() < mWritePos + sizeInBytes) + mBuffer.resize(mWritePos + sizeInBytes); + memcpy(&mBuffer[mWritePos], data, sizeInBytes); + mWritePos += sizeInBytes; +}
\ No newline at end of file |