Update remaining physics exclude parameters to use TypedArray

Also update the documentation to refer to the get_rid() method.
This commit is contained in:
Ricardo Buring 2022-11-23 18:32:30 +01:00
parent a8a88194a5
commit 4453d63bb0
12 changed files with 46 additions and 46 deletions

View file

@ -187,7 +187,7 @@ TypedArray<RID> PhysicsRayQueryParameters3D::get_exclude() const {
}
void PhysicsRayQueryParameters3D::_bind_methods() {
ClassDB::bind_static_method("PhysicsRayQueryParameters3D", D_METHOD("create", "from", "to", "collision_mask", "exclude"), &PhysicsRayQueryParameters3D::create, DEFVAL(UINT32_MAX), DEFVAL(Vector<RID>()));
ClassDB::bind_static_method("PhysicsRayQueryParameters3D", D_METHOD("create", "from", "to", "collision_mask", "exclude"), &PhysicsRayQueryParameters3D::create, DEFVAL(UINT32_MAX), DEFVAL(TypedArray<RID>()));
ClassDB::bind_method(D_METHOD("set_from", "from"), &PhysicsRayQueryParameters3D::set_from);
ClassDB::bind_method(D_METHOD("get_from"), &PhysicsRayQueryParameters3D::get_from);
@ -235,19 +235,19 @@ Ref<PhysicsRayQueryParameters3D> PhysicsRayQueryParameters3D::create(Vector3 p_f
return params;
}
void PhysicsPointQueryParameters3D::set_exclude(const Vector<RID> &p_exclude) {
void PhysicsPointQueryParameters3D::set_exclude(const TypedArray<RID> &p_exclude) {
parameters.exclude.clear();
for (int i = 0; i < p_exclude.size(); i++) {
parameters.exclude.insert(p_exclude[i]);
}
}
Vector<RID> PhysicsPointQueryParameters3D::get_exclude() const {
Vector<RID> ret;
TypedArray<RID> PhysicsPointQueryParameters3D::get_exclude() const {
TypedArray<RID> ret;
ret.resize(parameters.exclude.size());
int idx = 0;
for (const RID &E : parameters.exclude) {
ret.write[idx++] = E;
ret[idx++] = E;
}
return ret;
}
@ -290,19 +290,19 @@ void PhysicsShapeQueryParameters3D::set_shape_rid(const RID &p_shape) {
}
}
void PhysicsShapeQueryParameters3D::set_exclude(const Vector<RID> &p_exclude) {
void PhysicsShapeQueryParameters3D::set_exclude(const TypedArray<RID> &p_exclude) {
parameters.exclude.clear();
for (int i = 0; i < p_exclude.size(); i++) {
parameters.exclude.insert(p_exclude[i]);
}
}
Vector<RID> PhysicsShapeQueryParameters3D::get_exclude() const {
Vector<RID> ret;
TypedArray<RID> PhysicsShapeQueryParameters3D::get_exclude() const {
TypedArray<RID> ret;
ret.resize(parameters.exclude.size());
int idx = 0;
for (const RID &E : parameters.exclude) {
ret.write[idx++] = E;
ret[idx++] = E;
}
return ret;
}
@ -482,37 +482,37 @@ void PhysicsDirectSpaceState3D::_bind_methods() {
///////////////////////////////
Vector<RID> PhysicsTestMotionParameters3D::get_exclude_bodies() const {
Vector<RID> exclude;
TypedArray<RID> PhysicsTestMotionParameters3D::get_exclude_bodies() const {
TypedArray<RID> exclude;
exclude.resize(parameters.exclude_bodies.size());
int body_index = 0;
for (RID body : parameters.exclude_bodies) {
exclude.write[body_index++] = body;
for (const RID &body : parameters.exclude_bodies) {
exclude[body_index++] = body;
}
return exclude;
}
void PhysicsTestMotionParameters3D::set_exclude_bodies(const Vector<RID> &p_exclude) {
for (RID body : p_exclude) {
parameters.exclude_bodies.insert(body);
void PhysicsTestMotionParameters3D::set_exclude_bodies(const TypedArray<RID> &p_exclude) {
for (int i = 0; i < p_exclude.size(); i++) {
parameters.exclude_bodies.insert(p_exclude[i]);
}
}
Array PhysicsTestMotionParameters3D::get_exclude_objects() const {
Array exclude;
TypedArray<uint64_t> PhysicsTestMotionParameters3D::get_exclude_objects() const {
TypedArray<uint64_t> exclude;
exclude.resize(parameters.exclude_objects.size());
int object_index = 0;
for (ObjectID object_id : parameters.exclude_objects) {
for (const ObjectID &object_id : parameters.exclude_objects) {
exclude[object_index++] = object_id;
}
return exclude;
}
void PhysicsTestMotionParameters3D::set_exclude_objects(const Array &p_exclude) {
void PhysicsTestMotionParameters3D::set_exclude_objects(const TypedArray<uint64_t> &p_exclude) {
for (int i = 0; i < p_exclude.size(); ++i) {
ObjectID object_id = p_exclude[i];
ERR_CONTINUE(object_id.is_null());