added domain constraints

This commit is contained in:
2025-12-23 17:22:34 -08:00
parent 8315b6c511
commit 14e372ae55
3 changed files with 60 additions and 18 deletions

View File

@@ -1,11 +1,12 @@
function [obj] = initializeRandom(obj, tag, label, minDimension, maxDimension, domain)
function [obj] = initializeRandom(obj, tag, label, minDimension, maxDimension, domain, minAlt)
arguments (Input)
obj (1, 1) {mustBeA(obj, 'rectangularPrism')};
tag (1, 1) REGION_TYPE = REGION_TYPE.INVALID;
label (1, 1) string = "";
minDimension (1, 1) double = 10;
maxDimension (1, 1) double= 20;
maxDimension (1, 1) double = 20;
domain (1, 1) {mustBeGeometry} = rectangularPrism;
minAlt (1, 1) double = 0;
end
arguments (Output)
obj (1, 1) {mustBeA(obj, 'rectangularPrism')};
@@ -27,7 +28,7 @@ function [obj] = initializeRandom(obj, tag, label, minDimension, maxDimension, d
while ~domain.contains(candidateMaxCorner) || all(domain.objective.groundPos + domain.objective.protectedRange >= candidateMinCorner(1:2), 2) && all(domain.objective.groundPos - domain.objective.protectedRange <= candidateMaxCorner(1:2), 2)
if ii == 0 || ii > 10
candidateMinCorner = domain.random();
candidateMinCorner(3) = 0; % bind to floor
candidateMinCorner(3) = minAlt; % bind to floor (plus minimum altitude constraint)
ii = 1;
end