Merge branch 'lua_versions' into main/rendor-staging
[ryzomcore.git] / snowballs2 / client / src / landscape.h
blob890c09cbc120f2d9b06de92affa9056c6aa99b94
1 // NeL - MMORPG Framework <http://dev.ryzom.com/projects/nel/>
2 // Copyright (C) 2010 Winch Gate Property Limited
3 //
4 // This program is free software: you can redistribute it and/or modify
5 // it under the terms of the GNU Affero General Public License as
6 // published by the Free Software Foundation, either version 3 of the
7 // License, or (at your option) any later version.
8 //
9 // This program is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU Affero General Public License for more details.
14 // You should have received a copy of the GNU Affero General Public License
15 // along with this program. If not, see <http://www.gnu.org/licenses/>.
17 #ifndef LANDSCAPE_H
18 #define LANDSCAPE_H
21 // Includes
24 #include <vector>
26 #include <nel/3d/u_landscape.h>
27 #include <nel/misc/time_nl.h>
28 #include <nel/misc/vector.h>
31 // External definitions
34 namespace NL3D
36 class UInstanceGroup;
39 namespace SBCLIENT {
41 class CTrajectory;
45 // External variables
48 extern std::vector<NL3D::UInstanceGroup*> InstanceGroups;
49 extern NLMISC::CVector SunDirection;
53 // External functions
56 void initLight();
57 void releaseLight();
59 void initLandscape();
60 void releaseLandscape();
62 void initAiming();
63 void releaseAiming();
65 void updateLandscape();
67 void loadAllZonesAround();
69 // Compute the collision with the landscape from the start position, using the given step,
70 // at maximum numSteps steps from the start. It uses full (!) physics computation, and should be
71 // identical on the server
72 NLMISC::CVector getTarget(const NLMISC::CVector &start, const NLMISC::CVector &step, uint numSteps);
74 } /* namespace SBCLIENT */
76 #endif // LANDSCAPE_H
78 /* End of landscape.h */