28 lines
1.0 KiB
Plaintext
28 lines
1.0 KiB
Plaintext
(function :Void bringToFront <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
|
(when (contains group.members obj)
|
|
(group.members.remove obj)
|
|
(group.members.push obj)))
|
|
|
|
(function :Void sendToBack <>[:FlxObject T] [:FlxTypedGroup<T> group :T obj]
|
|
(when (contains group.members obj)
|
|
(group.remove obj)
|
|
(group.insert 0 obj)))
|
|
|
|
(function :FlxRect calculateBounds <>[:FlxObject T] [:FlxTypedGroup<T> group &opt :Float margin]
|
|
(unless margin (set margin 0))
|
|
(let [&mut minX 0
|
|
&mut maxX 0
|
|
&mut minY 0
|
|
&mut maxY 0
|
|
r (new FlxRect)]
|
|
|
|
(group.forEach ->object
|
|
(let [bounds (object.getRotatedBounds r)]
|
|
(set minX (min minX bounds.left))
|
|
(set minY (min minY bounds.top))
|
|
(set maxX (max maxX bounds.right))
|
|
(set maxY (max maxY bounds.bottom))))
|
|
|
|
(r.fromTwoPoints
|
|
(new FlxPoint (- minX margin) (- minY margin))
|
|
(new FlxPoint (+ maxX margin) (+ maxY margin))))) |