@orbat-mapper/control-measures 0.2.0-alpha.17 → 0.2.0-alpha.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{index-9CY6UM92.d.mts → index-CFTEcmQi.d.mts} +8 -5
- package/dist/index.d.mts +1 -1
- package/dist/index.mjs +1 -1
- package/dist/preview/index.d.mts +1 -1
- package/dist/preview/index.mjs +1 -1
- package/dist/{renderControlMeasure-BVbkVj2S.mjs → renderControlMeasure-C1Ur1rH0.mjs} +38 -28
- package/package.json +1 -1
|
@@ -2032,11 +2032,14 @@ declare const DEFAULT_FORTIFIED_AREA_OPTIONS: FortifiedAreaOptions;
|
|
|
2032
2032
|
* @param textAmplifiers - Field T (bare, no prefix — "TANGO", not "FA TANGO")
|
|
2033
2033
|
* plus Field H/W/W1, centered on the pre-teeth boundary ring (see
|
|
2034
2034
|
* `boundaryInput` below), and an optional Field N "ENY" hostile marker on
|
|
2035
|
-
* that ring's west/east edges
|
|
2036
|
-
* @
|
|
2037
|
-
*
|
|
2038
|
-
|
|
2039
|
-
|
|
2035
|
+
* that ring's west/east edges, masking the castellated boundary beneath it.
|
|
2036
|
+
* @param context - Persisted amplifier placements used to move or restore each
|
|
2037
|
+
* ENY cutout with its independently dragged label.
|
|
2038
|
+
* @returns A GeoJSON FeatureCollection containing the castellated boundary
|
|
2039
|
+
* (a Polygon normally, or a gapped MultiLineString with Field N) plus any
|
|
2040
|
+
* label Points
|
|
2041
|
+
*/
|
|
2042
|
+
declare function createFortifiedArea(positions: Position[], options?: FortifiedAreaOptions, textAmplifiers?: CanonicalTextAmplifiers, context?: ControlMeasureGeneratorContext): FeatureCollection<Polygon | MultiLineString | Point>;
|
|
2040
2043
|
//#endregion
|
|
2041
2044
|
//#region src/generators/cm15-maneuver-areas/maneuver-arrow-task-shared.d.ts
|
|
2042
2045
|
interface ManeuverArrowTaskOptions extends AttackOptions, LabelSizeOptions {
|
package/dist/index.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as getDefaultOptions, $n as DEFAULT_STRONG_POINT_OPTIONS, $t as DEFAULT_FLOT_OPTIONS, A as roundToFixed, An as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Ar as normalizeTextAmplifiers, At as GuardOptions, B as StyleHints, Bn as DEFAULT_AREA_DEFENSE_OPTIONS, Bt as DEFAULT_CANALIZE_OPTIONS, C as BaselineFrame, Cn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Cr as GeneratedLabelKey, Ct as AntitankWallOptions, D as createBaselineFrame, Dn as calculateMetrics, Dr as TextAmplifierKey, Dt as DEFAULT_SCREEN_OPTIONS, E as BaselineFrameOrigin, En as MainAttackOptions, Er as TextAmplifierField, Et as DEFAULT_ANTITANK_DITCH_OPTIONS, F as freezeOrientationOptions, Fn as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_TACTICAL_ARROW_OPTIONS, G as ControlMeasureStyle, Gn as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Gt as BlockMissionTaskOptions, H as ControlMeasure, Hn as EncirclementOptions, Ht as DEFAULT_BYPASS_OPTIONS, I as RenderOptions, In as JointTacticalActionAreaOptions, It as TacticalArrowOptions, J as ControlMeasureId, Jn as DirectionOfSupportingAttackOptions, Jt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, K as CONTROL_MEASURE_IDS, Kn as PrincipalDirectionOfFireOptions, Kt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, L as renderControlMeasure, Ln as AssemblyAreaOptions, Lt as ClearOptions, M as SimpleStyleRender, Mn as PickupZoneOptions, Mr as AnchorTransformEvent, Mt as DelayOptions, N as toSimpleStyle, Nn as DEFAULT_LANDING_ZONE_OPTIONS, Nr as ControlMeasureDrawRule, Nt as CoverOptions, O as EPSILON, On as computeInitialWidthPoint, Or as TextAmplifiers, Ot as ScreenOptions, P as resolveStyleHints, Pn as LandingZoneOptions, Pt as DEFAULT_COVER_OPTIONS, Q as getControlMeasureMetadataByValue, Qn as DirectionOfAttackAviationOptions, Qt as PhaseLineOptions, R as ControlMeasureRender, Rn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as DEFAULT_CLEAR_OPTIONS, S as snapToMidpointPerpendicular, Sn as DEFAULT_CLASSIC_ARROW_OPTIONS, Sr as CanonicalTextAmplifiers, St as FortifiedLineOptions, T as BaselineFrameOptions, Tn as DEFAULT_MAIN_ATTACK_OPTIONS, Tr as TEXT_AMPLIFIER_FIELDS, Tt as AntitankDitchOptions, U as cloneControlMeasure, Un as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ut as BreachOptions, V as controlMeasureIdFromFeature, Vn as DEFAULT_ENCIRCLEMENT_OPTIONS, Vt as BypassOptions, W as isKind, Wn as FinalProtectiveFireOptions, Wt as DEFAULT_BREACH_OPTIONS, X as OptionsByKind, Xn as DirectionOfMainAttackOptions, Xt as HandoverLineOptions, Y as ControlMeasureKind, Yn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Yt as DEFAULT_HANDOVER_LINE_OPTIONS, Z as getControlMeasureMetadata, Zn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, Zt as DEFAULT_PHASE_LINE_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as BlockArrowHeadStyle, _r as ControlMeasureMetadata, _t as DEFAULT_FRONTAL_ATTACK_OPTIONS, a as supportByFireDrawRule, an as AttackHelicopterOptions, ar as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as ClassicArrowHeadStyle, br as AmplifierPlacement, bt as FortifiedAreaOptions, c as line23DrawRule, cn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, cr as LightLineOptions, ct as TurnOptions, d as ambushDrawRule, dn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, dr as project, dt as DEFAULT_DISRUPT_OPTIONS, en as FLOTOptions, er as StrongPointOptions, et as listControlMeasureMetadata, f as attackByFireDrawRule, fn as GenericRectangleOptions, fr as unproject, ft as DisruptOptions, g as blockDrawRule, gn as GenericLineOptions, gr as ControlMeasureGeometryType, gt as TurningMovementOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_LINE_OPTIONS, hr as ControlMeasureGeometry, ht as DEFAULT_TURNING_MOVEMENT_OPTIONS, i as axis1DrawRule, in as SupportByFireOptions, ir as GenericC2LineOptions, it as ObstacleBypassDifficultOptions, j as SimpleStyleProps, jn as DEFAULT_PICKUP_ZONE_OPTIONS, jr as resolveAmplifierPlacement, jt as DEFAULT_DELAY_OPTIONS, k as getMetersPerPixel, kn as AreaOfOperationsOptions, kr as canonicalTextAmplifierKey, kt as DEFAULT_GUARD_OPTIONS, l as turnDrawRule, ln as DEFAULT_GENERIC_CIRCLE_OPTIONS, lr as LabelSizeOptions, lt as DEFAULT_FIX_OPTIONS, m as centerRadiusDrawRule, mn as GenericPolygonOptions, mr as DEFAULT_BOUNDARY_OPTIONS, mt as DEFAULT_BLOCK_OPTIONS, n as DEFAULT_AMBUSH_OPTIONS, nn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, nr as DEFAULT_BATTLE_POSITION_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line26DrawRule, on as DEFAULT_ATTACK_HELICOPTER_OPTIONS, or as EngineerWorkLineOptions, ot as ObstacleBypassEasyOptions, p as point12DrawRule, pn as DEFAULT_GENERIC_POLYGON_OPTIONS, pr as BoundaryOptions, pt as BlockOptions, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, qt as BattleHandoverLineOptions, r as rectangleDrawRule, rn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, rr as DEFAULT_GENERIC_C2_LINE_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line24DrawRule, sn as AirborneAttackOptions, sr as DEFAULT_LIGHT_LINE_OPTIONS, st as DEFAULT_TURN_OPTIONS, t as AmbushOptions, tn as AttackByFireOptions, tr as BattlePositionOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as line1DrawRule, un as GenericCircleOptions, ur as Point2D, ut as FixOptions, v as computeDefaultMidpointPerpendicularPoint, vn as BlockArrowOptions, vr as ParamDescriptor, vt as FrontalAttackOptions, w as BaselineFrameNormal, wn as SupportingAttackOptions, wr as LabelPlacementOverride, wt as DEFAULT_ANTITANK_WALL_OPTIONS, x as pointOnMidpointPerpendicularAxis, xn as ClassicArrowOptions, xr as AmplifierPlacements, xt as DEFAULT_FORTIFIED_LINE_OPTIONS, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_BLOCK_ARROW_OPTIONS, yr as TextAmplifierDescriptor, yt as DEFAULT_FORTIFIED_AREA_OPTIONS, z as FeaturePartProps, zn as AreaDefenseOptions, zt as CanalizeOptions } from "./index-
|
|
1
|
+
import { $ as getDefaultOptions, $n as DEFAULT_STRONG_POINT_OPTIONS, $t as DEFAULT_FLOT_OPTIONS, A as roundToFixed, An as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, Ar as normalizeTextAmplifiers, At as GuardOptions, B as StyleHints, Bn as DEFAULT_AREA_DEFENSE_OPTIONS, Bt as DEFAULT_CANALIZE_OPTIONS, C as BaselineFrame, Cn as DEFAULT_SUPPORTING_ATTACK_OPTIONS, Cr as GeneratedLabelKey, Ct as AntitankWallOptions, D as createBaselineFrame, Dn as calculateMetrics, Dr as TextAmplifierKey, Dt as DEFAULT_SCREEN_OPTIONS, E as BaselineFrameOrigin, En as MainAttackOptions, Er as TextAmplifierField, Et as DEFAULT_ANTITANK_DITCH_OPTIONS, F as freezeOrientationOptions, Fn as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_TACTICAL_ARROW_OPTIONS, G as ControlMeasureStyle, Gn as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, Gt as BlockMissionTaskOptions, H as ControlMeasure, Hn as EncirclementOptions, Ht as DEFAULT_BYPASS_OPTIONS, I as RenderOptions, In as JointTacticalActionAreaOptions, It as TacticalArrowOptions, J as ControlMeasureId, Jn as DirectionOfSupportingAttackOptions, Jt as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, K as CONTROL_MEASURE_IDS, Kn as PrincipalDirectionOfFireOptions, Kt as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, L as renderControlMeasure, Ln as AssemblyAreaOptions, Lt as ClearOptions, M as SimpleStyleRender, Mn as PickupZoneOptions, Mr as AnchorTransformEvent, Mt as DelayOptions, N as toSimpleStyle, Nn as DEFAULT_LANDING_ZONE_OPTIONS, Nr as ControlMeasureDrawRule, Nt as CoverOptions, O as EPSILON, On as computeInitialWidthPoint, Or as TextAmplifiers, Ot as ScreenOptions, P as resolveStyleHints, Pn as LandingZoneOptions, Pt as DEFAULT_COVER_OPTIONS, Q as getControlMeasureMetadataByValue, Qn as DirectionOfAttackAviationOptions, Qt as PhaseLineOptions, R as ControlMeasureRender, Rn as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as DEFAULT_CLEAR_OPTIONS, S as snapToMidpointPerpendicular, Sn as DEFAULT_CLASSIC_ARROW_OPTIONS, Sr as CanonicalTextAmplifiers, St as FortifiedLineOptions, T as BaselineFrameOptions, Tn as DEFAULT_MAIN_ATTACK_OPTIONS, Tr as TEXT_AMPLIFIER_FIELDS, Tt as AntitankDitchOptions, U as cloneControlMeasure, Un as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Ut as BreachOptions, V as controlMeasureIdFromFeature, Vn as DEFAULT_ENCIRCLEMENT_OPTIONS, Vt as BypassOptions, W as isKind, Wn as FinalProtectiveFireOptions, Wt as DEFAULT_BREACH_OPTIONS, X as OptionsByKind, Xn as DirectionOfMainAttackOptions, Xt as HandoverLineOptions, Y as ControlMeasureKind, Yn as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, Yt as DEFAULT_HANDOVER_LINE_OPTIONS, Z as getControlMeasureMetadata, Zn as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, Zt as DEFAULT_PHASE_LINE_OPTIONS, _ as MidpointPerpendicularDrawRuleOptions, _n as BlockArrowHeadStyle, _r as ControlMeasureMetadata, _t as DEFAULT_FRONTAL_ATTACK_OPTIONS, a as supportByFireDrawRule, an as AttackHelicopterOptions, ar as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, at as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, b as getMidpointPerpendicularSignedDistance, bn as ClassicArrowHeadStyle, br as AmplifierPlacement, bt as FortifiedAreaOptions, c as line23DrawRule, cn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, cr as LightLineOptions, ct as TurnOptions, d as ambushDrawRule, dn as DEFAULT_GENERIC_RECTANGLE_OPTIONS, dr as project, dt as DEFAULT_DISRUPT_OPTIONS, en as FLOTOptions, er as StrongPointOptions, et as listControlMeasureMetadata, f as attackByFireDrawRule, fn as GenericRectangleOptions, fr as unproject, ft as DisruptOptions, g as blockDrawRule, gn as GenericLineOptions, gr as ControlMeasureGeometryType, gt as TurningMovementOptions, h as disruptDrawRule, hn as DEFAULT_GENERIC_LINE_OPTIONS, hr as ControlMeasureGeometry, ht as DEFAULT_TURNING_MOVEMENT_OPTIONS, i as axis1DrawRule, in as SupportByFireOptions, ir as GenericC2LineOptions, it as ObstacleBypassDifficultOptions, j as SimpleStyleProps, jn as DEFAULT_PICKUP_ZONE_OPTIONS, jr as resolveAmplifierPlacement, jt as DEFAULT_DELAY_OPTIONS, k as getMetersPerPixel, kn as AreaOfOperationsOptions, kr as canonicalTextAmplifierKey, kt as DEFAULT_GUARD_OPTIONS, l as turnDrawRule, ln as DEFAULT_GENERIC_CIRCLE_OPTIONS, lr as LabelSizeOptions, lt as DEFAULT_FIX_OPTIONS, m as centerRadiusDrawRule, mn as GenericPolygonOptions, mr as DEFAULT_BOUNDARY_OPTIONS, mt as DEFAULT_BLOCK_OPTIONS, n as DEFAULT_AMBUSH_OPTIONS, nn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, nr as DEFAULT_BATTLE_POSITION_OPTIONS, nt as ObstacleBypassImpossibleOptions, o as line26DrawRule, on as DEFAULT_ATTACK_HELICOPTER_OPTIONS, or as EngineerWorkLineOptions, ot as ObstacleBypassEasyOptions, p as point12DrawRule, pn as DEFAULT_GENERIC_POLYGON_OPTIONS, pr as BoundaryOptions, pt as BlockOptions, q as CONTROL_MEASURE_METADATA, qn as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, qt as BattleHandoverLineOptions, r as rectangleDrawRule, rn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, rr as DEFAULT_GENERIC_C2_LINE_OPTIONS, rt as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, s as line24DrawRule, sn as AirborneAttackOptions, sr as DEFAULT_LIGHT_LINE_OPTIONS, st as DEFAULT_TURN_OPTIONS, t as AmbushOptions, tn as AttackByFireOptions, tr as BattlePositionOptions, tt as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, u as line1DrawRule, un as GenericCircleOptions, ur as Point2D, ut as FixOptions, v as computeDefaultMidpointPerpendicularPoint, vn as BlockArrowOptions, vr as ParamDescriptor, vt as FrontalAttackOptions, w as BaselineFrameNormal, wn as SupportingAttackOptions, wr as LabelPlacementOverride, wt as DEFAULT_ANTITANK_WALL_OPTIONS, x as pointOnMidpointPerpendicularAxis, xn as ClassicArrowOptions, xr as AmplifierPlacements, xt as DEFAULT_FORTIFIED_LINE_OPTIONS, y as createMidpointPerpendicularDrawRule, yn as DEFAULT_BLOCK_ARROW_OPTIONS, yr as TextAmplifierDescriptor, yt as DEFAULT_FORTIFIED_AREA_OPTIONS, z as FeaturePartProps, zn as AreaDefenseOptions, zt as CanalizeOptions } from "./index-CFTEcmQi.mjs";
|
|
2
2
|
export { type AirborneAttackOptions, type AmbushOptions, type AmplifierPlacement, type AmplifierPlacements, type AnchorTransformEvent, type AntitankDitchOptions, type AntitankWallOptions, type AreaDefenseOptions, type AreaOfOperationsOptions, type AssemblyAreaOptions, type AttackByFireOptions, type AttackHelicopterOptions, type BaselineFrame, type BaselineFrameNormal, type BaselineFrameOptions, type BaselineFrameOrigin, type BattleHandoverLineOptions, type BattlePositionOptions, type BlockArrowHeadStyle, type BlockArrowOptions, type BlockMissionTaskOptions, type BlockOptions, type BoundaryOptions, type BreachOptions, type BypassOptions, CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, type CanalizeOptions, type CanonicalTextAmplifiers, type ClassicArrowHeadStyle, type ClassicArrowOptions, type ClearOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasureRender, type ControlMeasureStyle, type CoverOptions, DEFAULT_AIRBORNE_ATTACK_OPTIONS, DEFAULT_AMBUSH_OPTIONS, DEFAULT_ANTITANK_DITCH_OPTIONS, DEFAULT_ANTITANK_WALL_OPTIONS, DEFAULT_AREA_DEFENSE_OPTIONS, DEFAULT_AREA_OF_OPERATIONS_OPTIONS, DEFAULT_ASSEMBLY_AREA_OPTIONS, DEFAULT_ATTACK_BY_FIRE_OPTIONS, DEFAULT_ATTACK_HELICOPTER_OPTIONS, DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, DEFAULT_BATTLE_POSITION_OPTIONS, DEFAULT_BLOCK_ARROW_OPTIONS, DEFAULT_BLOCK_MISSION_TASK_OPTIONS, DEFAULT_BLOCK_OPTIONS, DEFAULT_BOUNDARY_OPTIONS, DEFAULT_BREACH_OPTIONS, DEFAULT_BYPASS_OPTIONS, DEFAULT_CANALIZE_OPTIONS, DEFAULT_CLASSIC_ARROW_OPTIONS, DEFAULT_CLEAR_OPTIONS, DEFAULT_COVER_OPTIONS, DEFAULT_DELAY_OPTIONS, DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_OPTIONS, DEFAULT_FLOT_OPTIONS, DEFAULT_FORTIFIED_AREA_OPTIONS, DEFAULT_FORTIFIED_LINE_OPTIONS, DEFAULT_FRONTAL_ATTACK_OPTIONS, DEFAULT_GENERIC_C2_LINE_OPTIONS, DEFAULT_GENERIC_CIRCLE_OPTIONS, DEFAULT_GENERIC_LINE_OPTIONS, DEFAULT_GENERIC_POLYGON_OPTIONS, DEFAULT_GENERIC_RECTANGLE_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, type DelayOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngineerWorkLineOptions, type FLOTOptions, type FeaturePartProps, type FinalProtectiveFireOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GuardOptions, type HandoverLineOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type MainAttackOptions, type MidpointPerpendicularDrawRuleOptions, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, type ParamDescriptor, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type RenderOptions, type ScreenOptions, type SimpleStyleProps, type SimpleStyleRender, type StrongPointOptions, type StyleHints, type SupportByFireOptions, type SupportingAttackOptions, TEXT_AMPLIFIER_FIELDS, type TacticalArrowOptions, type TextAmplifierDescriptor, type TextAmplifierField, type TextAmplifierKey, type TextAmplifiers, type TurnOptions, type TurningMovementOptions, ambushDrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getMetersPerPixel, getMidpointPerpendicularSignedDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveStyleHints, roundToFixed, snapToMidpointPerpendicular, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as DEFAULT_BLOCK_ARROW_OPTIONS, A as DEFAULT_FLOT_OPTIONS, At as disruptDrawRule, B as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Bt as project, C as DEFAULT_SCREEN_OPTIONS, Ct as line23DrawRule, D as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Dt as attackByFireDrawRule, E as DEFAULT_FORTIFIED_LINE_OPTIONS, Et as ambushDrawRule, F as DEFAULT_GUARD_OPTIONS, Ft as pointOnMidpointPerpendicularAxis, G as DEFAULT_CANALIZE_OPTIONS, H as DEFAULT_GENERIC_LINE_OPTIONS, Ht as EPSILON, I as DEFAULT_DELAY_OPTIONS, It as snapToMidpointPerpendicular, J as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, K as DEFAULT_BYPASS_OPTIONS, L as DEFAULT_COVER_OPTIONS, Lt as createBaselineFrame, M as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Mt as computeDefaultMidpointPerpendicularPoint, N as DEFAULT_ENCIRCLEMENT_OPTIONS, Nt as createMidpointPerpendicularDrawRule, O as DEFAULT_HANDOVER_LINE_OPTIONS, Ot as point12DrawRule, P as DEFAULT_DISRUPT_OPTIONS, Pt as getMidpointPerpendicularSignedDistance, Q as DEFAULT_BOUNDARY_OPTIONS, R as DEFAULT_TACTICAL_ARROW_OPTIONS, Rt as calculateMetrics, S as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, St as line24DrawRule, T as DEFAULT_FORTIFIED_AREA_OPTIONS, Tt as line1DrawRule, U as DEFAULT_GENERIC_CIRCLE_OPTIONS, Ut as getMetersPerPixel, V as DEFAULT_GENERIC_POLYGON_OPTIONS, Vt as unproject, W as DEFAULT_CLASSIC_ARROW_OPTIONS, Wt as roundToFixed, X as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Y as DEFAULT_GENERIC_C2_LINE_OPTIONS, Z as DEFAULT_LIGHT_LINE_OPTIONS, _ as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, _t as DEFAULT_AIRBORNE_ATTACK_OPTIONS, a as DEFINITIONS, at as DEFAULT_ANTITANK_DITCH_OPTIONS, b as DEFAULT_MAIN_ATTACK_OPTIONS, bt as supportByFireDrawRule, c as getDefaultOptions, ct as DEFAULT_AREA_DEFENSE_OPTIONS, d as DEFAULT_TURN_OPTIONS, dt as normalizeTextAmplifiers, et as DEFAULT_BLOCK_OPTIONS, f as DEFAULT_SUPPORTING_ATTACK_OPTIONS, ft as resolveAmplifierPlacement, g as DEFAULT_PICKUP_ZONE_OPTIONS, gt as DEFAULT_AMBUSH_OPTIONS, h as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, ht as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, i as CONTROL_MEASURE_METADATA, it as DEFAULT_ANTITANK_WALL_OPTIONS, j as DEFAULT_FIX_OPTIONS, jt as blockDrawRule, k as DEFAULT_PHASE_LINE_OPTIONS, kt as centerRadiusDrawRule, l as listControlMeasureMetadata, lt as TEXT_AMPLIFIER_FIELDS, m as DEFAULT_STRONG_POINT_OPTIONS, mt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, n as resolveStyleHints, nt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, o as getControlMeasureMetadata, ot as DEFAULT_ASSEMBLY_AREA_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, q as DEFAULT_BREACH_OPTIONS, r as CONTROL_MEASURE_IDS, rt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, s as getControlMeasureMetadataByValue, st as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, t as renderControlMeasure, tt as DEFAULT_BATTLE_POSITION_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, ut as canonicalTextAmplifierKey, v as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, vt as rectangleDrawRule, w as DEFAULT_FRONTAL_ATTACK_OPTIONS, wt as turnDrawRule, x as DEFAULT_LANDING_ZONE_OPTIONS, xt as line26DrawRule, y as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, yt as axis1DrawRule, z as DEFAULT_CLEAR_OPTIONS, zt as computeInitialWidthPoint } from "./renderControlMeasure-
|
|
1
|
+
import { $ as DEFAULT_BLOCK_ARROW_OPTIONS, A as DEFAULT_FLOT_OPTIONS, At as disruptDrawRule, B as DEFAULT_GENERIC_RECTANGLE_OPTIONS, Bt as project, C as DEFAULT_SCREEN_OPTIONS, Ct as line23DrawRule, D as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Dt as attackByFireDrawRule, E as DEFAULT_FORTIFIED_LINE_OPTIONS, Et as ambushDrawRule, F as DEFAULT_GUARD_OPTIONS, Ft as pointOnMidpointPerpendicularAxis, G as DEFAULT_CANALIZE_OPTIONS, H as DEFAULT_GENERIC_LINE_OPTIONS, Ht as EPSILON, I as DEFAULT_DELAY_OPTIONS, It as snapToMidpointPerpendicular, J as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, K as DEFAULT_BYPASS_OPTIONS, L as DEFAULT_COVER_OPTIONS, Lt as createBaselineFrame, M as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Mt as computeDefaultMidpointPerpendicularPoint, N as DEFAULT_ENCIRCLEMENT_OPTIONS, Nt as createMidpointPerpendicularDrawRule, O as DEFAULT_HANDOVER_LINE_OPTIONS, Ot as point12DrawRule, P as DEFAULT_DISRUPT_OPTIONS, Pt as getMidpointPerpendicularSignedDistance, Q as DEFAULT_BOUNDARY_OPTIONS, R as DEFAULT_TACTICAL_ARROW_OPTIONS, Rt as calculateMetrics, S as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, St as line24DrawRule, T as DEFAULT_FORTIFIED_AREA_OPTIONS, Tt as line1DrawRule, U as DEFAULT_GENERIC_CIRCLE_OPTIONS, Ut as getMetersPerPixel, V as DEFAULT_GENERIC_POLYGON_OPTIONS, Vt as unproject, W as DEFAULT_CLASSIC_ARROW_OPTIONS, Wt as roundToFixed, X as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, Y as DEFAULT_GENERIC_C2_LINE_OPTIONS, Z as DEFAULT_LIGHT_LINE_OPTIONS, _ as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, _t as DEFAULT_AIRBORNE_ATTACK_OPTIONS, a as DEFINITIONS, at as DEFAULT_ANTITANK_DITCH_OPTIONS, b as DEFAULT_MAIN_ATTACK_OPTIONS, bt as supportByFireDrawRule, c as getDefaultOptions, ct as DEFAULT_AREA_DEFENSE_OPTIONS, d as DEFAULT_TURN_OPTIONS, dt as normalizeTextAmplifiers, et as DEFAULT_BLOCK_OPTIONS, f as DEFAULT_SUPPORTING_ATTACK_OPTIONS, ft as resolveAmplifierPlacement, g as DEFAULT_PICKUP_ZONE_OPTIONS, gt as DEFAULT_AMBUSH_OPTIONS, h as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, ht as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, i as CONTROL_MEASURE_METADATA, it as DEFAULT_ANTITANK_WALL_OPTIONS, j as DEFAULT_FIX_OPTIONS, jt as blockDrawRule, k as DEFAULT_PHASE_LINE_OPTIONS, kt as centerRadiusDrawRule, l as listControlMeasureMetadata, lt as TEXT_AMPLIFIER_FIELDS, m as DEFAULT_STRONG_POINT_OPTIONS, mt as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, n as resolveStyleHints, nt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, o as getControlMeasureMetadata, ot as DEFAULT_ASSEMBLY_AREA_OPTIONS, p as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, pt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, q as DEFAULT_BREACH_OPTIONS, r as CONTROL_MEASURE_IDS, rt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, s as getControlMeasureMetadataByValue, st as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, t as renderControlMeasure, tt as DEFAULT_BATTLE_POSITION_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, ut as canonicalTextAmplifierKey, v as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, vt as rectangleDrawRule, w as DEFAULT_FRONTAL_ATTACK_OPTIONS, wt as turnDrawRule, x as DEFAULT_LANDING_ZONE_OPTIONS, xt as line26DrawRule, y as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, yt as axis1DrawRule, z as DEFAULT_CLEAR_OPTIONS, zt as computeInitialWidthPoint } from "./renderControlMeasure-C1Ur1rH0.mjs";
|
|
2
2
|
//#region src/freeze-orientation.ts
|
|
3
3
|
/**
|
|
4
4
|
* Dispatches to a measure kind's `freezeOrientation` hook (see
|
package/dist/preview/index.d.mts
CHANGED
package/dist/preview/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-
|
|
1
|
+
import { a as DEFINITIONS, t as renderControlMeasure } from "../renderControlMeasure-C1Ur1rH0.mjs";
|
|
2
2
|
//#region src/preview/index.ts
|
|
3
3
|
/**
|
|
4
4
|
* Unitless `previewSample` points (~`[-1, 1]`) are scaled by this degree offset
|
|
@@ -273,6 +273,7 @@ function calculateSymbolGeometry(ptTip, ptWidth, spine, shaftRatio, smooth, smoo
|
|
|
273
273
|
];
|
|
274
274
|
const fullSpine = [...remainingSpine, shaftEndCenter];
|
|
275
275
|
return {
|
|
276
|
+
shaftCenterline: fullSpine,
|
|
276
277
|
shaftLeft: offsetPolyline(fullSpine, shaftHalfWidth, smooth, smoothResolution),
|
|
277
278
|
shaftRight: offsetPolyline(fullSpine, -shaftHalfWidth, smooth, smoothResolution),
|
|
278
279
|
headRing,
|
|
@@ -3257,11 +3258,17 @@ function labelHalfExtent(direction, textWidth, textHeight, rotation) {
|
|
|
3257
3258
|
* guessing their default placements.
|
|
3258
3259
|
*
|
|
3259
3260
|
* A ring with fewer than 2 vertices is degenerate — nothing is placed.
|
|
3261
|
+
*
|
|
3262
|
+
* `maskBoundary` may supply a different rendered boundary to mask while
|
|
3263
|
+
* keeping label placement anchored to `ringVerts`. This is used by Fortified
|
|
3264
|
+
* Area, whose labels are centered against its smooth pre-teeth ring while the
|
|
3265
|
+
* visible boundary follows a longer castellated trace.
|
|
3260
3266
|
*/
|
|
3261
|
-
function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements) {
|
|
3267
|
+
function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements, maskBoundary) {
|
|
3262
3268
|
if (ringVerts.length < 2) return [];
|
|
3263
3269
|
const sizeProps = labelSizeProps(options);
|
|
3264
3270
|
const padding = Math.max(0, options.labelPadding ?? 0);
|
|
3271
|
+
const maskRingVerts = maskBoundary?.ringVerts ?? ringVerts;
|
|
3265
3272
|
const [cx, cy] = ringCentroid(ringVerts);
|
|
3266
3273
|
const rows = [
|
|
3267
3274
|
[texts.name, "T"],
|
|
@@ -3285,14 +3292,15 @@ function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements
|
|
|
3285
3292
|
const byX = [...crossings].sort((a, b) => a.x - b.x);
|
|
3286
3293
|
const textHeight = resolveLabelOffsetMeters(options, 1);
|
|
3287
3294
|
const textWidth = texts.hostile.length * ENY_CHAR_ASPECT_RATIO * textHeight;
|
|
3288
|
-
const clearance = (ENY_CLEARANCE_RATIO + padding) * textHeight;
|
|
3295
|
+
const clearance = (ENY_CLEARANCE_RATIO + padding) * textHeight + Math.max(0, maskBoundary?.extraClearanceMeters ?? 0);
|
|
3289
3296
|
for (const [side, crossing] of [["west", byX[0]], ["east", byX[byX.length - 1]]]) {
|
|
3290
3297
|
const labelPlacementKey = `label:N:${side}`;
|
|
3291
3298
|
const placement = resolveAmplifierPlacement(amplifierPlacements?.[labelPlacementKey]);
|
|
3292
3299
|
const rotation = placement.rotation ?? HORIZONTAL_LABEL_ROTATION;
|
|
3293
3300
|
const labelPoint = placement.position ? project(placement.position[0], placement.position[1]) : [crossing.x, cy];
|
|
3294
3301
|
pushLabel(out, labelPoint, texts.hostile, HORIZONTAL_LABEL_ROTATION, sizeProps, void 0, "N", labelPlacementKey);
|
|
3295
|
-
const
|
|
3302
|
+
const usesDifferentMaskRing = maskRingVerts !== ringVerts;
|
|
3303
|
+
const contact = placement.position || usesDifferentMaskRing ? nearestPointOnRing(maskRingVerts, labelPoint) : {
|
|
3296
3304
|
along: crossing.along,
|
|
3297
3305
|
arc: crossing.arc,
|
|
3298
3306
|
distance: 0,
|
|
@@ -3300,7 +3308,7 @@ function pushAreaLabels(out, ringVerts, texts, options = {}, amplifierPlacements
|
|
|
3300
3308
|
};
|
|
3301
3309
|
if (!contact) continue;
|
|
3302
3310
|
const normal = [-contact.along[1], contact.along[0]];
|
|
3303
|
-
if (contact.distance > labelHalfExtent(normal, textWidth, textHeight, rotation)) continue;
|
|
3311
|
+
if (placement.position && contact.distance > labelHalfExtent(normal, textWidth, textHeight, rotation)) continue;
|
|
3304
3312
|
const tangentExtent = labelHalfExtent(contact.along, textWidth, textHeight, rotation) + clearance;
|
|
3305
3313
|
pushWrappedGap(gaps, contact.arc - tangentExtent, contact.arc + tangentExtent, contact.totalArc);
|
|
3306
3314
|
}
|
|
@@ -8977,7 +8985,11 @@ const FORTIFIED_AREA_METADATA = {
|
|
|
8977
8985
|
value: "151000",
|
|
8978
8986
|
minCoordinates: 3,
|
|
8979
8987
|
geometry: "area",
|
|
8980
|
-
geometryTypes: [
|
|
8988
|
+
geometryTypes: [
|
|
8989
|
+
"Polygon",
|
|
8990
|
+
"MultiLineString",
|
|
8991
|
+
"Point"
|
|
8992
|
+
],
|
|
8981
8993
|
drawRule: "Area1",
|
|
8982
8994
|
capturesLabelSize: true,
|
|
8983
8995
|
params: [...FORTIFIED_AREA_PARAMS, AREA_LABEL_PADDING_PARAM],
|
|
@@ -8996,11 +9008,14 @@ const FORTIFIED_AREA_METADATA = {
|
|
|
8996
9008
|
* @param textAmplifiers - Field T (bare, no prefix — "TANGO", not "FA TANGO")
|
|
8997
9009
|
* plus Field H/W/W1, centered on the pre-teeth boundary ring (see
|
|
8998
9010
|
* `boundaryInput` below), and an optional Field N "ENY" hostile marker on
|
|
8999
|
-
* that ring's west/east edges
|
|
9000
|
-
* @
|
|
9001
|
-
*
|
|
9002
|
-
|
|
9003
|
-
|
|
9011
|
+
* that ring's west/east edges, masking the castellated boundary beneath it.
|
|
9012
|
+
* @param context - Persisted amplifier placements used to move or restore each
|
|
9013
|
+
* ENY cutout with its independently dragged label.
|
|
9014
|
+
* @returns A GeoJSON FeatureCollection containing the castellated boundary
|
|
9015
|
+
* (a Polygon normally, or a gapped MultiLineString with Field N) plus any
|
|
9016
|
+
* label Points
|
|
9017
|
+
*/
|
|
9018
|
+
function createFortifiedArea(positions, options = {}, textAmplifiers = {}, context = {}) {
|
|
9004
9019
|
const { smooth = DEFAULT_FORTIFIED_AREA_OPTIONS.smooth, smoothResolution = DEFAULT_FORTIFIED_AREA_OPTIONS.smoothResolution } = options;
|
|
9005
9020
|
const safeSize = calculateEffectiveSize(options);
|
|
9006
9021
|
const projected = positions.map((p) => project(p[0], p[1]));
|
|
@@ -9013,22 +9028,20 @@ function createFortifiedArea(positions, options = {}, textAmplifiers = {}) {
|
|
|
9013
9028
|
if (vecMag(vecSub(firstPt, lastPt)) > 1e-6) boundaryPoints.push(firstPt);
|
|
9014
9029
|
else boundaryPoints[boundaryPoints.length - 1] = firstPt;
|
|
9015
9030
|
}
|
|
9031
|
+
const labelFeatures = [];
|
|
9016
9032
|
const features = [{
|
|
9017
|
-
|
|
9018
|
-
|
|
9019
|
-
|
|
9020
|
-
|
|
9021
|
-
|
|
9022
|
-
|
|
9033
|
+
...boundaryFeature(boundaryPoints, pushAreaLabels(labelFeatures, boundaryInput, {
|
|
9034
|
+
name: textAmplifiers.T,
|
|
9035
|
+
additionalInformation: textAmplifiers.H,
|
|
9036
|
+
dtgStart: textAmplifiers.W,
|
|
9037
|
+
dtgEnd: textAmplifiers.W1,
|
|
9038
|
+
hostile: textAmplifiers.N
|
|
9039
|
+
}, options, context.amplifierPlacements, {
|
|
9040
|
+
ringVerts: boundaryPoints,
|
|
9041
|
+
extraClearanceMeters: 3 * safeSize
|
|
9042
|
+
})),
|
|
9043
|
+
properties: {}
|
|
9023
9044
|
}];
|
|
9024
|
-
const labelFeatures = [];
|
|
9025
|
-
pushAreaLabels(labelFeatures, boundaryInput, {
|
|
9026
|
-
name: textAmplifiers.T,
|
|
9027
|
-
additionalInformation: textAmplifiers.H,
|
|
9028
|
-
dtgStart: textAmplifiers.W,
|
|
9029
|
-
dtgEnd: textAmplifiers.W1,
|
|
9030
|
-
hostile: textAmplifiers.N
|
|
9031
|
-
}, options);
|
|
9032
9045
|
features.push(...labelFeatures);
|
|
9033
9046
|
return {
|
|
9034
9047
|
type: "FeatureCollection",
|
|
@@ -9062,9 +9075,6 @@ const DEFAULT_MANEUVER_ARROW_TASK_OPTIONS = {
|
|
|
9062
9075
|
dtgPosition: .62,
|
|
9063
9076
|
labelPadding: 0
|
|
9064
9077
|
};
|
|
9065
|
-
function midpoint(a, b) {
|
|
9066
|
-
return vecScale(vecAdd(a, b), .5);
|
|
9067
|
-
}
|
|
9068
9078
|
function createManeuverArrowTask(coordinates, options, textAmplifiers, config) {
|
|
9069
9079
|
const resolved = {
|
|
9070
9080
|
...DEFAULT_MANEUVER_ARROW_TASK_OPTIONS,
|
|
@@ -9082,7 +9092,7 @@ function createManeuverArrowTask(coordinates, options, textAmplifiers, config) {
|
|
|
9082
9092
|
geometry.headRing[2],
|
|
9083
9093
|
...[...geometry.shaftRight].reverse()
|
|
9084
9094
|
];
|
|
9085
|
-
const centerline = geometry.
|
|
9095
|
+
const centerline = geometry.shaftCenterline;
|
|
9086
9096
|
const { segments, totalLength } = polylineSegments(centerline);
|
|
9087
9097
|
if (segments.length === 0) return {
|
|
9088
9098
|
type: "FeatureCollection",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@orbat-mapper/control-measures",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.18",
|
|
4
4
|
"description": "Library for drawing tactical graphics and control measures according to MIL-STD-2525 and APP-6 standards.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Orbat Mapper",
|