00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef NL_TRANSITION_H
00027 #define NL_TRANSITION_H
00028
00029 #include "nel/misc/types_nl.h"
00030
00031
00032 #include "zone_edge.h"
00033
00034
00035 #include "3d/zone.h"
00036
00037 namespace NLLIGO
00038 {
00039
00040 class CZoneTemplate;
00041 class CMaterial;
00042
00050 class CTransition
00051 {
00052 public:
00053
00055 enum
00056 {
00057 ZoneEdgeCount = 4,
00058 TransitionZoneCount = 9,
00059 };
00060
00061
00181 bool build (const CMaterial &mat0, const CMaterial &mat1, const std::vector<const CZoneTemplate*> &arrayTemplate,
00182 const CLigoConfig &config, CLigoError *errors, CLigoError &mainErrors);
00183
00194 bool check (const CZoneTemplate &zoneTemplate, uint transitionNumber, const CLigoConfig &config, CLigoError &errors) const;
00195
00197 void serial (NLMISC::IStream &s);
00198
00199 private:
00200
00209 CZoneEdge _EdgeZone[ZoneEdgeCount];
00210
00212 static sint32 TransitionZoneEdges[TransitionZoneCount][4];
00213 static sint32 TransitionZoneOffset[TransitionZoneCount][2];
00214 };
00215
00216 }
00217
00218 #endif // NL_TRANSITION_H
00219
00220