9 #ifndef GwNavGen_GeneratorSectorGenerator_H
10 #define GwNavGen_GeneratorSectorGenerator_H
31 class NavCellGenerator;
32 class GeneratorSector;
33 class GeneratorNavDataElement;
38 class SectorInputData;
45 enum SectorOverlapStatus { SECTOR_IS_OVERLAPPING_ANOTHER_SECTOR = 0, SECTOR_IS_ISOLATED };
53 String GetTileDirName();
56 void ClearSectorInput();
57 void ClearNavDataElements();
63 KyResult GenerateRawNavCells(InputTileCache& inputTileCache);
70 const GeneratorNavDataElementMap& GetNavDataElements()
const {
return m_navDataElements; }
72 const KyGuid& GetGuid()
const {
return m_sector->GetGuid(); }
74 const char* GetName()
const {
return m_sector->GetName(); }
76 void ComputeSectorBBox(
Box2f& box);
78 template<
class OSTREAM>
void LogConfiguration(OSTREAM& os);
80 void ComputeStatistics();
87 void ComputeGenerationFlags();
88 KyResult SaveNavData(
const String& navDataName, BlobAggregate* navData);
89 KyResult SaveColData(
const String& colDataName, BlobAggregate* colData);
90 void ClearNavCellHandlers();
91 void ComputeSectorCellBox(
Box2i& cellBox);
95 Ptr<GeneratorSector> m_sector;
99 bool m_sectorInputWasProduced;
105 IndexedMeshBlobBuilder m_inputMeshBuilder;
107 Ptr<HeightField> m_heightfield;
108 ClientInputConsumerStatistics m_clientInputConsumerStatistics;
110 GeneratorNavDataElementMap m_navDataElements;
112 bool m_doGenerateNavData;
113 bool m_doGenerateColData;
118 template<
class OSTREAM>
119 inline void GeneratorSectorBuilder::LogConfiguration(OSTREAM& os)
121 os <<
"sectorName : " << m_sector->GetName() << Endl;
122 os <<
"sectorGuidString : " << m_sector->GetGuidString().ToCStr() << Endl;
124 switch (m_sector->GetSectorChange())
131 os <<
"doGenerateNavData : " << m_doGenerateNavData << Endl;
132 os <<
"doGenerateColData : " << m_doGenerateColData << Endl;
Read previous imprint of the Sector, the difference is included in the generated NavDataPatch.
Definition: genflags.h:37
This class represents a two-dimensional axis-aligned bounding box whose dimensions are stored using f...
Definition: box2f.h:19
This class represents a two-dimensional axis-aligned bounding box whose dimensions are stored using 3...
Definition: box2i.h:119
KyInt32 KyResult
Defines a type that can be returned by methods or functions in the Gameware Navigation SDK to indicat...
Definition: types.h:254
Maintains generation data for each sector.
Definition: generatorsectorbuilder.h:41
GeneratorSystem gathers everything that is global across a generation: configuration, options...
Definition: generatorsystem.h:46
General purpose array for movable objects that require explicit construction/destruction.
Definition: kyarray.h:118
int KyInt32
Type used internally to represent a 32-bit integer.
Definition: types.h:35
The SectorStatistics class encapsulates a detailed set of statistics about a single sector treated by...
Definition: generatorsectorreport.h:21
Definition: gamekitcrowddispersion.h:20
The KyGuid class represents a globally unique ID.
Definition: kyguid.h:22
This class is a wrapper around an array of KyGuid objects.
Definition: generatorguidcompound.h:22
May load the Sector inputs (if required by other CHANGED Sectors), does NOT generate any NavData or N...
Definition: genflags.h:34
Load the Sector inputs, generate the Sector NavData or impact the NavDataPatch.
Definition: genflags.h:31