Plasma Engine  2.0
Loading...
Searching...
No Matches
JoltCollisionMeshAsset.h
1#pragma once
2
3#include <EditorFramework/Assets/AssetDocumentGenerator.h>
4#include <EditorFramework/Assets/SimpleAssetDocument.h>
5#include <EditorPluginJolt/CollisionMeshAsset/JoltCollisionMeshAssetObjects.h>
6
7class plGeometry;
10
11class plJoltCollisionMeshAssetDocument : public plSimpleAssetDocument<plJoltCollisionMeshAssetProperties>
12{
14
15public:
16 plJoltCollisionMeshAssetDocument(plStringView sDocumentPath, bool bConvexMesh);
17
18 static plStatus WriteToStream(plChunkStreamWriter& inout_stream, const plJoltCookingMesh& mesh, const plJoltCollisionMeshAssetProperties* pProp);
19
20protected:
21 virtual void InitializeAfterLoading(bool bFirstTimeCreation) override;
22
23 virtual plTransformStatus InternalTransformAsset(plStreamWriter& stream, plStringView sOutputTag, const plPlatformProfile* pAssetProfile, const plAssetFileHeader& AssetHeader, plBitflags<plTransformFlags> transformFlags) override;
24
25 plStatus CreateMeshFromFile(plJoltCookingMesh& outMesh);
26 plStatus CreateMeshFromGeom(plGeometry& geom, plJoltCookingMesh& outMesh);
28
29 bool m_bIsConvexMesh = false;
30
31 virtual void UpdateAssetDocumentInfo(plAssetDocumentInfo* pInfo) const override;
32};
33
35
36
38{
40
41public:
44
45 virtual void GetImportModes(plStringView sAbsInputFile, plDynamicArray<plAssetDocumentGenerator::ImportMode>& out_modes) const override;
46 virtual plStringView GetDocumentExtension() const override { return "plJoltCollisionMeshAsset"; }
47 virtual plStringView GetGeneratorGroup() const override { return "JoltCollisionMeshes"; }
48 virtual plStatus Generate(plStringView sInputFileAbs, plStringView sMode, plDynamicArray<plDocument*>& out_generatedDocuments) override;
49};
50
52{
54
55public:
58
59 virtual void GetImportModes(plStringView sAbsInputFile, plDynamicArray<plAssetDocumentGenerator::ImportMode>& out_modes) const override;
60 virtual plStringView GetDocumentExtension() const override { return "plJoltConvexCollisionMeshAsset"; }
61 virtual plStringView GetGeneratorGroup() const override { return "JoltCollisionMeshes"; }
62 virtual plStatus Generate(plStringView sInputFileAbs, plStringView sMode, plDynamicArray<plDocument*>& out_generatedDocuments) override;
63};
The thumbnail info containing the hash of the file is appended to assets. The serialized size of this...
Definition AssetDocument.h:49
Provides functionality for importing files as asset documents.
Definition AssetDocumentGenerator.h:23
Definition AssetDocumentInfo.h:7
Simple class to handle asset file headers (the very first bytes in all transformed asset files)
Definition AssetFileHeader.h:8
A stream writer that separates data into 'chunks', which act like sub-streams.
Definition ChunkStream.h:12
Definition DynamicArray.h:81
Provides functions to generate standard geometric shapes, such as boxes, spheres, cylinders,...
Definition Geometry.h:17
Definition JoltCollisionMeshAsset.h:38
virtual plStringView GetDocumentExtension() const override
Returns the target asset document file extension.
Definition JoltCollisionMeshAsset.h:46
virtual plStatus Generate(plStringView sInputFileAbs, plStringView sMode, plDynamicArray< plDocument * > &out_generatedDocuments) override
Tells the generator to create a new asset document with the chosen mode.
Definition JoltCollisionMeshAsset.cpp:373
virtual void GetImportModes(plStringView sAbsInputFile, plDynamicArray< plAssetDocumentGenerator::ImportMode > &out_modes) const override
Used to fill out which import modes may be available for the given asset.
Definition JoltCollisionMeshAsset.cpp:363
virtual plStringView GetGeneratorGroup() const override
Allows to merge the import modes of multiple generators in the UI in one group.
Definition JoltCollisionMeshAsset.h:47
Definition JoltCollisionMeshAsset.h:12
virtual plTransformStatus InternalTransformAsset(plStreamWriter &stream, plStringView sOutputTag, const plPlatformProfile *pAssetProfile, const plAssetFileHeader &AssetHeader, plBitflags< plTransformFlags > transformFlags) override
Override this and write the transformed file for the given szOutputTag into the given stream.
Definition JoltCollisionMeshAsset.cpp:57
virtual plTransformStatus InternalCreateThumbnail(const ThumbnailInfo &ThumbnailInfo) override
Override this function to generate a thumbnail. Only called if GetAssetFlags returns plAssetDocumentF...
Definition JoltCollisionMeshAsset.cpp:330
virtual void UpdateAssetDocumentInfo(plAssetDocumentInfo *pInfo) const override
Override this to add custom data (e.g. additional file dependencies) to the info struct.
Definition JoltCollisionMeshAsset.cpp:336
Definition JoltCollisionMeshAssetObjects.h:50
Definition JoltCollisionMeshAsset.h:52
virtual plStringView GetDocumentExtension() const override
Returns the target asset document file extension.
Definition JoltCollisionMeshAsset.h:60
virtual plStringView GetGeneratorGroup() const override
Allows to merge the import modes of multiple generators in the UI in one group.
Definition JoltCollisionMeshAsset.h:61
virtual plStatus Generate(plStringView sInputFileAbs, plStringView sMode, plDynamicArray< plDocument * > &out_generatedDocuments) override
Tells the generator to create a new asset document with the chosen mode.
Definition JoltCollisionMeshAsset.cpp:424
virtual void GetImportModes(plStringView sAbsInputFile, plDynamicArray< plAssetDocumentGenerator::ImportMode > &out_modes) const override
Used to fill out which import modes may be available for the given asset.
Definition JoltCollisionMeshAsset.cpp:414
Definition PlatformProfile.h:25
Definition SimpleAssetDocument.h:23
Interface for binary out (write) streams.
Definition Stream.h:107
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
The plBitflags class allows you to work with type-safe bitflags.
Definition Bitflags.h:82
Definition JoltCooking.h:10
An plResult with an additional message for the reason of failure.
Definition Status.h:12
Definition Declarations.h:114