{
  "version": 3,
  "sources": ["../../../src/handlers/entity/hatch.ts"],
  "sourcesContent": ["import type { DXFTuple, HatchEntity, HatchLoop, HatchSeed } from '../../types'\n\nimport common from './common'\n\nexport const TYPE = 'HATCH'\n\nlet status: 'IDLE' | 'POLYLINE' | 'SEED' | 'ENT' | 'SPLINE' = 'IDLE'\nlet drawEntity: any = {}\nlet drawType = 0\nlet isPolyline = false\nlet seed: HatchSeed | null = null\nlet loop: HatchLoop = { references: [], entities: [] }\nlet polyPoint: any = null\n\nexport const process = (tuples: DXFTuple[]): HatchEntity => {\n  status = 'IDLE'\n  drawEntity = {}\n  drawType = 0\n  isPolyline = false\n  seed = null\n  loop = { references: [], entities: [] }\n  polyPoint = 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 100:\n          status = 'IDLE'\n          break\n        case 2:\n          entity.patternName = value\n          break\n        case 10:\n          if (status === 'IDLE') {\n            entity.elevation ??= { x: 0, y: 0, z: 0 }\n            entity.elevation.x = Number.parseFloat(String(value))\n          }\n          else if (status === 'POLYLINE') {\n            polyPoint = {\n              x: Number.parseFloat(String(value)),\n              y: 0,\n              bulge: 0,\n            }\n            loop.entities[0].points.push(polyPoint)\n          } else if (status === 'SEED') {\n            if (!seed) {\n              seed = { x: 0, y: 0 }\n              entity.seeds ??= { count: 0, seeds: [] }\n              entity.seeds.seeds.push(seed)\n            }\n            seed.x = Number.parseFloat(String(value))\n          } else fillDrawEntity(type, drawType, Number.parseFloat(String(value)))\n          break\n        case 20:\n          if (status === 'IDLE') {\n            entity.elevation ??= { x: 0, y: 0, z: 0 }\n            entity.elevation.y = Number.parseFloat(String(value))\n          }\n          else if (status === 'POLYLINE') polyPoint.y = Number.parseFloat(String(value))\n          else if (status === 'SEED') {\n            if (seed) seed.y = Number.parseFloat(String(value))\n            seed = null\n          } else fillDrawEntity(type, drawType, Number.parseFloat(String(value)))\n          break\n        case 30:\n          entity.elevation ??= { x: 0, y: 0, z: 0 }\n          entity.elevation.z = Number.parseFloat(String(value))\n          break\n        case 63:\n          entity.fillColor = value\n          break\n        case 70:\n          entity.fillType = Number.parseFloat(String(value)) === 1 ? 'SOLID' : 'PATTERN'\n          break\n        case 210:\n          entity.extrusionDir ??= { x: 0, y: 0, z: 1 }\n          entity.extrusionDir.x = Number.parseFloat(String(value))\n          break\n        case 220:\n          entity.extrusionDir ??= { x: 0, y: 0, z: 1 }\n          entity.extrusionDir.y = Number.parseFloat(String(value))\n          break\n        case 230:\n          entity.extrusionDir ??= { x: 0, y: 0, z: 1 }\n          entity.extrusionDir.z = Number.parseFloat(String(value))\n          break\n        case 91:\n          // LOOP COUNT\n          entity.boundary ??= { count: 0, loops: [] }\n          entity.boundary.count = Number.parseFloat(String(value))\n          break\n        case 92:\n          // 0 = Default; 1 = External; 2 = Polyline; 4 = Derived; 8 = Textbox; 16 = Outermost\n          loop = { references: [], entities: [] }\n          entity.boundary ??= { count: 0, loops: [] }\n          entity.boundary.loops.push(loop)\n          loop.type = Number.parseFloat(String(value))\n          isPolyline = (loop.type & 2) === 2\n          if (isPolyline) {\n            const ent = {\n              type: 'POLYLINE',\n              points: [],\n            }\n            loop.entities.push(ent)\n            status = 'POLYLINE'\n          }\n          break\n        case 93:\n          if (status === 'IDLE') status = 'ENT'\n          loop.count = Number.parseFloat(String(value))\n          break\n        case 11:\n        case 21:\n        case 40:\n        case 50:\n        case 51:\n        case 74:\n        case 94:\n        case 95:\n        case 96:\n          if (drawType === 4) status = 'SPLINE'\n          fillDrawEntity(type, drawType, Number.parseFloat(String(value)))\n          break\n        case 42:\n          if (isPolyline) polyPoint.bulge = Number.parseFloat(String(value))\n          else fillDrawEntity(type, drawType, Number.parseFloat(String(value)))\n          break\n        case 72:\n          // !Polyline --> 1 = Line; 2 = Circular arc; 3 = Elliptic arc; 4 = Spline\n          // Polyline -->  hasBulge\n          drawType = Number.parseFloat(String(value))\n          loop[isPolyline ? 'hasBulge' : 'edgeType'] = drawType\n          if (!isPolyline) {\n            drawEntity = createDrawEntity(drawType)\n            loop.entities.push(drawEntity)\n          }\n          break\n        case 73:\n          if (status === 'IDLE' || isPolyline) loop.entities[0].closed = value\n          else fillDrawEntity(type, drawType, Number.parseFloat(String(value)))\n          break\n        case 75:\n          // END OF BOUNDARY PATH DATA\n          status = 'IDLE'\n\n          // 0 = Hatch \"odd parity\" area (Normal style)\n          // 1 = Hatch outermost area only (Outer style)\n          // 2 = Hatch through entire area (Ignore style)\n          entity.style = Number.parseFloat(String(value))\n          break\n        case 76:\n          // 0 = User-defined; 1 = Predefined; 2 = Custom\n          entity.hatchType = Number.parseFloat(String(value))\n          break\n        case 97:\n          status = 'IDLE'\n          isPolyline = false\n          loop.sourceObjects = Number.parseFloat(String(value))\n          break\n        case 98:\n          status = 'SEED'\n          entity.seeds ??= { count: 0, seeds: [] }\n          entity.seeds.count = Number.parseFloat(String(value))\n          break\n        case 52:\n          entity.shadowPatternAngle = Number.parseFloat(String(value))\n          break\n        case 41:\n          entity.spacing = Number.parseFloat(String(value))\n          break\n        case 77:\n          entity.double = Number.parseFloat(String(value)) === 1\n          break\n        case 78:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.lineCount = Number.parseFloat(String(value))\n          break\n        case 53:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.angle = Number.parseFloat(String(value))\n          break\n        case 43:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.x = Number.parseFloat(String(value))\n          break\n        case 44:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.y = Number.parseFloat(String(value))\n          break\n        case 45:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.offsetX = Number.parseFloat(String(value))\n          break\n        case 46:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.offsetY = Number.parseFloat(String(value))\n          break\n        case 79:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.dashCount = Number.parseFloat(String(value))\n          break\n        case 49:\n          entity.pattern ??= { lineCount: 0, angle: 0, x: 0, y: 0, offsetX: 0, offsetY: 0, dashCount: 0, length: [] }\n          entity.pattern.length.push(value)\n          break\n        case 330:\n          loop.references.push(value)\n          break\n        case 450:\n          entity.solidOrGradient =\n            Number.parseFloat(String(value)) === 0 ? 'SOLID' : 'GRADIENT'\n          break\n        case 453:\n          // 0 = Solid; 2 = Gradient\n          entity.color ??= { count: 0, rotation: 0, gradient: 0, tint: 0 }\n          entity.color.count = Number.parseFloat(String(value))\n          break\n        case 460:\n          entity.color ??= { count: 0, rotation: 0, gradient: 0, tint: 0 }\n          entity.color.rotation = value\n          break\n        case 461:\n          entity.color ??= { count: 0, rotation: 0, gradient: 0, tint: 0 }\n          entity.color.gradient = value\n          break\n        case 462:\n          entity.color ??= { count: 0, rotation: 0, gradient: 0, tint: 0 }\n          entity.color.tint = value\n          break\n        default:\n          Object.assign(entity, common(type, value))\n          break\n      }\n      return entity\n    },\n    {\n      type: TYPE,\n      elevation: { x: 0, y: 0, z: 0 },\n      extrusionDir: { x: 0, y: 0, z: 1 },\n      pattern: {\n        lineCount: 0,\n        angle: 0,\n        x: 0,\n        y: 0,\n        offsetX: 0,\n        offsetY: 0,\n        dashCount: 0,\n        length: []\n      },\n      boundary: {\n        count: 0,\n        loops: []\n      },\n      seeds: {\n        count: 0,\n        seeds: []\n      },\n      color: {\n        count: 0,\n        rotation: 0,\n        gradient: 0,\n        tint: 0\n      },\n    } as HatchEntity,\n  )\n}\n\nexport default { TYPE, process }\n\n/**\n * Creates a draw entity based on edge type\n *\n * @param type - Edge type (1=Line, 2=Arc, 3=Ellipse, 4=Spline)\n * @returns Draw entity object\n */\nfunction createDrawEntity(type: number): any {\n  if (isPolyline) return {}\n\n  // 1 = Line; 2 = Circular arc; 3 = Elliptic arc; 4 = Spline\n  switch (type) {\n    case 1:\n      return {\n        type: 'LINE',\n        start: { x: 0, y: 0 },\n        end: { x: 0, y: 0 },\n      }\n    case 2:\n      return {\n        type: 'ARC',\n        center: { x: 0, y: 0 },\n        radius: 0,\n        startAngle: 0,\n        endAngle: 0,\n        counterClockWise: false,\n      }\n    case 3:\n      return {\n        type: 'ELLIPSE',\n        center: { x: 0, y: 0 },\n        startAngle: 0,\n        endAngle: 0,\n        counterClockWise: false,\n        major: { x: 0, y: 0 },\n        minor: 0,\n      }\n    case 4:\n      return {\n        type: 'SPLINE',\n        degree: 0,\n        rational: 0,\n        periodic: 0,\n        knots: { count: 0, knots: [] },\n        controlPoints: { count: 0, points: [] },\n        weights: 1,\n      }\n  }\n\n  return {}\n}\n\n/**\n * Fills properties of a draw entity based on DXF code, draw type, and value\n *\n * @param type - DXF group code\n * @param drawType - Entity draw type (1=Line, 2=Arc, 3=Ellipse, 4=Spline)\n * @param value - Value to set\n */\nfunction fillDrawEntity(type: number, drawType: number, value: number): void {\n  switch (type) {\n    case 10:\n      switch (drawType) {\n        case 1:\n          drawEntity.start.x = value\n          break\n        case 2:\n          drawEntity.center.x = value\n          break\n        case 3:\n          drawEntity.center.x = value\n          break\n        case 4:\n          drawEntity.controlPoints.points.push({ x: value, y: 0 })\n          break\n      }\n      break\n    case 20:\n      switch (drawType) {\n        case 1:\n          {\n            drawEntity.start.y = value\n          }\n          break\n        case 2:\n          {\n            drawEntity.center.y = value\n          }\n          break\n        case 3:\n          {\n            drawEntity.center.y = value\n          }\n          break\n        case 4:\n          {\n            drawEntity.controlPoints.points[\n              drawEntity.controlPoints.points.length - 1\n            ].y = value\n          }\n          break\n      }\n      break\n    case 11:\n      switch (drawType) {\n        case 1:\n          drawEntity.end.x = value\n          break\n        case 3:\n          drawEntity.major.x = value\n          break\n      }\n      break\n    case 21:\n      switch (drawType) {\n        case 1:\n          drawEntity.end.y = value\n          break\n        case 3:\n          drawEntity.major.y = value\n          break\n      }\n      break\n    case 40:\n      switch (drawType) {\n        case 2:\n          drawEntity.radius = value\n          break\n        case 3:\n          drawEntity.minor = value\n          break\n        case 4:\n          drawEntity.knots.knots.push(value)\n          break\n      }\n      break\n    case 42:\n      if (drawType === 4) {\n        drawEntity.weights = value\n      }\n      break\n    case 50:\n      switch (drawType) {\n        case 2:\n        case 3:\n          drawEntity.startAngle = value\n          break\n      }\n      break\n    case 51:\n      switch (drawType) {\n        case 2:\n        case 3:\n          drawEntity.endAngle = value\n          break\n      }\n      break\n    case 73:\n      {\n        switch (drawType) {\n          case 2:\n            {\n              drawEntity.counterClockWise = Number.parseFloat(String(value)) === 1\n            }\n            break\n          case 3:\n            {\n              drawEntity.counterClockWise = Number.parseFloat(String(value)) === 1\n            }\n            break\n          case 4:\n            {\n              drawEntity.rational = value\n            }\n            break\n        }\n      }\n      break\n    case 74:\n      if (drawType === 4) {\n        drawEntity.periodic = value\n      }\n      break\n    case 94:\n      if (drawType === 4) {\n        drawEntity.degree = value\n      }\n      break\n    case 95:\n      if (drawType === 4) {\n        drawEntity.knots.count = value\n      }\n      break\n    case 96:\n      if (drawType === 4) {\n        drawEntity.controlPoints.count = value\n      }\n      break\n  }\n}\n"],
  "mappings": "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",
  "names": ["common", "drawType"]
}
