diff options
author | Spp <spp@jorge.gr> | 2012-02-23 13:06:35 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-02-23 13:06:35 +0100 |
commit | 5cff9e071640bc47688b71bb264edd8267ba77c3 (patch) | |
tree | c599d12dfb7870d7c34a07490a930b3102c3d8ac /src/server/collision/DynamicTree.h | |
parent | f0ca875a216eaab3d213feae8ba75c07795c9304 (diff) | |
parent | 9219625243bc9f63e5a152e6cda1043cfaade201 (diff) |
Merge branch 'master' into 4.x
Conflicts:
sql/base/auth_database.sql
src/server/authserver/Server/AuthSocket.cpp
src/server/game/AI/CoreAI/CombatAI.cpp
src/server/game/AuctionHouse/AuctionHouseMgr.cpp
src/server/game/Battlegrounds/Zones/BattlegroundSA.cpp
src/server/game/DataStores/DBCStructure.h
src/server/game/DataStores/DBCfmt.h
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Entities/Vehicle/Vehicle.cpp
src/server/game/Globals/ObjectMgr.cpp
src/server/game/Globals/ObjectMgr.h
src/server/game/Handlers/AuctionHouseHandler.cpp
src/server/game/Miscellaneous/SharedDefines.h
src/server/game/Movement/MotionMaster.cpp
src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
src/server/game/Quests/QuestDef.cpp
src/server/game/Server/Protocol/Opcodes.cpp
src/server/game/Server/WorldSocket.cpp
src/server/game/Spells/Spell.cpp
src/server/game/Spells/SpellEffects.cpp
src/server/game/Spells/SpellInfo.cpp
src/server/scripts/Outland/HellfireCitadel/MagtheridonsLair/boss_magtheridon.cpp
src/server/scripts/Spells/spell_quest.cpp
src/server/shared/Logging/Log.h
src/server/worldserver/worldserver.conf.dist
src/tools/vmap3_extractor/model.h
src/tools/vmap4_extractor/CMakeLists.txt
src/tools/vmap4_extractor/dbcfile.cpp
src/tools/vmap4_extractor/dbcfile.h
src/tools/vmap4_extractor/loadlib/loadlib.h
Diffstat (limited to 'src/server/collision/DynamicTree.h')
-rw-r--r-- | src/server/collision/DynamicTree.h | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/src/server/collision/DynamicTree.h b/src/server/collision/DynamicTree.h new file mode 100644 index 00000000000..079c0adbf5e --- /dev/null +++ b/src/server/collision/DynamicTree.h @@ -0,0 +1,62 @@ +/* + * Copyright (C) 2008-2012 TrinityCore <http://www.trinitycore.org/> + * Copyright (C) 2005-2009 MaNGOS <http://getmangos.com/> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; either version 2 of the License, or (at your + * option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License along + * with this program. If not, see <http://www.gnu.org/licenses/>. + */ + + +#ifndef _DYNTREE_H +#define _DYNTREE_H + +#include <G3D/Matrix3.h> +#include <G3D/Vector3.h> +#include <G3D/AABox.h> +#include <G3D/Ray.h> + +//#include "ModelInstance.h" +#include "Define.h" +//#include "GameObjectModel.h" + +namespace G3D +{ + class Vector3; +} + +using G3D::Vector3; +class GameObjectModel; + +class DynamicMapTree +{ + struct DynTreeImpl& impl; +public: + + DynamicMapTree(); + ~DynamicMapTree(); + + bool isInLineOfSight(float x1, float y1, float z1, float x2, float y2, float z2, uint32 phasemask) const; + bool getIntersectionTime(uint32 phasemask, const G3D::Ray& ray, const Vector3& endPos, float& maxDist) const; + bool getObjectHitPos(uint32 phasemask, const Vector3& pPos1, const Vector3& pPos2, Vector3& pResultHitPos, float pModifyDist) const; + float getHeight(float x, float y, float z, float maxSearchDist, uint32 phasemask) const; + + void insert(const GameObjectModel&); + void remove(const GameObjectModel&); + bool contains(const GameObjectModel&) const; + int size() const; + + void balance(); + void update(uint32 diff); +}; + +#endif // _DYNTREE_H |