TextNode.fromTopLeftWorld constructor
- required NodeId id,
- required String text,
- required Size size,
- required Offset topLeftWorld,
- double fontSize = 24,
- required Color color,
- TextAlign align = TextAlign.left,
- bool isBold = false,
- bool isItalic = false,
- bool isUnderline = false,
- String? fontFamily,
- double? maxWidth,
- double? lineHeight,
- double hitPadding = 0,
- double opacity = 1,
- bool isVisible = true,
- bool isSelectable = true,
- bool isLocked = false,
- bool isDeletable = true,
- bool isTransformable = true,
Creates a text 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 TextNode.fromTopLeftWorld({
required NodeId id,
required String text,
required Size size,
required Offset topLeftWorld,
double fontSize = 24,
required Color color,
TextAlign align = TextAlign.left,
bool isBold = false,
bool isItalic = false,
bool isUnderline = false,
String? fontFamily,
double? maxWidth,
double? lineHeight,
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 TextNode(
id: id,
text: text,
size: size,
fontSize: fontSize,
color: color,
align: align,
isBold: isBold,
isItalic: isItalic,
isUnderline: isUnderline,
fontFamily: fontFamily,
maxWidth: maxWidth,
lineHeight: lineHeight,
hitPadding: hitPadding,
transform: Transform2D.translation(centerWorld),
opacity: opacity,
isVisible: isVisible,
isSelectable: isSelectable,
isLocked: isLocked,
isDeletable: isDeletable,
isTransformable: isTransformable,
);
}