📄 colorbar.c
字号:
/*
* cdatamapping = 'direct';
*/
mlfAssign(&cdatamapping, mxCreateString("direct"));
/*
*
* for i=1:length(ch),
*/
for (mclForStart(&iterator_0, mlfScalar(1.0), mlfLength(ch), NULL);
mclForNext(&iterator_0, &i);
) {
/*
* typ = get(ch(i),'type');
*/
mlfAssign(
&typ,
mlfGet(mlfIndexRef(ch, "(?)", i), mxCreateString("type"), NULL));
/*
* if strcmp(typ,'image'),
*/
if (mlfTobool(mlfStrcmp(typ, mxCreateString("image")))) {
/*
* hasimage = 1;
*/
mlfAssign(&hasimage, mlfScalar(1.0));
/*
* cdatamapping = get(ch(i), 'CDataMapping');
*/
mlfAssign(
&cdatamapping,
mlfGet(
mlfIndexRef(ch, "(?)", i),
mxCreateString("CDataMapping"),
NULL));
/*
* elseif strcmp(typ,'surface') & ...
*/
} else {
mxArray * a_ = mclInitialize(
mlfStrcmp(typ, mxCreateString("surface")));
if (mlfTobool(a_)
&& mlfTobool(
mlfAnd(
a_,
mlfStrcmp(
mlfGet(
mlfIndexRef(ch, "(?)", i),
mxCreateString("FaceColor"),
NULL),
mxCreateString("texturemap"))))) {
mxDestroyArray(a_);
/*
* strcmp(get(ch(i),'FaceColor'),'texturemap') % Texturemapped surf
* hasimage = 2;
*/
mlfAssign(&hasimage, mlfScalar(2.0));
/*
* cdatamapping = get(ch(i), 'CDataMapping');
*/
mlfAssign(
&cdatamapping,
mlfGet(
mlfIndexRef(ch, "(?)", i),
mxCreateString("CDataMapping"),
NULL));
/*
* elseif strcmp(typ,'patch') | strcmp(typ,'surface')
*/
} else {
mxDestroyArray(a_);
{
mxArray * a_ = mclInitialize(
mlfStrcmp(typ, mxCreateString("patch")));
if (mlfTobool(a_)
|| mlfTobool(
mlfOr(
a_,
mlfStrcmp(typ, mxCreateString("surface"))))) {
mxDestroyArray(a_);
/*
* cdatamapping = get(ch(i), 'CDataMapping');
*/
mlfAssign(
&cdatamapping,
mlfGet(
mlfIndexRef(ch, "(?)", i),
mxCreateString("CDataMapping"),
NULL));
} else {
mxDestroyArray(a_);
}
}
}
/*
* end
*/
}
/*
* end
*/
}
/*
*
* if ( strcmp(cdatamapping, 'scaled') )
*/
if (mlfTobool(mlfStrcmp(cdatamapping, mxCreateString("scaled")))) {
/*
* % Treat images and surfaces alike if cdatamapping == 'scaled'
* t = caxis;
*/
mlfAssign(&t, mlfNCaxis(1, NULL, NULL));
/*
* d = (t(2) - t(1))/size(colormap,1);
*/
mlfAssign(
&d,
mlfMrdivide(
mlfMinus(
mlfIndexRef(t, "(?)", mlfScalar(2.0)),
mlfIndexRef(t, "(?)", mlfScalar(1.0))),
mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0))));
/*
* t = [t(1)+d/2 t(2)-d/2];
*/
mlfAssign(
&t,
mlfHorzcat(
mlfPlus(
mlfIndexRef(t, "(?)", mlfScalar(1.0)),
mlfMrdivide(d, mlfScalar(2.0))),
mlfMinus(
mlfIndexRef(t, "(?)", mlfScalar(2.0)),
mlfMrdivide(d, mlfScalar(2.0))),
NULL));
/*
* else
*/
} else {
/*
* if hasimage,
*/
if (mlfTobool(hasimage)) {
/*
* t = [1, size(colormap,1)];
*/
mlfAssign(
&t,
mlfHorzcat(
mlfScalar(1.0),
mlfSize(mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)),
NULL));
/*
* else
*/
} else {
/*
* t = [1.5 size(colormap,1)+.5];
*/
mlfAssign(
&t,
mlfHorzcat(
mlfScalar(1.5),
mlfPlus(
mlfSize(
mclValueVarargout(), mlfColormap(NULL), mlfScalar(1.0)),
mlfScalar(.5)),
NULL));
/*
* end
*/
}
/*
* end
*/
}
/*
*
* h = gcda;
*/
mlfAssign(&h, mlfColorbar_gcda());
/*
*
* if nargin==0,
*/
if (mlfTobool(mlfEq(nargin_, mlfScalar(0.0)))) {
/*
* % Search for existing colorbar
* ch = get(findobj(gcf,'type','image','tag','TMW_COLORBAR'),{'parent'}); ax = [];
*/
mlfAssign(
&ch,
mlfGet(
mlfFindobj(
mlfGcf(),
mxCreateString("type"),
mxCreateString("image"),
mxCreateString("tag"),
mxCreateString("TMW_COLORBAR"),
NULL),
mlfCellhcat(mxCreateString("parent"), NULL),
NULL));
mlfAssign(&ax, mclCreateEmptyArray());
/*
* for i=1:length(ch),
*/
for (mclForStart(&iterator_0, mlfScalar(1.0), mlfLength(ch), NULL);
mclForNext(&iterator_0, &i);
) {
/*
* ud = get(ch{i},'userdata');
*/
mlfAssign(
&ud,
mlfGet(
mlfIndexRef(ch, "{?}", i), mxCreateString("userdata"), NULL));
/*
* d = ud.PlotHandle;
*/
mlfAssign(&d, mlfIndexRef(ud, ".PlotHandle"));
/*
* if prod(size(d))==1 & isequal(d,h),
*/
{
mxArray * a_ = mclInitialize(
mlfEq(
mlfProd(
mlfSize(mclValueVarargout(), d, NULL),
NULL),
mlfScalar(1.0)));
if (mlfTobool(a_)
&& mlfTobool(mlfAnd(a_, mlfIsequal(d, h, NULL)))) {
mxDestroyArray(a_);
/*
* ax = ch{i};
*/
mlfAssign(&ax, mlfIndexRef(ch, "{?}", i));
/*
* pos = get(ch{i},'Position');
*/
mlfAssign(
&pos,
mlfGet(
mlfIndexRef(ch, "{?}", i),
mxCreateString("Position"),
NULL));
/*
* if pos(3)<pos(4), loc = 'vert'; else loc = 'horiz'; end
*/
if (mlfTobool(
mlfLt(
mlfIndexRef(pos, "(?)", mlfScalar(3.0)),
mlfIndexRef(pos, "(?)", mlfScalar(4.0))))) {
mlfAssign(&loc, mxCreateString("vert"));
} else {
mlfAssign(&loc, mxCreateString("horiz"));
}
/*
* changeNextPlot = 0;
*/
mlfAssign(&changeNextPlot, mlfScalar(0.0));
/*
* % Make sure image deletefcn doesn't trigger a colorbar('delete')
* % for colorbar update
* set(get(ax,'children'),'deletefcn','')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfGet(ax, mxCreateString("children"), NULL),
mxCreateString("deletefcn"),
mxCreateString(""),
NULL));
/*
* break;
*/
mclDestroyForLoopIterator(&iterator_0);
break;
} else {
mxDestroyArray(a_);
}
/*
* end
*/
}
/*
* end
*/
}
/*
* end
*/
}
/*
*
* origNextPlot = get(gcf,'NextPlot');
*/
mlfAssign(
&origNextPlot, mlfGet(mlfGcf(), mxCreateString("NextPlot"), NULL));
/*
* if strcmp(origNextPlot,'replacechildren') | strcmp(origNextPlot,'replace'),
*/
{
mxArray * a_ = mclInitialize(
mlfStrcmp(
origNextPlot, mxCreateString("replacechildren")));
if (mlfTobool(a_)
|| mlfTobool(
mlfOr(
a_, mlfStrcmp(origNextPlot, mxCreateString("replace"))))) {
mxDestroyArray(a_);
/*
* set(gcf,'NextPlot','add')
*/
mclPrintAns(
&ans,
mlfNSet(
0,
mlfGcf(),
mxCreateString("NextPlot"),
mxCreateString("add"),
NULL));
} else {
mxDestroyArray(a_);
}
/*
* end
*/
}
/*
*
* if loc(1)=='v', % Append vertical scale to right of current plot
*/
if (mlfTobool(
mlfEq(
mlfIndexRef(loc, "(?)", mlfScalar(1.0)), mxCreateString("v")))) {
/*
*
* if isempty(ax),
*/
if (mlfTobool(mlfIsempty(ax))) {
/*
* units = get(h,'units'); set(h,'units','normalized')
*/
mlfAssign(&units, mlfGet(h, mxCreateString("units"), NULL));
mclPrintAns(
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -