summaryrefslogtreecommitdiff
path: root/Runtime/Filters/Mesh/LodMeshFilter.h
blob: ff6273b1e01ba2fdf38f6aa526816132d5b46622 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#ifndef LODMESHFILTER_H
#define LODMESHFILTER_H

#include "Runtime/BaseClasses/GameObject.h"
#include "Runtime/Modules/ExportModules.h"

class Mesh;

class EXPORT_COREMODULE MeshFilter : public Unity::Component
{
public:
	REGISTER_DERIVED_CLASS (MeshFilter, Unity::Component)
	DECLARE_OBJECT_SERIALIZE (MeshFilter)

	MeshFilter (MemLabelId label, ObjectCreationMode mode);
	
	void SetSharedMesh (PPtr<Mesh> mesh);
	PPtr<Mesh> GetSharedMesh ();

	Mesh* GetInstantiatedMesh ();
	void SetInstantiatedMesh (Mesh* mesh);
	
	static void InitializeClass ();
	static void CleanupClass () {}

	void OnDidAddMesh ();
	
protected:
	virtual void AwakeFromLoad (AwakeFromLoadMode awakeMode);	


private:	
	void AssignMeshToRenderer ();
	
	PPtr<Mesh>				m_Mesh;
};

#endif