obstacle avoidance
This commit is contained in:
19
geometries/@rectangularPrism/closestToPoint.m
Normal file
19
geometries/@rectangularPrism/closestToPoint.m
Normal 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
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user