www.gusucode.com > mbctools 工具箱 matlab 源码程序 > mbctools/@xregbdrydev/StoreStatus.m

    function bdev = StoreStatus(bdev,con,sfopts,sp,bp)
%STORESTATUS store fit results and status in bdrydev
%
% bdev = StoreStatus(bdev,con,sfopts,sp,bp);


%  Copyright 2008 The MathWorks, Inc. and Ford Global Technologies, Inc.
bdev.SpecialPoints  = sp;
bdev.BoundaryPoints = bp;
bdev.Constraint = con;

% Update the staus info
F = pBdrydevStatusFlags( bdev );
if sfopts.doSpecialPoints
    if ~isempty(bdev.BoundaryPointOptions),
        bdev.Status = bitor( bdev.Status, F.CanFindBoundaryPoints );
    elseif ~isempty(bdev.ConstraintFitOptions),
        bdev.Status = bitor( bdev.Status, F.CanFitConstraint );
    else
        bdev.Status = bitor( bdev.Status, F.ConstraintFitted );
    end
end
if sfopts.doBoundaryPoints,
    if ~isempty(bdev.ConstraintFitOptions),
        bdev.Status = bitor( bdev.Status, F.CanFitConstraint );
    else
        bdev.Status = bitor( bdev.Status, F.ConstraintFitted );
    end
end
if sfopts.doFitConstraint,
    bdev.Status = bitor( bdev.Status, F.ConstraintFitted );
end

if sfopts.doSpecialPoints && ~isempty(bdev.BoundaryPointOptions) && ~sfopts.doBoundaryPoints ...
        && ~isempty(bdev.ConstraintFitOptions),
    % Can't now fit constraint or say that the constraint is fitted
    bdev.Status = bitand( bdev.Status, bitcmp( F.CanFitConstraint ) );
    bdev.Status = bitand( bdev.Status, bitcmp( F.ConstraintFitted ) );
end
if sfopts.doBoundaryPoints && ~isempty(bdev.ConstraintFitOptions) && ~sfopts.doFitConstraint,
    % Can't now  say that the constraint is fitted
    bdev.Status = bitand( bdev.Status, bitcmp( F.ConstraintFitted ) );
end

xregpointer(bdev);