#include "hw_sections.h" struct Section2; enum ESEctionFlag { Unclosed = 1, // at least one unclosed loop Dumped = 2, // builder was unable to properly construct, so content may not be usable for triangulator. BadWinding = 4, }; struct Section2Loop { TArrayView walls; }; struct Section2 { uint8_t flags; uint8_t dirty; uint8_t geomflags; unsigned index; int sector; // this uses a memory arena for storage, so use TArrayView instead of TArray TArrayView lines; TArrayView loops; }; extern TArray sections2; extern TArrayView> sections2PerSector; void hw_CreateSections2(); using Outline = TArray>; using Point = std::pair; using FOutline = std::vector> ; // Data type was chosen so it can be passed directly into Earcut. Outline BuildOutline(Section2* section);