66 lines
1.9 KiB
Matlab
66 lines
1.9 KiB
Matlab
classdef Potentials < handle & matlab.mixin.Copyable
|
|
|
|
properties (Access = private)
|
|
|
|
PotentialDefaults = struct('TrapFrequency', 100e3);
|
|
|
|
end
|
|
|
|
properties (Access = public)
|
|
TrapFrequency;
|
|
end
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%- Methods
|
|
|
|
methods
|
|
function this = Potentials(varargin)
|
|
this.TrapFrequency = this.PotentialDefaults.TrapFrequency;
|
|
end
|
|
|
|
function restoreDefaults(this)
|
|
this.TrapFrequency = this.PotentialDefaults.TrapFrequency;
|
|
end
|
|
|
|
end % - lifecycle
|
|
|
|
% methods
|
|
|
|
% end % - setters and getters
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
%- Methods
|
|
|
|
methods(Access = protected)
|
|
function cp = copyElement(this)
|
|
% Shallow copy object
|
|
cp = copyElement@matlab.mixin.Copyable(this);
|
|
|
|
% Forces the setter to redefine the function handles to the new copied object
|
|
|
|
pl = properties(this);
|
|
for k = 1:length(pl)
|
|
sc = superclasses(this.(pl{k}));
|
|
if any(contains(sc,{'matlab.mixin.Copyable'}))
|
|
cp.(pl{k}) = this.(pl{k}).copy();
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
methods (Static)
|
|
|
|
% Creates an Instance of Class, ensures singleton behaviour (that there
|
|
% can only be one Instance of this class
|
|
function singleObj = getInstance(varargin)
|
|
% Creates an Instance of Class, ensures singleton behaviour
|
|
persistent localObj;
|
|
if isempty(localObj) || ~isvalid(localObj)
|
|
localObj = Simulator.Potentials(varargin{:});
|
|
end
|
|
singleObj = localObj;
|
|
end
|
|
end
|
|
|
|
end
|