#pragma once #include "tarray.h" #include "vectors.h" #include "build.h" struct SectorGeometryPlane { TArray vertices; TArray texcoords; FVector3 normal{}; }; struct SectorGeometryData { SectorGeometryPlane planes[2]; sectortype compare[2] = {}; vec2_t poscompare[2] = {}; vec2_t poscompare2[2] = {}; bool degenerate = false; }; class SectorGeometry { TArray data; void ValidateSector(unsigned sectnum, int plane, const FVector2& offset); bool MakeVertices(unsigned sectnum, int plane, const FVector2& offset); bool MakeVertices2(unsigned sectnum, int plane, const FVector2& offset); public: SectorGeometryPlane* get(unsigned sectnum, int plane, const FVector2& offset) { if (sectnum >= data.Size()) return nullptr; ValidateSector(sectnum, plane, offset); return &data[sectnum].planes[plane]; } void SetSize(unsigned sectcount) { data.Clear(); // delete old content data.Resize(sectcount); } }; extern SectorGeometry sectorGeometry;