g3-toolkit API Reference
    Preparing search index...

    Function resolveDragAttachment

    • Attachment-level drag policy (supersedes resolveDragRoute inside onDrag; resolveDragRoute remains the bends-only surface the flipped round-1 oracles pin). Adds two behaviors the second e2e run demanded: (1) when the desired face cannot route (its stub sealed in by a neighbor: the "c.adcs crosses imager" failure came from an UNCHECKED fallback after a router null), CANDIDATE FACES are tried in order (desired, original, remaining two) before any unchecked fallback; (2) the anchor on the desired face can be a distributed bundle position rather than the face center.

      Parameters

      • args: {
            bends: readonly { x: number; y: number }[];
            desiredAnchor?: { x: number; y: number };
            desiredSide: AttachmentSide;
            fixedPoint: { x: number; y: number };
            fixedSide: AttachmentSide;
            movedCenter: { x: number; y: number };
            movedEnd: "source" | "target";
            movedHalf: { h: number; w: number };
            obstacles: readonly { height: number; width: number; x: number; y: number }[];
            oldSource: { x: number; y: number };
            oldTarget: { x: number; y: number };
            originalSide: AttachmentSide;
            sameSide: boolean;
        }
        • bends: readonly { x: number; y: number }[]
        • OptionaldesiredAnchor?: { x: number; y: number }

          Anchor to use on the DESIRED face (bundle distribution or the ridden eport offset); other candidate faces use their centers.

        • desiredSide: AttachmentSide
        • fixedPoint: { x: number; y: number }
        • fixedSide: AttachmentSide
        • movedCenter: { x: number; y: number }
        • movedEnd: "source" | "target"
        • movedHalf: { h: number; w: number }
        • obstacles: readonly { height: number; width: number; x: number; y: number }[]
        • oldSource: { x: number; y: number }
        • oldTarget: { x: number; y: number }
        • originalSide: AttachmentSide
        • sameSide: boolean

      Returns {
          bends: { x: number; y: number }[];
          movedSide: AttachmentSide;
          source: { x: number; y: number };
          target: { x: number; y: number };
      }