Plasma Engine  2.0
Loading...
Searching...
No Matches
NavigationConfig.h
1#pragma once
2
3#include <AiPlugin/AiPluginDLL.h>
4#include <Foundation/Containers/DynamicArray.h>
5#include <Foundation/Math/Angle.h>
6#include <Foundation/Strings/String.h>
7
8static constexpr plUInt32 plAiNumGroundTypes = 32;
9
10struct PL_AIPLUGIN_DLL plAiNavmeshConfig
11{
12 plString m_sName;
13
15 plUInt8 m_uiCollisionLayer = 0;
16
17 float m_fCellSize = 0.2f;
18 float m_fCellHeight = 0.2f;
19
20 float m_fAgentRadius = 0.2f;
21 float m_fAgentHeight = 1.5f;
22 float m_fAgentStepHeight = 0.6f;
23
24 plAngle m_WalkableSlope = plAngle::MakeFromDegree(45);
25
26 float m_fMaxEdgeLength = 4.0f;
27 float m_fMaxSimplificationError = 1.3f;
28 float m_fMinRegionSize = 0.5f;
29 float m_fRegionMergeSize = 5.0f;
30 float m_fDetailMeshSampleDistanceFactor = 1.0f;
31 float m_fDetailMeshSampleErrorFactor = 1.0f;
32};
33
34struct PL_AIPLUGIN_DLL plAiPathSearchConfig
35{
37
38 plString m_sName;
39 float m_fGroundTypeCost[plAiNumGroundTypes]; // = 1.0f
40 bool m_bGroundTypeAllowed[plAiNumGroundTypes]; // = true
41};
42
43struct PL_AIPLUGIN_DLL plAiNavigationConfig
44{
46
48 {
49 bool m_bUsed = false;
50 plString m_sName;
51 plColorGammaUB m_Color;
52 };
53
54 GroundType m_GroundTypes[plAiNumGroundTypes];
55
56 plDynamicArray<plAiPathSearchConfig> m_PathSearchConfigs;
57 plDynamicArray<plAiNavmeshConfig> m_NavmeshConfigs;
58
59 static constexpr const plStringView s_sConfigFile = ":project/RuntimeConfigs/AiPluginConfig.cfg"_plsv;
60
61 plResult Save(plStringView sFile = s_sConfigFile) const;
62 plResult Load(plStringView sFile = s_sConfigFile);
63
64 void Save(plStreamWriter& inout_stream) const;
65 void Load(plStreamReader& inout_stream);
66};
Float wrapper struct for a safe usage and conversions of angles.
Definition Angle.h:10
static constexpr plAngle MakeFromDegree(float fDegree)
Creates an instance of plAngle that was initialized from degree. (Performs a conversion)
Definition Angle_inl.h:33
A 8bit per channel unsigned normalized (values interpreted as 0-1) color storage format that represen...
Definition Color8UNorm.h:99
Definition DynamicArray.h:81
Interface for binary in (read) streams.
Definition Stream.h:22
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
Definition NavigationConfig.h:48
Definition NavigationConfig.h:44
Definition NavigationConfig.h:11
Definition NavigationConfig.h:35
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54