Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions matRad/bioModels/matRad_BiologicalModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,13 @@
folders = [folders matRad_cfg.userfolders];

persistent metaBioModels lastOptionalPaths

%First we do a sanity check if persistently stored metaclasses are valid
if ~matRad_cfg.isOctave && ~isempty(metaBioModels) && ~all(cellfun(@isvalid,metaBioModels))
matRad_cfg.dispWarning('Found invalid BioModels, updating model cache.');
metaBioModels = [];
end

if isempty(metaBioModels) || (~isempty(lastOptionalPaths) && ~isequal(lastOptionalPaths, folders))
lastOptionalPaths = folders;
metaBioModels = matRad_findSubclasses(meta.class.fromName(mfilename('class')),'folders',folders,'includeSubfolders',true);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,14 @@
%Get available, valid classes through call to matRad helper function
%for finding subclasses
persistent allAvailableDoseEngines lastOptionalPaths

%First we do a sanity check if persistently stored metaclasses are valid
if ~matRad_cfg.isOctave && ~isempty(allAvailableDoseEngines) && ~all(cellfun(@isvalid,allAvailableDoseEngines))
matRad_cfg.dispWarning('Found invalid Dose Engines, updating engine cache.');
allAvailableDoseEngines = [];
end

%Check if we need to find the engines and if yes, do
if isempty(allAvailableDoseEngines) || (~isempty(lastOptionalPaths) && ~isequal(lastOptionalPaths, optionalPaths))
lastOptionalPaths = optionalPaths;
allAvailableDoseEngines = matRad_findSubclasses('DoseEngines.matRad_DoseEngineBase','packages',{'DoseEngines'},'folders',optionalPaths,'includeAbstract',false);
Expand Down
7 changes: 7 additions & 0 deletions matRad/scenarios/matRad_ScenarioModel.m
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,13 @@ function listAllScenarios(this)
folders = [folders matRad_cfg.userfolders];

persistent metaScenarioModels lastOptionalPaths

%First we do a sanity check if persistently stored metaclasses are valid
if ~matRad_cfg.isOctave && ~isempty(metaScenarioModels) && ~all(cellfun(@isvalid,metaScenarioModels))
matRad_cfg.dispWarning('Found invalid ScenarioModels, updating model cache.');
metaScenarioModels = [];
end

if isempty(metaScenarioModels) || (~isempty(lastOptionalPaths) && ~isequal(lastOptionalPaths, folders))
lastOptionalPaths = folders;
metaScenarioModels = matRad_findSubclasses(meta.class.fromName(mfilename('class')),'folders',folders,'includeSubfolders',true);
Expand Down
7 changes: 7 additions & 0 deletions matRad/steering/matRad_StfGeneratorBase.m
Original file line number Diff line number Diff line change
Expand Up @@ -446,6 +446,13 @@ function createPatientGeometry(this)
%Get available, valid classes through call to matRad helper function
%for finding subclasses
persistent allAvailableStfGenerators lastOptionalPaths

%First we do a sanity check if persistently stored metaclasses are valid
if ~matRad_cfg.isOctave && ~isempty(allAvailableStfGenerators) && ~all(cellfun(@isvalid,allAvailableStfGenerators))
matRad_cfg.dispWarning('Found invalid Steering Geometry Generators, updating cache.');
allAvailableStfGenerators = [];
end

if isempty(allAvailableStfGenerators) || (~isempty(lastOptionalPaths) && ~isequal(lastOptionalPaths, optionalPaths))
lastOptionalPaths = optionalPaths;
allAvailableStfGenerators = matRad_findSubclasses(mfilename('class'),'folders',optionalPaths,'includeAbstract',false);
Expand Down
Loading