Plasma Engine  2.0
Loading...
Searching...
No Matches
JoltCooking.h
1#pragma once
2
3#include <Foundation/Types/Status.h>
4#include <JoltCooking/JoltCookingDLL.h>
5
8
9struct PL_JOLTCOOKING_DLL plJoltCookingMesh
10{
11 bool m_bFlipNormals = false;
12 plDynamicArray<plVec3> m_Vertices;
13 plDynamicArray<plUInt8> m_VerticesInPolygon;
14 plDynamicArray<plUInt32> m_PolygonIndices;
15 plDynamicArray<plUInt16> m_PolygonSurfaceID;
16};
17
18class PL_JOLTCOOKING_DLL plJoltCooking
19{
20public:
21 enum class MeshType
22 {
23 Triangle,
24 ConvexHull,
25 ConvexDecomposition
26 };
27
28 static plResult CookTriangleMesh(const plJoltCookingMesh& mesh, plStreamWriter& ref_outputStream);
29 static plResult CookConvexMesh(const plJoltCookingMesh& mesh, plStreamWriter& ref_outputStream);
30 static plResult ComputeConvexHull(const plJoltCookingMesh& mesh, plJoltCookingMesh& out_mesh);
31 static plStatus WriteResourceToStream(plChunkStreamWriter& inout_stream, const plJoltCookingMesh& mesh, const plArrayPtr<plString>& surfaces, MeshType meshType, plUInt32 uiMaxConvexPieces = 1);
32 static plResult CookDecomposedConvexMesh(const plJoltCookingMesh& mesh, plStreamWriter& ref_outputStream, plUInt32 uiMaxConvexPieces);
33
34private:
35 static plResult CookSingleConvexJoltMesh(const plJoltCookingMesh& mesh, plStreamWriter& OutputStream);
36};
This class encapsulates an array and it's size. It is recommended to use this class instead of plain ...
Definition ArrayPtr.h:37
A stream writer that separates data into 'chunks', which act like sub-streams.
Definition ChunkStream.h:12
Definition DynamicArray.h:81
Definition JoltCooking.h:19
Interface for binary out (write) streams.
Definition Stream.h:107
Definition JoltCooking.h:10
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54
An plResult with an additional message for the reason of failure.
Definition Status.h:12