mirror of
https://github.com/Relintai/mesh_data_resource.git
synced 2024-11-12 10:15:21 +01:00
Added a method to MeshDataInstance that can return a substitute MeshInstance.
This commit is contained in:
parent
4595d4abee
commit
d1a5bbf2a0
@ -19,6 +19,8 @@
|
||||
#include "../../texture_packer/texture_resource/packer_image_resource.h"
|
||||
#endif
|
||||
|
||||
#include "scene/3d/mesh_instance.h"
|
||||
|
||||
bool MeshDataInstance::get_snap_to_mesh() const {
|
||||
return _snap_to_mesh;
|
||||
}
|
||||
@ -168,6 +170,22 @@ void MeshDataInstance::free_meshes() {
|
||||
}
|
||||
}
|
||||
|
||||
Node *MeshDataInstance::get_substitute_for_room() {
|
||||
if (!_mesh.is_valid()) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Ref<ArrayMesh> m;
|
||||
m.instance();
|
||||
|
||||
m->add_surface_from_arrays(Mesh::PRIMITIVE_TRIANGLES, _mesh->get_array());
|
||||
|
||||
MeshInstance *mi = memnew(MeshInstance);
|
||||
mi->set_mesh(m);
|
||||
|
||||
return mi;
|
||||
}
|
||||
|
||||
MeshDataInstance::MeshDataInstance() {
|
||||
_dirty = false;
|
||||
_snap_to_mesh = false;
|
||||
@ -226,4 +244,6 @@ void MeshDataInstance::_bind_methods() {
|
||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "material", PROPERTY_HINT_RESOURCE_TYPE, "Material"), "set_material", "get_material");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("refresh"), &MeshDataInstance::refresh);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_substitute_for_room"), &MeshDataInstance::get_substitute_for_room);
|
||||
}
|
||||
|
@ -65,6 +65,8 @@ public:
|
||||
void setup_material_texture();
|
||||
void free_meshes();
|
||||
|
||||
Node *get_substitute_for_room();
|
||||
|
||||
MeshDataInstance();
|
||||
~MeshDataInstance();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user