source: trunk/src/update_obj.m @ 432

Last change on this file since 432 was 425, checked in by sommeria, 12 years ago

improvement of object management

File size: 2.6 KB
RevLine 
[8]1%'update_obj': update the object graph representation and its projection field, record it in the uvmat interface
2%-------------------------------------------------------------------
[302]3%Object_out=update_obj(UvData,IndexObj_1,IndexObj_2);
[156]4
[8]5%OUTPUT:
[156]6% Object_out= cell array of structures containing the properties of the existing objects     .
[8]7%
8%INPUT:
[156]9%UvData: structure stored as 'Userdata' on the uvmat interface, it contains:
[71]10%    .Object{1},{2}... description of all the projection objects
[156]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
[302]14%IndexObj_1: index of  the object whose projection is plotted in the GUI uvmat
15%IndexObj_2: index of  the object whose projection is plotted in te GUI view_field
[8]16%-------------------------------------
17
[156]18function Object_out=update_obj(UvData,IndexObj_1,IndexObj_2)
[8]19
[156]20%% default input and output
21Object_out=UvData.Object;
[8]22
[82]23
[156]24%%  representation of the different objects in the plots uvmat and view_field
[159]25%plot uvmat
[183]26for iobj=1:length(Object_out) %change the view of all existing objects on the updated current object #IndexObj_1
[425]27    hobject=[];
[183]28    if isfield(Object_out{iobj},'DisplayHandle_uvmat') && ~isempty(Object_out{iobj}.DisplayHandle_uvmat) && ishandle(Object_out{iobj}.DisplayHandle_uvmat)
29        hobject=Object_out{iobj}.DisplayHandle_uvmat;%graphic handle of object #iobj in the uvmat plot
[82]30    end
[425]31    if ~isequal(iobj,IndexObj_1)% object not visible when projected on itself
32        Object_out{iobj}.DisplayHandle_uvmat=plot_object(Object_out{iobj},Object_out{IndexObj_1},hobject,'m');%update the object representation of Object_out{iobj} on Object_out{IndexObj_1}
33        if isempty(Object_out{iobj}.DisplayHandle_uvmat)&&~isempty(hobject)
34            delete(hobject)
35        end
36    end
[183]37end
[159]38% plot view_field
39if ~isempty(IndexObj_2)
[183]40    for iobj=1:length(Object_out) %change the view of all existing objects on the updated  object #IndexObj_2
[156]41        hobject=[];
42        if isfield(Object_out{iobj},'DisplayHandle_view_field') &&  ~isempty(Object_out{iobj}.DisplayHandle_view_field) && ishandle(Object_out{iobj}.DisplayHandle_view_field)
[179]43            hobject=Object_out{iobj}.DisplayHandle_view_field;%graphic handle of object #iobj in the view_field plot
[156]44        end
45        Object_out{iobj}.DisplayHandle_view_field=plot_object(Object_out{iobj},Object_out{IndexObj_2},hobject,'m');%update the object representation
46    end
[159]47end
[8]48
49
[82]50
[156]51
52
Note: See TracBrowser for help on using the repository browser.