TrinityCore
Loading...
Searching...
No Matches
DynamicTree.h
Go to the documentation of this file.
1
/*
2
* This file is part of the TrinityCore Project. See AUTHORS file for Copyright information
3
*
4
* This program is free software; you can redistribute it and/or modify it
5
* under the terms of the GNU General Public License as published by the
6
* Free Software Foundation; either version 2 of the License, or (at your
7
* option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful, but WITHOUT
10
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
12
* more details.
13
*
14
* You should have received a copy of the GNU General Public License along
15
* with this program. If not, see <http://www.gnu.org/licenses/>.
16
*/
17
18
#ifndef _DYNTREE_H
19
#define _DYNTREE_H
20
21
#include "
Define.h
"
22
#include "
Optional.h
"
23
#include <memory>
24
#include <span>
25
26
namespace
G3D
27
{
28
class
Ray;
29
class
Vector3;
30
}
31
32
class
GameObjectModel
;
33
class
PhaseShift
;
34
struct
DynTreeImpl
;
35
36
namespace
VMAP
37
{
38
struct
AreaAndLiquidData
;
39
}
40
41
class
TC_COMMON_API
DynamicMapTree
42
{
43
std::unique_ptr<DynTreeImpl>
impl
;
44
45
public
:
46
47
DynamicMapTree
();
48
~DynamicMapTree
();
49
50
bool
isInLineOfSight(G3D::Vector3
const
& startPos, G3D::Vector3
const
& endPos,
PhaseShift
const
& phaseShift)
const
;
51
bool
getIntersectionTime(G3D::Ray
const
& ray, G3D::Vector3
const
& endPos,
PhaseShift
const
& phaseShift,
float
& maxDist)
const
;
52
bool
getObjectHitPos(G3D::Vector3
const
& startPos, G3D::Vector3
const
& endPos, G3D::Vector3& resultHitPos,
float
modifyDist,
PhaseShift
const
& phaseShift)
const
;
53
54
float
getHeight(
float
x,
float
y,
float
z,
float
maxSearchDist,
PhaseShift
const
& phaseShift)
const
;
55
bool
getAreaAndLiquidData(
float
x,
float
y,
float
z,
PhaseShift
const
& phaseShift,
Optional<uint8>
reqLiquidType,
VMAP::AreaAndLiquidData
& data)
const
;
56
57
void
insert(
GameObjectModel
const
&);
58
void
remove(
GameObjectModel
const
&);
59
bool
contains(
GameObjectModel
const
&)
const
;
60
61
void
balance();
62
void
update(
uint32
diff);
63
64
std::span<GameObjectModel const* const> getModelsInGrid(
uint32
gx,
uint32
gy)
const
;
65
};
66
67
#endif
// _DYNTREE_H
Define.h
TC_COMMON_API
#define TC_COMMON_API
Definition
Define.h:99
uint32
uint32_t uint32
Definition
Define.h:154
Optional.h
Optional
std::optional< T > Optional
Optional helper class to wrap optional values within.
Definition
Optional.h:25
DynamicMapTree
Definition
DynamicTree.h:42
DynamicMapTree::~DynamicMapTree
~DynamicMapTree()
DynamicMapTree::impl
std::unique_ptr< DynTreeImpl > impl
Definition
DynamicTree.h:43
GameObjectModel
Definition
GameObjectModel.h:58
PhaseShift
Definition
PhaseShift.h:55
G3D
Definition
DynamicTree.h:27
VMAP
Definition
DynamicTree.h:37
DynTreeImpl
Definition
DynamicTree.cpp:56
VMAP::AreaAndLiquidData
Definition
VMapManager.h:74
common
Collision
DynamicTree.h
Generated on Sun May 10 2026 02:08:51 for TrinityCore by
1.9.8