Mercurial > hg > octave-lyh
diff src/graphics.cc @ 12467:2f83974d5a6d
implement looseinset property for axes
author | Konstantinos Poulios <logari81@googlemail.com> |
---|---|
date | Tue, 22 Feb 2011 19:52:55 +0100 |
parents | 68daf2a0b56d |
children | 7a5aacf65f81 |
line wrap: on
line diff
--- a/src/graphics.cc +++ b/src/graphics.cc @@ -3176,6 +3176,7 @@ currentpoint.add_constraint (dim_vector (2, 3)); ticklength.add_constraint (dim_vector (1, 2)); tightinset.add_constraint (dim_vector (1, 4)); + looseinset.add_constraint (dim_vector (1, 4)); x_zlim.resize (1, 2); @@ -3227,6 +3228,11 @@ adopt (ylabel.handle_value ()); adopt (zlabel.handle_value ()); adopt (title.handle_value ()); + + Matrix tlooseinset = default_axes_position (); + tlooseinset(2) = 1-tlooseinset(0)-tlooseinset(2); + tlooseinset(3) = 1-tlooseinset(1)-tlooseinset(3); + looseinset = tlooseinset; } Matrix @@ -3262,16 +3268,20 @@ void axes::properties::sync_positions (void) { - Matrix defpos = default_axes_position (); Matrix pos = position.get ().matrix_value (); Matrix outpos = outerposition.get ().matrix_value (); + Matrix lins = looseinset.get ().matrix_value (); + double lratio = lins(0); + double bratio = lins(1); + double wratio = 1-lins(0)-lins(2); + double hratio = 1-lins(1)-lins(3); if (activepositionproperty.is ("outerposition")) { pos = outpos; - pos(0) = outpos(0) + defpos(0) * outpos(2); - pos(1) = outpos(1) + defpos(1) * outpos(3); - pos(2) = outpos(2) * defpos(2); - pos(3) = outpos(3) * defpos(3); + pos(0) = outpos(0)+lratio*outpos(2); + pos(1) = outpos(1)+bratio*outpos(3); + pos(2) = wratio*outpos(2); + pos(3) = hratio*outpos(3); position = pos; update_transform (); @@ -3341,10 +3351,10 @@ { update_transform (); - outpos(0) = pos(0)-pos(2)*defpos(0)/defpos(2); - outpos(1) = pos(1)-pos(3)*defpos(1)/defpos(3); - outpos(2) = pos(2)/defpos(2); - outpos(3) = pos(3)/defpos(3); + outpos(0) = pos(0)-pos(2)*lratio/wratio; + outpos(1) = pos(1)-pos(3)*bratio/hratio; + outpos(2) = pos(2)/wratio; + outpos(3) = pos(3)/hratio; outerposition = calc_tightbox (outpos); } @@ -3557,6 +3567,11 @@ position = default_axes_position (); + Matrix tlooseinset = default_axes_position (); + tlooseinset(2) = 1-tlooseinset(0)-tlooseinset(2); + tlooseinset(3) = 1-tlooseinset(1)-tlooseinset(3); + looseinset = tlooseinset; + activepositionproperty = "outerposition"; }