summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAaron Franke <arnfranke@yahoo.com>2023-07-18 14:28:09 -0500
committerAaron Franke <arnfranke@yahoo.com>2023-08-03 16:38:10 -0500
commit101442ced9f266eca289cb3ad61dc7f8756ecbd0 (patch)
treea376962263c1adef6aac9b22c230342df3ba5343
parentf9f50416758eff6c0b8981af5b4a968fa2e59b8e (diff)
downloadredot-engine-101442ced9f266eca289cb3ad61dc7f8756ecbd0.tar.gz
Expose filename in GLTFState
-rw-r--r--modules/gltf/doc_classes/GLTFState.xml4
-rw-r--r--modules/gltf/gltf_state.cpp15
-rw-r--r--modules/gltf/gltf_state.h9
3 files changed, 23 insertions, 5 deletions
diff --git a/modules/gltf/doc_classes/GLTFState.xml b/modules/gltf/doc_classes/GLTFState.xml
index 44b0d124e7..db468e2994 100644
--- a/modules/gltf/doc_classes/GLTFState.xml
+++ b/modules/gltf/doc_classes/GLTFState.xml
@@ -267,6 +267,7 @@
</methods>
<members>
<member name="base_path" type="String" setter="set_base_path" getter="get_base_path" default="&quot;&quot;">
+ The folder path associated with this GLTF data. This is used to find other files the GLTF file references, like images or binary buffers. This will be set during import when appending from a file.
</member>
<member name="buffers" type="PackedByteArray[]" setter="set_buffers" getter="get_buffers" default="[]">
</member>
@@ -275,6 +276,9 @@
</member>
<member name="create_animations" type="bool" setter="set_create_animations" getter="get_create_animations" default="true">
</member>
+ <member name="filename" type="String" setter="set_filename" getter="get_filename" default="&quot;&quot;">
+ The file name associated with this GLTF data. If it ends with [code].gltf[/code], this is text-based GLTF, otherwise this is binary GLB. This will be set during import when appending from a file.
+ </member>
<member name="glb_data" type="PackedByteArray" setter="set_glb_data" getter="get_glb_data" default="PackedByteArray()">
</member>
<member name="json" type="Dictionary" setter="set_json" getter="get_json" default="{}">
diff --git a/modules/gltf/gltf_state.cpp b/modules/gltf/gltf_state.cpp
index 87d15066f0..c0ec004fd6 100644
--- a/modules/gltf/gltf_state.cpp
+++ b/modules/gltf/gltf_state.cpp
@@ -64,6 +64,8 @@ void GLTFState::_bind_methods() {
ClassDB::bind_method(D_METHOD("set_scene_name", "scene_name"), &GLTFState::set_scene_name);
ClassDB::bind_method(D_METHOD("get_base_path"), &GLTFState::get_base_path);
ClassDB::bind_method(D_METHOD("set_base_path", "base_path"), &GLTFState::set_base_path);
+ ClassDB::bind_method(D_METHOD("get_filename"), &GLTFState::get_filename);
+ ClassDB::bind_method(D_METHOD("set_filename", "filename"), &GLTFState::set_filename);
ClassDB::bind_method(D_METHOD("get_root_nodes"), &GLTFState::get_root_nodes);
ClassDB::bind_method(D_METHOD("set_root_nodes", "root_nodes"), &GLTFState::set_root_nodes);
ClassDB::bind_method(D_METHOD("get_textures"), &GLTFState::get_textures);
@@ -109,6 +111,7 @@ void GLTFState::_bind_methods() {
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "materials", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_materials", "get_materials"); // Vector<Ref<Material>
ADD_PROPERTY(PropertyInfo(Variant::STRING, "scene_name"), "set_scene_name", "get_scene_name"); // String
ADD_PROPERTY(PropertyInfo(Variant::STRING, "base_path"), "set_base_path", "get_base_path"); // String
+ ADD_PROPERTY(PropertyInfo(Variant::STRING, "filename"), "set_filename", "get_filename"); // String
ADD_PROPERTY(PropertyInfo(Variant::PACKED_INT32_ARRAY, "root_nodes"), "set_root_nodes", "get_root_nodes"); // Vector<int>
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "textures", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_textures", "get_textures"); // Vector<Ref<GLTFTexture>>
ADD_PROPERTY(PropertyInfo(Variant::ARRAY, "texture_samplers", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_EDITOR), "set_texture_samplers", "get_texture_samplers"); //Vector<Ref<GLTFTextureSampler>>
@@ -164,11 +167,11 @@ void GLTFState::set_minor_version(int p_minor_version) {
minor_version = p_minor_version;
}
-String GLTFState::get_copyright() {
+String GLTFState::get_copyright() const {
return copyright;
}
-void GLTFState::set_copyright(String p_copyright) {
+void GLTFState::set_copyright(const String &p_copyright) {
copyright = p_copyright;
}
@@ -381,6 +384,14 @@ void GLTFState::set_base_path(String p_base_path) {
base_path = p_base_path;
}
+String GLTFState::get_filename() const {
+ return filename;
+}
+
+void GLTFState::set_filename(const String &p_filename) {
+ filename = p_filename;
+}
+
Variant GLTFState::get_additional_data(const StringName &p_extension_name) {
return additional_data[p_extension_name];
}
diff --git a/modules/gltf/gltf_state.h b/modules/gltf/gltf_state.h
index d122049c0b..91af8f91a4 100644
--- a/modules/gltf/gltf_state.h
+++ b/modules/gltf/gltf_state.h
@@ -47,8 +47,8 @@ class GLTFState : public Resource {
GDCLASS(GLTFState, Resource);
friend class GLTFDocument;
- String filename;
String base_path;
+ String filename;
Dictionary json;
int major_version = 0;
int minor_version = 0;
@@ -126,8 +126,8 @@ public:
int get_minor_version();
void set_minor_version(int p_minor_version);
- String get_copyright();
- void set_copyright(String p_copyright);
+ String get_copyright() const;
+ void set_copyright(const String &p_copyright);
Vector<uint8_t> get_glb_data();
void set_glb_data(Vector<uint8_t> p_glb_data);
@@ -171,6 +171,9 @@ public:
String get_base_path();
void set_base_path(String p_base_path);
+ String get_filename() const;
+ void set_filename(const String &p_filename);
+
PackedInt32Array get_root_nodes();
void set_root_nodes(PackedInt32Array p_root_nodes);