2017-09-12 20:42:36 +00:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-02-14 13:18:53 +00:00
<class name= "BitMap" inherits= "Resource" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2017-09-12 20:42:36 +00:00
<brief_description >
Boolean matrix.
</brief_description>
<description >
A two-dimensional array of boolean values, can be used to efficiently store a binary matrix (every matrix element takes only one bit) and query the values using natural cartesian coordinates.
</description>
<tutorials >
</tutorials>
<methods >
2021-12-11 23:05:25 +00:00
<method name= "convert_to_image" qualifiers= "const" >
<return type= "Image" />
<description >
2022-11-01 14:29:38 +00:00
Returns an image of the same size as the bitmap and with a [enum Image.Format] of type [constant Image.FORMAT_L8]. [code]true[/code] bits of the bitmap are being converted into white pixels, and [code]false[/code] bits into black.
2021-12-11 23:05:25 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "create" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "size" type= "Vector2i" />
2017-09-12 20:42:36 +00:00
<description >
2019-04-17 11:42:56 +00:00
Creates a bitmap with the specified size, filled with [code]false[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "create_from_image_alpha" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-08-06 18:11:48 +00:00
<param index= "0" name= "image" type= "Image" />
<param index= "1" name= "threshold" type= "float" default= "0.1" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-12 17:13:27 +00:00
Creates a bitmap that matches the given image dimensions, every element of the bitmap is set to [code]false[/code] if the alpha value of the image at that position is equal to [param threshold] or less, and [code]true[/code] in other case.
2017-09-12 20:42:36 +00:00
</description>
</method>
<method name= "get_bit" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "bool" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "x" type= "int" />
<param index= "1" name= "y" type= "int" />
<description >
Returns bitmap's value at the specified position.
</description>
</method>
<method name= "get_bitv" qualifiers= "const" >
<return type= "bool" />
<param index= "0" name= "position" type= "Vector2i" />
2017-09-12 20:42:36 +00:00
<description >
Returns bitmap's value at the specified position.
</description>
</method>
<method name= "get_size" qualifiers= "const" >
2022-09-01 16:39:17 +00:00
<return type= "Vector2i" />
2017-09-12 20:42:36 +00:00
<description >
Returns bitmap's dimensions.
</description>
</method>
<method name= "get_true_bit_count" qualifiers= "const" >
2021-07-30 13:28:05 +00:00
<return type= "int" />
2017-09-12 20:42:36 +00:00
<description >
2022-08-17 22:08:09 +00:00
Returns the number of bitmap elements that are set to [code]true[/code].
2017-09-12 20:42:36 +00:00
</description>
</method>
2018-08-20 22:35:30 +00:00
<method name= "grow_mask" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-08-06 18:11:48 +00:00
<param index= "0" name= "pixels" type= "int" />
2022-09-01 16:39:17 +00:00
<param index= "1" name= "rect" type= "Rect2i" />
2018-08-20 22:35:30 +00:00
<description >
2022-08-12 17:13:27 +00:00
Applies morphological dilation or erosion to the bitmap. If [param pixels] is positive, dilation is applied to the bitmap. If [param pixels] is negative, erosion is applied to the bitmap. [param rect] defines the area where the morphological operation is applied. Pixels located outside the [param rect] are unaffected by [method grow_mask].
2018-08-20 22:35:30 +00:00
</description>
</method>
<method name= "opaque_to_polygons" qualifiers= "const" >
2022-08-05 01:41:48 +00:00
<return type= "PackedVector2Array[]" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "rect" type= "Rect2i" />
2022-08-06 18:11:48 +00:00
<param index= "1" name= "epsilon" type= "float" default= "2.0" />
2018-08-20 22:35:30 +00:00
<description >
2021-03-21 20:46:28 +00:00
Creates an [Array] of polygons covering a rectangular portion of the bitmap. It uses a marching squares algorithm, followed by Ramer-Douglas-Peucker (RDP) reduction of the number of vertices. Each polygon is described as a [PackedVector2Array] of its vertices.
To get polygons covering the whole bitmap, pass:
[codeblock]
Rect2(Vector2(), get_size())
[/codeblock]
2022-08-12 17:13:27 +00:00
[param epsilon] is passed to RDP to control how accurately the polygons cover the bitmap: a lower [param epsilon] corresponds to more points in the polygons.
2018-08-20 22:35:30 +00:00
</description>
</method>
2021-12-11 23:05:25 +00:00
<method name= "resize" >
<return type= "void" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "new_size" type= "Vector2i" />
2021-12-11 23:05:25 +00:00
<description >
2022-08-12 17:13:27 +00:00
Resizes the image to [param new_size].
2021-12-11 23:05:25 +00:00
</description>
</method>
2017-09-12 20:42:36 +00:00
<method name= "set_bit" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "x" type= "int" />
<param index= "1" name= "y" type= "int" />
<param index= "2" name= "bit" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
Sets the bitmap's element at the specified position, to the specified value.
</description>
</method>
<method name= "set_bit_rect" >
2021-07-30 13:28:05 +00:00
<return type= "void" />
2022-09-01 16:39:17 +00:00
<param index= "0" name= "rect" type= "Rect2i" />
2022-08-06 18:11:48 +00:00
<param index= "1" name= "bit" type= "bool" />
2017-09-12 20:42:36 +00:00
<description >
Sets a rectangular portion of the bitmap to the specified value.
</description>
</method>
2022-09-01 16:39:17 +00:00
<method name= "set_bitv" >
<return type= "void" />
<param index= "0" name= "position" type= "Vector2i" />
<param index= "1" name= "bit" type= "bool" />
<description >
Sets the bitmap's element at the specified position, to the specified value.
</description>
</method>
2017-09-12 20:42:36 +00:00
</methods>
</class>