obstacle avoidance

This commit is contained in:
2025-12-23 14:57:13 -08:00
parent 4fa942564a
commit 8315b6c511
6 changed files with 53 additions and 9 deletions

View File

@@ -0,0 +1,19 @@
function cPos = closestToPoint(obj, pos)
arguments (Input)
obj (1, 1) {mustBeA(obj, 'rectangularPrism')};
pos (:, 3) double;
end
arguments (Output)
cPos (:, 3) double;
end
cPos = NaN(1, 3);
for ii = 1:3
if pos(ii) < obj.minCorner(ii)
cPos(ii) = obj.minCorner(ii);
elseif pos(ii) > obj.maxCorner(ii)
cPos(ii) = obj.maxCorner(ii);
else
cPos(ii) = pos(ii);
end
end
end

View File

@@ -4,7 +4,7 @@ function d = distance(obj, pos)
pos (:, 3) double;
end
arguments (Output)
d (:, 1) double
d (:, 1) double;
end
if obj.contains(pos)
% Queried point is inside geometry

View File

@@ -36,6 +36,7 @@ classdef rectangularPrism
[obj ] = initializeRandom(obj, tag, label, minDimension, maxDimension, domain);
[r ] = random(obj);
[c ] = contains(obj, pos);
[cPos ] = closestToPoint(obj, pos);
[d ] = distance(obj, pos);
[g ] = distanceGradient(obj, pos);
[c ] = containsLine(obj, pos1, pos2);