Plasma Engine  2.0
Loading...
Searching...
No Matches
RecastNavMeshComponent.h
1#pragma once
2
3#include <Core/ResourceManager/ResourceHandle.h>
4#include <Core/World/Component.h>
5#include <Core/World/World.h>
6#include <RecastPlugin/NavMeshBuilder/NavMeshBuilder.h>
7#include <RecastPlugin/RecastPluginDLL.h>
8
11
13
15
17class PL_RECASTPLUGIN_DLL plRcComponent : public plComponent
18{
19 PL_DECLARE_ABSTRACT_COMPONENT_TYPE(plRcComponent, plComponent);
20
21public:
24};
25
27
28class PL_RECASTPLUGIN_DLL plRcNavMeshComponentManager : public plComponentManager<class plRcNavMeshComponent, plBlockStorageType::Compact>
29{
31
32public:
35
36 virtual void Initialize() override;
37
38 plRecastWorldModule* GetRecastWorldModule() const { return m_pWorldModule; }
39
40 void Update(const plWorldModule::UpdateContext& context);
41
42private:
43 plRecastWorldModule* m_pWorldModule = nullptr;
44};
45
47
48class PL_RECASTPLUGIN_DLL plRcNavMeshComponent : public plRcComponent
49{
51
53 // plComponent
54
55public:
56 virtual void SerializeComponent(plWorldWriter& inout_stream) const override;
57 virtual void DeserializeComponent(plWorldReader& inout_stream) override;
58
59protected:
60 virtual void OnActivated() override;
61
62
64 // plRcNavMeshComponent
65
66public:
69
70 bool m_bShowNavMesh = false; // [ property ]
71
72 plRecastConfig m_NavMeshConfig; // [ property ]
73
74protected:
75 void Update();
76 void VisualizeNavMesh();
77 void VisualizePointsOfInterest();
78
80
81
83 // Editor
84
85protected:
86 void OnObjectCreated(const plAbstractObjectNode& node);
87};
Definition AbstractObjectGraph.h:17
Base class of all component types.
Definition Component.h:25
Definition ComponentManager.h:88
Base class for all Recast components.
Definition RecastNavMeshComponent.h:18
Definition RecastNavMeshComponent.h:49
Definition RecastNavMeshComponent.h:29
Definition RecastWorldModule.h:16
A world encapsulates a scene graph of game objects and various component managers and their component...
Definition World.h:22
Reads a world description from a stream. Allows to instantiate that world multiple times in different...
Definition WorldReader.h:47
Stores an entire plWorld in a stream.
Definition WorldWriter.h:13
Definition NavMeshBuilder.h:19
Definition WorldModule.h:33