{
  "version": 3,
  "sources": ["../../../src/handlers/entity/wipeout.ts"],
  "sourcesContent": ["import type { DXFTuple, PartialPoint3D } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'WIPEOUT'\n\ninterface WipeoutEntity {\n  type: typeof TYPE\n\n  insertionPoint: PartialPoint3D\n  uVector: PartialPoint3D\n  vVector: PartialPoint3D\n\n  clipBoundaryType?: 1 | 2\n  clipBoundaryVertices?: Array<{ x: number; y: number }>\n\n  displayProperties?: number\n  clippingState?: 0 | 1\n  classVersion?: number\n  imageSizePixels?: { u: number; v: number }\n\n  [key: string]: unknown\n}\n\nexport const process = (tuples: DXFTuple[]): WipeoutEntity => {\n  let pendingBoundaryX: number | null = null\n\n  return tuples.reduce(\n    (entity, tuple) => {\n      const type = tuple[0]\n      const value = tuple[1]\n\n      switch (type) {\n        case 90:\n          entity.classVersion = value as number\n          break\n\n        case 10:\n          entity.insertionPoint.x = value as number\n          break\n        case 20:\n          entity.insertionPoint.y = value as number\n          break\n        case 30:\n          entity.insertionPoint.z = value as number\n          break\n\n        case 11:\n          entity.uVector.x = value as number\n          break\n        case 21:\n          entity.uVector.y = value as number\n          break\n        case 31:\n          entity.uVector.z = value as number\n          break\n\n        case 12:\n          entity.vVector.x = value as number\n          break\n        case 22:\n          entity.vVector.y = value as number\n          break\n        case 32:\n          entity.vVector.z = value as number\n          break\n\n        case 13:\n          entity.imageSizePixels ??= { u: 0, v: 0 }\n          entity.imageSizePixels.u = value as number\n          break\n        case 23:\n          entity.imageSizePixels ??= { u: 0, v: 0 }\n          entity.imageSizePixels.v = value as number\n          break\n\n        case 70:\n          entity.displayProperties = value as number\n          break\n        case 280:\n          entity.clippingState = value as 0 | 1\n          break\n\n        case 71:\n          entity.clipBoundaryType = value as 1 | 2\n          break\n\n        case 14:\n          pendingBoundaryX = value as number\n          break\n        case 24:\n          if (pendingBoundaryX !== null) {\n            entity.clipBoundaryVertices ??= []\n            entity.clipBoundaryVertices.push({ x: pendingBoundaryX, y: value as number })\n            pendingBoundaryX = null\n          }\n          break\n\n        default:\n          Object.assign(entity, common(type, value))\n          break\n      }\n      return entity\n    },\n    {\n      type: TYPE,\n      insertionPoint: {},\n      uVector: {},\n      vVector: {},\n    } as WipeoutEntity,\n  )\n}\n\nexport default { TYPE, process }\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAmB;AAEZ,MAAM,OAAO;AAoBb,MAAM,UAAU,CAAC,WAAsC;AAC5D,MAAI,mBAAkC;AAEtC,SAAO,OAAO;AAAA,IACZ,CAAC,QAAQ,UAAU;AACjB,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,QAAQ,MAAM,CAAC;AAErB,cAAQ,MAAM;AAAA,QACZ,KAAK;AACH,iBAAO,eAAe;AACtB;AAAA,QAEF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QACF,KAAK;AACH,iBAAO,eAAe,IAAI;AAC1B;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QAEF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QACF,KAAK;AACH,iBAAO,QAAQ,IAAI;AACnB;AAAA,QAEF,KAAK;AACH,iBAAO,oBAAP,OAAO,kBAAoB,EAAE,GAAG,GAAG,GAAG,EAAE;AACxC,iBAAO,gBAAgB,IAAI;AAC3B;AAAA,QACF,KAAK;AACH,iBAAO,oBAAP,OAAO,kBAAoB,EAAE,GAAG,GAAG,GAAG,EAAE;AACxC,iBAAO,gBAAgB,IAAI;AAC3B;AAAA,QAEF,KAAK;AACH,iBAAO,oBAAoB;AAC3B;AAAA,QACF,KAAK;AACH,iBAAO,gBAAgB;AACvB;AAAA,QAEF,KAAK;AACH,iBAAO,mBAAmB;AAC1B;AAAA,QAEF,KAAK;AACH,6BAAmB;AACnB;AAAA,QACF,KAAK;AACH,cAAI,qBAAqB,MAAM;AAC7B,mBAAO,yBAAP,OAAO,uBAAyB,CAAC;AACjC,mBAAO,qBAAqB,KAAK,EAAE,GAAG,kBAAkB,GAAG,MAAgB,CAAC;AAC5E,+BAAmB;AAAA,UACrB;AACA;AAAA,QAEF;AACE,iBAAO,OAAO,YAAQ,cAAAA,SAAO,MAAM,KAAK,CAAC;AACzC;AAAA,MACJ;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,MACE,MAAM;AAAA,MACN,gBAAgB,CAAC;AAAA,MACjB,SAAS,CAAC;AAAA,MACV,SAAS,CAAC;AAAA,IACZ;AAAA,EACF;AACF;AAEA,IAAO,kBAAQ,EAAE,MAAM,QAAQ;",
  "names": ["common"]
}
