32 lines
1.2 KiB
Matlab
32 lines
1.2 KiB
Matlab
function obj = initialize(obj, pos, collisionGeometry, sensorModel, comRange, maxIter, label, plotCommsGeometry)
|
|
arguments (Input)
|
|
obj (1, 1) {mustBeA(obj, 'agent')};
|
|
pos (1, 3) double;
|
|
collisionGeometry (1, 1) {mustBeGeometry};
|
|
sensorModel (1, 1) {mustBeSensor};
|
|
comRange (1, 1) double;
|
|
maxIter (1, 1) double;
|
|
label (1, 1) string = "";
|
|
plotCommsGeometry (1, 1) logical = false;
|
|
end
|
|
arguments (Output)
|
|
obj (1, 1) {mustBeA(obj, 'agent')};
|
|
end
|
|
|
|
obj.pos = pos;
|
|
obj.collisionGeometry = collisionGeometry;
|
|
obj.sensorModel = sensorModel;
|
|
obj.label = label;
|
|
obj.plotCommsGeometry = plotCommsGeometry;
|
|
obj.stepDecayRate = obj.initialStepSize / maxIter;
|
|
|
|
% Initialize performance vector
|
|
obj.performance = [0, NaN(1, maxIter), 0];
|
|
|
|
% Add spherical geometry based on com range
|
|
obj.commsGeometry = obj.commsGeometry.initialize(obj.pos, comRange, REGION_TYPE.COMMS, sprintf("%s Comms Geometry", obj.label));
|
|
|
|
% Initialize FOV cone
|
|
obj.fovGeometry = cone;
|
|
obj.fovGeometry = obj.fovGeometry.initialize([obj.pos(1:3)], tand(obj.sensorModel.alphaTilt) * obj.pos(3), obj.pos(3), REGION_TYPE.FOV, sprintf("%s FOV", obj.label));
|
|
end |