@orbat-mapper/control-measures 0.10.0 → 0.11.0
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-CYa8ELZp.d.mts → index-CwSQl5SE.d.mts} +37 -1
- 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-BcJiY40G.mjs → renderControlMeasure-DJo_s-lN.mjs} +439 -26
- package/package.json +1 -1
|
@@ -14,6 +14,12 @@ interface ControlMeasureDrawRule {
|
|
|
14
14
|
readonly id: string;
|
|
15
15
|
readonly minimumUserPoints: number;
|
|
16
16
|
readonly canonicalPointCount?: number;
|
|
17
|
+
/**
|
|
18
|
+
* Canonical control-point slots that are derived geometry rather than user
|
|
19
|
+
* controls. Edit hosts omit vertex handles for these indices while retaining
|
|
20
|
+
* the points in the generator input.
|
|
21
|
+
*/
|
|
22
|
+
readonly hiddenControlPointIndices?: readonly number[];
|
|
17
23
|
/**
|
|
18
24
|
* Number of raw (clicked + rubber-band) points at which `derive` can already
|
|
19
25
|
* produce a renderable canonical shape, so the draw controller renders a live
|
|
@@ -219,7 +225,7 @@ declare function normalizeTextAmplifiers(input: TextAmplifiers | undefined): Can
|
|
|
219
225
|
//#region src/metadata.d.ts
|
|
220
226
|
type ControlMeasureGeometryType = Geometry["type"];
|
|
221
227
|
type ControlMeasureGeometry = "point" | "line" | "area";
|
|
222
|
-
declare const DRAW_RULE_IDS: readonly ["Area1", "Area5", "Area6", "Area7", "Area8", "Area11", "Area12", "Area15", "Area17", "Area21", "Area27", "Axis1", "Line1", "Line3", "Line9", "Line10", "Line11", "Line23", "Line24", "Line26", "Line27", "Line29", "Point1", "Point2", "Point12", "Point18", "Rectangle", "Sector"];
|
|
228
|
+
declare const DRAW_RULE_IDS: readonly ["Area1", "Area5", "Area6", "Area7", "Area8", "Area11", "Area12", "Area15", "Area17", "Area21", "Area27", "Axis1", "Line1", "Line3", "Line9", "Line10", "Line11", "Line23", "Line24", "Line26", "Line27", "Line29", "Line31", "Line32", "Point1", "Point2", "Point12", "Point18", "Rectangle", "Sector"];
|
|
223
229
|
type DrawRuleId = (typeof DRAW_RULE_IDS)[number];
|
|
224
230
|
declare const PARAMETER_PRESENTATION_TIERS: readonly ["primary", "standard", "advanced"];
|
|
225
231
|
type ParameterPresentationTier = (typeof PARAMETER_PRESENTATION_TIERS)[number];
|
|
@@ -2480,6 +2486,34 @@ declare const DEFAULT_DISRUPT_MISSION_TASK_OPTIONS: Required<Omit<DisruptMission
|
|
|
2480
2486
|
/** Generates the DISRUPT mission task symbol (341000). */
|
|
2481
2487
|
declare function createDisruptMissionTaskSymbol(coordinates: Position[], options?: DisruptMissionTaskOptions): FeatureCollection<MultiLineString | Point>;
|
|
2482
2488
|
//#endregion
|
|
2489
|
+
//#region src/generators/cm34-mission-tasks/envelopment.d.ts
|
|
2490
|
+
interface EnvelopmentOptions extends LabelSizeOptions, ArcResolutionOptions {
|
|
2491
|
+
/** Arrowhead depth as a ratio of the arc diameter. */
|
|
2492
|
+
arrowheadLengthRatio?: number;
|
|
2493
|
+
/** Arrowhead base width as a ratio of the arc diameter. */
|
|
2494
|
+
arrowheadWidthRatio?: number;
|
|
2495
|
+
/** Position of the E label along the straight portion, from PT. 1 to PT. 2. */
|
|
2496
|
+
labelPosition?: number;
|
|
2497
|
+
/** Gap around the E label as a ratio of the straight portion. */
|
|
2498
|
+
labelGapRatio?: number;
|
|
2499
|
+
}
|
|
2500
|
+
/** Generates the Envelopment mission task symbol (343500). */
|
|
2501
|
+
declare function createEnvelopment(coordinates: Position[], options?: EnvelopmentOptions): FeatureCollection<MultiLineString | Point>;
|
|
2502
|
+
//#endregion
|
|
2503
|
+
//#region src/generators/cm34-mission-tasks/infiltration.d.ts
|
|
2504
|
+
interface InfiltrationOptions extends LabelSizeOptions, ArcResolutionOptions {
|
|
2505
|
+
/** Arrowhead depth as a ratio of the Point 1–Point 3 span. */
|
|
2506
|
+
arrowheadLengthRatio?: number;
|
|
2507
|
+
/** Arrowhead base width as a ratio of the Point 1–Point 3 span. */
|
|
2508
|
+
arrowheadWidthRatio?: number;
|
|
2509
|
+
/** Position of the IN label along the initial straight portion. */
|
|
2510
|
+
labelPosition?: number;
|
|
2511
|
+
/** Gap around the IN label as a ratio of the initial straight portion. */
|
|
2512
|
+
labelGapRatio?: number;
|
|
2513
|
+
}
|
|
2514
|
+
/** Generates the Infiltration mission task symbol (343800). */
|
|
2515
|
+
declare function createInfiltration(coordinates: Position[], options?: InfiltrationOptions): FeatureCollection<MultiLineString | Point>;
|
|
2516
|
+
//#endregion
|
|
2483
2517
|
//#region src/generators/cm34-mission-tasks/guard.d.ts
|
|
2484
2518
|
type GuardOptions = SecurityTaskOptions;
|
|
2485
2519
|
declare const DEFAULT_GUARD_OPTIONS: Required<Omit<SecurityTaskOptions, "labelSize" | "labelSizePixels">>;
|
|
@@ -3021,6 +3055,8 @@ declare const DEFINITIONS: {
|
|
|
3021
3055
|
delay: ControlMeasureDefinition<"delay", typeof createDelaySymbol>;
|
|
3022
3056
|
disengage: ControlMeasureDefinition<"disengage", typeof createDisengageSymbol>;
|
|
3023
3057
|
"disrupt-mission-task": ControlMeasureDefinition<"disrupt-mission-task", typeof createDisruptMissionTaskSymbol>;
|
|
3058
|
+
envelopment: ControlMeasureDefinition<"envelopment", typeof createEnvelopment>;
|
|
3059
|
+
infiltration: ControlMeasureDefinition<"infiltration", typeof createInfiltration>;
|
|
3024
3060
|
guard: ControlMeasureDefinition<"guard", typeof createGuardSymbol>;
|
|
3025
3061
|
isolate: ControlMeasureDefinition<"isolate", typeof createIsolateSymbol>;
|
|
3026
3062
|
penetrate: ControlMeasureDefinition<"penetrate", typeof createPenetrateSymbol>;
|
package/dist/index.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as ControlMeasureKind, $i as TextAmplifierDescriptor, $n as DEFAULT_AIRBORNE_ATTACK_OPTIONS, $r as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, $t as DEFAULT_DISENGAGE_OPTIONS, A as BaselineFrame, Ai as BoundaryOptions, An as BattleHandoverLineOptions, Ar as DEFAULT_PICKUP_ZONE_OPTIONS, At as FortifiedLineOptions, B as toSimpleStyle, Bi as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Bn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Br as MobileDefenseOptions, Bt as SeizeOptions, C as area27DrawRule, Ci as LightLineOptions, Cn as ProbableLineOfDeploymentOptions, Cr as SupportingAttackOptions, Ct as DEFAULT_TURNING_MOVEMENT_OPTIONS, D as getMidpointPerpendicularSignedDistance, Di as project, Dn as LineOfDepartureOptions, Dr as computeInitialWidthPoint, Dt as DEFAULT_FORTIFIED_AREA_OPTIONS, E as createMidpointPerpendicularDrawRule, Ei as haversineDistance, En as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Er as calculateMetrics, Et as FrontalAttackOptions, F as EPSILON, Fi as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Fn as ReleaseLineOptions, Fr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, G as RenderOptions, Gi as ControlMeasureGeometry, Gn as FLOTOptions, Gr as DEFAULT_ENCIRCLEMENT_OPTIONS, Gt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, H as applyBoxTransformOptions, Hi as MeasureTextRequest, Hn as DEFAULT_PHASE_LINE_OPTIONS, Hr as EngagementAreaOptions, Ht as ScreenOptions, I as getMetersPerPixel, Ii as DEFAULT_LINE_CAP, In as DEFAULT_HOLDING_LINE_OPTIONS, Ir as JointTacticalActionAreaOptions, It as WithdrawUnderPressureOptions, J as cloneControlMeasure, Ji as ControlMeasurePaintCapability, Jn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Jr as FinalProtectiveFireOptions, Jt as PenetrateOptions, K as renderControlMeasure, Ki as ControlMeasureGeometryType, Kn as AttackByFireOptions, Kr as EncirclementOptions, Kt as RearwardPassageOfLinesOptions, L as roundToFixed, Li as DEFAULT_LINE_JOIN, Ln as HoldingLineOptions, Lr as AssemblyAreaOptions, Lt as DEFAULT_WITHDRAW_OPTIONS, M as BaselineFrameOptions, Mi as BoxTransformDelta, Mn as DEFAULT_HANDOVER_LINE_OPTIONS, Mr as MineType, Mt as DEFAULT_ANTITANK_WALL_OPTIONS, N as BaselineFrameOrigin, Ni as ControlMeasureRenderContext, Nn as HandoverLineOptions, Nr as DEFAULT_LANDING_ZONE_OPTIONS, Nt as AntitankDitchOptions, O as pointOnMidpointPerpendicularAxis, Oi as sphericalBearing, On as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Or as AreaOfOperationsOptions, Ot as FortifiedAreaOptions, P as createBaselineFrame, Pi as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, Pn as DEFAULT_RELEASE_LINE_OPTIONS, Pr as LandingZoneOptions, Pt as DEFAULT_ANTITANK_DITCH_OPTIONS, Q as ControlMeasureId, Qi as ParameterSemanticRole, Qn as AirborneAttackOptions, Qr as controlMeasureIdFromFeature, Qt as DisruptMissionTaskOptions, R as SimpleStyleProps, Ri as DEFAULT_PORTRAYAL, Rn as BridgeheadLineOptions, Rr as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as WithdrawOptions, S as containDrawRule, Si as DEFAULT_LIGHT_LINE_OPTIONS, Sn as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Sr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, St as DEFAULT_BLOCK_OPTIONS, T as computeDefaultMidpointPerpendicularPoint, Ti as Point2D, Tn as LineOfDepartureContactOptions, Tr as MainAttackOptions, Tt as DEFAULT_FRONTAL_ATTACK_OPTIONS, U as foldsBoxTransformOptions, Ui as MeasuredText, Un as PhaseLineOptions, Ur as AreaDefenseOptions, Ut as DEFAULT_RETIRE_OPTIONS, V as resolveStyleHints, Vi as LogicalTextStyle, Vn as ForwardEdgeOfBattleAreaOptions, Vr as DEFAULT_ENGAGEMENT_AREA_OPTIONS, Vt as DEFAULT_SCREEN_OPTIONS, W as freezeOrientationOptions, Wi as ControlMeasureFillCapability, Wn as DEFAULT_FLOT_OPTIONS, Wr as DEFAULT_AREA_DEFENSE_OPTIONS, Wt as RetireOptions, X as CONTROL_MEASURE_IDS, Xi as ParamDescriptor, Xn as AttackHelicopterOptions, Xr as FeaturePartProps, Xt as GuardOptions, Y as isKind, Yi as PARAMETER_PRESENTATION_TIERS, Yn as SupportByFireOptions, Yr as ControlMeasureRender, Yt as DEFAULT_GUARD_OPTIONS, Z as CONTROL_MEASURE_METADATA, Zi as ParameterPresentationTier, Zn as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Zr as StyleHints, Zt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, _ as point12DrawRule, _i as DEFAULT_BATTLE_POSITION_OPTIONS, _n as BreachOptions, _r as BlockArrowOptions, _t as DEFAULT_FIX_OPTIONS, a as axis1DrawRule, aa as CanonicalTextAmplifiers, ai as DirectionOfSupportingAttackOptions, an as DEFAULT_TACTICAL_ARROW_OPTIONS, ar as GenericTextOptions, at as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, b as disruptDrawRule, bi as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, bn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, br as ClassicArrowOptions, bt as DisruptOptions, c as line26DrawRule, ca as TEXT_AMPLIFIER_FIELDS, ci as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, cn as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, cr as DEFAULT_GENERIC_CIRCLE_OPTIONS, ct as ObstacleBypassDifficultOptions, d as turnDrawRule, da as TextAmplifiers, di as RetainOptions, dn as ClearOptions, dr as GenericRectangleOptions, dt as DEFAULT_MINEFIELD_OPTIONS, ea as parameterPresentationTierRank, ei as SECONDARY_DIRECTION_OF_FIRE_DASH, en as DisengageOptions, er as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, et as OptionsByKind, f as line1DrawRule, fa as canonicalTextAmplifierKey, fi as DEFAULT_STRONG_POINT_OPTIONS, fn as DEFAULT_CLEAR_OPTIONS, fr as DEFAULT_GENERIC_POLYGON_OPTIONS, ft as MinefieldOptions, g as staticPointDrawRule, ga as ControlMeasureDrawRule, gi as BattlePositionOptions, gn as DEFAULT_BYPASS_OPTIONS, gr as BlockArrowHeadStyle, gt as FixMissionTaskOptions, h as dynamicPointDrawRule, ha as AnchorTransformEvent, hi as DEFAULT_CONTAIN_OPTIONS, hn as BypassOptions, hr as GenericLineOptions, ht as DEFAULT_FIX_MISSION_TASK_OPTIONS, i as rectangleDrawRule, ia as AmplifierPlacements, ii as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, in as DEFAULT_COVER_OPTIONS, ir as DEFAULT_GENERIC_TEXT_OPTIONS, it as listControlMeasureMetadata, j as BaselineFrameNormal, ji as DEFAULT_BOUNDARY_OPTIONS, jn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, jr as PickupZoneOptions, jt as AntitankWallOptions, k as snapToMidpointPerpendicular, ki as unproject, kn as LimitOfAdvanceOptions, kr as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, kt as DEFAULT_FORTIFIED_LINE_OPTIONS, l as line24DrawRule, la as TextAmplifierField, li as DirectionOfAttackAviationOptions, ln as CounterattackOptions, lr as GenericCircleOptions, lt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, m as attackByFireDrawRule, ma as resolveAmplifierPlacement, mi as ContainOptions, mn as DEFAULT_CANALIZE_OPTIONS, mr as DEFAULT_GENERIC_LINE_OPTIONS, mt as TurnOptions, n as DEFAULT_AMBUSH_OPTIONS, na as resolveParameterSemanticRole, ni as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, nn as DelayOptions, nr as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, nt as getControlMeasureMetadataByValue, o as supportByFireDrawRule, oa as GeneratedLabelKey, oi as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, on as TacticalArrowOptions, or as DEFAULT_GENERIC_SECTOR_OPTIONS, ot as ObstacleBypassImpossibleOptions, p as ambushDrawRule, pa as normalizeTextAmplifiers, pi as StrongPointOptions, pn as CanalizeOptions, pr as GenericPolygonOptions, pt as DEFAULT_TURN_OPTIONS, q as ControlMeasure, qi as ControlMeasureMetadata, qn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, qr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, qt as DEFAULT_PENETRATE_OPTIONS, r as sectorDrawRule, ra as AmplifierPlacement, ri as PrincipalDirectionOfFireOptions, rn as CoverOptions, rr as RadarSearchDoctrineOptions, rt as getDefaultOptions, s as line27DrawRule, sa as LabelPlacementOverride, si as DirectionOfMainAttackOptions, sn as CounterattackByFireOptions, sr as GenericSectorOptions, st as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, t as AmbushOptions, ta as resolveParameterPresentationTier, ti as SecondaryDirectionOfFireOptions, tn as DEFAULT_DELAY_OPTIONS, tr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, tt as getControlMeasureMetadata, u as line23DrawRule, ua as TextAmplifierKey, ui as DEFAULT_RETAIN_OPTIONS, un as DEFAULT_COUNTERATTACK_OPTIONS, ur as DEFAULT_GENERIC_RECTANGLE_OPTIONS, ut as ObstacleBypassEasyOptions, v as penetrateDrawRule, vi as DEFAULT_GENERIC_C2_LINE_OPTIONS, vn as DEFAULT_BREACH_OPTIONS, vr as DEFAULT_BLOCK_ARROW_OPTIONS, vt as FixOptions, w as MidpointPerpendicularDrawRuleOptions, wi as LabelSizeOptions, wn as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, wr as DEFAULT_MAIN_ATTACK_OPTIONS, wt as TurningMovementOptions, x as blockDrawRule, xi as EngineerWorkLineOptions, xn as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, xr as DEFAULT_CLASSIC_ARROW_OPTIONS, xt as BlockOptions, y as centerRadiusDrawRule, yi as GenericC2LineOptions, yn as BlockMissionTaskOptions, yr as ClassicArrowHeadStyle, yt as DEFAULT_DISRUPT_OPTIONS, z as SimpleStyleRender, zi as DEFAULT_STROKE_DASH_CSS_PIXELS, zn as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, zr as DEFAULT_MOBILE_DEFENSE_OPTIONS, zt as DEFAULT_SEIZE_OPTIONS } from "./index-
|
|
1
|
+
import { $ as ControlMeasureKind, $i as TextAmplifierDescriptor, $n as DEFAULT_AIRBORNE_ATTACK_OPTIONS, $r as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, $t as DEFAULT_DISENGAGE_OPTIONS, A as BaselineFrame, Ai as BoundaryOptions, An as BattleHandoverLineOptions, Ar as DEFAULT_PICKUP_ZONE_OPTIONS, At as FortifiedLineOptions, B as toSimpleStyle, Bi as DEFAULT_STROKE_WIDTH_CSS_PIXELS, Bn as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Br as MobileDefenseOptions, Bt as SeizeOptions, C as area27DrawRule, Ci as LightLineOptions, Cn as ProbableLineOfDeploymentOptions, Cr as SupportingAttackOptions, Ct as DEFAULT_TURNING_MOVEMENT_OPTIONS, D as getMidpointPerpendicularSignedDistance, Di as project, Dn as LineOfDepartureOptions, Dr as computeInitialWidthPoint, Dt as DEFAULT_FORTIFIED_AREA_OPTIONS, E as createMidpointPerpendicularDrawRule, Ei as haversineDistance, En as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, Er as calculateMetrics, Et as FrontalAttackOptions, F as EPSILON, Fi as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Fn as ReleaseLineOptions, Fr as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Ft as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, G as RenderOptions, Gi as ControlMeasureGeometry, Gn as FLOTOptions, Gr as DEFAULT_ENCIRCLEMENT_OPTIONS, Gt as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, H as applyBoxTransformOptions, Hi as MeasureTextRequest, Hn as DEFAULT_PHASE_LINE_OPTIONS, Hr as EngagementAreaOptions, Ht as ScreenOptions, I as getMetersPerPixel, Ii as DEFAULT_LINE_CAP, In as DEFAULT_HOLDING_LINE_OPTIONS, Ir as JointTacticalActionAreaOptions, It as WithdrawUnderPressureOptions, J as cloneControlMeasure, Ji as ControlMeasurePaintCapability, Jn as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, Jr as FinalProtectiveFireOptions, Jt as PenetrateOptions, K as renderControlMeasure, Ki as ControlMeasureGeometryType, Kn as AttackByFireOptions, Kr as EncirclementOptions, Kt as RearwardPassageOfLinesOptions, L as roundToFixed, Li as DEFAULT_LINE_JOIN, Ln as HoldingLineOptions, Lr as AssemblyAreaOptions, Lt as DEFAULT_WITHDRAW_OPTIONS, M as BaselineFrameOptions, Mi as BoxTransformDelta, Mn as DEFAULT_HANDOVER_LINE_OPTIONS, Mr as MineType, Mt as DEFAULT_ANTITANK_WALL_OPTIONS, N as BaselineFrameOrigin, Ni as ControlMeasureRenderContext, Nn as HandoverLineOptions, Nr as DEFAULT_LANDING_ZONE_OPTIONS, Nt as AntitankDitchOptions, O as pointOnMidpointPerpendicularAxis, Oi as sphericalBearing, On as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Or as AreaOfOperationsOptions, Ot as FortifiedAreaOptions, P as createBaselineFrame, Pi as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, Pn as DEFAULT_RELEASE_LINE_OPTIONS, Pr as LandingZoneOptions, Pt as DEFAULT_ANTITANK_DITCH_OPTIONS, Q as ControlMeasureId, Qi as ParameterSemanticRole, Qn as AirborneAttackOptions, Qr as controlMeasureIdFromFeature, Qt as DisruptMissionTaskOptions, R as SimpleStyleProps, Ri as DEFAULT_PORTRAYAL, Rn as BridgeheadLineOptions, Rr as DEFAULT_ASSEMBLY_AREA_OPTIONS, Rt as WithdrawOptions, S as containDrawRule, Si as DEFAULT_LIGHT_LINE_OPTIONS, Sn as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Sr as DEFAULT_SUPPORTING_ATTACK_OPTIONS, St as DEFAULT_BLOCK_OPTIONS, T as computeDefaultMidpointPerpendicularPoint, Ti as Point2D, Tn as LineOfDepartureContactOptions, Tr as MainAttackOptions, Tt as DEFAULT_FRONTAL_ATTACK_OPTIONS, U as foldsBoxTransformOptions, Ui as MeasuredText, Un as PhaseLineOptions, Ur as AreaDefenseOptions, Ut as DEFAULT_RETIRE_OPTIONS, V as resolveStyleHints, Vi as LogicalTextStyle, Vn as ForwardEdgeOfBattleAreaOptions, Vr as DEFAULT_ENGAGEMENT_AREA_OPTIONS, Vt as DEFAULT_SCREEN_OPTIONS, W as freezeOrientationOptions, Wi as ControlMeasureFillCapability, Wn as DEFAULT_FLOT_OPTIONS, Wr as DEFAULT_AREA_DEFENSE_OPTIONS, Wt as RetireOptions, X as CONTROL_MEASURE_IDS, Xi as ParamDescriptor, Xn as AttackHelicopterOptions, Xr as FeaturePartProps, Xt as GuardOptions, Y as isKind, Yi as PARAMETER_PRESENTATION_TIERS, Yn as SupportByFireOptions, Yr as ControlMeasureRender, Yt as DEFAULT_GUARD_OPTIONS, Z as CONTROL_MEASURE_METADATA, Zi as ParameterPresentationTier, Zn as DEFAULT_ATTACK_HELICOPTER_OPTIONS, Zr as StyleHints, Zt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, _ as point12DrawRule, _i as DEFAULT_BATTLE_POSITION_OPTIONS, _n as BreachOptions, _r as BlockArrowOptions, _t as DEFAULT_FIX_OPTIONS, a as axis1DrawRule, aa as CanonicalTextAmplifiers, ai as DirectionOfSupportingAttackOptions, an as DEFAULT_TACTICAL_ARROW_OPTIONS, ar as GenericTextOptions, at as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, b as disruptDrawRule, bi as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, bn as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, br as ClassicArrowOptions, bt as DisruptOptions, c as line26DrawRule, ca as TEXT_AMPLIFIER_FIELDS, ci as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, cn as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, cr as DEFAULT_GENERIC_CIRCLE_OPTIONS, ct as ObstacleBypassDifficultOptions, d as turnDrawRule, da as TextAmplifiers, di as RetainOptions, dn as ClearOptions, dr as GenericRectangleOptions, dt as DEFAULT_MINEFIELD_OPTIONS, ea as parameterPresentationTierRank, ei as SECONDARY_DIRECTION_OF_FIRE_DASH, en as DisengageOptions, er as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, et as OptionsByKind, f as line1DrawRule, fa as canonicalTextAmplifierKey, fi as DEFAULT_STRONG_POINT_OPTIONS, fn as DEFAULT_CLEAR_OPTIONS, fr as DEFAULT_GENERIC_POLYGON_OPTIONS, ft as MinefieldOptions, g as staticPointDrawRule, ga as ControlMeasureDrawRule, gi as BattlePositionOptions, gn as DEFAULT_BYPASS_OPTIONS, gr as BlockArrowHeadStyle, gt as FixMissionTaskOptions, h as dynamicPointDrawRule, ha as AnchorTransformEvent, hi as DEFAULT_CONTAIN_OPTIONS, hn as BypassOptions, hr as GenericLineOptions, ht as DEFAULT_FIX_MISSION_TASK_OPTIONS, i as rectangleDrawRule, ia as AmplifierPlacements, ii as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, in as DEFAULT_COVER_OPTIONS, ir as DEFAULT_GENERIC_TEXT_OPTIONS, it as listControlMeasureMetadata, j as BaselineFrameNormal, ji as DEFAULT_BOUNDARY_OPTIONS, jn as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, jr as PickupZoneOptions, jt as AntitankWallOptions, k as snapToMidpointPerpendicular, ki as unproject, kn as LimitOfAdvanceOptions, kr as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, kt as DEFAULT_FORTIFIED_LINE_OPTIONS, l as line24DrawRule, la as TextAmplifierField, li as DirectionOfAttackAviationOptions, ln as CounterattackOptions, lr as GenericCircleOptions, lt as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, m as attackByFireDrawRule, ma as resolveAmplifierPlacement, mi as ContainOptions, mn as DEFAULT_CANALIZE_OPTIONS, mr as DEFAULT_GENERIC_LINE_OPTIONS, mt as TurnOptions, n as DEFAULT_AMBUSH_OPTIONS, na as resolveParameterSemanticRole, ni as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, nn as DelayOptions, nr as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, nt as getControlMeasureMetadataByValue, o as supportByFireDrawRule, oa as GeneratedLabelKey, oi as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, on as TacticalArrowOptions, or as DEFAULT_GENERIC_SECTOR_OPTIONS, ot as ObstacleBypassImpossibleOptions, p as ambushDrawRule, pa as normalizeTextAmplifiers, pi as StrongPointOptions, pn as CanalizeOptions, pr as GenericPolygonOptions, pt as DEFAULT_TURN_OPTIONS, q as ControlMeasure, qi as ControlMeasureMetadata, qn as DEFAULT_ATTACK_BY_FIRE_OPTIONS, qr as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, qt as DEFAULT_PENETRATE_OPTIONS, r as sectorDrawRule, ra as AmplifierPlacement, ri as PrincipalDirectionOfFireOptions, rn as CoverOptions, rr as RadarSearchDoctrineOptions, rt as getDefaultOptions, s as line27DrawRule, sa as LabelPlacementOverride, si as DirectionOfMainAttackOptions, sn as CounterattackByFireOptions, sr as GenericSectorOptions, st as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, t as AmbushOptions, ta as resolveParameterPresentationTier, ti as SecondaryDirectionOfFireOptions, tn as DEFAULT_DELAY_OPTIONS, tr as RADAR_SEARCH_DOCTRINE_FILL_COLOR, tt as getControlMeasureMetadata, u as line23DrawRule, ua as TextAmplifierKey, ui as DEFAULT_RETAIN_OPTIONS, un as DEFAULT_COUNTERATTACK_OPTIONS, ur as DEFAULT_GENERIC_RECTANGLE_OPTIONS, ut as ObstacleBypassEasyOptions, v as penetrateDrawRule, vi as DEFAULT_GENERIC_C2_LINE_OPTIONS, vn as DEFAULT_BREACH_OPTIONS, vr as DEFAULT_BLOCK_ARROW_OPTIONS, vt as FixOptions, w as MidpointPerpendicularDrawRuleOptions, wi as LabelSizeOptions, wn as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, wr as DEFAULT_MAIN_ATTACK_OPTIONS, wt as TurningMovementOptions, x as blockDrawRule, xi as EngineerWorkLineOptions, xn as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, xr as DEFAULT_CLASSIC_ARROW_OPTIONS, xt as BlockOptions, y as centerRadiusDrawRule, yi as GenericC2LineOptions, yn as BlockMissionTaskOptions, yr as ClassicArrowHeadStyle, yt as DEFAULT_DISRUPT_OPTIONS, z as SimpleStyleRender, zi as DEFAULT_STROKE_DASH_CSS_PIXELS, zn as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, zr as DEFAULT_MOBILE_DEFENSE_OPTIONS, zt as DEFAULT_SEIZE_OPTIONS } from "./index-CwSQl5SE.mjs";
|
|
2
2
|
import { a as PatternId, c as PatternPoint, d as ControlMeasureStyle, f as FillPattern, i as NON_SOLID_FILL_PATTERNS, l as PatternStroke, n as FillPatternCommand, o as PatternPaint, r as FillPatternDefinition, s as PatternPathOperation, t as FILL_PATTERN_DEFINITIONS, u as getFillPatternDefinition } from "./patterns-CcQmmOuJ.mjs";
|
|
3
3
|
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 BoxTransformDelta, type BreachOptions, type BridgeheadLineOptions, type BypassOptions, CONTROL_MEASURE_IDS, CONTROL_MEASURE_METADATA, type CanalizeOptions, type CanonicalTextAmplifiers, type ClassicArrowHeadStyle, type ClassicArrowOptions, type ClearOptions, type ContainOptions, type ControlMeasure, type ControlMeasureDrawRule, type ControlMeasureFillCapability, type ControlMeasureGeometry, type ControlMeasureGeometryType, type ControlMeasureId, type ControlMeasureKind, type ControlMeasureMetadata, type ControlMeasurePaintCapability, type ControlMeasureRender, type ControlMeasureRenderContext, type ControlMeasureStyle, type CounterattackByFireOptions, type CounterattackOptions, 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_BRIDGEHEAD_LINE_OPTIONS, DEFAULT_BYPASS_OPTIONS, DEFAULT_CANALIZE_OPTIONS, DEFAULT_CLASSIC_ARROW_OPTIONS, DEFAULT_CLEAR_OPTIONS, DEFAULT_CONTAIN_OPTIONS, DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, DEFAULT_COUNTERATTACK_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_DISENGAGE_OPTIONS, DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, DEFAULT_DISRUPT_OPTIONS, DEFAULT_ENCIRCLEMENT_OPTIONS, DEFAULT_ENGAGEMENT_AREA_OPTIONS, DEFAULT_ENGINEER_WORK_LINE_OPTIONS, DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, DEFAULT_FIX_MISSION_TASK_OPTIONS, DEFAULT_FIX_OPTIONS, DEFAULT_FLOT_OPTIONS, DEFAULT_FORTIFIED_AREA_OPTIONS, DEFAULT_FORTIFIED_LINE_OPTIONS, DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_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_GENERIC_SECTOR_OPTIONS, DEFAULT_GENERIC_TEXT_OPTIONS, DEFAULT_GUARD_OPTIONS, DEFAULT_HANDOVER_LINE_OPTIONS, DEFAULT_HOLDING_LINE_OPTIONS, DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, DEFAULT_LABEL_HEIGHT_CSS_PIXELS, DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, DEFAULT_LANDING_ZONE_OPTIONS, DEFAULT_LIGHT_LINE_OPTIONS, DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, DEFAULT_LINE_CAP, DEFAULT_LINE_JOIN, DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, DEFAULT_LINE_OF_DEPARTURE_OPTIONS, DEFAULT_MAIN_ATTACK_OPTIONS, DEFAULT_MINEFIELD_OPTIONS, DEFAULT_MOBILE_DEFENSE_OPTIONS, DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, DEFAULT_PENETRATE_OPTIONS, DEFAULT_PHASE_LINE_OPTIONS, DEFAULT_PICKUP_ZONE_OPTIONS, DEFAULT_PORTRAYAL, DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, DEFAULT_RELEASE_LINE_OPTIONS, DEFAULT_RETAIN_OPTIONS, DEFAULT_RETIRE_OPTIONS, DEFAULT_SCREEN_OPTIONS, DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, DEFAULT_SEIZE_OPTIONS, DEFAULT_STROKE_DASH_CSS_PIXELS, DEFAULT_STROKE_WIDTH_CSS_PIXELS, DEFAULT_STRONG_POINT_OPTIONS, DEFAULT_SUPPORTING_ATTACK_OPTIONS, DEFAULT_SUPPORT_BY_FIRE_OPTIONS, DEFAULT_TACTICAL_ARROW_OPTIONS, DEFAULT_TURNING_MOVEMENT_OPTIONS, DEFAULT_TURN_OPTIONS, DEFAULT_WITHDRAW_OPTIONS, DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, type DelayOptions, type DirectionOfAttackAviationOptions, type DirectionOfMainAttackOptions, type DirectionOfSupportingAttackOptions, type DisengageOptions, type DisruptMissionTaskOptions, type DisruptOptions, EPSILON, type EncirclementOptions, type EngagementAreaOptions, type EngineerWorkLineOptions, FILL_PATTERN_DEFINITIONS, type FLOTOptions, type FeaturePartProps, type FillPattern, type FillPatternCommand, type FillPatternDefinition, type FinalProtectiveFireOptions, type FixMissionTaskOptions, type FixOptions, type FortifiedAreaOptions, type FortifiedLineOptions, type ForwardEdgeOfBattleAreaOptions, type FrontalAttackOptions, type GeneratedLabelKey, type GenericC2LineOptions, type GenericCircleOptions, type GenericLineOptions, type GenericPolygonOptions, type GenericRectangleOptions, type GenericSectorOptions, type GenericTextOptions, type GuardOptions, type HandoverLineOptions, type HoldingLineOptions, type JointTacticalActionAreaOptions, type LabelPlacementOverride, type LabelSizeOptions, type LandingZoneOptions, type LightLineOptions, type LimitOfAdvanceOptions, type LineOfDepartureContactOptions, type LineOfDepartureOptions, type LogicalTextStyle, type MainAttackOptions, type MeasureTextRequest, type MeasuredText, type MidpointPerpendicularDrawRuleOptions, type MineType, type MinefieldOptions, type MobileDefenseOptions, NON_SOLID_FILL_PATTERNS, type ObstacleBypassDifficultOptions, type ObstacleBypassEasyOptions, type ObstacleBypassImpossibleOptions, type OptionsByKind, PARAMETER_PRESENTATION_TIERS, PROBABLE_LINE_OF_DEPLOYMENT_DASH, type ParamDescriptor, type ParameterPresentationTier, type ParameterSemanticRole, type PatternId, type PatternPaint, type PatternPathOperation, type PatternPoint, type PatternStroke, type PenetrateOptions, type PhaseLineOptions, type PickupZoneOptions, type Point2D, type PrincipalDirectionOfFireOptions, type ProbableLineOfDeploymentOptions, RADAR_SEARCH_DOCTRINE_FILL_COLOR, RADAR_SEARCH_DOCTRINE_STROKE_COLOR, type RadarSearchDoctrineOptions, type RearwardPassageOfLinesOptions, type ReleaseLineOptions, type RenderOptions, type RetainOptions, type RetireOptions, SECONDARY_DIRECTION_OF_FIRE_DASH, type ScreenOptions, type SecondaryDirectionOfFireOptions, type SeizeOptions, 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, type WithdrawOptions, type WithdrawUnderPressureOptions, ambushDrawRule, applyBoxTransformOptions, area27DrawRule, attackByFireDrawRule, axis1DrawRule, blockDrawRule, calculateMetrics, canonicalTextAmplifierKey, centerRadiusDrawRule, cloneControlMeasure, computeDefaultMidpointPerpendicularPoint, computeInitialWidthPoint, containDrawRule, controlMeasureIdFromFeature, createBaselineFrame, createMidpointPerpendicularDrawRule, disruptDrawRule, dynamicPointDrawRule, foldsBoxTransformOptions, freezeOrientationOptions, getControlMeasureMetadata, getControlMeasureMetadataByValue, getDefaultOptions, getFillPatternDefinition, getMetersPerPixel, getMidpointPerpendicularSignedDistance, haversineDistance, isKind, line1DrawRule, line23DrawRule, line24DrawRule, line26DrawRule, line27DrawRule, listControlMeasureMetadata, normalizeTextAmplifiers, parameterPresentationTierRank, penetrateDrawRule, point12DrawRule, pointOnMidpointPerpendicularAxis, project, rectangleDrawRule, renderControlMeasure, resolveAmplifierPlacement, resolveParameterPresentationTier, resolveParameterSemanticRole, resolveStyleHints, roundToFixed, sectorDrawRule, snapToMidpointPerpendicular, sphericalBearing, staticPointDrawRule, supportByFireDrawRule, toSimpleStyle, turnDrawRule, unproject };
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as DEFAULT_DISRUPT_OPTIONS, $t as DEFAULT_STROKE_DASH_CSS_PIXELS, A as DEFAULT_RETIRE_OPTIONS, An as createBaselineFrame, At as DEFAULT_CONTAIN_OPTIONS, B as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Bt as DEFAULT_AREA_DEFENSE_OPTIONS, C as DEFAULT_MAIN_ATTACK_OPTIONS, Cn as containDrawRule, Ct as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, D as DEFAULT_WITHDRAW_OPTIONS, Dn as getMidpointPerpendicularSignedDistance, Dt as DEFAULT_BOUNDARY_OPTIONS, E as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, En as createMidpointPerpendicularDrawRule, Et as DEFAULT_LIGHT_LINE_OPTIONS, F as DEFAULT_FORTIFIED_LINE_OPTIONS, Fn as sphericalBearing, Ft as DEFAULT_ANTITANK_DITCH_OPTIONS, G as DEFAULT_HOLDING_LINE_OPTIONS, Gt as canonicalTextAmplifierKey, H as DEFAULT_HANDOVER_LINE_OPTIONS, Ht as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, I as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, In as unproject, It as DEFAULT_ASSEMBLY_AREA_OPTIONS, J as DEFAULT_FLOT_OPTIONS, Jt as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, K as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Kt as normalizeTextAmplifiers, L as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Ln as EPSILON, Lt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, M as DEFAULT_PENETRATE_OPTIONS, Mn as computeInitialWidthPoint, Mt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, N as DEFAULT_FRONTAL_ATTACK_OPTIONS, Nn as haversineDistance, Nt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, O as DEFAULT_SEIZE_OPTIONS, On as pointOnMidpointPerpendicularAxis, Ot as DEFAULT_BLOCK_ARROW_OPTIONS, P as DEFAULT_FORTIFIED_AREA_OPTIONS, Pn as project, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as DEFAULT_ENCIRCLEMENT_OPTIONS, Qt as DEFAULT_PORTRAYAL, R as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Rn as getMetersPerPixel, Rt as DEFAULT_MOBILE_DEFENSE_OPTIONS, S as DEFAULT_MINEFIELD_OPTIONS, Sn as centerRadiusDrawRule, St as DEFAULT_BREACH_OPTIONS, T as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as computeDefaultMidpointPerpendicularPoint, Tt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, U as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Ut as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, V as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Vt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, W as DEFAULT_RELEASE_LINE_OPTIONS, Wt as TEXT_AMPLIFIER_FIELDS, X as DEFAULT_FIX_OPTIONS, Xt as DEFAULT_LINE_CAP, Y as DEFAULT_FIX_MISSION_TASK_OPTIONS, Yt as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Z as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Zt as DEFAULT_LINE_JOIN, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _n as staticPointDrawRule, _t as DEFAULT_GENERIC_LINE_OPTIONS, a as DEFINITIONS, an as axis1DrawRule, at as DEFAULT_TACTICAL_ARROW_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bn as disruptDrawRule, bt as DEFAULT_CANALIZE_OPTIONS, c as getDefaultOptions, cn as line26DrawRule, ct as DEFAULT_SUPPORTING_ATTACK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as turnDrawRule, dt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, en as DEFAULT_STROKE_WIDTH_CSS_PIXELS, et as DEFAULT_GUARD_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as line1DrawRule, ft as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gn as sectorDrawRule, gt as DEFAULT_GENERIC_POLYGON_OPTIONS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, hn as dynamicPointDrawRule, ht as DEFAULT_GENERIC_RECTANGLE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as rectangleDrawRule, it as DEFAULT_COVER_OPTIONS, j as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, jn as calculateMetrics, jt as DEFAULT_BATTLE_POSITION_OPTIONS, k as DEFAULT_SCREEN_OPTIONS, kn as snapToMidpointPerpendicular, kt as DEFAULT_BLOCK_OPTIONS, l as listControlMeasureMetadata, ln as line24DrawRule, lt as DEFAULT_CLEAR_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mn as attackByFireDrawRule, mt as DEFAULT_GENERIC_SECTOR_OPTIONS, n as resolveStyleHints, nn as DEFAULT_AMBUSH_OPTIONS, nt as DEFAULT_DISENGAGE_OPTIONS, o as getControlMeasureMetadata, on as supportByFireDrawRule, ot as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, p as DEFAULT_RETAIN_OPTIONS, pn as ambushDrawRule, pt as DEFAULT_GENERIC_TEXT_OPTIONS, q as DEFAULT_PHASE_LINE_OPTIONS, qt as resolveAmplifierPlacement, r as CONTROL_MEASURE_IDS, rn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, rt as DEFAULT_DELAY_OPTIONS, s as getControlMeasureMetadataByValue, sn as line27DrawRule, st as DEFAULT_COUNTERATTACK_OPTIONS, t as renderControlMeasure, tt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as line23DrawRule, ut as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vn as point12DrawRule, vt as DEFAULT_GENERIC_CIRCLE_OPTIONS, w as DEFAULT_LANDING_ZONE_OPTIONS, wn as area27DrawRule, wt as DEFAULT_GENERIC_C2_LINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xn as blockDrawRule, xt as DEFAULT_BYPASS_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yn as penetrateDrawRule, yt as DEFAULT_CLASSIC_ARROW_OPTIONS, z as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, zn as roundToFixed, zt as DEFAULT_ENGAGEMENT_AREA_OPTIONS } from "./renderControlMeasure-
|
|
1
|
+
import { $ as DEFAULT_DISRUPT_OPTIONS, $t as DEFAULT_STROKE_DASH_CSS_PIXELS, A as DEFAULT_RETIRE_OPTIONS, An as createBaselineFrame, At as DEFAULT_CONTAIN_OPTIONS, B as DEFAULT_LIMIT_OF_ADVANCE_OPTIONS, Bt as DEFAULT_AREA_DEFENSE_OPTIONS, C as DEFAULT_MAIN_ATTACK_OPTIONS, Cn as containDrawRule, Ct as DEFAULT_BLOCK_MISSION_TASK_OPTIONS, D as DEFAULT_WITHDRAW_OPTIONS, Dn as getMidpointPerpendicularSignedDistance, Dt as DEFAULT_BOUNDARY_OPTIONS, E as DEFAULT_WITHDRAW_UNDER_PRESSURE_OPTIONS, En as createMidpointPerpendicularDrawRule, Et as DEFAULT_LIGHT_LINE_OPTIONS, F as DEFAULT_FORTIFIED_LINE_OPTIONS, Fn as sphericalBearing, Ft as DEFAULT_ANTITANK_DITCH_OPTIONS, G as DEFAULT_HOLDING_LINE_OPTIONS, Gt as canonicalTextAmplifierKey, H as DEFAULT_HANDOVER_LINE_OPTIONS, Ht as DEFAULT_DIRECTION_OF_MAIN_ATTACK_OPTIONS, I as DEFAULT_PROBABLE_LINE_OF_DEPLOYMENT_OPTIONS, In as unproject, It as DEFAULT_ASSEMBLY_AREA_OPTIONS, J as DEFAULT_FLOT_OPTIONS, Jt as DEFAULT_LABEL_HEIGHT_CSS_PIXELS, K as DEFAULT_BRIDGEHEAD_LINE_OPTIONS, Kt as normalizeTextAmplifiers, L as PROBABLE_LINE_OF_DEPLOYMENT_DASH, Ln as EPSILON, Lt as DEFAULT_AREA_OF_OPERATIONS_OPTIONS, M as DEFAULT_PENETRATE_OPTIONS, Mn as computeInitialWidthPoint, Mt as DEFAULT_ATTACK_HELICOPTER_OPTIONS, N as DEFAULT_FRONTAL_ATTACK_OPTIONS, Nn as haversineDistance, Nt as DEFAULT_ATTACK_BY_FIRE_OPTIONS, O as DEFAULT_SEIZE_OPTIONS, On as pointOnMidpointPerpendicularAxis, Ot as DEFAULT_BLOCK_ARROW_OPTIONS, P as DEFAULT_FORTIFIED_AREA_OPTIONS, Pn as project, Pt as DEFAULT_ANTITANK_WALL_OPTIONS, Q as DEFAULT_ENCIRCLEMENT_OPTIONS, Qt as DEFAULT_PORTRAYAL, R as DEFAULT_LINE_OF_DEPARTURE_CONTACT_OPTIONS, Rn as getMetersPerPixel, Rt as DEFAULT_MOBILE_DEFENSE_OPTIONS, S as DEFAULT_MINEFIELD_OPTIONS, Sn as centerRadiusDrawRule, St as DEFAULT_BREACH_OPTIONS, T as DEFAULT_JOINT_TACTICAL_ACTION_AREA_OPTIONS, Tn as computeDefaultMidpointPerpendicularPoint, Tt as DEFAULT_ENGINEER_WORK_LINE_OPTIONS, U as DEFAULT_FORWARD_EDGE_OF_BATTLE_AREA_OPTIONS, Ut as DEFAULT_DIRECTION_OF_ATTACK_AVIATION_OPTIONS, V as DEFAULT_BATTLE_HANDOVER_LINE_OPTIONS, Vt as DEFAULT_DIRECTION_OF_SUPPORTING_ATTACK_OPTIONS, W as DEFAULT_RELEASE_LINE_OPTIONS, Wt as TEXT_AMPLIFIER_FIELDS, X as DEFAULT_FIX_OPTIONS, Xt as DEFAULT_LINE_CAP, Y as DEFAULT_FIX_MISSION_TASK_OPTIONS, Yt as DEFAULT_LABEL_SIZE_CLAMP_CSS_PIXELS, Z as DEFAULT_FINAL_PROTECTIVE_FIRE_OPTIONS, Zt as DEFAULT_LINE_JOIN, _ as DEFAULT_PRINCIPAL_DIRECTION_OF_FIRE_OPTIONS, _n as staticPointDrawRule, _t as DEFAULT_GENERIC_LINE_OPTIONS, a as DEFINITIONS, an as axis1DrawRule, at as DEFAULT_TACTICAL_ARROW_OPTIONS, b as DEFAULT_OBSTACLE_BYPASS_EASY_OPTIONS, bn as disruptDrawRule, bt as DEFAULT_CANALIZE_OPTIONS, c as getDefaultOptions, cn as line26DrawRule, ct as DEFAULT_SUPPORTING_ATTACK_OPTIONS, d as DEFAULT_TURN_OPTIONS, dn as turnDrawRule, dt as RADAR_SEARCH_DOCTRINE_FILL_COLOR, en as DEFAULT_STROKE_WIDTH_CSS_PIXELS, et as DEFAULT_GUARD_OPTIONS, f as DEFAULT_SUPPORT_BY_FIRE_OPTIONS, fn as line1DrawRule, ft as RADAR_SEARCH_DOCTRINE_STROKE_COLOR, g as SECONDARY_DIRECTION_OF_FIRE_DASH, gn as sectorDrawRule, gt as DEFAULT_GENERIC_POLYGON_OPTIONS, h as DEFAULT_SECONDARY_DIRECTION_OF_FIRE_OPTIONS, hn as dynamicPointDrawRule, ht as DEFAULT_GENERIC_RECTANGLE_OPTIONS, i as CONTROL_MEASURE_METADATA, in as rectangleDrawRule, it as DEFAULT_COVER_OPTIONS, j as DEFAULT_REARWARD_PASSAGE_OF_LINES_OPTIONS, jn as calculateMetrics, jt as DEFAULT_BATTLE_POSITION_OPTIONS, k as DEFAULT_SCREEN_OPTIONS, kn as snapToMidpointPerpendicular, kt as DEFAULT_BLOCK_OPTIONS, l as listControlMeasureMetadata, ln as line24DrawRule, lt as DEFAULT_CLEAR_OPTIONS, m as DEFAULT_STRONG_POINT_OPTIONS, mn as attackByFireDrawRule, mt as DEFAULT_GENERIC_SECTOR_OPTIONS, n as resolveStyleHints, nn as DEFAULT_AMBUSH_OPTIONS, nt as DEFAULT_DISENGAGE_OPTIONS, o as getControlMeasureMetadata, on as supportByFireDrawRule, ot as DEFAULT_COUNTERATTACK_BY_FIRE_OPTIONS, p as DEFAULT_RETAIN_OPTIONS, pn as ambushDrawRule, pt as DEFAULT_GENERIC_TEXT_OPTIONS, q as DEFAULT_PHASE_LINE_OPTIONS, qt as resolveAmplifierPlacement, r as CONTROL_MEASURE_IDS, rn as DEFAULT_AIRBORNE_ATTACK_OPTIONS, rt as DEFAULT_DELAY_OPTIONS, s as getControlMeasureMetadataByValue, sn as line27DrawRule, st as DEFAULT_COUNTERATTACK_OPTIONS, t as renderControlMeasure, tt as DEFAULT_DISRUPT_MISSION_TASK_OPTIONS, u as DEFAULT_TURNING_MOVEMENT_OPTIONS, un as line23DrawRule, ut as DEFAULT_RADAR_SEARCH_DOCTRINE_OPTIONS, v as DEFAULT_PICKUP_ZONE_OPTIONS, vn as point12DrawRule, vt as DEFAULT_GENERIC_CIRCLE_OPTIONS, w as DEFAULT_LANDING_ZONE_OPTIONS, wn as area27DrawRule, wt as DEFAULT_GENERIC_C2_LINE_OPTIONS, x as DEFAULT_OBSTACLE_BYPASS_DIFFICULT_OPTIONS, xn as blockDrawRule, xt as DEFAULT_BYPASS_OPTIONS, y as DEFAULT_OBSTACLE_BYPASS_IMPOSSIBLE_OPTIONS, yn as penetrateDrawRule, yt as DEFAULT_CLASSIC_ARROW_OPTIONS, z as DEFAULT_LINE_OF_DEPARTURE_OPTIONS, zn as roundToFixed, zt as DEFAULT_ENGAGEMENT_AREA_OPTIONS } from "./renderControlMeasure-DJo_s-lN.mjs";
|
|
2
2
|
import { FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS, getFillPatternDefinition } from "./patterns.mjs";
|
|
3
3
|
//#region src/metadata.ts
|
|
4
4
|
const PARAMETER_PRESENTATION_TIERS = [
|
package/dist/preview/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Q as ControlMeasureId, da as TextAmplifiers } from "../index-
|
|
1
|
+
import { Q as ControlMeasureId, da as TextAmplifiers } from "../index-CwSQl5SE.mjs";
|
|
2
2
|
import { f as FillPattern } from "../patterns-CcQmmOuJ.mjs";
|
|
3
3
|
import { FeatureCollection, Geometry } from "geojson";
|
|
4
4
|
|
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-DJo_s-lN.mjs";
|
|
2
2
|
import { FILL_PATTERN_DEFINITIONS, NON_SOLID_FILL_PATTERNS } from "../patterns.mjs";
|
|
3
3
|
//#region src/preview/index.ts
|
|
4
4
|
/** Side length (SVG units) of the repeating non-mine tile in {@link PREVIEW_FILL_PATTERNS}. */
|
|
@@ -563,7 +563,7 @@ function samePosition(a, b) {
|
|
|
563
563
|
}
|
|
564
564
|
//#endregion
|
|
565
565
|
//#region src/draw-rules/area1.ts
|
|
566
|
-
function derive$
|
|
566
|
+
function derive$14(points) {
|
|
567
567
|
return clonePositions(points);
|
|
568
568
|
}
|
|
569
569
|
/**
|
|
@@ -583,9 +583,9 @@ const area1DrawRule = {
|
|
|
583
583
|
id: "area1",
|
|
584
584
|
minimumUserPoints: 3,
|
|
585
585
|
closedRing: true,
|
|
586
|
-
derive: derive$
|
|
586
|
+
derive: derive$14,
|
|
587
587
|
transform(event) {
|
|
588
|
-
return derive$
|
|
588
|
+
return derive$14(event.next);
|
|
589
589
|
}
|
|
590
590
|
};
|
|
591
591
|
//#endregion
|
|
@@ -625,14 +625,14 @@ const containDrawRule = createMidpointPerpendicularDrawRule({
|
|
|
625
625
|
* that fixes both the radius and the bearing of the symbol's opening. Both
|
|
626
626
|
* points are user-clicked, so the canonical array is just the (clamped) input.
|
|
627
627
|
*/
|
|
628
|
-
function derive$
|
|
628
|
+
function derive$13(points) {
|
|
629
629
|
return clonePositions(points.slice(0, 2));
|
|
630
630
|
}
|
|
631
631
|
const centerRadiusDrawRule = {
|
|
632
632
|
id: "area15:center-radius",
|
|
633
633
|
minimumUserPoints: 2,
|
|
634
634
|
canonicalPointCount: 2,
|
|
635
|
-
derive: derive$
|
|
635
|
+
derive: derive$13,
|
|
636
636
|
transform(event) {
|
|
637
637
|
const { previous, next, activePointIndex } = event;
|
|
638
638
|
if (activePointIndex === 0 && previous.length >= 2 && next.length >= 2) {
|
|
@@ -641,7 +641,7 @@ const centerRadiusDrawRule = {
|
|
|
641
641
|
const origin = previous[1];
|
|
642
642
|
return [clonePosition(next[0]), [origin[0] + dx, origin[1] + dy]];
|
|
643
643
|
}
|
|
644
|
-
return derive$
|
|
644
|
+
return derive$13(next);
|
|
645
645
|
}
|
|
646
646
|
};
|
|
647
647
|
/** Backward-compatible doctrinal name for Area15's shared center-radius rule. */
|
|
@@ -705,16 +705,16 @@ const point12DrawRule = createMidpointPerpendicularDrawRule({ id: "point12:obsta
|
|
|
705
705
|
* Point1 — a single anchor point (e.g. Text's center). One user click commits
|
|
706
706
|
* the measure; dragging the point simply translates it.
|
|
707
707
|
*/
|
|
708
|
-
function derive$
|
|
708
|
+
function derive$12(points) {
|
|
709
709
|
return clonePositions(points.slice(0, 1));
|
|
710
710
|
}
|
|
711
711
|
const pointDrawRule = {
|
|
712
712
|
id: "point1:anchor",
|
|
713
713
|
minimumUserPoints: 1,
|
|
714
714
|
canonicalPointCount: 1,
|
|
715
|
-
derive: derive$
|
|
715
|
+
derive: derive$12,
|
|
716
716
|
transform(event) {
|
|
717
|
-
return derive$
|
|
717
|
+
return derive$12(event.next);
|
|
718
718
|
}
|
|
719
719
|
};
|
|
720
720
|
//#endregion
|
|
@@ -741,7 +741,7 @@ const SECTOR_ANGLE_SNAP_RADIANS = Math.PI / 36;
|
|
|
741
741
|
* independently control a radius and a true-north azimuth. Dragging the anchor
|
|
742
742
|
* translates both edge points so the sector retains its size and orientation.
|
|
743
743
|
*/
|
|
744
|
-
function derive$
|
|
744
|
+
function derive$11(points) {
|
|
745
745
|
return clonePositions(points.slice(0, 3));
|
|
746
746
|
}
|
|
747
747
|
function guidePoints$2(points) {
|
|
@@ -769,7 +769,7 @@ const sectorDrawRule = {
|
|
|
769
769
|
showGuide: true,
|
|
770
770
|
guidePoints: guidePoints$2,
|
|
771
771
|
constrainAngles,
|
|
772
|
-
derive: derive$
|
|
772
|
+
derive: derive$11,
|
|
773
773
|
transform(event) {
|
|
774
774
|
const { previous, next, activePointIndex } = event;
|
|
775
775
|
if (activePointIndex === 0 && previous.length >= 3 && next.length >= 3) {
|
|
@@ -781,7 +781,7 @@ const sectorDrawRule = {
|
|
|
781
781
|
[previous[2][0] + dx, previous[2][1] + dy]
|
|
782
782
|
];
|
|
783
783
|
}
|
|
784
|
-
return derive$
|
|
784
|
+
return derive$11(next);
|
|
785
785
|
}
|
|
786
786
|
};
|
|
787
787
|
//#endregion
|
|
@@ -836,20 +836,20 @@ const ambushDrawRule = createMidpointPerpendicularDrawRule({
|
|
|
836
836
|
});
|
|
837
837
|
//#endregion
|
|
838
838
|
//#region src/draw-rules/line1.ts
|
|
839
|
-
function derive$
|
|
839
|
+
function derive$10(points) {
|
|
840
840
|
return clonePositions(points);
|
|
841
841
|
}
|
|
842
842
|
const line1DrawRule = {
|
|
843
843
|
id: "line1",
|
|
844
844
|
minimumUserPoints: 2,
|
|
845
|
-
derive: derive$
|
|
845
|
+
derive: derive$10,
|
|
846
846
|
transform(event) {
|
|
847
|
-
return derive$
|
|
847
|
+
return derive$10(event.next);
|
|
848
848
|
}
|
|
849
849
|
};
|
|
850
850
|
//#endregion
|
|
851
851
|
//#region src/draw-rules/line3.ts
|
|
852
|
-
function derive$
|
|
852
|
+
function derive$9(points) {
|
|
853
853
|
return clonePositions(points);
|
|
854
854
|
}
|
|
855
855
|
/**
|
|
@@ -864,23 +864,23 @@ const line3DrawRule = {
|
|
|
864
864
|
id: "line3",
|
|
865
865
|
minimumUserPoints: 3,
|
|
866
866
|
canonicalPointCount: 3,
|
|
867
|
-
derive: derive$
|
|
867
|
+
derive: derive$9,
|
|
868
868
|
transform(event) {
|
|
869
|
-
return derive$
|
|
869
|
+
return derive$9(event.next);
|
|
870
870
|
}
|
|
871
871
|
};
|
|
872
872
|
//#endregion
|
|
873
873
|
//#region src/draw-rules/line9.ts
|
|
874
|
-
function derive$
|
|
874
|
+
function derive$8(points) {
|
|
875
875
|
return clonePositions(points);
|
|
876
876
|
}
|
|
877
877
|
const line9DrawRule = {
|
|
878
878
|
id: "line9",
|
|
879
879
|
minimumUserPoints: 2,
|
|
880
880
|
canonicalPointCount: 2,
|
|
881
|
-
derive: derive$
|
|
881
|
+
derive: derive$8,
|
|
882
882
|
transform(event) {
|
|
883
|
-
return derive$
|
|
883
|
+
return derive$8(event.next);
|
|
884
884
|
}
|
|
885
885
|
};
|
|
886
886
|
//#endregion
|
|
@@ -1009,7 +1009,7 @@ const line24DrawRule = createMidpointPerpendicularDrawRule({
|
|
|
1009
1009
|
});
|
|
1010
1010
|
//#endregion
|
|
1011
1011
|
//#region src/draw-rules/line26.ts
|
|
1012
|
-
function derive$
|
|
1012
|
+
function derive$7(points) {
|
|
1013
1013
|
if (points.length === 2) {
|
|
1014
1014
|
const [p1, p2] = points;
|
|
1015
1015
|
const dx = p2[0] - p1[0];
|
|
@@ -1048,9 +1048,9 @@ const line26DrawRule = {
|
|
|
1048
1048
|
minimumUserPoints: 4,
|
|
1049
1049
|
minimumPreviewPoints: 2,
|
|
1050
1050
|
canonicalPointCount: 4,
|
|
1051
|
-
derive: derive$
|
|
1051
|
+
derive: derive$7,
|
|
1052
1052
|
transform(event) {
|
|
1053
|
-
return derive$
|
|
1053
|
+
return derive$7(event.next);
|
|
1054
1054
|
}
|
|
1055
1055
|
};
|
|
1056
1056
|
//#endregion
|
|
@@ -1063,7 +1063,7 @@ function deriveArcPoint(p1, p2, p4) {
|
|
|
1063
1063
|
if (!arc) return [(p2[0] + p4[0]) / 2, (p2[1] + p4[1]) / 2];
|
|
1064
1064
|
return unproject(arc.midpoint[0], arc.midpoint[1]);
|
|
1065
1065
|
}
|
|
1066
|
-
function derive$
|
|
1066
|
+
function derive$6(points) {
|
|
1067
1067
|
if (points.length < 2) return clonePositions(points);
|
|
1068
1068
|
const [p1, p2] = points;
|
|
1069
1069
|
if (points.length === 2) {
|
|
@@ -1102,7 +1102,7 @@ const line27DrawRule = {
|
|
|
1102
1102
|
minimumUserPoints: 3,
|
|
1103
1103
|
minimumPreviewPoints: 2,
|
|
1104
1104
|
canonicalPointCount: 4,
|
|
1105
|
-
derive: derive$
|
|
1105
|
+
derive: derive$6,
|
|
1106
1106
|
transform(event) {
|
|
1107
1107
|
const { previous, next, activePointIndex } = event;
|
|
1108
1108
|
if (activePointIndex === 0 && previous.length >= 4 && next.length >= 4) {
|
|
@@ -1134,6 +1134,124 @@ const line27DrawRule = {
|
|
|
1134
1134
|
}
|
|
1135
1135
|
};
|
|
1136
1136
|
//#endregion
|
|
1137
|
+
//#region src/draw-rules/line31.ts
|
|
1138
|
+
function derive$5(points) {
|
|
1139
|
+
if (points.length === 2) {
|
|
1140
|
+
const [c1, c3] = points;
|
|
1141
|
+
const start = project(c1[0], c1[1]);
|
|
1142
|
+
const span = vecSub(project(c3[0], c3[1]), start);
|
|
1143
|
+
const p2 = vecAdd(start, vecScale(span, .5));
|
|
1144
|
+
const p4 = vecAdd(vecAdd(start, vecScale(span, .75)), vecScale([-span[1], span[0]], .25));
|
|
1145
|
+
return clonePositions([
|
|
1146
|
+
c1,
|
|
1147
|
+
unproject(p2[0], p2[1]),
|
|
1148
|
+
c3,
|
|
1149
|
+
unproject(p4[0], p4[1])
|
|
1150
|
+
]);
|
|
1151
|
+
}
|
|
1152
|
+
const derived = clonePositions(points.slice(0, 4));
|
|
1153
|
+
if (derived.length < 3) return derived;
|
|
1154
|
+
const [c1, c2, c3] = derived;
|
|
1155
|
+
const p1 = project(c1[0], c1[1]);
|
|
1156
|
+
const p2 = project(c2[0], c2[1]);
|
|
1157
|
+
const straight = vecSub(p2, p1);
|
|
1158
|
+
if (vecMag(straight) === 0) return derived;
|
|
1159
|
+
const diameter = vecMag(vecSub(project(c3[0], c3[1]), p2));
|
|
1160
|
+
const anchor = vecAdd(p2, vecScale(vecNorm(straight), diameter));
|
|
1161
|
+
derived[2] = unproject(anchor[0], anchor[1]);
|
|
1162
|
+
return derived;
|
|
1163
|
+
}
|
|
1164
|
+
/**
|
|
1165
|
+
* The snapped PT. 4 for a semicircle spanning PT. 2 → PT. 3, in projected
|
|
1166
|
+
* meters. PT. 4 is the top of the selected semicircle, not a free point on its
|
|
1167
|
+
* circumference, so crossing the diameter flips which side holds the arc.
|
|
1168
|
+
* Returns `null` for a degenerate (zero-length) diameter.
|
|
1169
|
+
*/
|
|
1170
|
+
function orientationPoint(p2, p3, p4) {
|
|
1171
|
+
const diameter = vecSub(p3, p2);
|
|
1172
|
+
if (diameter[0] === 0 && diameter[1] === 0) return null;
|
|
1173
|
+
const apex = vecAdd(midpoint(p2, p3), vecScale([-diameter[1], diameter[0]], quarterArcSide(p2, p3, p4) / 2));
|
|
1174
|
+
return unproject(apex[0], apex[1]);
|
|
1175
|
+
}
|
|
1176
|
+
function snapOrientationToArc(points) {
|
|
1177
|
+
if (points.length < 4) return points;
|
|
1178
|
+
const snapped = orientationPoint(project(points[1][0], points[1][1]), project(points[2][0], points[2][1]), project(points[3][0], points[3][1]));
|
|
1179
|
+
if (snapped) points[3] = snapped;
|
|
1180
|
+
return points;
|
|
1181
|
+
}
|
|
1182
|
+
/** Line31 anchors for Envelopment; PT. 3 is constrained parallel to PT. 1 → PT. 2. */
|
|
1183
|
+
const line31DrawRule = {
|
|
1184
|
+
id: "line31:envelopment",
|
|
1185
|
+
minimumUserPoints: 2,
|
|
1186
|
+
minimumPreviewPoints: 2,
|
|
1187
|
+
canonicalPointCount: 4,
|
|
1188
|
+
derive: derive$5,
|
|
1189
|
+
transform(event) {
|
|
1190
|
+
const { activePointIndex, next, previous } = event;
|
|
1191
|
+
if (next.length < 4) return derive$5(next);
|
|
1192
|
+
if (activePointIndex === 1) {
|
|
1193
|
+
const points = clonePositions(next.slice(0, 4));
|
|
1194
|
+
const p1 = project(points[0][0], points[0][1]);
|
|
1195
|
+
const p2 = project(points[1][0], points[1][1]);
|
|
1196
|
+
const p3 = project(points[2][0], points[2][1]);
|
|
1197
|
+
const p4 = project(points[3][0], points[3][1]);
|
|
1198
|
+
const span = vecSub(p3, p1);
|
|
1199
|
+
const lengthSquared = vecDot(span, span);
|
|
1200
|
+
if (lengthSquared === 0) return points;
|
|
1201
|
+
const slid = vecAdd(p1, vecScale(span, Math.min(1, Math.max(0, vecDot(vecSub(p2, p1), span) / lengthSquared))));
|
|
1202
|
+
points[1] = unproject(slid[0], slid[1]);
|
|
1203
|
+
const snapped = orientationPoint(slid, p3, p4);
|
|
1204
|
+
if (snapped) points[3] = snapped;
|
|
1205
|
+
return points;
|
|
1206
|
+
}
|
|
1207
|
+
if (activePointIndex === 3) return snapOrientationToArc(clonePositions(next.slice(0, 4)));
|
|
1208
|
+
if ((activePointIndex === 0 || activePointIndex === 2) && previous.length >= 4) {
|
|
1209
|
+
const oldP1 = project(previous[0][0], previous[0][1]);
|
|
1210
|
+
const oldP2 = project(previous[1][0], previous[1][1]);
|
|
1211
|
+
const oldSpan = vecMag(vecSub(project(previous[2][0], previous[2][1]), oldP1));
|
|
1212
|
+
const straightRatio = oldSpan === 0 ? .5 : vecMag(vecSub(oldP2, oldP1)) / oldSpan;
|
|
1213
|
+
const points = clonePositions(next.slice(0, 4));
|
|
1214
|
+
const p1 = project(points[0][0], points[0][1]);
|
|
1215
|
+
const p3 = project(points[2][0], points[2][1]);
|
|
1216
|
+
const p4 = project(points[3][0], points[3][1]);
|
|
1217
|
+
const slid = vecAdd(p1, vecScale(vecSub(p3, p1), straightRatio));
|
|
1218
|
+
points[1] = unproject(slid[0], slid[1]);
|
|
1219
|
+
const snapped = orientationPoint(slid, p3, p4);
|
|
1220
|
+
if (snapped) points[3] = snapped;
|
|
1221
|
+
return points;
|
|
1222
|
+
}
|
|
1223
|
+
return snapOrientationToArc(derive$5(next));
|
|
1224
|
+
}
|
|
1225
|
+
};
|
|
1226
|
+
//#endregion
|
|
1227
|
+
//#region src/draw-rules/line32.ts
|
|
1228
|
+
function derive$4(points) {
|
|
1229
|
+
if (points.length === 2) {
|
|
1230
|
+
const [c1, c3] = points;
|
|
1231
|
+
const p2 = midpoint(project(c1[0], c1[1]), project(c3[0], c3[1]));
|
|
1232
|
+
return clonePositions([
|
|
1233
|
+
c1,
|
|
1234
|
+
unproject(p2[0], p2[1]),
|
|
1235
|
+
c3
|
|
1236
|
+
]);
|
|
1237
|
+
}
|
|
1238
|
+
return clonePositions(points.slice(0, 3));
|
|
1239
|
+
}
|
|
1240
|
+
/** Line32 anchors for the two-click Infiltration mission task. */
|
|
1241
|
+
const line32DrawRule = {
|
|
1242
|
+
id: "line32:infiltration",
|
|
1243
|
+
minimumUserPoints: 2,
|
|
1244
|
+
minimumPreviewPoints: 2,
|
|
1245
|
+
canonicalPointCount: 3,
|
|
1246
|
+
hiddenControlPointIndices: [1],
|
|
1247
|
+
derive: derive$4,
|
|
1248
|
+
transform(event) {
|
|
1249
|
+
const { activePointIndex, next } = event;
|
|
1250
|
+
if (next.length >= 3 && (activePointIndex === 0 || activePointIndex === 2)) return derive$4([next[0], next[2]]);
|
|
1251
|
+
return derive$4(next);
|
|
1252
|
+
}
|
|
1253
|
+
};
|
|
1254
|
+
//#endregion
|
|
1137
1255
|
//#region src/draw-rules/area8.ts
|
|
1138
1256
|
function derive$3(points) {
|
|
1139
1257
|
if (points.length < 2) return clonePositions(points);
|
|
@@ -10381,6 +10499,299 @@ const DISRUPT_MISSION_TASK = defineControlMeasure({
|
|
|
10381
10499
|
previewSample: { controlPoints: [[0, .4], [0, -.4]] }
|
|
10382
10500
|
});
|
|
10383
10501
|
//#endregion
|
|
10502
|
+
//#region src/generators/cm34-mission-tasks/envelopment.ts
|
|
10503
|
+
const DEFAULT_ENVELOPMENT_OPTIONS = {
|
|
10504
|
+
arrowheadLengthRatio: .1,
|
|
10505
|
+
arrowheadWidthRatio: .12,
|
|
10506
|
+
labelPosition: .6,
|
|
10507
|
+
labelGapRatio: .18,
|
|
10508
|
+
resolution: 64
|
|
10509
|
+
};
|
|
10510
|
+
const ENVELOPMENT_METADATA = {
|
|
10511
|
+
id: "envelopment",
|
|
10512
|
+
name: "Envelopment",
|
|
10513
|
+
description: "A form of maneuver in which an attacking force avoids an enemy’s principal defense by attacking along an assailable flank.",
|
|
10514
|
+
entity: "Mission Tasks",
|
|
10515
|
+
entityType: "Envelopment",
|
|
10516
|
+
value: "343500",
|
|
10517
|
+
minCoordinates: 4,
|
|
10518
|
+
maxCoordinates: 4,
|
|
10519
|
+
geometry: "line",
|
|
10520
|
+
geometryTypes: ["MultiLineString", "Point"],
|
|
10521
|
+
paints: {
|
|
10522
|
+
stroke: true,
|
|
10523
|
+
fill: "none",
|
|
10524
|
+
text: true
|
|
10525
|
+
},
|
|
10526
|
+
drawRule: "Line31",
|
|
10527
|
+
capturesLabelSize: true,
|
|
10528
|
+
params: [
|
|
10529
|
+
{
|
|
10530
|
+
key: "arrowheadLengthRatio",
|
|
10531
|
+
presentationTier: "advanced",
|
|
10532
|
+
label: "Arrowhead length",
|
|
10533
|
+
description: "Arrowhead length as a ratio of the arc diameter",
|
|
10534
|
+
type: "number",
|
|
10535
|
+
min: .01,
|
|
10536
|
+
max: .5,
|
|
10537
|
+
step: .01
|
|
10538
|
+
},
|
|
10539
|
+
{
|
|
10540
|
+
key: "arrowheadWidthRatio",
|
|
10541
|
+
presentationTier: "advanced",
|
|
10542
|
+
label: "Arrowhead width",
|
|
10543
|
+
description: "Arrowhead width as a ratio of the arc diameter",
|
|
10544
|
+
type: "number",
|
|
10545
|
+
min: .01,
|
|
10546
|
+
max: .5,
|
|
10547
|
+
step: .01
|
|
10548
|
+
},
|
|
10549
|
+
{
|
|
10550
|
+
key: "labelPosition",
|
|
10551
|
+
presentationTier: "advanced",
|
|
10552
|
+
label: "Label position",
|
|
10553
|
+
description: "Position of the E label along the straight portion",
|
|
10554
|
+
type: "number",
|
|
10555
|
+
min: 0,
|
|
10556
|
+
max: 1,
|
|
10557
|
+
step: .01
|
|
10558
|
+
},
|
|
10559
|
+
{
|
|
10560
|
+
key: "labelGapRatio",
|
|
10561
|
+
presentationTier: "advanced",
|
|
10562
|
+
label: "Label gap",
|
|
10563
|
+
description: "Size of the straight-line cutout holding the E label",
|
|
10564
|
+
type: "number",
|
|
10565
|
+
min: 0,
|
|
10566
|
+
max: 1,
|
|
10567
|
+
step: .01
|
|
10568
|
+
},
|
|
10569
|
+
...ARC_RESOLUTION_PARAMS
|
|
10570
|
+
]
|
|
10571
|
+
};
|
|
10572
|
+
/** Generates the Envelopment mission task symbol (343500). */
|
|
10573
|
+
function createEnvelopment(coordinates, options = {}) {
|
|
10574
|
+
const [c1, c2, c3, c4] = coordinates;
|
|
10575
|
+
const p1 = project(c1[0], c1[1]);
|
|
10576
|
+
const p2 = project(c2[0], c2[1]);
|
|
10577
|
+
const diameterAnchor = project(c3[0], c3[1]);
|
|
10578
|
+
const p4 = project(c4[0], c4[1]);
|
|
10579
|
+
const straight = vecSub(p2, p1);
|
|
10580
|
+
const straightLength = vecMag(straight);
|
|
10581
|
+
const diameter = vecMag(vecSub(diameterAnchor, p2));
|
|
10582
|
+
if (straightLength < 1e-6 || diameter < 1e-6) return {
|
|
10583
|
+
type: "FeatureCollection",
|
|
10584
|
+
features: []
|
|
10585
|
+
};
|
|
10586
|
+
const straightDirection = vecNorm(straight);
|
|
10587
|
+
const p3 = vecAdd(p2, vecScale(straightDirection, diameter));
|
|
10588
|
+
const labelPoint = vecAdd(p1, vecScale(straight, clamp01(options.labelPosition ?? DEFAULT_ENVELOPMENT_OPTIONS.labelPosition)));
|
|
10589
|
+
const gapHalf = straightLength * clamp01(options.labelGapRatio ?? DEFAULT_ENVELOPMENT_OPTIONS.labelGapRatio) / 2;
|
|
10590
|
+
const gapStart = vecAdd(labelPoint, vecScale(straightDirection, -gapHalf));
|
|
10591
|
+
const gapEnd = vecAdd(labelPoint, vecScale(straightDirection, gapHalf));
|
|
10592
|
+
const center = midpoint(p2, p3);
|
|
10593
|
+
const startRadius = vecSub(p2, center);
|
|
10594
|
+
let bulgeRadius = [-startRadius[1], startRadius[0]];
|
|
10595
|
+
if (vecDot(vecSub(p4, center), bulgeRadius) < 0) bulgeRadius = vecScale(bulgeRadius, -1);
|
|
10596
|
+
const arc = sampleProjectedArc(center, startRadius, bulgeRadius, 0, Math.PI, normalizeArcResolution(options.resolution) / 2);
|
|
10597
|
+
const arrowhead = createArrowHead$1(p3, vecNorm(vecScale(bulgeRadius, -1)), diameter * Math.max(0, options.arrowheadLengthRatio ?? DEFAULT_ENVELOPMENT_OPTIONS.arrowheadLengthRatio), diameter * Math.max(0, options.arrowheadWidthRatio ?? DEFAULT_ENVELOPMENT_OPTIONS.arrowheadWidthRatio));
|
|
10598
|
+
return {
|
|
10599
|
+
type: "FeatureCollection",
|
|
10600
|
+
features: [{
|
|
10601
|
+
type: "Feature",
|
|
10602
|
+
properties: { part: "envelopment" },
|
|
10603
|
+
geometry: {
|
|
10604
|
+
type: "MultiLineString",
|
|
10605
|
+
coordinates: [
|
|
10606
|
+
[c1, unproject(gapStart[0], gapStart[1])],
|
|
10607
|
+
[unproject(gapEnd[0], gapEnd[1]), c2],
|
|
10608
|
+
arc,
|
|
10609
|
+
arrowhead
|
|
10610
|
+
]
|
|
10611
|
+
}
|
|
10612
|
+
}, createLabelFeature(labelPoint, "E", labelRotationAlong(straightDirection), options)]
|
|
10613
|
+
};
|
|
10614
|
+
}
|
|
10615
|
+
const ENVELOPMENT = defineControlMeasure({
|
|
10616
|
+
metadata: ENVELOPMENT_METADATA,
|
|
10617
|
+
generator: createEnvelopment,
|
|
10618
|
+
defaultOptions: DEFAULT_ENVELOPMENT_OPTIONS,
|
|
10619
|
+
rule: line31DrawRule,
|
|
10620
|
+
previewSample: {
|
|
10621
|
+
controlPoints: [
|
|
10622
|
+
[-.9, -.25],
|
|
10623
|
+
[-.15, -.25],
|
|
10624
|
+
[.85, -.25],
|
|
10625
|
+
[.35, .45]
|
|
10626
|
+
],
|
|
10627
|
+
options: { labelSize: 100 }
|
|
10628
|
+
}
|
|
10629
|
+
});
|
|
10630
|
+
//#endregion
|
|
10631
|
+
//#region src/generators/cm34-mission-tasks/infiltration.ts
|
|
10632
|
+
const DEFAULT_INFILTRATION_OPTIONS = {
|
|
10633
|
+
arrowheadLengthRatio: .1,
|
|
10634
|
+
arrowheadWidthRatio: .1,
|
|
10635
|
+
labelPosition: .6,
|
|
10636
|
+
labelGapRatio: .24,
|
|
10637
|
+
resolution: 64
|
|
10638
|
+
};
|
|
10639
|
+
const INFILTRATION_METADATA = {
|
|
10640
|
+
id: "infiltration",
|
|
10641
|
+
name: "Infiltration",
|
|
10642
|
+
description: "Moves forces through or into an area occupied by enemy forces without detection.",
|
|
10643
|
+
entity: "Mission Tasks",
|
|
10644
|
+
entityType: "Infiltration",
|
|
10645
|
+
value: "343800",
|
|
10646
|
+
minCoordinates: 3,
|
|
10647
|
+
maxCoordinates: 3,
|
|
10648
|
+
geometry: "line",
|
|
10649
|
+
geometryTypes: ["MultiLineString", "Point"],
|
|
10650
|
+
paints: {
|
|
10651
|
+
stroke: true,
|
|
10652
|
+
fill: "none",
|
|
10653
|
+
text: true
|
|
10654
|
+
},
|
|
10655
|
+
drawRule: "Line32",
|
|
10656
|
+
capturesLabelSize: true,
|
|
10657
|
+
params: [
|
|
10658
|
+
{
|
|
10659
|
+
key: "arrowheadLengthRatio",
|
|
10660
|
+
presentationTier: "advanced",
|
|
10661
|
+
label: "Arrowhead length",
|
|
10662
|
+
description: "Arrowhead length as a ratio of the Point 1–Point 3 span",
|
|
10663
|
+
type: "number",
|
|
10664
|
+
min: .01,
|
|
10665
|
+
max: .5,
|
|
10666
|
+
step: .01
|
|
10667
|
+
},
|
|
10668
|
+
{
|
|
10669
|
+
key: "arrowheadWidthRatio",
|
|
10670
|
+
presentationTier: "advanced",
|
|
10671
|
+
label: "Arrowhead width",
|
|
10672
|
+
description: "Arrowhead width as a ratio of the Point 1–Point 3 span",
|
|
10673
|
+
type: "number",
|
|
10674
|
+
min: .01,
|
|
10675
|
+
max: .5,
|
|
10676
|
+
step: .01
|
|
10677
|
+
},
|
|
10678
|
+
{
|
|
10679
|
+
key: "labelPosition",
|
|
10680
|
+
presentationTier: "advanced",
|
|
10681
|
+
label: "Label position",
|
|
10682
|
+
description: "Position of the IN label along the initial straight portion",
|
|
10683
|
+
type: "number",
|
|
10684
|
+
min: 0,
|
|
10685
|
+
max: 1,
|
|
10686
|
+
step: .01
|
|
10687
|
+
},
|
|
10688
|
+
{
|
|
10689
|
+
key: "labelGapRatio",
|
|
10690
|
+
presentationTier: "advanced",
|
|
10691
|
+
label: "Label gap",
|
|
10692
|
+
description: "Size of the initial-line cutout holding the IN label",
|
|
10693
|
+
type: "number",
|
|
10694
|
+
min: 0,
|
|
10695
|
+
max: 1,
|
|
10696
|
+
step: .01
|
|
10697
|
+
},
|
|
10698
|
+
...ARC_RESOLUTION_PARAMS
|
|
10699
|
+
]
|
|
10700
|
+
};
|
|
10701
|
+
const CENTERED_BEND_SINE = 2 * .1;
|
|
10702
|
+
const CENTERED_BEND_COSINE = Math.sqrt(1 - CENTERED_BEND_SINE * CENTERED_BEND_SINE);
|
|
10703
|
+
/**
|
|
10704
|
+
* Resolves the common tangent direction of the two Line32 quarter-circles.
|
|
10705
|
+
* For the doctrinal construction, PT. 1 and PT. 3 lie on parallel tangents on
|
|
10706
|
+
* opposite sides of PT. 2. Their midpoint offset from PT. 2 therefore lies on
|
|
10707
|
+
* that tangent axis. For a derived, centered PT. 2 the axis is mathematically
|
|
10708
|
+
* underdetermined, so a proportional doctrinal bend resolves it.
|
|
10709
|
+
*/
|
|
10710
|
+
function tangentDirection(p1, p2, p3) {
|
|
10711
|
+
const axis = vecSub(vecScale(p2, 2), vecAdd(p1, p3));
|
|
10712
|
+
const span = vecSub(p3, p1);
|
|
10713
|
+
const spanLength = vecMag(span);
|
|
10714
|
+
let direction;
|
|
10715
|
+
if (vecMag(axis) < spanLength * .02) {
|
|
10716
|
+
const chord = vecNorm(span);
|
|
10717
|
+
direction = [chord[0] * CENTERED_BEND_COSINE - chord[1] * CENTERED_BEND_SINE, chord[0] * CENTERED_BEND_SINE + chord[1] * CENTERED_BEND_COSINE];
|
|
10718
|
+
} else direction = vecNorm(axis);
|
|
10719
|
+
if (vecDot(direction, span) < 0) direction = vecScale(direction, -1);
|
|
10720
|
+
return direction;
|
|
10721
|
+
}
|
|
10722
|
+
/** Generates the Infiltration mission task symbol (343800). */
|
|
10723
|
+
function createInfiltration(coordinates, options = {}) {
|
|
10724
|
+
const [c1, c2, c3] = coordinates;
|
|
10725
|
+
const p1 = project(c1[0], c1[1]);
|
|
10726
|
+
const p2 = project(c2[0], c2[1]);
|
|
10727
|
+
const p3 = project(c3[0], c3[1]);
|
|
10728
|
+
const spanLength = vecMag(vecSub(p3, p1));
|
|
10729
|
+
if (spanLength < 1e-6) return {
|
|
10730
|
+
type: "FeatureCollection",
|
|
10731
|
+
features: []
|
|
10732
|
+
};
|
|
10733
|
+
const along = tangentDirection(p1, p2, p3);
|
|
10734
|
+
const normal = [-along[1], along[0]];
|
|
10735
|
+
const signedRadius = vecDot(vecSub(p1, p2), normal);
|
|
10736
|
+
const radius = Math.abs(signedRadius);
|
|
10737
|
+
if (radius < 1e-6) return {
|
|
10738
|
+
type: "FeatureCollection",
|
|
10739
|
+
features: []
|
|
10740
|
+
};
|
|
10741
|
+
const sideRadius = vecScale(normal, (signedRadius < 0 ? -1 : 1) * radius);
|
|
10742
|
+
const alongRadius = vecScale(along, radius);
|
|
10743
|
+
const firstCenter = vecSub(p2, alongRadius);
|
|
10744
|
+
const arcStart = vecAdd(firstCenter, sideRadius);
|
|
10745
|
+
const secondCenter = vecAdd(p2, alongRadius);
|
|
10746
|
+
const arcEnd = vecSub(secondCenter, sideRadius);
|
|
10747
|
+
const straight = vecSub(arcStart, p1);
|
|
10748
|
+
const straightLength = vecMag(straight);
|
|
10749
|
+
if (straightLength < 1e-6) return {
|
|
10750
|
+
type: "FeatureCollection",
|
|
10751
|
+
features: []
|
|
10752
|
+
};
|
|
10753
|
+
const arcResolution = normalizeArcResolution(options.resolution) / 2;
|
|
10754
|
+
const firstArc = sampleProjectedArc(firstCenter, sideRadius, alongRadius, 0, Math.PI / 2, arcResolution);
|
|
10755
|
+
const secondArc = sampleProjectedArc(secondCenter, vecScale(alongRadius, -1), vecScale(sideRadius, -1), 0, Math.PI / 2, arcResolution);
|
|
10756
|
+
const labelPoint = vecAdd(p1, vecScale(straight, clamp01(options.labelPosition ?? DEFAULT_INFILTRATION_OPTIONS.labelPosition)));
|
|
10757
|
+
const gapHalf = straightLength * clamp01(options.labelGapRatio ?? DEFAULT_INFILTRATION_OPTIONS.labelGapRatio) / 2;
|
|
10758
|
+
const gapStart = vecAdd(labelPoint, vecScale(along, -gapHalf));
|
|
10759
|
+
const gapEnd = vecAdd(labelPoint, vecScale(along, gapHalf));
|
|
10760
|
+
const arrowhead = createArrowHead$1(p3, along, spanLength * Math.max(0, options.arrowheadLengthRatio ?? DEFAULT_INFILTRATION_OPTIONS.arrowheadLengthRatio), spanLength * Math.max(0, options.arrowheadWidthRatio ?? DEFAULT_INFILTRATION_OPTIONS.arrowheadWidthRatio));
|
|
10761
|
+
return {
|
|
10762
|
+
type: "FeatureCollection",
|
|
10763
|
+
features: [{
|
|
10764
|
+
type: "Feature",
|
|
10765
|
+
properties: { part: "infiltration" },
|
|
10766
|
+
geometry: {
|
|
10767
|
+
type: "MultiLineString",
|
|
10768
|
+
coordinates: [
|
|
10769
|
+
[c1, unproject(gapStart[0], gapStart[1])],
|
|
10770
|
+
[unproject(gapEnd[0], gapEnd[1]), unproject(arcStart[0], arcStart[1])],
|
|
10771
|
+
firstArc,
|
|
10772
|
+
secondArc,
|
|
10773
|
+
[unproject(arcEnd[0], arcEnd[1]), c3],
|
|
10774
|
+
arrowhead
|
|
10775
|
+
]
|
|
10776
|
+
}
|
|
10777
|
+
}, createLabelFeature(labelPoint, "IN", labelRotationAlong(along), options)]
|
|
10778
|
+
};
|
|
10779
|
+
}
|
|
10780
|
+
const INFILTRATION = defineControlMeasure({
|
|
10781
|
+
metadata: INFILTRATION_METADATA,
|
|
10782
|
+
generator: createInfiltration,
|
|
10783
|
+
defaultOptions: DEFAULT_INFILTRATION_OPTIONS,
|
|
10784
|
+
rule: line32DrawRule,
|
|
10785
|
+
previewSample: {
|
|
10786
|
+
controlPoints: [
|
|
10787
|
+
[-.9, .25],
|
|
10788
|
+
[-.05, 0],
|
|
10789
|
+
[.9, -.25]
|
|
10790
|
+
],
|
|
10791
|
+
options: { labelSize: 100 }
|
|
10792
|
+
}
|
|
10793
|
+
});
|
|
10794
|
+
//#endregion
|
|
10384
10795
|
//#region src/generators/cm34-mission-tasks/guard.ts
|
|
10385
10796
|
const DEFAULT_GUARD_OPTIONS = DEFAULT_SECURITY_TASK_OPTIONS;
|
|
10386
10797
|
const GUARD_METADATA = {
|
|
@@ -16226,6 +16637,8 @@ const DEFINITIONS = {
|
|
|
16226
16637
|
delay: DELAY,
|
|
16227
16638
|
disengage: DISENGAGE,
|
|
16228
16639
|
"disrupt-mission-task": DISRUPT_MISSION_TASK,
|
|
16640
|
+
envelopment: ENVELOPMENT,
|
|
16641
|
+
infiltration: INFILTRATION,
|
|
16229
16642
|
guard: GUARD,
|
|
16230
16643
|
isolate: ISOLATE,
|
|
16231
16644
|
penetrate: PENETRATE,
|
package/package.json
CHANGED