118 return featureValueBuffer.GetType();
123 return featureValueBuffer.GetType()->GetFeatureCount();
128 return featureValueBuffer.HasFeature(idx);
135 return featureValueBuffer.GetType()->GetFeature(idx);
140 featureValueBuffer.FreeValue(idx);
145 return featureValueBuffer;
172 return nodes[index].GetSerial();
177 return nodes[index].GetId();
182 return nodes.front().GetId();
187 return nodes.back().GetId();
191 size_t& index)
const;
195 return nodes[index].GetCoord();
204 featureValueBuffer.SetType(
type);
209 featureValueBuffer.Set(
buffer);
214 featureValueBuffer.CopyMissingValues(
buffer);
254 return nextFileOffset;
264 return rings.front().GetType();
280 return rings.front().GetFeatureValueBuffer();
285 return rings.size()==1;
#define OSMSCOUT_API
Definition CoreImportExport.h:45
bool IsTopOuter() const
Definition Area.h:154
void UnsetFeature(size_t idx)
Definition Area.h:138
friend class Area
Definition Area.h:232
std::optional< GeoCoord > center
Definition Area.h:110
void MarkAsMasterRing()
Definition Area.h:217
void SetRing(uint8_t ring)
Definition Area.h:227
bool GetCenter(GeoCoord ¢er) const
std::vector< SegmentGeoBox > segments
Precomputed (cache) segment bounding boxes for optimisation.
Definition Area.h:108
const GeoCoord & GetCoord(size_t index) const
Definition Area.h:193
void SetFeatures(const FeatureValueBuffer &buffer)
Definition Area.h:207
bool IsOuter() const
Definition Area.h:160
const FeatureInstance & GetFeature(size_t idx) const
Definition Area.h:133
bool HasAnyFeaturesSet() const
Id GetFrontId() const
Definition Area.h:180
Id GetSerial(size_t index) const
Definition Area.h:170
bool GetNodeIndexByNodeId(Id id, size_t &index) const
GeoBox GetBoundingBox() const
size_t GetFeatureCount() const
Definition Area.h:121
GeoBox bbox
Precomputed (cache) bounding box.
Definition Area.h:109
Id GetId(size_t index) const
Definition Area.h:175
uint8_t GetRing() const
Definition Area.h:165
void MarkAsOuterRing()
Definition Area.h:222
TypeInfoRef GetType() const
Definition Area.h:116
void SetType(const TypeInfoRef &type)
Definition Area.h:202
bool IsMaster() const
Definition Area.h:148
bool HasFeature(size_t idx) const
Definition Area.h:126
Id GetBackId() const
Definition Area.h:185
void CopyMissingValues(const FeatureValueBuffer &buffer)
Definition Area.h:212
const FeatureValueBuffer & GetFeatureValueBuffer() const
Definition Area.h:143
std::vector< Point > nodes
The array of coordinates.
Definition Area.h:107
void ReadImport(const TypeConfig &typeConfig, FileScanner &scanner)
TypeInfoRef GetType() const
Definition Area.h:262
void WriteOptimized(const TypeConfig &typeConfig, FileWriter &writer) const
void WriteImport(const TypeConfig &typeConfig, FileWriter &writer) const
TypeInfoRef GetRingType(const Ring &ring) const
Definition Area.h:267
static const uint8_t masterRingId
Definition Area.h:90
void VisitRings(const RingVisitor &visitor) const
bool Intersects(const GeoBox &boundingBox) const
Definition Area.h:301
std::vector< Ring > rings
Definition Area.h:242
void Write(const TypeConfig &typeConfig, FileWriter &writer) const
GeoBox GetBoundingBox() const
bool GetCenter(GeoCoord ¢er) const
FileOffset GetFileOffset() const
Definition Area.h:247
ObjectFileRef GetObjectFileRef() const
Definition Area.h:257
FileOffset GetNextFileOffset() const
Definition Area.h:252
const FeatureValueBuffer & GetFeatureValueBuffer() const
Definition Area.h:278
Type type
The type of the cell.
Definition GroundTile.h:92
void ReadOptimized(const TypeConfig &typeConfig, FileScanner &scanner)
bool IsSimple() const
Definition Area.h:283
Vertex2D * buffer
Definition Transformation.h:343
static const uint8_t outerRingId
Definition Area.h:91
FeatureValueBuffer()=default
void VisitClippingRings(size_t index, const RingVisitor &visitor) const
std::function< bool(size_t i, const Ring &, const TypeInfoRef &)> RingVisitor
Definition Area.h:235
void Read(const TypeConfig &typeConfig, FileScanner &scanner)
uint64_t Id
Definition OSMScoutTypes.h:40
uint64_t FileOffset
Definition OSMScoutTypes.h:46
std::shared_ptr< Area > AreaRef
Definition Area.h:360
@ refArea
Definition ObjectRef.h:142
std::shared_ptr< TypeInfo > TypeInfoRef
Definition TypeConfig.h:61
Definition LaneAgent.h:61