source: trunk/src/update_obj.m @ 179

Last change on this file since 179 was 179, checked in by sommeria, 10 years ago

various bug repairs, in particular for 3D fields

File size: 2.6 KB
Line 
1%'update_obj': update the object graph representation and its projection field, record it in the uvmat interface
2%-------------------------------------------------------------------
3%Object_out=update_obj(UvData,IndexObj,ObjectData,PlotHandles);
4
5%OUTPUT:
6% Object_out= cell array of structures containing the properties of the existing objects     .
7%
8%INPUT:
9%UvData: structure stored as 'Userdata' on the uvmat interface, it contains:
10%    .Object{1},{2}... description of all the projection objects
11%    .Field , the current input field to be projected on the object
12%    .Object{IndexObj}.DisplayHandle_uvmat: handles of the object plot on uvmat, =[] if it does not exist
13%    .Object{IndexObj}.DisplayHandle_view_field: handles of the object plot on view_field, =[] if it does not exist
14%IndexObj: object index of  UvData.Object correspopnding to the updated object
15%ObjectData: structure containing the input object properties to be attributed to the object #IndexObj
16%       .Style: style of the object: 'line', 'rectangle'...
17%PlotHandles: structure containing the handles of the plotting parameter buttons on the uvmat or view_field interface
18%-------------------------------------
19
20function Object_out=update_obj(UvData,IndexObj_1,IndexObj_2)
21
22%% default input and output
23Object_out=UvData.Object;
24
25
26%%  representation of the different objects in the plots uvmat and view_field
27%plot uvmat
28    for iobj=1:length(Object_out) %change the view of all existing objects on the updated current object #IndexObj_1
29         hobject=[];
30        if isfield(Object_out{iobj},'DisplayHandle_uvmat') && ~isempty(Object_out{iobj}.DisplayHandle_uvmat) && ishandle(Object_out{iobj}.DisplayHandle_uvmat)
31            hobject=Object_out{iobj}.DisplayHandle_uvmat;%graphic handle of object #iobj in the uvmat plot
32        end
33        Object_out{iobj}.DisplayHandle_uvmat=plot_object(Object_out{iobj},Object_out{IndexObj_1},hobject,'m');%update the object representation
34    end
35% plot view_field
36if ~isempty(IndexObj_2)
37    for iobj=1:length(Object_out) %change the view of all existing objects on the updated current object #IndexObj_2
38        hobject=[];
39        if isfield(Object_out{iobj},'DisplayHandle_view_field') &&  ~isempty(Object_out{iobj}.DisplayHandle_view_field) && ishandle(Object_out{iobj}.DisplayHandle_view_field)
40            hobject=Object_out{iobj}.DisplayHandle_view_field;%graphic handle of object #iobj in the view_field plot
41        end
42        Object_out{iobj}.DisplayHandle_view_field=plot_object(Object_out{iobj},Object_out{IndexObj_2},hobject,'m');%update the object representation
43    end
44end
45
46
47
48
49
Note: See TracBrowser for help on using the repository browser.