Polyphase Game Engine
Loading...
Searching...
No Matches
Mesh3d.h
Go to the documentation of this file.
1#pragma once
2
4#include "Assets/Material.h"
7
8#if EDITOR
9#include <assimp/scene.h>
10#endif
11
13{
14public:
15
17
18 Mesh3D();
19 virtual ~Mesh3D();
20
21 virtual const char* GetTypeName() const override;
22 virtual void GatherProperties(std::vector<Property>& outProps) override;
23
24 virtual void SaveStream(Stream& stream, Platform platform) override;
25 virtual void LoadStream(Stream& stream, Platform platform, uint32_t version) override;
26
27 virtual bool IsStaticMesh3D() const;
28 virtual bool IsSkeletalMesh3D() const;
29 virtual bool IsInstancedMesh3D() const;
30 virtual bool IsShadowMesh3D() const;
31
32 virtual Material* GetMaterial() = 0;
33 Material* GetMaterialOverride();
34 virtual void SetMaterialOverride(Material* material);
35 Material* InstantiateMaterial();
36
37 bool IsBillboard() const;
38 void SetBillboard(bool billboard);
39 glm::mat4 ComputeBillboardTransform();
40 glm::mat4 GetRenderTransform();
41
42 virtual DrawData GetDrawData() override;
43
44 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
45
46protected:
47
49 bool mBillboard = false;
50};
Platform
Definition EngineTypes.h:31
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
Definition AssetRef.h:18
Definition Datum.h:164
Definition Material.h:48
Definition Mesh3d.h:13
MaterialRef mMaterialOverride
Definition Mesh3d.h:48
virtual Material * GetMaterial()=0
DECLARE_OBJECT(Mesh3D, Primitive3D)
virtual DrawData GetDrawData()
Definition Node.cpp:1518
virtual void SaveStream(Stream &stream, Platform platform)
Definition Node.cpp:313
virtual void LoadStream(Stream &stream, Platform platform, uint32_t version)
Definition Node.cpp:318
Definition Primitive3d.h:46
virtual const char * GetTypeName() const override
Definition Primitive3d.cpp:153
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Primitive3d.cpp:201
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition Primitive3d.cpp:31
Definition Stream.h:21
Definition EngineTypes.h:199