feat: modules moved and engine moved to submodule

This commit is contained in:
Jan van der Weide 2025-04-12 18:40:44 +02:00
parent dfb5e645cd
commit c33d2130cc
5136 changed files with 225275 additions and 64485 deletions

View file

@ -216,12 +216,7 @@ bool GodotSeparationRayShape3D::intersect_point(const Vector3 &p_point) const {
}
Vector3 GodotSeparationRayShape3D::get_closest_point_to(const Vector3 &p_point) const {
Vector3 s[2] = {
Vector3(0, 0, 0),
Vector3(0, 0, length)
};
return Geometry3D::get_closest_point_to_segment(p_point, s);
return Geometry3D::get_closest_point_to_segment(p_point, Vector3(0, 0, 0), Vector3(0, 0, length));
}
Vector3 GodotSeparationRayShape3D::get_moment_of_inertia(real_t p_mass) const {
@ -455,19 +450,14 @@ Vector3 GodotBoxShape3D::get_closest_point_to(const Vector3 &p_point) const {
//check segments
real_t min_distance = 1e20;
Vector3 closest_vertex = half_extents * p_point.sign();
Vector3 s[2] = {
closest_vertex,
closest_vertex
};
const Vector3 closest_vertex = half_extents * p_point.sign();
for (int i = 0; i < 3; i++) {
s[1] = closest_vertex;
s[1][i] = -s[1][i]; //edge
Vector3 segment_b = closest_vertex;
segment_b[i] = -segment_b[i]; //edge
Vector3 closest_edge = Geometry3D::get_closest_point_to_segment(p_point, s);
const Vector3 closest_edge = Geometry3D::get_closest_point_to_segment(p_point, closest_vertex, segment_b);
real_t d = p_point.distance_to(closest_edge);
const real_t d = p_point.distance_to(closest_edge);
if (d < min_distance) {
min_point = closest_edge;
min_distance = d;
@ -618,12 +608,10 @@ bool GodotCapsuleShape3D::intersect_point(const Vector3 &p_point) const {
}
Vector3 GodotCapsuleShape3D::get_closest_point_to(const Vector3 &p_point) const {
Vector3 s[2] = {
Vector3(0, -height * 0.5 + radius, 0),
Vector3(0, height * 0.5 - radius, 0),
};
const Vector3 segment_a = Vector3(0, -height * 0.5 + radius, 0);
const Vector3 segment_b = Vector3(0, height * 0.5 - radius, 0);
Vector3 p = Geometry3D::get_closest_point_to_segment(p_point, s);
const Vector3 p = Geometry3D::get_closest_point_to_segment(p_point, segment_a, segment_b);
if (p.distance_to(p_point) < radius) {
return p_point;
@ -772,12 +760,10 @@ Vector3 GodotCylinderShape3D::get_closest_point_to(const Vector3 &p_point) const
return proj_point;
} else {
Vector3 s[2] = {
Vector3(0, -height * 0.5, 0),
Vector3(0, height * 0.5, 0),
};
const Vector3 segment_a = Vector3(0, -height * 0.5, 0);
const Vector3 segment_b = Vector3(0, height * 0.5, 0);
Vector3 p = Geometry3D::get_closest_point_to_segment(p_point, s);
const Vector3 p = Geometry3D::get_closest_point_to_segment(p_point, segment_a, segment_b);
if (p.distance_to(p_point) < radius) {
return p_point;
@ -852,7 +838,7 @@ void GodotConvexPolygonShape3D::project_range(const Vector3 &p_normal, const Tra
Vector3 GodotConvexPolygonShape3D::get_support(const Vector3 &p_normal) const {
// Skip if there are no vertices in the mesh
if (mesh.vertices.size() == 0) {
if (mesh.vertices.is_empty()) {
return Vector3();
}
@ -960,7 +946,7 @@ void GodotConvexPolygonShape3D::get_supports(const Vector3 &p_normal, int p_max,
for (int i = 0; i < ec; i++) {
real_t dot = (vertices[edges[i].vertex_a] - vertices[edges[i].vertex_b]).normalized().dot(p_normal);
dot = ABS(dot);
dot = Math::abs(dot);
if (dot < edge_support_threshold_lower && (edges[i].vertex_a == vtx || edges[i].vertex_b == vtx)) {
r_amount = 2;
r_type = FEATURE_EDGE;
@ -1068,12 +1054,10 @@ Vector3 GodotConvexPolygonShape3D::get_closest_point_to(const Vector3 &p_point)
const Geometry3D::MeshData::Edge *edges = mesh.edges.ptr();
int ec = mesh.edges.size();
for (int i = 0; i < ec; i++) {
Vector3 s[2] = {
vertices[edges[i].vertex_a],
vertices[edges[i].vertex_b]
};
const Vector3 segment_a = vertices[edges[i].vertex_a];
const Vector3 segment_b = vertices[edges[i].vertex_b];
Vector3 closest = Geometry3D::get_closest_point_to_segment(p_point, s);
Vector3 closest = Geometry3D::get_closest_point_to_segment(p_point, segment_a, segment_b);
real_t d = closest.distance_to(p_point);
if (d < min_distance) {
min_distance = d;
@ -1238,7 +1222,7 @@ void GodotFaceShape3D::get_supports(const Vector3 &p_normal, int p_max, Vector3
// check if edge is valid as a support
real_t dot = (vertex[i] - vertex[nx]).normalized().dot(n);
dot = ABS(dot);
dot = Math::abs(dot);
if (dot < edge_support_threshold_lower) {
r_amount = 2;
r_type = FEATURE_EDGE;
@ -1385,7 +1369,7 @@ void GodotConcavePolygonShape3D::_cull_segment(int p_idx, _SegmentCullParams *p_
}
bool GodotConcavePolygonShape3D::intersect_segment(const Vector3 &p_begin, const Vector3 &p_end, Vector3 &r_result, Vector3 &r_normal, int &r_face_index, bool p_hit_back_faces) const {
if (faces.size() == 0) {
if (faces.is_empty()) {
return false;
}
@ -1465,7 +1449,7 @@ bool GodotConcavePolygonShape3D::_cull(int p_idx, _CullParams *p_params) const {
void GodotConcavePolygonShape3D::cull(const AABB &p_local_aabb, QueryCallback p_callback, void *p_userdata, bool p_invert_backface_collision) const {
// make matrix local to concave
if (faces.size() == 0) {
if (faces.is_empty()) {
return;
}