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
%------------------------------------------------------------------------------|