Mercurial > octave
annotate scripts/plot/appearance/camup.m @ 27567:51c2e46e9a36
doc: Tweaks to @ref, @xref, @pxref invocations for better output.
* open.m: Don't use spaces for empty arguments to @xref. Add @code{} around
function name hgload.
* camorbit.m, camup.m: Use @ref rather than @pxref to avoid generating 'see '.
* movmad.m, movmax.m, movmean.m, movmedian.m, movmin.m, movprod.m, movstd.m,
movsum.m, movvar.m: Use @pxref rather than @xref to generate lowercase 'see'.
author | Rik <rik@octave.org> |
---|---|
date | Sat, 26 Oct 2019 05:56:52 -0700 |
parents | 00f796120a6d |
children | b442ec6dda5c |
rev | line source |
---|---|
26376
00f796120a6d
maint: Update copyright dates in all source files.
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
1 ## Copyright (C) 2016-2019 Colin B. Macdonald |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
2 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
3 ## This file is part of Octave. |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
4 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24388
diff
changeset
|
5 ## Octave is free software: you can redistribute it and/or modify it |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
6 ## under the terms of the GNU General Public License as published by |
24894
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
7 ## the Free Software Foundation, either version 3 of the License, or |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
8 ## (at your option) any later version. |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
9 ## |
24894
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
10 ## Octave is distributed in the hope that it will be useful, but |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
13 ## GNU General Public License for more details. |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
14 ## |
24894
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
16 ## along with Octave; see the file COPYING. If not, see |
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
17 ## <https://www.gnu.org/licenses/>. |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
18 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
20 ## @deftypefn {} {@var{up} =} camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
21 ## @deftypefnx {} {} camup ([@var{x} @var{y} @var{z}]) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
22 ## @deftypefnx {} {@var{mode} =} camup ("mode") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
23 ## @deftypefnx {} {} camup (@var{mode}) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
24 ## @deftypefnx {} {} camup (@var{ax}, @dots{}) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
25 ## Set or get the camera up vector. |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
26 ## |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
27 ## By default, the camera is oriented so that ``up'' corresponds to the |
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
28 ## positive z-axis: |
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
29 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
30 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
31 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
32 ## hf = figure (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
33 ## sphere (36) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
34 ## v = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
35 ## @result{} v = |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
36 ## 0 0 1 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
37 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
38 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
39 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
40 ## Specifying a new ``up vector'' rolls the camera and sets the mode to manual: |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
41 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
42 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
43 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
44 ## camup ([1 1 0]) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
45 ## camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
46 ## @result{} 1 1 0 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
47 ## camup ("mode") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
48 ## @result{} manual |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
49 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
50 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
51 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
52 ## Modifying the up vector does not modify the camera target |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
53 ## (@pxref{XREFcamtarget,,camtarget}). Thus, the camera up vector might not be |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
54 ## orthogonal to the direction of the camera's view: |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
55 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
56 ## @example |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
57 ## @group |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
58 ## camup ([1 2 3]) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
59 ## dot (camup (), camtarget () - campos ()) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
60 ## @result{} 6... |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
61 ## @end group |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
62 ## @end example |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
63 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
64 ## A consequence is that ``pulling back'' on the up vector does not pitch the |
24129
f80dc6db9d18
Add camzoom and camroll functions (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
24128
diff
changeset
|
65 ## camera view (as that would require changing the target). Setting the up |
f80dc6db9d18
Add camzoom and camroll functions (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
24128
diff
changeset
|
66 ## vector is thus typically used only to roll the camera. A more intuitive |
27567
51c2e46e9a36
doc: Tweaks to @ref, @xref, @pxref invocations for better output.
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
67 ## command for this purpose is @ref{XREFcamroll,,camroll}. |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
68 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
69 ## Finally, we can reset the up vector to automatic mode: |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
70 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
71 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
72 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
73 ## camup ("auto") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
74 ## camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
75 ## @result{} 0 0 1 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
76 ## close (hf) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
77 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
78 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
79 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
80 ## By default, these commands affect the current axis; alternatively, an axis |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
81 ## can be specified by the optional argument @var{ax}. |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
82 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
83 ## @seealso{campos, camtarget, camva} |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
84 ## @end deftypefn |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
85 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
86 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
87 function p = camup (varargin) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
88 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
89 [hax, varargin, nargin] = __plt_get_axis_arg__ ("camup", varargin{:}); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
90 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
91 if (nargin > 1) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
92 print_usage (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
93 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
94 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
95 if (isempty (hax)) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
96 hax = gca (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
97 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
98 hax = hax(1); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
99 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
100 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
101 prop = "cameraupvector"; |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
102 if (nargin == 0) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
103 p = get (hax, prop); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
104 elseif (nargin == 1 && isnumeric (varargin{1}) && numel (varargin{1}) == 3) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
105 set (hax, prop, varargin{1}); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
106 elseif (nargin == 1 && ischar (varargin{1})) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
107 s = varargin{1}; |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
108 if (strcmp (s, "mode")) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
109 p = get (hax, [prop "mode"]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
110 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
111 set (hax, [prop "mode"], s); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
112 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
113 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
114 print_usage (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
115 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
116 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
117 endfunction |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
118 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
119 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
120 %!demo |
24188
1253132e2173
Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents:
24129
diff
changeset
|
121 %! clf; |
1253132e2173
Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents:
24129
diff
changeset
|
122 %! sphere (); |
24388 | 123 %! title ("camup() demo #1"); |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
124 %! ## what direction is "up" for the camera? |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
125 %! x1 = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
126 %! ## re-orient the camera with a new up-vector |
24388 | 127 %! camup ([1 0 0]); |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
128 %! x2 = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
129 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
130 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
131 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
132 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
133 %! sphere (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
134 %! x = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
135 %! camup ([1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
136 %! y = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
137 %! assert (y, [1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
138 %! camup (x); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
139 %! x2 = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
140 %! assert (x, x2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
141 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
142 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
143 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
144 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
145 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
146 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
147 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
148 %! sphere (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
149 %! p_orig = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
150 %! m = camup ("mode"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
151 %! assert (strcmp (m, "auto")); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
152 %! |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
153 %! camup ([1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
154 %! m = camup ("mode"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
155 %! assert (strcmp (m, "manual")); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
156 %! |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
157 %! camup ("auto"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
158 %! p = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
159 %! assert (p, p_orig); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
160 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
161 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
162 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
163 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
164 ## test ax input by creating another axis |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
165 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
166 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
167 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
168 %! subplot (1, 2, 1); sphere (); hax1 = gca (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
169 %! subplot (1, 2, 2); peaks (); hax2 = gca (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
170 %! camup (hax1, [1 0 0]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
171 %! subplot (1, 2, 1); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
172 %! x = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
173 %! z = camup (hax2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
174 %! subplot (1, 2, 2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
175 %! y = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
176 %! assert (x, [1 0 0]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
177 %! assert (norm (y - [1 0 0]) > 0.1); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
178 %! assert (y, z); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
179 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
180 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
181 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
182 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
183 ## Test input validation |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
184 %!error <Invalid call> camup (1, 2) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
185 %!error <invalid value> |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
186 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
187 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
188 %! camup ("mod") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
189 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
190 %! delete (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
191 %! end_unwind_protect |