aboutsummaryrefslogtreecommitdiff
path: root/NvCloth/samples/SampleBase/utils/DataStream.cpp
diff options
context:
space:
mode:
authorMarijn Tamis <[email protected]>2018-05-03 18:22:48 +0200
committerMarijn Tamis <[email protected]>2018-05-03 18:22:48 +0200
commitca32c59a58d37c1822e185a2d5f3d0d3e8943593 (patch)
treeb06b9eec03f34344ef8fc31aa147b2714d3962ee /NvCloth/samples/SampleBase/utils/DataStream.cpp
parentForced rename of platform folders in cmake dir. Git didn't pick this up before. (diff)
downloadnvcloth-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.cpp67
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