Browse Source

Added bindings for methods related to obtaining base an instance from VisualInstance

(cherry picked from commit 33a0011ab292214cee81363bbb50d9de123af825)
Juan Linietsky 6 years ago
parent
commit
fcbe50befa
2 changed files with 10 additions and 0 deletions
  1. 8 0
      scene/3d/visual_instance.cpp
  2. 2 0
      scene/3d/visual_instance.h

+ 8 - 0
scene/3d/visual_instance.cpp

@@ -123,6 +123,8 @@ void VisualInstance::_bind_methods() {
 
 
 	ClassDB::bind_method(D_METHOD("_get_visual_instance_rid"), &VisualInstance::_get_visual_instance_rid);
 	ClassDB::bind_method(D_METHOD("_get_visual_instance_rid"), &VisualInstance::_get_visual_instance_rid);
 	ClassDB::bind_method(D_METHOD("set_base", "base"), &VisualInstance::set_base);
 	ClassDB::bind_method(D_METHOD("set_base", "base"), &VisualInstance::set_base);
+	ClassDB::bind_method(D_METHOD("get_base"), &VisualInstance::get_base);
+	ClassDB::bind_method(D_METHOD("get_instance"), &VisualInstance::get_instance);
 	ClassDB::bind_method(D_METHOD("set_layer_mask", "mask"), &VisualInstance::set_layer_mask);
 	ClassDB::bind_method(D_METHOD("set_layer_mask", "mask"), &VisualInstance::set_layer_mask);
 	ClassDB::bind_method(D_METHOD("get_layer_mask"), &VisualInstance::get_layer_mask);
 	ClassDB::bind_method(D_METHOD("get_layer_mask"), &VisualInstance::get_layer_mask);
 	ClassDB::bind_method(D_METHOD("set_layer_mask_bit", "layer", "enabled"), &VisualInstance::set_layer_mask_bit);
 	ClassDB::bind_method(D_METHOD("set_layer_mask_bit", "layer", "enabled"), &VisualInstance::set_layer_mask_bit);
@@ -136,6 +138,12 @@ void VisualInstance::_bind_methods() {
 void VisualInstance::set_base(const RID &p_base) {
 void VisualInstance::set_base(const RID &p_base) {
 
 
 	VisualServer::get_singleton()->instance_set_base(instance, p_base);
 	VisualServer::get_singleton()->instance_set_base(instance, p_base);
+	base = p_base;
+}
+
+RID VisualInstance::get_base() const {
+
+	return base;
 }
 }
 
 
 VisualInstance::VisualInstance() {
 VisualInstance::VisualInstance() {

+ 2 - 0
scene/3d/visual_instance.h

@@ -43,6 +43,7 @@ class VisualInstance : public Spatial {
 	GDCLASS(VisualInstance, Spatial);
 	GDCLASS(VisualInstance, Spatial);
 	OBJ_CATEGORY("3D Visual Nodes");
 	OBJ_CATEGORY("3D Visual Nodes");
 
 
+	RID base;
 	RID instance;
 	RID instance;
 	uint32_t layers;
 	uint32_t layers;
 
 
@@ -69,6 +70,7 @@ public:
 	virtual AABB get_transformed_aabb() const; // helper
 	virtual AABB get_transformed_aabb() const; // helper
 
 
 	void set_base(const RID &p_base);
 	void set_base(const RID &p_base);
+	RID get_base() const;
 
 
 	void set_layer_mask(uint32_t p_mask);
 	void set_layer_mask(uint32_t p_mask);
 	uint32_t get_layer_mask() const;
 	uint32_t get_layer_mask() const;