0
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 1 % SETPORTPROPERTIES Sets names of the specified SSM ports.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 3 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 4 % DESCRIPTION: SETPORTPROPERTIES Sets names of the specified SSM ports.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 5 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 6 % CALL: obj = obj.setPortProperties(plist);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 7 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 8 % <a href="matlab:utils.helper.displayMethodInfo('ssm', 'setPortProperties')">Parameters Description</a>
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 9 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 10 % VERSION: $Id: setPortProperties.m,v 1.5 2011/04/08 08:56:23 hewitson Exp $
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 11 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 12 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 13
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 14 function varargout = setPortProperties(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 15
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 16 %%% Check if this is a call for parameters
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 17 if utils.helper.isinfocall(varargin{:})
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 18 varargout{1} = getInfo(varargin{3});
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 19 return
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 20 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 21
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 22 import utils.const.*
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 23 utils.helper.msg(msg.PROC3, 'running %s/%s', mfilename('class'), mfilename);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 24
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 25 % Collect input variable names
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 26 in_names = cell(size(varargin));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 27 for ii = 1:nargin,in_names{ii} = inputname(ii);end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 28
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 29 [sys, ssm_invars, rest] = utils.helper.collect_objects(varargin(:), 'ssm', in_names);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 30 [pl, invars2, rest] = utils.helper.collect_objects(rest(:), 'plist');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 31 if ~isempty(rest)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 32 pl = combine(pl, plist(rest{:}));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 33 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 34 pl = combine(pl, getDefaultPlist());
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 35
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 36 %%% Internal call: Only one object + don't look for a plist
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 37 internal = strcmp(varargin{end}, 'internal');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 38
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 39 sys = copy(sys, nargout);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 40
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 41 %% parameters
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 42
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 43 field = pl.find('field');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 44 portIds = pl.find('ports');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 45 newNames = pl.find('NEW_NAMES');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 46 newDescriptions = pl.find('NEW_DESCRIPTIONS');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 47 newUnits = pl.find('NEW_UNITS');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 48
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 49 if ischar(newDescriptions)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 50 newDescriptions = {newDescriptions};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 51 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 52 if ischar(newNames)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 53 newNames = {newNames};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 54 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 55
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 56 % Some error checking....
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 57 if isempty(field)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 58 error('### Please specify the field of the block to modify');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 59 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 60
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 61 %% Loop over the input ssm objects
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 62 for kk = 1:numel(sys)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 63 block = sys(kk).(field);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 64
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 65 [blockPos portPos] = block.findPortWithMixedNames(portIds);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 66 if ~isempty(newDescriptions)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 67 if numel(newDescriptions) ~= numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 68 error('### Please specify one new description per block');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 69 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 70 for ii=1:numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 71 block(blockPos(ii)).ports(portPos(ii)).setDescription(newDescriptions(ii));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 72 % setting the new description
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 73 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 74 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 75 if ~isempty(newNames)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 76 if numel(newNames) ~= numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 77 error('### Please specify one new description per block');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 78 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 79 for ii=1:numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 80 block(blockPos(ii)).ports(portPos(ii)).setName( newNames(ii), block(blockPos(ii)).name);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 81 % setting port name. This call only modifies the blockName.portName
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 82 % part after the dot. The user shouldn't be able to do otherwise.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 83 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 84 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 85 if ~isempty(newUnits)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 86 if numel(newUnits) ~= numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 87 error('### Please specify one new description per block');
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 88 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 89 for ii=1:numel(blockPos)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 90 block(blockPos(ii)).ports(portPos(ii)).setUnits(newUnits(ii));
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 91 % setting units
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 92 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 93 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 94 if ~internal
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 95 % append history step
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 96 sys(kk).addHistory(getInfo('None'), pl, ssm_invars(kk), sys(kk).hist);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 97 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 98 end % End loop over block IDs
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 99
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 100 %% Set output
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 101 if nargout == numel(sys)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 102 for ii = 1:numel(sys)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 103 varargout{ii} = sys(ii);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 104 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 105 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 106 varargout{1} = sys;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 107 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 108 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 109
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 110 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 111 % Local Functions %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 112 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 113
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 114 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 115 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 116 % FUNCTION: getInfo
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 117 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 118 % DESCRIPTION: Get Info Object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 119 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 120 % HISTORY: 11-07-07 M Hewitson
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 121 % Creation.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 122 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 123 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 124
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 125 function ii = getInfo(varargin)
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 126 if nargin == 1 && strcmpi(varargin{1}, 'None')
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 127 sets = {};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 128 pl = [];
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 129 else
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 130 sets = {'Default'};
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 131 pl = getDefaultPlist;
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 132 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 133 % Build info object
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 134 ii = minfo(mfilename, 'ssm', 'ltpda', utils.const.categories.helper, '$Id: setPortProperties.m,v 1.5 2011/04/08 08:56:23 hewitson Exp $', sets, pl);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 135 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 136
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 137 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 138 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 139 % FUNCTION: getDefaultPlist
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 140 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 141 % DESCRIPTION: Get Default Plist
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 142 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 143 % HISTORY: 11-07-07 M Hewitson
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 144 % Creation.
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 145 %
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 146 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 147
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 148 function plo = getDefaultPlist()
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 149 plo = plist();
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 150
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 151 % field
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 152 p = param({'field', 'The field containing the port being changed.'}, {1, {'inputs', 'outputs', 'states'}, paramValue.SINGLE});
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 153 plo.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 154
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 155 % ports
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 156 p = param({'ports', 'Identifiers (cellstr of "blockNames"/"blockNames.portNames" or "ALL") of the ports you want to modify.'}, paramValue.EMPTY_CELL );
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 157 plo.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 158
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 159 % names
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 160 p = param({'NEW_NAMES', 'The new names(s) you want to set to the port(s). Use a cell-array, one entry for each port.'}, ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 161 paramValue.EMPTY_CELL );
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 162 plo.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 163
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 164 % descriptions
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 165 p = param({'NEW_DESCRIPTIONS', 'The new descriptions(s) you want to set to the port(s). Use a cell-array, one entry for each port.'}, ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 166 paramValue.EMPTY_CELL );
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 167 plo.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 168
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 169 % units
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 170 p = param({'NEW_UNITS', 'The new names(s) you want to set to the port(s). Use a unit vector, one entry for each port.'}, ...
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 171 {1, {unit.initObjectWithSize(1,0) }, paramValue.OPTIONAL});
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 172 plo.append(p);
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 173
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 174 end
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 175
Daniele Nicolodi <nicolodi@science.unitn.it>
parents:
diff
changeset
+ − 176