mirror of
https://github.com/Relintai/mesh_data_resource.git
synced 2025-02-20 17:14:31 +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"
|
#include "../../texture_packer/texture_resource/packer_image_resource.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include "scene/3d/mesh_instance.h"
|
||||||
|
|
||||||
bool MeshDataInstance::get_snap_to_mesh() const {
|
bool MeshDataInstance::get_snap_to_mesh() const {
|
||||||
return _snap_to_mesh;
|
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() {
|
MeshDataInstance::MeshDataInstance() {
|
||||||
_dirty = false;
|
_dirty = false;
|
||||||
_snap_to_mesh = 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");
|
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("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 setup_material_texture();
|
||||||
void free_meshes();
|
void free_meshes();
|
||||||
|
|
||||||
|
Node *get_substitute_for_room();
|
||||||
|
|
||||||
MeshDataInstance();
|
MeshDataInstance();
|
||||||
~MeshDataInstance();
|
~MeshDataInstance();
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user