Mercurial > octave
annotate scripts/plot/appearance/camup.m @ 27919:1891570abac8
update Octave Project Developers copyright for the new year
In files that have the "Octave Project Developers" copyright notice,
update for 2020.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 06 Jan 2020 22:29:51 -0500 |
parents | b442ec6dda5c |
children | bd51beb6205e |
rev | line source |
---|---|
27919
1891570abac8
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
27918
diff
changeset
|
1 ## Copyright (C) 2016-2020 The Octave Project Developers |
27918
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27567
diff
changeset
|
2 ## |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27567
diff
changeset
|
3 ## See the file COPYRIGHT.md in the top-level directory of this distribution |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27567
diff
changeset
|
4 ## or <https://octave.org/COPYRIGHT.html/>. |
b442ec6dda5c
use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents:
27567
diff
changeset
|
5 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
6 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
7 ## This file is part of Octave. |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
8 ## |
24534
194eb4bd202b
maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents:
24388
diff
changeset
|
9 ## 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
|
10 ## 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
|
11 ## 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
|
12 ## (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
|
13 ## |
24894
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
14 ## 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
|
15 ## 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
|
16 ## 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
|
17 ## 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
|
18 ## |
24894
655dfe391ec2
maint: reformat GPLv3 license header blocks for consistency
Mike Miller <mtmiller@octave.org>
parents:
24534
diff
changeset
|
19 ## 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
|
20 ## 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
|
21 ## <https://www.gnu.org/licenses/>. |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
22 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
23 ## -*- texinfo -*- |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
24 ## @deftypefn {} {@var{up} =} camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
25 ## @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
|
26 ## @deftypefnx {} {@var{mode} =} camup ("mode") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
27 ## @deftypefnx {} {} camup (@var{mode}) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
28 ## @deftypefnx {} {} camup (@var{ax}, @dots{}) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
29 ## 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
|
30 ## |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
31 ## 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
|
32 ## positive z-axis: |
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
33 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
34 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
35 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
36 ## hf = figure (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
37 ## sphere (36) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
38 ## v = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
39 ## @result{} v = |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
40 ## 0 0 1 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
41 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
42 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
43 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
44 ## 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
|
45 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
46 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
47 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
48 ## camup ([1 1 0]) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
49 ## camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
50 ## @result{} 1 1 0 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
51 ## camup ("mode") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
52 ## @result{} manual |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
53 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
54 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
55 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
56 ## 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
|
57 ## (@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
|
58 ## 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
|
59 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
60 ## @example |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
61 ## @group |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
62 ## camup ([1 2 3]) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
63 ## dot (camup (), camtarget () - campos ()) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
64 ## @result{} 6... |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
65 ## @end group |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
66 ## @end example |
24985
d85b2485af9e
doc: grammarcheck m-files ahead of 4.4 release.
Rik <rik@octave.org>
parents:
24894
diff
changeset
|
67 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
68 ## 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
|
69 ## 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
|
70 ## 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
|
71 ## 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
|
72 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
73 ## 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
|
74 ## |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
75 ## @example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
76 ## @group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
77 ## camup ("auto") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
78 ## camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
79 ## @result{} 0 0 1 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
80 ## close (hf) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
81 ## @end group |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
82 ## @end example |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
83 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
84 ## 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
|
85 ## 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
|
86 ## |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
87 ## @seealso{campos, camtarget, camva} |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
88 ## @end deftypefn |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
89 |
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 function p = camup (varargin) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
92 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
93 [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
|
94 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
95 if (nargin > 1) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
96 print_usage (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
97 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
98 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
99 if (isempty (hax)) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
100 hax = gca (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
101 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
102 hax = hax(1); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
103 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
104 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
105 prop = "cameraupvector"; |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
106 if (nargin == 0) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
107 p = get (hax, prop); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
108 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
|
109 set (hax, prop, varargin{1}); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
110 elseif (nargin == 1 && ischar (varargin{1})) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
111 s = varargin{1}; |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
112 if (strcmp (s, "mode")) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
113 p = get (hax, [prop "mode"]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
114 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
115 set (hax, [prop "mode"], s); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
116 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
117 else |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
118 print_usage (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
119 endif |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
120 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
121 endfunction |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
122 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
123 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
124 %!demo |
24188
1253132e2173
Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents:
24129
diff
changeset
|
125 %! clf; |
1253132e2173
Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents:
24129
diff
changeset
|
126 %! sphere (); |
24388 | 127 %! title ("camup() demo #1"); |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
128 %! ## 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
|
129 %! x1 = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
130 %! ## re-orient the camera with a new up-vector |
24388 | 131 %! camup ([1 0 0]); |
24128
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
132 %! x2 = camup () |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
133 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
134 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
135 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
136 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
137 %! sphere (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
138 %! x = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
139 %! camup ([1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
140 %! y = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
141 %! assert (y, [1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
142 %! camup (x); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
143 %! x2 = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
144 %! assert (x, x2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
145 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
146 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
147 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
148 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
149 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
150 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
151 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
152 %! sphere (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
153 %! p_orig = camup (); |
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, "auto")); |
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 ([1 2 3]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
158 %! m = camup ("mode"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
159 %! assert (strcmp (m, "manual")); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
160 %! |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
161 %! camup ("auto"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
162 %! p = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
163 %! assert (p, p_orig); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
164 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
165 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
166 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
167 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
168 ## 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
|
169 %!test |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
170 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
171 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
172 %! 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
|
173 %! 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
|
174 %! camup (hax1, [1 0 0]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
175 %! subplot (1, 2, 1); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
176 %! x = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
177 %! z = camup (hax2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
178 %! subplot (1, 2, 2); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
179 %! y = camup (); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
180 %! assert (x, [1 0 0]); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
181 %! 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
|
182 %! assert (y, z); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
183 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
184 %! close (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
185 %! end_unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
186 |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
187 ## Test input validation |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
188 %!error <Invalid call> camup (1, 2) |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
189 %!error <invalid value> |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
190 %! hf = figure ("visible", "off"); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
191 %! unwind_protect |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
192 %! camup ("mod") |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
193 %! unwind_protect_cleanup |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
194 %! delete (hf); |
5ce4dfe5d906
Add basic camera set/get functions (patch #9046).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff
changeset
|
195 %! end_unwind_protect |