Linux multi-monitor fullscreen support
[ryzomcore.git] / ryzom / client / src / pacs_client.h
blob1c50c3de530c15805d1fdaaebd3e981bb52f0044
1 // Ryzom - MMORPG Framework <http://dev.ryzom.com/projects/ryzom/>
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/>.
19 #ifndef CL_PACS_CLIENT_H
20 #define CL_PACS_CLIENT_H
23 /////////////
24 // INCLUDE //
25 /////////////
26 // Misc.
27 #include "nel/misc/types_nl.h"
28 // Pacs Interface.
29 // Client.
30 #include "ig_client.h"
31 // std
32 #include <string>
34 // Size max of an entity in PACS (Trees and creatures)
35 #define RYZOM_ENTITY_SIZE_MAX 16
37 class CIGCallback; // collision with igs of the landscapes (trees..)
39 ///////////
40 // USING //
41 ///////////
42 using NL3D::UInstanceGroup;
43 using NLPACS::UMoveContainer;
44 using NLPACS::UGlobalRetriever;
45 using NLPACS::UGlobalPosition;
47 ////////////
48 // GLOBAL //
49 ////////////
50 // Global Move Container.
51 extern UMoveContainer *PACS;
52 extern CIGCallback *IGCallbacks;
53 extern UGlobalRetriever *GR;
54 extern const float LRRefeshRadius;
55 // World Images
56 extern const uint8 staticWI; // Static World Image
57 extern const uint8 dynamicWI; // Dynamic World Image
58 // Collision Masks.
59 extern const NLPACS::UMovePrimitive::TCollisionMask MaskColNone;
60 extern const NLPACS::UMovePrimitive::TCollisionMask MaskColPlayer;
61 extern const NLPACS::UMovePrimitive::TCollisionMask MaskColNpc;
62 extern const NLPACS::UMovePrimitive::TCollisionMask MaskColDoor;
63 extern const NLPACS::UMovePrimitive::TCollisionMask MaskColAll;
65 extern const uint16 UserDataTree;
66 extern const uint16 UserDataLift;
67 extern const uint16 UserDataDoor;
68 extern const uint16 UserDataEntity;
70 ///////////////
71 // FUNCTIONS //
72 ///////////////
73 /// Initialize PACS.
74 void initPACS (const char* rbank, const char* gr, NLMISC::IProgressCallback &progress);
75 void releasePACS ();
77 /** Initialize landscape IG collisions
79 void initLandscapeIGCallbacks();
80 /** release landscape IG collisions.
82 void releaseLandscapeIGCallbacks();
86 /// Get the cluster from a global position.
87 UInstanceGroup *getCluster(const UGlobalPosition &gp);
89 /// PACS primitive manager
90 void initPrimitiveBlocks();
91 void addPacsPrim(const std::string &filename);
92 void deletePrimitiveBlocks();
94 /// The pacs primitives
95 typedef CHashMap<std::string, NLPACS::UPrimitiveBlock *> TPacsPrimMap;
96 extern TPacsPrimMap PacsPrims;
98 #endif // CL_PACS_CLIENT_H
100 /* End of pacs_client.h */