From 4b68848f126c78495c21947a609a9f0948a7591a Mon Sep 17 00:00:00 2001 From: blobt Date: Sat, 13 Mar 2021 08:53:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8cpp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vs/3dMath/v15/.suo | Bin 36352 -> 39936 bytes .vs/3dMath/v15/Browse.VC.opendb | Bin 0 -> 42 bytes 3dMath.vcxproj | 2 ++ 3dMath.vcxproj.filters | 6 ++++++ CArrayBuffer.h | 23 ++++++++++++++++++++ CDataView.h | 36 +++++++++++++++++++++++++++++++ main.cpp | 37 ++++++++++++++++++++++++++------ 7 files changed, 97 insertions(+), 7 deletions(-) create mode 100644 .vs/3dMath/v15/Browse.VC.opendb create mode 100644 CArrayBuffer.h create mode 100644 CDataView.h diff --git a/.vs/3dMath/v15/.suo b/.vs/3dMath/v15/.suo index 769db18b03584406dbe477621e704b643a32db37..4c2d4636dbd6fb59bba7a141b743462985c5dd3b 100644 GIT binary patch delta 4533 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 Ro$Xep12$62suCSy + + diff --git a/3dMath.vcxproj.filters b/3dMath.vcxproj.filters index 7ed2a6c..d3aa178 100644 --- a/3dMath.vcxproj.filters +++ b/3dMath.vcxproj.filters @@ -18,6 +18,12 @@ 头文件 + + 头文件 + + + 头文件 + diff --git a/CArrayBuffer.h b/CArrayBuffer.h new file mode 100644 index 0000000..15a3e32 --- /dev/null +++ b/CArrayBuffer.h @@ -0,0 +1,23 @@ +#pragma once +typedef unsigned char Byte; + +class CArrayBuffer { +public: + CArrayBuffer(int byteLength = 8) { + this->_byteLenght = byteLength; + this->pData = new Byte[this->_byteLenght]; + } + ~CArrayBuffer() { + if (this->pData != nullptr) { + delete[] this->pData; + this->pData = nullptr; + } + } + int byteLength() { + return this->_byteLenght; + } +public: + Byte *pData; +private: + int _byteLenght; +}; \ No newline at end of file diff --git a/CDataView.h b/CDataView.h new file mode 100644 index 0000000..31c34f8 --- /dev/null +++ b/CDataView.h @@ -0,0 +1,36 @@ +#pragma once +#include +#include "CArrayBuffer.h" + +typedef unsigned short uint16; +typedef float float32; + +class CDataView { +public: + CArrayBuffer* buffer; + + int byteOffset; + int byteLength; + + CDataView(CArrayBuffer* pBuffer, int byteOffset, int byteLength) { + this->buffer = pBuffer; + this->byteOffset = byteOffset; + this->byteLength = byteLength; + } + + void setFloat32(int offset, float32 value) { + memcpy(this->buffer->pData + (this->byteOffset + offset), &value, sizeof(float32)); + } + + float32 getFloat32(int offset) { + return *((float32*)(this->buffer->pData + (this->byteOffset + offset))); + } + + void setUint16(int offset, uint16 value) { + memcpy(this->buffer->pData + (this->byteOffset + offset), &value, sizeof(uint16)); + } + + uint16 getUint16(int offset) { + return *((uint16*)(this->buffer->pData + (this->byteOffset + offset))); + } +}; \ No newline at end of file diff --git a/main.cpp b/main.cpp index c638222..0feef0e 100644 --- a/main.cpp +++ b/main.cpp @@ -1,17 +1,40 @@ #include "GMath.h" +#include "CArrayBuffer.h" +#include "CDataView.h" int main() { + CArrayBuffer buffer(16); + CDataView view0(&buffer, 0, buffer.byteLength()); - float a[] = { - 0, 0, 0, 2, - 0, 0, 2, 1, - 0, 2, 1, 2, - 2, 1, 2, 3 + view0.setFloat32(8, 99.99); + view0.setUint16(8 + 4, 2048); + + printf("%f\n", view0.getFloat32(8)); + printf("%d\n", view0.getUint16(8+4)); + + CDataView view1(&buffer, 8, 18); + + printf("%f\n", view1.getFloat32(0)); + printf("%d\n", view1.getUint16(4)); + + /*float a[] = { + 2, 2, 2, 2, + 3, 3, 3, 3, + 4, 4, 4, 4, + 5, 5, 5, 5 }; GMatrix A(4, 4, a); - //cout << B*A << endl; - cout << Det(A) << endl; + float b[] = { + 2, + 2, + 2, + 2 + }; + GMatrix B(4, 1, b); + + + cout << A*B << endl;*/ /*float a[] = { 1,0,