Skip to content

Commit

Permalink
Replace error checks against size with is_empty
Browse files Browse the repository at this point in the history
  • Loading branch information
AThousandShips committed Feb 9, 2024
1 parent 94dbf69 commit 684752e
Show file tree
Hide file tree
Showing 58 changed files with 116 additions and 116 deletions.
6 changes: 3 additions & 3 deletions core/debugger/remote_debugger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -527,7 +527,7 @@ void RemoteDebugger::debug(bool p_can_continue, bool p_is_error_breakpoint) {
}

} else if (command == "set_skip_breakpoints") {
ERR_FAIL_COND(data.size() < 1);
ERR_FAIL_COND(data.is_empty());
script_debugger->set_skip_breakpoints(data[0]);
} else {
bool captured = false;
Expand Down Expand Up @@ -631,7 +631,7 @@ Error RemoteDebugger::_core_capture(const String &p_cmd, const Array &p_data, bo
}

} else if (p_cmd == "set_skip_breakpoints") {
ERR_FAIL_COND_V(p_data.size() < 1, ERR_INVALID_DATA);
ERR_FAIL_COND_V(p_data.is_empty(), ERR_INVALID_DATA);
script_debugger->set_skip_breakpoints(p_data[0]);
} else if (p_cmd == "break") {
script_debugger->debug(script_debugger->get_break_language());
Expand All @@ -643,7 +643,7 @@ Error RemoteDebugger::_core_capture(const String &p_cmd, const Array &p_data, bo

Error RemoteDebugger::_profiler_capture(const String &p_cmd, const Array &p_data, bool &r_captured) {
r_captured = false;
ERR_FAIL_COND_V(p_data.size() < 1, ERR_INVALID_DATA);
ERR_FAIL_COND_V(p_data.is_empty(), ERR_INVALID_DATA);
ERR_FAIL_COND_V(p_data[0].get_type() != Variant::BOOL, ERR_INVALID_DATA);
ERR_FAIL_COND_V(!has_profiler(p_cmd), ERR_UNAVAILABLE);
Array opts;
Expand Down
18 changes: 9 additions & 9 deletions core/io/image.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1029,7 +1029,7 @@ void Image::resize_to_po2(bool p_square, Interpolation p_interpolation) {
}

void Image::resize(int p_width, int p_height, Interpolation p_interpolation) {
ERR_FAIL_COND_MSG(data.size() == 0, "Cannot resize image before creating it, use set_data() first.");
ERR_FAIL_COND_MSG(data.is_empty(), "Cannot resize image before creating it, use set_data() first.");
ERR_FAIL_COND_MSG(!_can_modify(format), "Cannot resize in compressed or custom image formats.");

bool mipmap_aware = p_interpolation == INTERPOLATE_TRILINEAR /* || p_interpolation == INTERPOLATE_TRICUBIC */;
Expand Down Expand Up @@ -1700,7 +1700,7 @@ static void _generate_po2_mipmap(const Component *p_src, Component *p_dst, uint3
}

void Image::shrink_x2() {
ERR_FAIL_COND(data.size() == 0);
ERR_FAIL_COND(data.is_empty());

if (mipmaps) {
//just use the lower mipmap as base and copy all
Expand All @@ -1710,7 +1710,7 @@ void Image::shrink_x2() {

int new_size = data.size() - ofs;
new_img.resize(new_size);
ERR_FAIL_COND(new_img.size() == 0);
ERR_FAIL_COND(new_img.is_empty());

{
uint8_t *w = new_img.ptrw();
Expand All @@ -1729,8 +1729,8 @@ void Image::shrink_x2() {
ERR_FAIL_COND(!_can_modify(format));
int ps = get_format_pixel_size(format);
new_img.resize((width / 2) * (height / 2) * ps);
ERR_FAIL_COND(new_img.size() == 0);
ERR_FAIL_COND(data.size() == 0);
ERR_FAIL_COND(new_img.is_empty());
ERR_FAIL_COND(data.is_empty());

{
uint8_t *w = new_img.ptrw();
Expand Down Expand Up @@ -3323,7 +3323,7 @@ void Image::adjust_bcs(float p_brightness, float p_contrast, float p_saturation)
}

Image::UsedChannels Image::detect_used_channels(CompressSource p_source) const {
ERR_FAIL_COND_V(data.size() == 0, USED_CHANNELS_RGBA);
ERR_FAIL_COND_V(data.is_empty(), USED_CHANNELS_RGBA);
ERR_FAIL_COND_V(is_compressed(), USED_CHANNELS_RGBA);
bool r = false, g = false, b = false, a = false, c = false;

Expand Down Expand Up @@ -3878,7 +3878,7 @@ Error Image::load_ktx_from_buffer(const Vector<uint8_t> &p_array) {

void Image::convert_rg_to_ra_rgba8() {
ERR_FAIL_COND(format != FORMAT_RGBA8);
ERR_FAIL_COND(!data.size());
ERR_FAIL_COND(data.is_empty());

int s = data.size();
uint8_t *w = data.ptrw();
Expand All @@ -3891,7 +3891,7 @@ void Image::convert_rg_to_ra_rgba8() {

void Image::convert_ra_rgba8_to_rg() {
ERR_FAIL_COND(format != FORMAT_RGBA8);
ERR_FAIL_COND(!data.size());
ERR_FAIL_COND(data.is_empty());

int s = data.size();
uint8_t *w = data.ptrw();
Expand All @@ -3904,7 +3904,7 @@ void Image::convert_ra_rgba8_to_rg() {

void Image::convert_rgba8_to_bgra8() {
ERR_FAIL_COND(format != FORMAT_RGBA8);
ERR_FAIL_COND(!data.size());
ERR_FAIL_COND(data.is_empty());

int s = data.size();
uint8_t *w = data.ptrw();
Expand Down
2 changes: 1 addition & 1 deletion core/io/xml_parser.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ bool XMLParser::is_empty() const {
}

Error XMLParser::open_buffer(const Vector<uint8_t> &p_buffer) {
ERR_FAIL_COND_V(p_buffer.size() == 0, ERR_INVALID_DATA);
ERR_FAIL_COND_V(p_buffer.is_empty(), ERR_INVALID_DATA);

if (data_copy) {
memdelete_arr(data_copy);
Expand Down
2 changes: 1 addition & 1 deletion core/math/geometry_2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ void Geometry2D::make_atlas(const Vector<Size2i> &p_rects, Vector<Point2i> &r_re
// For example, it will prioritize a 1024x1024 atlas (works everywhere) instead of a
// 256x8192 atlas (won't work anywhere).

ERR_FAIL_COND(p_rects.size() == 0);
ERR_FAIL_COND(p_rects.is_empty());
for (int i = 0; i < p_rects.size(); i++) {
ERR_FAIL_COND(p_rects[i].width <= 0);
ERR_FAIL_COND(p_rects[i].height <= 0);
Expand Down
6 changes: 3 additions & 3 deletions core/variant/array.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -316,17 +316,17 @@ void Array::erase(const Variant &p_value) {
}

Variant Array::front() const {
ERR_FAIL_COND_V_MSG(_p->array.size() == 0, Variant(), "Can't take value from empty array.");
ERR_FAIL_COND_V_MSG(_p->array.is_empty(), Variant(), "Can't take value from empty array.");
return operator[](0);
}

Variant Array::back() const {
ERR_FAIL_COND_V_MSG(_p->array.size() == 0, Variant(), "Can't take value from empty array.");
ERR_FAIL_COND_V_MSG(_p->array.is_empty(), Variant(), "Can't take value from empty array.");
return operator[](_p->array.size() - 1);
}

Variant Array::pick_random() const {
ERR_FAIL_COND_V_MSG(_p->array.size() == 0, Variant(), "Can't take value from empty array.");
ERR_FAIL_COND_V_MSG(_p->array.is_empty(), Variant(), "Can't take value from empty array.");
return operator[](Math::rand() % _p->array.size());
}

Expand Down
8 changes: 4 additions & 4 deletions core/variant/variant_call.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -885,7 +885,7 @@ struct _VariantCall {
ERR_FAIL_COND_V_MSG(size % sizeof(int32_t), dest, "PackedByteArray size must be a multiple of 4 (size of 32-bit integer) to convert to PackedInt32Array.");
const uint8_t *r = p_instance->ptr();
dest.resize(size / sizeof(int32_t));
ERR_FAIL_COND_V(dest.size() == 0, dest); // Avoid UB in case resize failed.
ERR_FAIL_COND_V(dest.is_empty(), dest); // Avoid UB in case resize failed.
memcpy(dest.ptrw(), r, dest.size() * sizeof(int32_t));
return dest;
}
Expand All @@ -899,7 +899,7 @@ struct _VariantCall {
ERR_FAIL_COND_V_MSG(size % sizeof(int64_t), dest, "PackedByteArray size must be a multiple of 8 (size of 64-bit integer) to convert to PackedInt64Array.");
const uint8_t *r = p_instance->ptr();
dest.resize(size / sizeof(int64_t));
ERR_FAIL_COND_V(dest.size() == 0, dest); // Avoid UB in case resize failed.
ERR_FAIL_COND_V(dest.is_empty(), dest); // Avoid UB in case resize failed.
memcpy(dest.ptrw(), r, dest.size() * sizeof(int64_t));
return dest;
}
Expand All @@ -913,7 +913,7 @@ struct _VariantCall {
ERR_FAIL_COND_V_MSG(size % sizeof(float), dest, "PackedByteArray size must be a multiple of 4 (size of 32-bit float) to convert to PackedFloat32Array.");
const uint8_t *r = p_instance->ptr();
dest.resize(size / sizeof(float));
ERR_FAIL_COND_V(dest.size() == 0, dest); // Avoid UB in case resize failed.
ERR_FAIL_COND_V(dest.is_empty(), dest); // Avoid UB in case resize failed.
memcpy(dest.ptrw(), r, dest.size() * sizeof(float));
return dest;
}
Expand All @@ -927,7 +927,7 @@ struct _VariantCall {
ERR_FAIL_COND_V_MSG(size % sizeof(double), dest, "PackedByteArray size must be a multiple of 8 (size of 64-bit double) to convert to PackedFloat64Array.");
const uint8_t *r = p_instance->ptr();
dest.resize(size / sizeof(double));
ERR_FAIL_COND_V(dest.size() == 0, dest); // Avoid UB in case resize failed.
ERR_FAIL_COND_V(dest.is_empty(), dest); // Avoid UB in case resize failed.
memcpy(dest.ptrw(), r, dest.size() * sizeof(double));
return dest;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/d3d12/d3d12_context.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ Error D3D12Context::_select_adapter(int &r_index) {
adapters.push_back(curr_adapter);
}

ERR_FAIL_COND_V_MSG(adapters.size() == 0, ERR_CANT_CREATE, "Adapters enumeration reported zero accessible devices.");
ERR_FAIL_COND_V_MSG(adapters.is_empty(), ERR_CANT_CREATE, "Adapters enumeration reported zero accessible devices.");

// The device should really be a preference, but for now choosing a discrete GPU over the
// integrated one is better than the default.
Expand Down
6 changes: 3 additions & 3 deletions drivers/gles3/storage/mesh_storage.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -471,7 +471,7 @@ void MeshStorage::mesh_surface_update_vertex_region(RID p_mesh, int p_surface, i
Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL(mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
ERR_FAIL_COND(p_data.is_empty());

uint64_t data_size = p_data.size();
ERR_FAIL_COND(p_offset + data_size > mesh->surfaces[p_surface]->vertex_buffer_size);
Expand All @@ -486,7 +486,7 @@ void MeshStorage::mesh_surface_update_attribute_region(RID p_mesh, int p_surface
Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL(mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
ERR_FAIL_COND(p_data.is_empty());

uint64_t data_size = p_data.size();
ERR_FAIL_COND(p_offset + data_size > mesh->surfaces[p_surface]->attribute_buffer_size);
Expand All @@ -501,7 +501,7 @@ void MeshStorage::mesh_surface_update_skin_region(RID p_mesh, int p_surface, int
Mesh *mesh = mesh_owner.get_or_null(p_mesh);
ERR_FAIL_NULL(mesh);
ERR_FAIL_UNSIGNED_INDEX((uint32_t)p_surface, mesh->surface_count);
ERR_FAIL_COND(p_data.size() == 0);
ERR_FAIL_COND(p_data.is_empty());

uint64_t data_size = p_data.size();
ERR_FAIL_COND(p_offset + data_size > mesh->surfaces[p_surface]->skin_buffer_size);
Expand Down
4 changes: 2 additions & 2 deletions editor/debugger/script_editor_debugger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, uint64_t p_thread
}

} else if (p_msg == "set_pid") {
ERR_FAIL_COND(p_data.size() < 1);
ERR_FAIL_COND(p_data.is_empty());
remote_pid = p_data[0];
} else if (p_msg == "scene:click_ctrl") {
ERR_FAIL_COND(p_data.size() < 2);
Expand Down Expand Up @@ -806,7 +806,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, uint64_t p_thread
}
performance_profiler->update_monitors(monitors);
} else if (p_msg == "filesystem:update_file") {
ERR_FAIL_COND(p_data.size() < 1);
ERR_FAIL_COND(p_data.is_empty());
if (EditorFileSystem::get_singleton()) {
EditorFileSystem::get_singleton()->update_file(p_data[0]);
}
Expand Down
2 changes: 1 addition & 1 deletion editor/editor_command_palette.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ float EditorCommandPalette::_score_path(const String &p_search, const String &p_
}

void EditorCommandPalette::_update_command_search(const String &search_text) {
ERR_FAIL_COND(commands.size() == 0);
ERR_FAIL_COND(commands.is_empty());

HashMap<String, TreeItem *> sections;
TreeItem *first_section = nullptr;
Expand Down
2 changes: 1 addition & 1 deletion editor/editor_inspector.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3892,7 +3892,7 @@ void EditorInspector::_property_changed(const String &p_path, const Variant &p_v
}

void EditorInspector::_multiple_properties_changed(Vector<String> p_paths, Array p_values, bool p_changing) {
ERR_FAIL_COND(p_paths.size() == 0 || p_values.size() == 0);
ERR_FAIL_COND(p_paths.is_empty() || p_values.is_empty());
ERR_FAIL_COND(p_paths.size() != p_values.size());
String names;
for (int i = 0; i < p_paths.size(); i++) {
Expand Down
2 changes: 1 addition & 1 deletion editor/import/3d/collada.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ Transform3D Collada::Node::get_global_transform() const {
}

Vector<float> Collada::AnimationTrack::get_value_at_time(float p_time) const {
ERR_FAIL_COND_V(keys.size() == 0, Vector<float>());
ERR_FAIL_COND_V(keys.is_empty(), Vector<float>());
int i = 0;

for (i = 0; i < keys.size(); i++) {
Expand Down
2 changes: 1 addition & 1 deletion editor/import/3d/resource_importer_obj.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ static Error _parse_obj(const String &p_path, List<Ref<ImporterMesh>> &r_meshes,
Vector<String> face[3];
face[0] = v[1].split("/");
face[1] = v[2].split("/");
ERR_FAIL_COND_V(face[0].size() == 0, ERR_FILE_CORRUPT);
ERR_FAIL_COND_V(face[0].is_empty(), ERR_FILE_CORRUPT);

ERR_FAIL_COND_V(face[0].size() != face[1].size(), ERR_FILE_CORRUPT);
for (int i = 2; i < v.size() - 1; i++) {
Expand Down
2 changes: 1 addition & 1 deletion editor/import/resource_importer_texture_atlas.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,7 @@ static void _plot_triangle(Vector2i *p_vertices, const Vector2i &p_offset, bool
}

Error ResourceImporterTextureAtlas::import_group_file(const String &p_group_file, const HashMap<String, HashMap<StringName, Variant>> &p_source_file_options, const HashMap<String, String> &p_base_paths) {
ERR_FAIL_COND_V(p_source_file_options.size() == 0, ERR_BUG); //should never happen
ERR_FAIL_COND_V(p_source_file_options.is_empty(), ERR_BUG); //should never happen

Vector<EditorAtlasPacker::Chart> charts;
Vector<PackData> pack_data_files;
Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/cpu_particles_2d_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ void CPUParticles2DEditorPlugin::_generate_emission_mask() {
valid_normals.resize(vpc);
}

ERR_FAIL_COND_MSG(valid_positions.size() == 0, "No pixels with transparency > 128 in image...");
ERR_FAIL_COND_MSG(valid_positions.is_empty(), "No pixels with transparency > 128 in image...");

if (capture_colors) {
PackedColorArray pca;
Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/gpu_particles_2d_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ void GPUParticles2DEditorPlugin::_generate_emission_mask() {
valid_normals.resize(vpc);
}

ERR_FAIL_COND_MSG(valid_positions.size() == 0, "No pixels with transparency > 128 in image...");
ERR_FAIL_COND_MSG(valid_positions.is_empty(), "No pixels with transparency > 128 in image...");

Vector<uint8_t> texdata;

Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/multimesh_editor_plugin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ void MultiMeshEditor::_populate() {
area_accum += area;
}

ERR_FAIL_COND_MSG(triangle_area_map.size() == 0, "Couldn't map area.");
ERR_FAIL_COND_MSG(triangle_area_map.is_empty(), "Couldn't map area.");
ERR_FAIL_COND_MSG(area_accum == 0, "Couldn't map area.");

Ref<MultiMesh> multimesh = memnew(MultiMesh);
Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/node_3d_editor_gizmos.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -969,7 +969,7 @@ void EditorNode3DGizmoPlugin::add_material(const String &p_name, Ref<StandardMat

Ref<StandardMaterial3D> EditorNode3DGizmoPlugin::get_material(const String &p_name, const Ref<EditorNode3DGizmo> &p_gizmo) {
ERR_FAIL_COND_V(!materials.has(p_name), Ref<StandardMaterial3D>());
ERR_FAIL_COND_V(materials[p_name].size() == 0, Ref<StandardMaterial3D>());
ERR_FAIL_COND_V(materials[p_name].is_empty(), Ref<StandardMaterial3D>());

if (p_gizmo.is_null() || materials[p_name].size() == 1) {
return materials[p_name][0];
Expand Down
2 changes: 1 addition & 1 deletion editor/plugins/text_shader_editor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -473,7 +473,7 @@ void ShaderTextEditor::_validate_script() {

if (last_compile_result != OK) {
//preprocessor error
ERR_FAIL_COND(err_positions.size() == 0);
ERR_FAIL_COND(err_positions.is_empty());

String err_text = error_pp;
int err_line = err_positions.front()->get().line;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ void TileSetScenesCollectionSourceEditor::_scene_file_selected(const String &p_p

void TileSetScenesCollectionSourceEditor::_source_delete_pressed() {
Vector<int> selected_indices = scene_tiles_list->get_selected_items();
ERR_FAIL_COND(selected_indices.size() <= 0);
ERR_FAIL_COND(selected_indices.is_empty());
int scene_id = scene_tiles_list->get_item_metadata(selected_indices[0]);

EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton();
Expand Down
2 changes: 1 addition & 1 deletion editor/project_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -996,7 +996,7 @@ void ProjectManager::_files_dropped(PackedStringArray p_files) {
const String &file = p_files[i];
folders_set.insert(da->dir_exists(file) ? file : file.get_base_dir());
}
ERR_FAIL_COND(folders_set.size() == 0); // This can't really happen, we consume every dropped file path above.
ERR_FAIL_COND(folders_set.is_empty()); // This can't really happen, we consume every dropped file path above.

PackedStringArray folders;
for (const String &E : folders_set) {
Expand Down
2 changes: 1 addition & 1 deletion editor/rename_dialog.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,7 @@ void RenameDialog::_post_popup() {
preview_node = nullptr;

Array selected_node_list = editor_selection->get_selected_nodes();
ERR_FAIL_COND(selected_node_list.size() == 0);
ERR_FAIL_COND(selected_node_list.is_empty());

preview_node = Object::cast_to<Node>(selected_node_list[0]);

Expand Down
4 changes: 2 additions & 2 deletions editor/scene_tree_dock.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2660,7 +2660,7 @@ void SceneTreeDock::_create() {

} else if (current_option == TOOL_REPLACE) {
List<Node *> selection = editor_selection->get_selected_node_list();
ERR_FAIL_COND(selection.size() <= 0);
ERR_FAIL_COND(selection.is_empty());

EditorUndoRedoManager *ur = EditorUndoRedoManager::get_singleton();
ur->create_action(TTR("Change type of node(s)"), UndoRedo::MERGE_DISABLE, selection.front()->get());
Expand All @@ -2679,7 +2679,7 @@ void SceneTreeDock::_create() {
ur->commit_action(false);
} else if (current_option == TOOL_REPARENT_TO_NEW_NODE) {
List<Node *> selection = editor_selection->get_selected_node_list();
ERR_FAIL_COND(selection.size() <= 0);
ERR_FAIL_COND(selection.is_empty());

// Find top level node in selection
bool only_one_top_node = true;
Expand Down
2 changes: 1 addition & 1 deletion main/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3546,7 +3546,7 @@ bool Main::start() {
Error err;

Vector<String> paths = get_files_with_extension(gdscript_docs_path, "gd");
ERR_FAIL_COND_V_MSG(paths.size() == 0, false, "Couldn't find any GDScript files under the given directory: " + gdscript_docs_path);
ERR_FAIL_COND_V_MSG(paths.is_empty(), false, "Couldn't find any GDScript files under the given directory: " + gdscript_docs_path);

for (const String &path : paths) {
Ref<GDScript> gdscript = ResourceLoader::load(path);
Expand Down
2 changes: 1 addition & 1 deletion modules/csg/csg_shape.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -800,7 +800,7 @@ CSGBrush *CSGMesh3D::_build_brush() {

if (arrays.size() == 0) {
_make_dirty();
ERR_FAIL_COND_V(arrays.size() == 0, memnew(CSGBrush));
ERR_FAIL_COND_V(arrays.is_empty(), memnew(CSGBrush));
}

Vector<Vector3> avertices = arrays[Mesh::ARRAY_VERTEX];
Expand Down
Loading

0 comments on commit 684752e

Please sign in to comment.