www.gusucode.com > mbcview 工具箱matlab源码程序 > mbcview/@cgproject/saveobj.m

    function PROJ= saveobj(PROJ)
%SAVEOBJ

%  Copyright 2000-2014 The MathWorks, Inc. and Ford Global Technologies, Inc.

if isempty(PROJ.heap)
    % pointers already stored
    
    refs= saveptrs(PROJ);
    % clear connections
    PROJ.Connections = [];
    if ~isempty(refs)
        % save file
        if iscell(refs)
            refs= [refs{:}];
        end
        refs = unique(refs);
        % remove null pointers from list
        refs= refs(refs~=0);
        
        % storage for heap inside the cgproject object
        heap.ptrs= refs;
        heap.info= infoarray(refs);
        
        
        
        % delete the dynamic copy of the cgproject
        ind= find(heap.ptrs==address(PROJ));
        heap.info(ind)= [];
        heap.ptrs(ind)= [];
        
        % execute saveobj on all heap objects
        for i=1:length(heap.info)
            obj= heap.info{i};
            if isobject(obj)
                heap.info{i} = saveobj(obj);
            end
        end
    else
        heap= [];
    end
    PROJ.heap= heap;
    
    PROJ.SavedMBCVersion = mbcver;
    hExt = mbcextensions.Extensions.Cage;
    hExtModel = mbcextensions.Extensions.Model;  % Model Browser tools may affect Cage items
    PROJ.SavedAddonVersions = [hExt.AddOnNames(:), hExt.AddOnVersions(:); ...
        hExtModel.AddOnNames(:), hExtModel.AddOnVersions(:)];
end