annotate scripts/plot/appearance/camorbit.m @ 24188:1253132e2173

Use "clf;" at beginning of all plot demos. * camlookat.m, camorbit.m, campos.m, camroll.m, camtarget.m, camup.m, camva.m, camzoom.m, grid.m, camlight.m, ezplot.m, isocaps.m, isocolors.m, isonormals.m, isosurface.m, light.m, plot.m, reducepatch.m, smooth3.m, subplot.m: Use "clf;" at beginning of all plot demos.
author Rik <rik@octave.org>
date Mon, 30 Oct 2017 21:22:15 -0700
parents 141e6e16d900
children 206ef5cb8b16
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
24132
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
1 ## Copyright (C) 2016 Colin B. Macdonald
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
2 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
3 ## This file is part of Octave.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
4 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
8 ## your option) any later version.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
9 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
10 ## This software is distributed in the hope that it will be useful,
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
11 ## but WITHOUT ANY WARRANTY; without even the implied warranty
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
12 ## of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
13 ## General Public License for more details.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
14 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
16 ## License along with this software; see the file COPYING.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
17 ## If not, see <http://www.gnu.org/licenses/>.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
18
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
19 ## -*- texinfo -*-
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
20 ## @deftypefn {} {} camorbit (@var{theta}, @var{phi})
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
21 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, @var{coorsys})
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
22 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, @var{coorsys}, @var{dir})
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
23 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
24 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "z")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
25 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "x")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
26 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", "y")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
27 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "data", [@var{x} @var{y} @var{z}])
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
28 ## @deftypefnx {} {} camorbit (@var{theta}, @var{phi}, "camera")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
29 ## @deftypefnx {} {} camorbit (@var{hax}, @dots{})
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
30 ## Rotate the camera up/down and left/right around its target.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
31 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
32 ## Move the camera @var{phi} degrees up and @var{theta} degrees to the right,
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
33 ## as if it were in an orbit around its target.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
34 ## Example:
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
35 ## @example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
36 ## @group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
37 ## @c doctest: +SKIP
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
38 ## sphere ()
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
39 ## camorbit (30, 20)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
40 ## @end group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
41 ## @end example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
42 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
43 ## These rotations are centered around the camera target
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
44 ## (@pxref{XREFcamtarget,,camtarget}).
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
45 ## First the camera position is pitched up or down by rotating it @var{phi}
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
46 ## degrees around an axis orthogonal to both the viewing direction (specifically
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
47 ## @code{camtarget() - campos()}) and the camera ``up vector''
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
48 ## (@pxref{XREFcamup,,camup}).
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
49 ## Example:
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
50 ## @example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
51 ## @group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
52 ## @c doctest: +SKIP
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
53 ## camorbit (0, 20)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
54 ## @end group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
55 ## @end example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
56 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
57 ## The second rotation depends on the coordinate system @var{coorsys} and
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
58 ## direction @var{dir} inputs.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
59 ## The default for @var{coorsys} is @qcode{"data"}. In this case, the camera is
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
60 ## yawed left or right by rotating it @var{theta} degrees around an axis
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
61 ## specified by @var{dir}.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
62 ## The default for @var{dir} is @qcode{"z"}, corresponding to the vector
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
63 ## @code{[0, 0, 1]}.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
64 ## Example:
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
65 ## @example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
66 ## @group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
67 ## @c doctest: +SKIP
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
68 ## camorbit (30, 0)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
69 ## @end group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
70 ## @end example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
71 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
72 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
73 ## When @var{coorsys} is set to @qcode{"camera"}, the camera is moved left or
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
74 ## right by rotating it around an axis parallel to the camera up vector
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
75 ## (@pxref{XREFcamup,,camup}).
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
76 ## The input @var{dir} should not be specified in this case.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
77 ## Example:
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
78 ## @example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
79 ## @group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
80 ## @c doctest: +SKIP
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
81 ## camorbit (30, 0, "camera")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
82 ## @end group
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
83 ## @end example
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
84 ## (Note: the rotation by @var{phi} is unaffected by @qcode{"camera"}.)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
85 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
86 ## The @code{camorbit} command modifies two camera properties:
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
87 ## @pxref{XREFcampos,,campos} and @pxref{XREFcamup,,camup}.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
88 ##
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
89 ## By default, this command affects the current axis; alternatively, an axis
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
90 ## can be specified by the optional argument @var{hax}.
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
91 ##
24136
141e6e16d900 Add function camlookat (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents: 24134
diff changeset
92 ## @seealso{camzoom, camroll, camlookat}
24132
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
93 ## @end deftypefn
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
94
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
95
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
96 function camorbit (varargin)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
97
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
98 [hax, varargin, nargin] = __plt_get_axis_arg__ ("camorbit", varargin{:});
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
99
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
100 if (nargin < 2 || nargin > 4)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
101 print_usage ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
102 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
103
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
104 theta = varargin{1};
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
105 phi = varargin{2};
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
106 if (! (isnumeric (theta) && isscalar (theta)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
107 && isnumeric (phi) && isscalar (phi)))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
108 error ("camorbit: THETA and PHI must be numeric scalars")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
109 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
110
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
111 if (nargin < 3)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
112 coorsys = "data";
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
113 else
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
114 coorsys = varargin{3};
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
115 if (! any (strcmpi (coorsys, {"data" "camera"})))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
116 error ("camorbit: COORSYS must be 'data' or 'camera'")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
117 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
118 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
119
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
120 if (nargin < 4)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
121 dir = "z";
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
122 else
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
123 if (strcmpi (coorsys, "camera"))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
124 error ("camorbit: DIR must not be used with 'camera' COORSYS.");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
125 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
126 dir = varargin{4};
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
127 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
128
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
129 if (ischar (dir))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
130 switch tolower (dir)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
131 case "x"
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
132 dir = [1 0 0];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
133 case "y"
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
134 dir = [0 1 0];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
135 case "z"
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
136 dir = [0 0 1];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
137 otherwise
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
138 error ("camorbit: DIR must be 'x', 'y', 'z' or a numeric 3-element \
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
139 vector.");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
140 endswitch
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
141 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
142 if (! (isnumeric (dir) && numel (dir) == 3))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
143 error ("camorbit: DIR must be 'x', 'y', 'z' or a numeric 3-element \
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
144 vector.");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
145 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
146
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
147 if (isempty (hax))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
148 hax = gca ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
149 else
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
150 hax = hax(1);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
151 endif
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
152
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
153 view_ax = camtarget (hax) - campos (hax);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
154 view_ax /= norm (view_ax);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
155 ## orthogonalize the camup vector
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
156 up = camup (hax) - view_ax*dot (camup (hax), view_ax);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
157 up /= norm (up);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
158 pitch_ax = cross (up, view_ax);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
159
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
160 if (strcmpi (coorsys, "camera"))
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
161 yaw_ax = up;
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
162 else
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
163 yaw_ax = dir;
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
164 end
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
165
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
166 ## First pitch up then yaw right (order matters)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
167 pos = num2cell (campos (hax));
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
168 [pos{:}] = __rotate_around_axis__ (pos{:}, phi, pitch_ax, camtarget (hax));
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
169 [pos{:}] = __rotate_around_axis__ (pos{:}, theta, yaw_ax, camtarget (hax));
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
170 pos = [pos{:}];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
171
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
172 up = num2cell (up);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
173 [up{:}] = __rotate_around_axis__ (up{:}, phi, pitch_ax, [0 0 0]);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
174 [up{:}] = __rotate_around_axis__ (up{:}, theta, yaw_ax, [0 0 0]);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
175 up = [up{:}];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
176
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
177 camup (hax, up)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
178 campos (hax, pos)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
179
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
180 endfunction
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
181
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
182
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
183 %!demo
24188
1253132e2173 Use "clf;" at beginning of all plot demos.
Rik <rik@octave.org>
parents: 24136
diff changeset
184 %! clf;
24132
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
185 %! peaks ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
186 %! ## rotate the camera upwards
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
187 %! camorbit (0, 30);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
188 %! ## rotate the camera right
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
189 %! camorbit (20, 0);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
190
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
191
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
192 %!test
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
193 %! hf = figure ("visible", "off");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
194 %! unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
195 %! sphere ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
196 %! campos ([20 0 0]);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
197 %! camorbit (0, 60);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
198 %! p = campos ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
199 %! u = camup ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
200 %! assert (p, [10 0 sqrt(3)*10], -eps);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
201 %! assert (u, [-sqrt(3)/2 0 0.5], -eps);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
202 %! unwind_protect_cleanup
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
203 %! close (hf);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
204 %! end_unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
205
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
206 %!test
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
207 %! hf = figure ("visible", "off");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
208 %! unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
209 %! sphere ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
210 %! camorbit(20, 30, "camera")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
211 %! p = campos ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
212 %! u = camup ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
213 %! ## Matlab 2008a
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
214 %! pm = [-0.724972932190484 -9.37224596596009 14.5476946558943];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
215 %! um = [0.375634339316796 0.77045096344497 0.515076844803523];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
216 %! assert (p, pm, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
217 %! assert (u, um, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
218 %! unwind_protect_cleanup
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
219 %! close (hf);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
220 %! end_unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
221
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
222 %!test
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
223 %! hf = figure ("visible", "off");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
224 %! unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
225 %! sphere ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
226 %! camorbit(20, 30, "data", [1 2 3]);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
227 %! p = campos ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
228 %! u = camup ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
229 %! ## Matlab 2014a
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
230 %! pm = [-0.215772672525099 -9.04926615428815 14.7669978066852];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
231 %! um = [0.413058199972826 0.773801198226611 0.48022351989284];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
232 %! assert (p, pm, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
233 %! assert (u, um, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
234 %! unwind_protect_cleanup
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
235 %! close (hf);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
236 %! end_unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
237
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
238 %!test
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
239 %! hf = figure ("visible", "off");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
240 %! unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
241 %! sphere ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
242 %! camorbit (54, 37);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
243 %! p = campos ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
244 %! u = camup ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
245 %! va = camva ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
246 %! ## Matlab 2014a
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
247 %! pm = [1.92211976102821 -6.48896756467585 15.9436117479337];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
248 %! um = [-0.261437503254928 0.882598219532154 0.390731128489274];
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
249 %! vam = 10.1274850414735;
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
250 %! assert (p, pm, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
251 %! assert (u, um, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
252 %! assert (va, vam, -5e-15);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
253 %! unwind_protect_cleanup
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
254 %! close (hf);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
255 %! end_unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
256
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
257 ## another figure, test hax
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
258 %!test
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
259 %! hf = figure ("visible", "off");
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
260 %! unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
261 %! hax = subplot (1, 2, 1);
24134
046593530e95 * camorbit.m: Fix typo (bug #52149).
Markus Mützel <markus.muetzel@gmx.de>
parents: 24132
diff changeset
262 %! sphere (hax);
24132
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
263 %! x = campos ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
264 %! camorbit (20, 30)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
265 %! subplot (1, 2, 2);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
266 %! sphere ();
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
267 %! camorbit (hax, -20, -30)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
268 %! y = campos (hax);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
269 %! assert (x, y, -eps);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
270 %! unwind_protect_cleanup
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
271 %! close (hf);
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
272 %! end_unwind_protect
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
273
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
274 ## Test input validation
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
275 %!error <numeric scalars> camorbit ([1 2], [3 4])
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
276 %!error <Invalid call> camorbit (1, 2, "data", "z", 42)
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
277 %!error <DIR must be> camorbit (1, 2, "data", "meh")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
278 %!error <DIR must be> camorbit (1, 2, "data", [1 2 3 4])
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
279 %!error <DIR must not be> camorbit (1, 2, "camera", "x")
4e97a92d16c0 Add function camorbit (patch #9049).
Colin Macdonald <cbm@m.fsf.org>
parents:
diff changeset
280 %!error <COORSYS must be> camorbit (1, 2, "meh")