Polyphase Game Engine
Loading...
Searching...
No Matches
StaticMesh3d.h
Go to the documentation of this file.
1#pragma once
2
3#include "Nodes/3D/Mesh3d.h"
4#include "AssetRef.h"
5
6#include "Graphics/Graphics.h"
8
9class StaticMesh;
10
12{
13public:
14
16
19
20 virtual const char* GetTypeName() const override;
21 virtual void GatherProperties(std::vector<Property>& outProps) override;
22
23 virtual void Create() override;
24 virtual void Destroy() override;
25 StaticMeshCompResource* GetResource();
26
27 virtual void SaveStream(Stream& stream, Platform platform) override;
28 virtual void LoadStream(Stream& stream, Platform platform, uint32_t version) override;
29
30 virtual bool IsStaticMesh3D() const override;
31 virtual bool IsSkeletalMesh3D() const override;
32
33 virtual void SetStaticMesh(StaticMesh* staticMesh);
34 StaticMesh* GetStaticMesh();
35
36 void SetUseTriangleCollision(bool triangleCol);
37 bool GetUseTriangleCollision() const;
38
39 void SetBakeLighting(bool bake);
40 bool GetBakeLighting() const;
41
42 void SetNavmeshReady(bool navmeshReady);
43 bool IsNavmeshReady() const;
44
45 virtual Material* GetMaterial() override;
46 virtual void Render() override;
47
48 virtual VertexType GetVertexType() const override;
49
50 virtual void GatherProxyDraws(std::vector<DebugDraw>& inoutDraws) override;
51
52 virtual Bounds GetLocalBounds() const override;
53
54 void ClearInstanceColors();
55 void SetInstanceColors(const std::vector<uint32_t>& colors, bool bakedLighting);
56 std::vector<uint32_t>& GetInstanceColors();
57 bool HasBakedLighting() const;
58 bool HasInstanceColors() const;
59
60 virtual void RecreateCollisionShape();
61
62 static bool HandlePropChange(Datum* datum, uint32_t index, const void* newValue);
63
64protected:
65
66 void DrawDebugCollision(std::vector<DebugDraw>& inoutDraws, btCollisionShape* colShape, const glm::mat4& parentTransform);
67
69 std::vector<uint32_t> mInstanceColors; // e.g. baked lighting color
74
75 // Graphics Resource
77};
Platform
Definition EngineTypes.h:31
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
VertexType
Definition Vertex.h:7
Definition AssetRef.h:18
Definition Datum.h:164
Definition Material.h:48
Definition Mesh3d.h:13
static bool HandlePropChange(Datum *datum, uint32_t index, const void *newValue)
Definition Mesh3d.cpp:12
virtual bool IsSkeletalMesh3D() const
Definition Mesh3d.cpp:132
virtual const char * GetTypeName() const override
Definition Mesh3d.cpp:39
virtual Material * GetMaterial()=0
virtual bool IsStaticMesh3D() const
Definition Mesh3d.cpp:127
virtual void GatherProperties(std::vector< Property > &outProps) override
Definition Mesh3d.cpp:44
virtual void LoadStream(Stream &stream, Platform platform, uint32_t version) override
Definition Mesh3d.cpp:77
virtual void SaveStream(Stream &stream, Platform platform) override
Definition Mesh3d.cpp:56
virtual void Destroy() override
Definition Primitive3d.cpp:129
virtual Bounds GetLocalBounds() const
Definition Primitive3d.cpp:829
virtual VertexType GetVertexType() const override
Definition Primitive3d.cpp:729
virtual void Render() override
Definition Primitive3d.cpp:259
virtual void Create() override
Definition Primitive3d.cpp:117
virtual void GatherProxyDraws(std::vector< DebugDraw > &inoutDraws) override
Definition Primitive3d.cpp:839
Definition StaticMesh3d.h:12
StaticMeshCompResource mResource
Definition StaticMesh3d.h:76
bool mNavmeshReady
Definition StaticMesh3d.h:72
bool mHasBakedLighting
Definition StaticMesh3d.h:73
StaticMeshRef mStaticMesh
Definition StaticMesh3d.h:68
bool mBakeLighting
Definition StaticMesh3d.h:71
bool mUseTriangleCollision
Definition StaticMesh3d.h:70
DECLARE_NODE(StaticMesh3D, Mesh3D)
std::vector< uint32_t > mInstanceColors
Definition StaticMesh3d.h:69
Definition StaticMesh.h:18
Definition Stream.h:21
Definition EngineTypes.h:193
Definition GraphicsTypes.h:189