228 lines
6.1 KiB
C++
228 lines
6.1 KiB
C++
#pragma once
|
|
|
|
// Reconstructed C++ declarations from IDA Local Types and PDB/DIA metadata.
|
|
// Original PDB header: w:\tech5\engine\models\cuttable\cutterclip.h
|
|
// Recovered logical types: 16
|
|
// Signatures retain Xbox 360 ABI evidence and may still require manual review.
|
|
|
|
|
|
// IDA Local Type ordinal 2768; PDB kind: unknown.
|
|
enum idCutterClip::<unnamed_tag> : __int32
|
|
{
|
|
EDGESIDE_LEFT = 0x0,
|
|
EDGESIDE_RIGHT = 0x1,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2769; PDB kind: enum.
|
|
enum idCutterClip::horizontalDirection_t : __int32
|
|
{
|
|
HORIZONTALDIRECTION_NONE = 0x0,
|
|
HORIZONTALDIRECTION_LEFTTORIGHT = 0x1,
|
|
HORIZONTALDIRECTION_RIGHTTOLEFT = 0x2,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2770; PDB kind: enum.
|
|
enum idCutterClip::intersectProtects_t : __int32
|
|
{
|
|
INTERSECTPROTECTS_NONE = 0x0,
|
|
INTERSECTPROTECTS_LEFT = 0x1,
|
|
INTERSECTPROTECTS_RIGHT = 0x2,
|
|
INTERSECTPROTECTS_BOTH = 0x3,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2771; PDB kind: enum.
|
|
enum idCutterClip::addEdge_t : __int32
|
|
{
|
|
ADDEDGE_NONE = 0x0,
|
|
ADDEDGE_LEFT = 0x1,
|
|
ADDEDGE_RIGHT = 0x2,
|
|
ADDEDGE_BOTH = 0x3,
|
|
};
|
|
|
|
// IDA Local Type ordinal 2772; PDB kind: enum.
|
|
enum idCutterClip::memPool_t : __int32
|
|
{
|
|
NUM_POOLSCANBEAMS = 0x100,
|
|
NUM_POOLLOCALMINIMAS = 0x100,
|
|
NUM_POOLEDGES = 0x400,
|
|
NUM_POOLPOLYGONS = 0x20,
|
|
NUM_POOLPOLYGONPOINTS = 0x400,
|
|
NUM_POOLINTERSECTPOINTS = 0x80,
|
|
NUM_POOLJOINRECORDS = 0x80,
|
|
NUM_POOLHORIZONTALJOINRECORDS = 0x80,
|
|
NUM_POOLNESTEDPOLYGONS = 0x20,
|
|
NUM_POOLCONTOURS = 0x20,
|
|
NUM_POOLCONTOUREDGES = 0x400,
|
|
NUM_POOLCONTOURNODES = 0x400,
|
|
};
|
|
|
|
// IDA Local Type ordinal 17335; PDB kind: struct.
|
|
struct idCutterClip::Edge_t
|
|
{
|
|
idCutterClip::Edge_t *prev;
|
|
idCutterClip::Edge_t *next;
|
|
idCutterClip::Edge_t *prevLML;
|
|
idCutterClip::Edge_t *nextLML;
|
|
idCutterClip::Edge_t *prevAEL;
|
|
idCutterClip::Edge_t *nextAEL;
|
|
idCutterClip::Edge_t *prevSEL;
|
|
idCutterClip::Edge_t *nextSEL;
|
|
idVec2i top;
|
|
idVec2i bottom;
|
|
idVec2i current;
|
|
float deltaX;
|
|
int tmpX;
|
|
__int16 windingCount;
|
|
__int16 windingCount2;
|
|
__int16 outIndex;
|
|
__int16 windingDelta;
|
|
unsigned __int16 : 1;
|
|
unsigned __int16 __free : 12;
|
|
unsigned __int16 horizontal : 1;
|
|
unsigned __int16 polyType : 1;
|
|
unsigned __int16 side : 1;
|
|
int ID;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17336; PDB kind: struct.
|
|
struct idCutterClip::Scanbeam_t
|
|
{
|
|
idCutterClip::Scanbeam_t *next;
|
|
int y;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17337; PDB kind: struct.
|
|
struct __declspec(align(4)) idCutterClip::Polygon_t
|
|
{
|
|
idCutterClip::Polygon_t *next;
|
|
idCutterClip::Polygon_t *firstLeft;
|
|
idCutterClip::Polygon_t *appendLink;
|
|
idCutterClip::PolygonPoint_t *points;
|
|
idCutterClip::PolygonPoint_t *bottomPoint;
|
|
idCutterClip::Edge_t *bottomEdge1;
|
|
idCutterClip::Edge_t *bottomEdge2;
|
|
int index;
|
|
bool connected;
|
|
bool hole;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17338; PDB kind: struct.
|
|
struct idCutterClip::PolygonPoint_t
|
|
{
|
|
idCutterClip::PolygonPoint_t *next;
|
|
idCutterClip::PolygonPoint_t *prev;
|
|
idVec2i pos;
|
|
int index;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17339; PDB kind: struct.
|
|
struct idCutterClip::NestedPolygon_t
|
|
{
|
|
idCutterClip::NestedPolygon_t *next;
|
|
idCutterClip::Polygon_t *outer;
|
|
idCutterClip::Polygon_t *inner;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17340; PDB kind: struct.
|
|
struct idCutterClip::LocalMinima_t
|
|
{
|
|
idCutterClip::LocalMinima_t *next;
|
|
idCutterClip::Edge_t *leftBound;
|
|
idCutterClip::Edge_t *rightBound;
|
|
int y;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17341; PDB kind: struct.
|
|
struct idCutterClip::IntersectNode_t
|
|
{
|
|
idCutterClip::IntersectNode_t *next;
|
|
idCutterClip::Edge_t *edge1;
|
|
idCutterClip::Edge_t *edge2;
|
|
idVec2i pos;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17342; PDB kind: struct.
|
|
struct idCutterClip::JoinRecord_t
|
|
{
|
|
idCutterClip::JoinRecord_t *next;
|
|
idVec2i point1a;
|
|
idVec2i point1b;
|
|
idVec2i point2a;
|
|
idVec2i point2b;
|
|
__int16 polyIndex1;
|
|
__int16 polyIndex2;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17343; PDB kind: struct.
|
|
struct __declspec(align(4)) idCutterClip::HorizontalJoinRecord_t
|
|
{
|
|
idCutterClip::HorizontalJoinRecord_t *next;
|
|
idCutterClip::Edge_t *edge;
|
|
__int16 savedIndex;
|
|
};
|
|
|
|
// IDA Local Type ordinal 17351; PDB kind: class.
|
|
class __declspec(align(4)) idCutterClip
|
|
{
|
|
public:
|
|
int memoryPeek;
|
|
int memoryCurrent;
|
|
int numEdges;
|
|
int maxEdges;
|
|
int numLocalMinima;
|
|
int maxLocalMinima;
|
|
int numScanbeams;
|
|
int maxScanbeams;
|
|
int numPolygons;
|
|
int maxPolygons;
|
|
int numPolygonPoints;
|
|
int maxPolygonPoints;
|
|
int numNestedPolygons;
|
|
int maxNestedPolygons;
|
|
int numJoinRecords;
|
|
int maxJoinRecords;
|
|
int numHorizontalJoinRecords;
|
|
int maxHorizontalJoinRecords;
|
|
int numIntersectNode;
|
|
int maxIntersectNode;
|
|
idCutterClip::Edge_t *edgesPool;
|
|
idCutterClip::Scanbeam_t *scanbeamsPool;
|
|
idCutterClip::Polygon_t *polygonsPool;
|
|
idCutterClip::PolygonPoint_t *polygonPointsPool;
|
|
idCutterClip::NestedPolygon_t *nestedPolygonsPool;
|
|
idCutterClip::LocalMinima_t *localMinimasPool;
|
|
idCutterClip::IntersectNode_t *intersectNodesPool;
|
|
idCutterClip::JoinRecord_t *joinRecordsPool;
|
|
idCutterClip::HorizontalJoinRecord_t *horizontalJoinRecordsPool;
|
|
idCutterClip::LocalMinima_t *currentLocalMinima;
|
|
idCutterClip::LocalMinima_t *localMinimaList;
|
|
idCutterClip::Scanbeam_t *scanbeams;
|
|
idCutterClip::Edge_t *activeEdges;
|
|
idCutterClip::Edge_t *sortedEdges;
|
|
idCutterClip::IntersectNode_t *intersectNodes;
|
|
idCutterClip::NestedPolygon_t *currentNestedPolygon;
|
|
idCutterClip::Polygon_t *currentInnerPolygon;
|
|
idList<idCutterClip::Edge_t *,5> edges;
|
|
idList<idCutterClip::PolygonPoint_t *,5> polygonPoints;
|
|
idList<idCutterClip::Polygon_t *,5> polygons;
|
|
idList<idCutterClip::NestedPolygon_t *,5> nestedPolygons;
|
|
idList<idCutterClip::JoinRecord_t *,5> joins;
|
|
idList<idCutterClip::HorizontalJoinRecord_t *,5> horizontalJoins;
|
|
idList<void *,5> poolAllocations;
|
|
fillType_t fillTypeSubject;
|
|
fillType_t fillTypeClip;
|
|
clipMode_t clipMode;
|
|
unsigned __int8 : 7;
|
|
__int8 running : 1;
|
|
};
|
|
|
|
// IDA Local Type ordinal 22052; PDB kind: class.
|
|
class idCutterClip::idSort_Polygons : public idSort_Quick<idCutterClip::Polygon_t *,idCutterClip::idSort_Polygons>
|
|
{
|
|
public:
|
|
// Recovered virtual interface; IDA vtable ordinal 22053.
|
|
virtual ~idSort_Polygons();
|
|
virtual void Sort(idCutterClip::Polygon_t **, unsigned int);
|
|
|
|
};
|