Changeset View
Changeset View
Standalone View
Standalone View
extern/bullet2/src/BulletSoftBody/btSoftBodySolverVertexBuffer.h
| Show All 10 Lines | |||||
| 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. | 1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required. | ||||
| 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. | 2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software. | ||||
| 3. This notice may not be removed or altered from any source distribution. | 3. This notice may not be removed or altered from any source distribution. | ||||
| */ | */ | ||||
| #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | ||||
| #define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | #define BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | ||||
| class btVertexBufferDescriptor | class btVertexBufferDescriptor | ||||
| { | { | ||||
| public: | public: | ||||
| enum BufferTypes | enum BufferTypes | ||||
| { | { | ||||
| CPU_BUFFER, | CPU_BUFFER, | ||||
| DX11_BUFFER, | DX11_BUFFER, | ||||
| OPENGL_BUFFER | OPENGL_BUFFER | ||||
| }; | }; | ||||
| protected: | protected: | ||||
| bool m_hasVertexPositions; | bool m_hasVertexPositions; | ||||
| bool m_hasNormals; | bool m_hasNormals; | ||||
| int m_vertexOffset; | int m_vertexOffset; | ||||
| int m_vertexStride; | int m_vertexStride; | ||||
| int m_normalOffset; | int m_normalOffset; | ||||
| int m_normalStride; | int m_normalStride; | ||||
| public: | public: | ||||
| btVertexBufferDescriptor() | btVertexBufferDescriptor() | ||||
| { | { | ||||
| m_hasVertexPositions = false; | m_hasVertexPositions = false; | ||||
| m_hasNormals = false; | m_hasNormals = false; | ||||
| m_vertexOffset = 0; | m_vertexOffset = 0; | ||||
| m_vertexStride = 0; | m_vertexStride = 0; | ||||
| m_normalOffset = 0; | m_normalOffset = 0; | ||||
| m_normalStride = 0; | m_normalStride = 0; | ||||
| } | } | ||||
| virtual ~btVertexBufferDescriptor() | virtual ~btVertexBufferDescriptor() | ||||
| { | { | ||||
| } | } | ||||
| virtual bool hasVertexPositions() const | virtual bool hasVertexPositions() const | ||||
| { | { | ||||
| return m_hasVertexPositions; | return m_hasVertexPositions; | ||||
| } | } | ||||
| virtual bool hasNormals() const | virtual bool hasNormals() const | ||||
| Show All 34 Lines | public: | ||||
| * Return the vertex stride in number of floats between vertices. | * Return the vertex stride in number of floats between vertices. | ||||
| */ | */ | ||||
| virtual int getNormalStride() const | virtual int getNormalStride() const | ||||
| { | { | ||||
| return m_normalStride; | return m_normalStride; | ||||
| } | } | ||||
| }; | }; | ||||
| class btCPUVertexBufferDescriptor : public btVertexBufferDescriptor | class btCPUVertexBufferDescriptor : public btVertexBufferDescriptor | ||||
| { | { | ||||
| protected: | protected: | ||||
| float *m_basePointer; | float *m_basePointer; | ||||
| public: | public: | ||||
| /** | /** | ||||
| * vertexBasePointer is pointer to beginning of the buffer. | * vertexBasePointer is pointer to beginning of the buffer. | ||||
| * vertexOffset is the offset in floats to the first vertex. | * vertexOffset is the offset in floats to the first vertex. | ||||
| * vertexStride is the stride in floats between vertices. | * vertexStride is the stride in floats between vertices. | ||||
| */ | */ | ||||
| btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride ) | btCPUVertexBufferDescriptor(float *basePointer, int vertexOffset, int vertexStride) | ||||
| { | { | ||||
| m_basePointer = basePointer; | m_basePointer = basePointer; | ||||
| m_vertexOffset = vertexOffset; | m_vertexOffset = vertexOffset; | ||||
| m_vertexStride = vertexStride; | m_vertexStride = vertexStride; | ||||
| m_hasVertexPositions = true; | m_hasVertexPositions = true; | ||||
| } | } | ||||
| /** | /** | ||||
| * vertexBasePointer is pointer to beginning of the buffer. | * vertexBasePointer is pointer to beginning of the buffer. | ||||
| * vertexOffset is the offset in floats to the first vertex. | * vertexOffset is the offset in floats to the first vertex. | ||||
| * vertexStride is the stride in floats between vertices. | * vertexStride is the stride in floats between vertices. | ||||
| */ | */ | ||||
| btCPUVertexBufferDescriptor( float *basePointer, int vertexOffset, int vertexStride, int normalOffset, int normalStride ) | btCPUVertexBufferDescriptor(float *basePointer, int vertexOffset, int vertexStride, int normalOffset, int normalStride) | ||||
| { | { | ||||
| m_basePointer = basePointer; | m_basePointer = basePointer; | ||||
| m_vertexOffset = vertexOffset; | m_vertexOffset = vertexOffset; | ||||
| m_vertexStride = vertexStride; | m_vertexStride = vertexStride; | ||||
| m_hasVertexPositions = true; | m_hasVertexPositions = true; | ||||
| m_normalOffset = normalOffset; | m_normalOffset = normalOffset; | ||||
| m_normalStride = normalStride; | m_normalStride = normalStride; | ||||
| m_hasNormals = true; | m_hasNormals = true; | ||||
| } | } | ||||
| virtual ~btCPUVertexBufferDescriptor() | virtual ~btCPUVertexBufferDescriptor() | ||||
| { | { | ||||
| } | } | ||||
| /** | /** | ||||
| * Return the type of the vertex buffer descriptor. | * Return the type of the vertex buffer descriptor. | ||||
| */ | */ | ||||
| virtual BufferTypes getBufferType() const | virtual BufferTypes getBufferType() const | ||||
| { | { | ||||
| return CPU_BUFFER; | return CPU_BUFFER; | ||||
| } | } | ||||
| /** | /** | ||||
| * Return the base pointer in memory to the first vertex. | * Return the base pointer in memory to the first vertex. | ||||
| */ | */ | ||||
| virtual float *getBasePointer() const | virtual float *getBasePointer() const | ||||
| { | { | ||||
| return m_basePointer; | return m_basePointer; | ||||
| } | } | ||||
| }; | }; | ||||
| #endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | #endif // #ifndef BT_SOFT_BODY_SOLVER_VERTEX_BUFFER_H | ||||