ImageNode.fromTopLeftWorld constructor

ImageNode.fromTopLeftWorld({
  1. required NodeId id,
  2. required String imageId,
  3. required Size size,
  4. required Offset topLeftWorld,
  5. Size? naturalSize,
  6. double hitPadding = 0,
  7. double opacity = 1,
  8. bool isVisible = true,
  9. bool isSelectable = true,
  10. bool isLocked = false,
  11. bool isDeletable = true,
  12. bool isTransformable = true,
})

Creates an image node positioned by its axis-aligned world top-left corner.

This helper is AABB-based: rotation/shear affects boundsWorld, so topLeftWorld is intended for UI-like positioning (selection box).

Implementation

factory ImageNode.fromTopLeftWorld({
  required NodeId id,
  required String imageId,
  required Size size,
  required Offset topLeftWorld,
  Size? naturalSize,
  double hitPadding = 0,
  double opacity = 1,
  bool isVisible = true,
  bool isSelectable = true,
  bool isLocked = false,
  bool isDeletable = true,
  bool isTransformable = true,
}) {
  final centerWorld = topLeftWorld + Offset(size.width / 2, size.height / 2);
  return ImageNode(
    id: id,
    imageId: imageId,
    size: size,
    naturalSize: naturalSize,
    hitPadding: hitPadding,
    transform: Transform2D.translation(centerWorld),
    opacity: opacity,
    isVisible: isVisible,
    isSelectable: isSelectable,
    isLocked: isLocked,
    isDeletable: isDeletable,
    isTransformable: isTransformable,
  );
}