Check input mesh is valid in SurfaceTool methods
This commit is contained in:
parent
0bdadd468f
commit
0ad0f71ba0
1 changed files with 4 additions and 0 deletions
|
@ -502,6 +502,7 @@ void SurfaceTool::deindex() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SurfaceTool::_create_list(const Ref<Mesh> &p_existing, int p_surface, List<Vertex> *r_vertex, List<int> *r_index, int &lformat) {
|
void SurfaceTool::_create_list(const Ref<Mesh> &p_existing, int p_surface, List<Vertex> *r_vertex, List<int> *r_index, int &lformat) {
|
||||||
|
ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::_create_list() must be a valid object of type Mesh");
|
||||||
Array arr = p_existing->surface_get_arrays(p_surface);
|
Array arr = p_existing->surface_get_arrays(p_surface);
|
||||||
ERR_FAIL_COND(arr.size() != VS::ARRAY_MAX);
|
ERR_FAIL_COND(arr.size() != VS::ARRAY_MAX);
|
||||||
_create_list_from_arrays(arr, r_vertex, r_index, lformat);
|
_create_list_from_arrays(arr, r_vertex, r_index, lformat);
|
||||||
|
@ -744,6 +745,7 @@ void SurfaceTool::create_from_triangle_arrays(const Array &p_arrays) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SurfaceTool::create_from(const Ref<Mesh> &p_existing, int p_surface) {
|
void SurfaceTool::create_from(const Ref<Mesh> &p_existing, int p_surface) {
|
||||||
|
ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::create_from() must be a valid object of type Mesh");
|
||||||
clear();
|
clear();
|
||||||
primitive = p_existing->surface_get_primitive_type(p_surface);
|
primitive = p_existing->surface_get_primitive_type(p_surface);
|
||||||
_create_list(p_existing, p_surface, &vertex_array, &index_array, format);
|
_create_list(p_existing, p_surface, &vertex_array, &index_array, format);
|
||||||
|
@ -751,6 +753,7 @@ void SurfaceTool::create_from(const Ref<Mesh> &p_existing, int p_surface) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void SurfaceTool::create_from_blend_shape(const Ref<Mesh> &p_existing, int p_surface, const String &p_blend_shape_name) {
|
void SurfaceTool::create_from_blend_shape(const Ref<Mesh> &p_existing, int p_surface, const String &p_blend_shape_name) {
|
||||||
|
ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::create_from_blend_shape() must be a valid object of type Mesh");
|
||||||
clear();
|
clear();
|
||||||
primitive = p_existing->surface_get_primitive_type(p_surface);
|
primitive = p_existing->surface_get_primitive_type(p_surface);
|
||||||
Array arr = p_existing->surface_get_blend_shape_arrays(p_surface);
|
Array arr = p_existing->surface_get_blend_shape_arrays(p_surface);
|
||||||
|
@ -771,6 +774,7 @@ void SurfaceTool::create_from_blend_shape(const Ref<Mesh> &p_existing, int p_sur
|
||||||
}
|
}
|
||||||
|
|
||||||
void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform) {
|
void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform) {
|
||||||
|
ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::append_from() must be a valid object of type Mesh");
|
||||||
if (vertex_array.size() == 0) {
|
if (vertex_array.size() == 0) {
|
||||||
primitive = p_existing->surface_get_primitive_type(p_surface);
|
primitive = p_existing->surface_get_primitive_type(p_surface);
|
||||||
format = 0;
|
format = 0;
|
||||||
|
|
Loading…
Reference in a new issue