diff options
author | Shashank | 2017-05-29 12:40:26 +0530 |
---|---|---|
committer | Shashank | 2017-05-29 12:40:26 +0530 |
commit | 0345245e860375a32c9a437c4a9d9cae807134e9 (patch) | |
tree | ad51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /modules/graphics/macros/setPlotProperty.sci | |
download | scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2 scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip |
CMSCOPE changed
Diffstat (limited to 'modules/graphics/macros/setPlotProperty.sci')
-rwxr-xr-x | modules/graphics/macros/setPlotProperty.sci | 358 |
1 files changed, 358 insertions, 0 deletions
diff --git a/modules/graphics/macros/setPlotProperty.sci b/modules/graphics/macros/setPlotProperty.sci new file mode 100755 index 000000000..88a072d17 --- /dev/null +++ b/modules/graphics/macros/setPlotProperty.sci @@ -0,0 +1,358 @@ +// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab +// Copyright (C) 2004-2006 - INRIA - Fabrice Leray +// This file must be used under the terms of the CeCILL. +// This source file is licensed as described in the file COPYING, which +// you should have received as part of this distribution. The terms +// are also available at +// http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt + +function [fail]=setPlotProperty(PropertyName,PropertyValue,Curves,current_figure,cur_draw_mode) + + fail=0; + + //conversion to lower format + str = convstr(PropertyName); + + + + //Property = ['foreground' 'clipping']; + + [PName] = getPlotPropertyName(str,current_figure,cur_draw_mode) + + + if (PName==[]) + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + select PName + + ///////////////////////// + case "foreground" // <=> Color + ///////////////////////// + + if (type(PropertyValue) == 10) + + index = getColorIndex(PropertyValue); + + ColorVal = ["red" "green" "blue" "cyan" "magenta" "yellow" "black" "black" "white"]; + + if (index < 10) + Curves.line_mode="on"; + Curves.foreground = color(ColorVal(index)); + Curves.mark_foreground = color(ColorVal(index)); + else // 'none' selected + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A color of the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + elseif (type(PropertyValue) == 1) // we entered plot(x,y,'Color',[R,G,B]) + + if (size(PropertyValue,"*")==3) + Curves.line_mode="on"; + Curves.foreground = addcolor(PropertyValue); + Curves.mark_foreground = addcolor(PropertyValue); + else + warning(msprintf(gettext("%s: Wrong size for input argument #%d: 3x1 or 1x3 vector expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: 3 elements vector or index in the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "clipping" // Clipping + ///////////////////////// + if (type(PropertyValue)==10 & (PropertyValue=="on" | PropertyValue=="off")) + Curves.clip_state=PropertyValue; + else + warning(msprintf(gettext("%s: Wrong value for input argument #%d: %s or %s expected.\n"),"setPlotProperty",2,"on","off")); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "linestyle" // LineStyle + ///////////////////////// + if (type(PropertyValue)==10) + if (PropertyValue=="--") + Curves.line_style=2; + Curves.line_mode = "on"; + elseif (PropertyValue=="-.") + Curves.line_style=4; + Curves.line_mode = "on"; + elseif (PropertyValue==":") + Curves.line_style=5; + Curves.line_mode = "on"; + elseif (PropertyValue=="-") + Curves.line_style=1; + Curves.line_mode = "on"; + elseif (PropertyValue=="none") + Curves.line_mode = "off"; + end + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + ///////////////////////// + case "thickness" // <=> LineWidth + ///////////////////////// + if (type(PropertyValue)==1) + Curves.thickness=PropertyValue; + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: A scalar expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + ///////////////////////// + case "markstyle" // <=> Marker + ///////////////////////// + if (type(PropertyValue)==10) + + str = convstr(PropertyValue); + //Marks + Table = [ "+" "o" "*" "." "x" "square" "diamond" "^" "v" ">" "<" "pentagram" "none"]; + MarksStyleVal=[1 9 10 0 2 11 5 6 7 12 13 14 -99]; + // MarksSizeVal =[4 3 7 1 3 3 4 3 3 3 3 3 -99]; + + opt1=[]; + + k=find(part(Table,1:length(str))==str); + + if (k == []) + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A marker style expected.\n"),"setPlotProperty", 2)); + PName=[]; + ResetFigureDDM(current_figure, cur_draw_mode); + return; + elseif ( size(k,"*") > 1) + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A marker style expected.\n"),"setPlotProperty", 2)); //unreachable case normally + PName=[]; + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + opt = Table(k); + for i=1:length(str) + if part(opt,i) <> part(str,i) + break; + end + end + + opt1 = [opt1 k]; + + str = part(str,i:length(str)); + + if (size(opt1,"*") > 1) + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A marker style expected.\n"),"setPlotproperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + if (opt1 > 0) + Curves.mark_style = MarksStyleVal(opt1); + Curves.mark_size = 6; + //MarksSizeVal(opt1); + else + // 'none' is selected + Curves.mark_mode="off" + end + + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: A string expected.\n"),"setPlotProperty")); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "markforeground" // <=> MarkerEdgeColor + ///////////////////////// + if (type(PropertyValue)==10) + + index = getColorIndex(PropertyValue); + + ColorVal = ["red" "green" "blue" "cyan" "magenta" "yellow" "black" "black" "white" "none"] + + markmodeON = find(Curves.mark_mode=="on"); + + if index == 10 + // 'none' specified + a=gca(); // pick up the background color of the parent axes + if markmodeON <> [] + Curves(markmodeON).mark_foreground = a.background; + end + elseif index == 11 + // 'auto' specified + if markmodeON <> [] + Curves(markmodeON).mark_foreground = Curves.foreground; + end + else + if (index==-1) + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A color of the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + else + if markmodeON <> [] + Curves(markmodeON).mark_foreground = color(ColorVal(index)); + end + end + end + elseif (type(PropertyValue)==1) + if (size(PropertyValue,"*")==3) + + markmodeON = find(Curves.mark_mode=="on"); + if markmodeON <> [] + Curves(markmodeON).mark_foreground = addcolor(PropertyValue); + end + else + warning(msprintf(gettext("%s: Wrong size for input argument #%d: 3x1 or 1x3 vector expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: Vector or index in the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "markbackground" // <=> MarkerFaceColor + ///////////////////////// + if (type(PropertyValue)==10) + + index = getColorIndex(PropertyValue); + + ColorVal = ["red" "green" "blue" "cyan" "magenta" "yellow" "black" "black" "white" "none"] + + markmodeON = find(Curves.mark_mode=="on"); + + if index == 10 + // 'none' specified + a=gca(); // pick up the background color of the parent axes + if markmodeON <> [] + Curves(markmodeON).mark_background = a.background; + end + elseif index == 11 + // 'auto' specified + a=gca(); + if markmodeON <> [] + Curves(markmodeON).mark_background = a.background; + end + else + if (index==-1) + warning(msprintf(gettext("%s: Wrong value for input argument #%d: A color of the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + else + if markmodeON <> [] + Curves(markmodeON).mark_background = color(ColorVal(index)); + end + end + end + elseif (type(PropertyValue)==1) + + if (size(PropertyValue,"*")==3) + + markmodeON = find(Curves.mark_mode=="on"); + if markmodeON <> [] + Curves(markmodeON).mark_background = addcolor(PropertyValue); + end + else + warning(msprintf(gettext("%s: Wrong size for input argument #%d: 3x1 or 1x3 vector expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: Vector or index in the colormap expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "marksize" // <=> MarkerSize + ///////////////////////// + if (type(PropertyValue)==1 & size(PropertyValue,"*")==1) + + markmodeON = find(Curves.mark_mode=="on"); + + if markmodeON <> [] + Curves(markmodeON).mark_size = PropertyValue; + end + else + warning(msprintf(gettext("%s: Wrong type for input argument #%d: An integer expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + ///////////////////////// + case "visible" // <=> Visible + ///////////////////////// + if (type(PropertyValue)==10 & (PropertyValue=="on" | PropertyValue=="off")) + Curves.visible = PropertyValue; + else + warning(msprintf(gettext("%s: Wrong value for input argument #%d: %s or %s expected.\n"),"setPlotProperty",2,"on","off")); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + end + + + ///////////////////////// + case "xdata" + ///////////////////////// + + // Already done at the beginning of plot execution. + + ///////////////////////// + case "ydata" + ///////////////////////// + + // Already done at the beginning of plot execution. + + ///////////////////////// + case "zdata" // <=> Zdata is treated after the curve was created + ///////////////////////// + + if (type(PropertyValue)<>1 | and(size(PropertyValue)<>1)) + warning(msprintf(gettext("%s: Wrong size or type for input argument #%d: A column or row vector expected.\n"),"setPlotProperty",2)); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + else + PropertyValue = PropertyValue(:); // force + + for j=1:size(Curves,"*") + if size(Curves(i).data,1) <> size(PropertyValue,"*") + str="plot : incompatible dimensions in input arguments"; + warning(str); + ResetFigureDDM(current_figure, cur_draw_mode); + return; + else + for jj=1:size(PropertyValue,"*") + Curves(j).data(jj,3) = PropertyValue(jj); + end + a=gca(); + a.view="3d"; + a.data_bounds=[a.data_bounds(1,1) a.data_bounds(1,2) min(PropertyValue) ; a.data_bounds(2,1) a.data_bounds(2,2) max(PropertyValue)]; + a.view="2d"; + end + end + end + + + + end + +endfunction |