You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-12-04 17:04:49 +00:00
Change ARVRPositionalTracker to a reference and better expose it to GDNative
This commit is contained in:
@@ -48,12 +48,17 @@ void ARVRServer::_bind_methods() {
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "world_scale"), "set_world_scale", "get_world_scale");
|
||||
|
||||
ClassDB::bind_method(D_METHOD("add_interface", "interface"), &ARVRServer::add_interface);
|
||||
ClassDB::bind_method(D_METHOD("clear_primary_interface_if", "interface"), &ARVRServer::clear_primary_interface_if);
|
||||
ClassDB::bind_method(D_METHOD("get_interface_count"), &ARVRServer::get_interface_count);
|
||||
ClassDB::bind_method(D_METHOD("remove_interface", "interface"), &ARVRServer::remove_interface);
|
||||
ClassDB::bind_method(D_METHOD("get_interface", "idx"), &ARVRServer::get_interface);
|
||||
ClassDB::bind_method(D_METHOD("get_interfaces"), &ARVRServer::get_interfaces);
|
||||
ClassDB::bind_method(D_METHOD("find_interface", "name"), &ARVRServer::find_interface);
|
||||
ClassDB::bind_method(D_METHOD("get_tracker_count"), &ARVRServer::get_tracker_count);
|
||||
ClassDB::bind_method(D_METHOD("get_tracker", "idx"), &ARVRServer::get_tracker);
|
||||
ClassDB::bind_method(D_METHOD("add_tracker", "tracker"), &ARVRServer::add_tracker);
|
||||
ClassDB::bind_method(D_METHOD("remove_tracker", "tracker"), &ARVRServer::remove_tracker);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_primary_interface"), &ARVRServer::get_primary_interface);
|
||||
ClassDB::bind_method(D_METHOD("set_primary_interface", "interface"), &ARVRServer::set_primary_interface);
|
||||
@@ -265,15 +270,15 @@ int ARVRServer::get_free_tracker_id_for_type(TrackerType p_tracker_type) {
|
||||
return tracker_id;
|
||||
};
|
||||
|
||||
void ARVRServer::add_tracker(ARVRPositionalTracker *p_tracker) {
|
||||
ERR_FAIL_NULL(p_tracker);
|
||||
void ARVRServer::add_tracker(Ref<ARVRPositionalTracker> p_tracker) {
|
||||
ERR_FAIL_COND(p_tracker.is_null());
|
||||
|
||||
trackers.push_back(p_tracker);
|
||||
emit_signal("tracker_added", p_tracker->get_name(), p_tracker->get_type(), p_tracker->get_tracker_id());
|
||||
};
|
||||
|
||||
void ARVRServer::remove_tracker(ARVRPositionalTracker *p_tracker) {
|
||||
ERR_FAIL_NULL(p_tracker);
|
||||
void ARVRServer::remove_tracker(Ref<ARVRPositionalTracker> p_tracker) {
|
||||
ERR_FAIL_COND(p_tracker.is_null());
|
||||
|
||||
int idx = -1;
|
||||
for (int i = 0; i < trackers.size(); i++) {
|
||||
@@ -295,14 +300,14 @@ int ARVRServer::get_tracker_count() const {
|
||||
return trackers.size();
|
||||
};
|
||||
|
||||
ARVRPositionalTracker *ARVRServer::get_tracker(int p_index) const {
|
||||
ERR_FAIL_INDEX_V(p_index, trackers.size(), NULL);
|
||||
Ref<ARVRPositionalTracker> ARVRServer::get_tracker(int p_index) const {
|
||||
ERR_FAIL_INDEX_V(p_index, trackers.size(), Ref<ARVRPositionalTracker>());
|
||||
|
||||
return trackers[p_index];
|
||||
};
|
||||
|
||||
ARVRPositionalTracker *ARVRServer::find_by_type_and_id(TrackerType p_tracker_type, int p_tracker_id) const {
|
||||
ERR_FAIL_COND_V(p_tracker_id == 0, NULL);
|
||||
Ref<ARVRPositionalTracker> ARVRServer::find_by_type_and_id(TrackerType p_tracker_type, int p_tracker_id) const {
|
||||
ERR_FAIL_COND_V(p_tracker_id == 0, Ref<ARVRPositionalTracker>());
|
||||
|
||||
for (int i = 0; i < trackers.size(); i++) {
|
||||
if (trackers[i]->get_type() == p_tracker_type && trackers[i]->get_tracker_id() == p_tracker_id) {
|
||||
@@ -310,7 +315,7 @@ ARVRPositionalTracker *ARVRServer::find_by_type_and_id(TrackerType p_tracker_typ
|
||||
};
|
||||
};
|
||||
|
||||
return NULL;
|
||||
return Ref<ARVRPositionalTracker>();
|
||||
};
|
||||
|
||||
Ref<ARVRInterface> ARVRServer::get_primary_interface() const {
|
||||
|
||||
Reference in New Issue
Block a user