www.gusucode.com > mbcdesign 工具箱 matlab 源码程序 > mbcdesign/@conbase/pGenerateObjectList.m
function [OptionObjects, OptionNames, ObjectIndex] = pGenerateObjectList(... obj, classes) %PGENERATEOBJECTLIST Generate a list of constraints for a "type chooser" dialog % % [OBJECTS, NAMES, INDEX] = PGENERATEOBJECTLIST(OBJ, CLASSES) % % See also CONBASE, % CONBASE/GUITYPECHOOSER, % CONBASE/GUITYPEANDFACTORSCHOOSER % Copyright 2005 The MathWorks, Inc. and Ford Global Technologies, Inc. C_obj = class(obj); OptionObjects = cell(1, numel(classes)); cif = getInputFactors(obj); ActNF = length(cif); ObjectFound = false; ObjectIndex = 0; ObjectOK = true(size(OptionObjects)); for n = 1:numel(classes) ThisObjProto = feval(classes{n}); if strcmp(C_obj, class(ThisObjProto)) OptionObjects{n} = obj; ObjectFound = true; ObjectIndex = n; else NF = nActiveFactorsAllowed(ThisObjProto); ObjectOK(n) = (ActNF>=NF(1)); if ObjectOK(n) ThisObj = feval(classes{n}, cif); OptionObjects{n} = ThisObj; end end end % Remove constraints with wrong factor requirements OptionObjects = OptionObjects(ObjectOK); ObjectIndex = ObjectIndex - sum(~ObjectOK(1:ObjectIndex-1)); % Append current object if required if ~ObjectFound OptionObjects = [OptionObjects, {obj}]; ObjectIndex = length(OptionObjects); end OptionNames = cell(size(OptionObjects)); for n = 1:length(OptionNames) OptionNames{n} = typename(OptionObjects{n}); end %------------------------------------------------------------------------------| % EOF %------------------------------------------------------------------------------|