Mercurial > octave
annotate scripts/plot/draw/isosurface.m @ 22231:01ba6ebc52e4
Add function "reducevolume" (patch #8856).
* scripts/plot/draw/reducevolume.m: New function.
* scripts/plot/draw/module.mk: Add to build system.
* __unimplemented__.m: Remove "reducevolume" from list.
* NEWS: Announce new function.
* doc/interpreter/plot.txi: Add to documentation.
* scripts/plot/draw/isosurface.m: Add "reducevolume" to @seealso.
author | Markus Muetzel <markus.muetzel@gmx.de> |
---|---|
date | Mon, 18 Jul 2016 19:49:39 +0200 |
parents | e50536734855 |
children | a8fd02bc895b |
rev | line source |
---|---|
21173
5ecdcc6320d9
Fix regressions caused by ismatrix definition change (partial fix bug #47036).
Colin Macdonald <cbm@m.fsf.org>
parents:
20173
diff
changeset
|
1 ## Copyright (C) 2009-2016 Martin Helm |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
2 ## |
11104 | 3 ## This file is part of Octave. |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
4 ## |
11104 | 5 ## Octave is free software; you can redistribute it and/or modify it |
6 ## under the terms of the GNU General Public License as published by | |
7 ## the Free Software Foundation; either version 3 of the License, or (at | |
8 ## your option) any later version. | |
9 ## | |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
14 ## |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
15 ## You should have received a copy of the GNU General Public License |
11104 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
18 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
19 ## -*- texinfo -*- |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20173
diff
changeset
|
20 ## @deftypefn {} {[@var{fv}] =} isosurface (@var{val}, @var{iso}) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
21 ## @deftypefnx {} {[@var{fv}] =} isosurface (@var{val}) |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20173
diff
changeset
|
22 ## @deftypefnx {} {[@var{fv}] =} isosurface (@var{x}, @var{y}, @var{z}, @var{val}, @var{iso}) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
23 ## @deftypefnx {} {[@var{fv}] =} isosurface (@var{x}, @var{y}, @var{z}, @var{val}) |
20852
516bb87ea72e
2015 Code Sprint: remove class of function from docstring for all m-files.
Rik <rik@octave.org>
parents:
20173
diff
changeset
|
24 ## @deftypefnx {} {[@var{fvc}] =} isosurface (@dots{}, @var{col}) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
25 ## @deftypefnx {} {[@var{fv}] =} isosurface (@dots{}, "noshare") |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
26 ## @deftypefnx {} {[@var{fv}] =} isosurface (@dots{}, "verbose") |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
27 ## @deftypefnx {} {[@var{f}, @var{v}] =} isosurface (@dots{}) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
28 ## @deftypefnx {} {[@var{f}, @var{v}, @var{c}] =} isosurface (@dots{}) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
29 ## @deftypefnx {} {} isosurface (@dots{}) |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
30 ## |
20173
777f26aa8e3e
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
31 ## Calculate isosurface of 3-D data. |
777f26aa8e3e
doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents:
19833
diff
changeset
|
32 ## |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
33 ## If called with one output argument and the first input argument |
12529
0579a13f29a1
Add isocolors, isonormals, isosurface functions to documentation.
Rik <octave@nomad.inbox5.com>
parents:
11587
diff
changeset
|
34 ## @var{val} is a three-dimensional array that contains the data of an |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
35 ## isosurface geometry and the second input argument @var{iso} keeps the |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
36 ## isovalue as a scalar value then return a structure array @var{fv} |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
37 ## that contains the fields @var{faces} and @var{vertices} at computed |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
38 ## points @command{[x, y, z] = meshgrid (1:l, 1:m, 1:n)}. The output |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
39 ## argument @var{fv} can directly be taken as an input argument for the |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
40 ## @command{patch} function. |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
41 ## |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
42 ## If @var{iso} is omitted or empty, a "good" value for an isosurface is |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
43 ## determined from @var{val}. |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
44 ## |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
45 ## If called with further input arguments @var{x}, @var{y} and @var{z} |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
46 ## which are three--dimensional arrays with the same size as @var{val} or |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
47 ## vectors with lengths corresponding to the dimensions of @var{val}, then the |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
48 ## volume data is taken at those given points. If @var{x}, @var{y} or @var{z} |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
49 ## are empty, the grid corresponds to the indices in the respective direction |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
50 ## (see @command{meshgrid}). |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
51 ## |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
52 ## If called with the input argument @var{col} which is a |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
53 ## three-dimensional array of the same size as @var{val}, take |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
54 ## those values for the interpolation of coloring the isosurface |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
55 ## geometry. In this case, the structure array @var{fv} has the additional field |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
56 ## @var{facevertexcdata}. |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
57 ## |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
58 ## If given the string input argument @qcode{"noshare"}, vertices might be |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
59 ## returned multiple times for different faces. The default behavior is to |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
60 ## search vertices shared by adjacent faces with @command{unique} which might be |
22072
7680225527ef
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22038
diff
changeset
|
61 ## time consuming. |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
62 ## The string input argument @qcode{"verbose"} is only for compatibility and |
22072
7680225527ef
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22038
diff
changeset
|
63 ## has no effect. |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
64 ## The string input arguments must be passed after the other arguments. |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
65 ## |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
66 ## If called with two or three output arguments, return the information about |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
67 ## the faces @var{f}, vertices @var{v} and color data @var{c} as separate arrays |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
68 ## instead of a single structure array. |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
69 ## |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
70 ## If called with no output argument, the isosurface geometry is directly |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
71 ## processed with the @command{patch} command and a light object is added to |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
72 ## the axes if not yet present. |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
73 ## |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10842
diff
changeset
|
74 ## For example, |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
75 ## |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
76 ## @example |
9758
09da0bd91412
Periodic grammar check of Octave documentation files to ensure common format
Rik <rdrider0-list@yahoo.com>
parents:
9110
diff
changeset
|
77 ## @group |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
78 ## [x, y, z] = meshgrid (1:5, 1:5, 1:5); |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
79 ## val = rand (5, 5, 5); |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
80 ## isosurface (x, y, z, val, .5); |
9758
09da0bd91412
Periodic grammar check of Octave documentation files to ensure common format
Rik <rdrider0-list@yahoo.com>
parents:
9110
diff
changeset
|
81 ## @end group |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
82 ## @end example |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
83 ## |
10846
a4f482e66b65
Grammarcheck more of the documentation.
Rik <octave@nomad.inbox5.com>
parents:
10842
diff
changeset
|
84 ## @noindent |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
85 ## will directly draw a random isosurface geometry in a graphics window. |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
86 ## |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
87 ## Another example for an isosurface geometry with different additional |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
88 ## coloring |
13929
9cae456085c2
Grammarcheck of documentation before 3.6.0 release.
Rik <octave@nomad.inbox5.com>
parents:
12974
diff
changeset
|
89 ## @c Set example in small font to prevent overfull line |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
90 ## |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
91 ## @smallexample |
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
92 ## N = 15; # Increase number of vertices in each direction |
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
93 ## iso = .4; # Change isovalue to .1 to display a sphere |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
94 ## lin = linspace (0, 2, N); |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
95 ## [x, y, z] = meshgrid (lin, lin, lin); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
96 ## val = abs ((x-.5).^2 + (y-.5).^2 + (z-.5).^2); |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
97 ## figure (); # Open another figure window |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
98 ## |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
99 ## subplot (2,2,1); view (-38, 20); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
100 ## [f, v] = isosurface (x, y, z, val, iso); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
101 ## p = patch ("Faces", f, "Vertices", v, "EdgeColor", "none"); |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
102 ## set (gca, "PlotBoxAspectRatioMode", "manual", ... |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
103 ## "PlotBoxAspectRatio", [1 1 1]); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
104 ## isonormals (x, y, z, val, p) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
105 ## set (p, "FaceColor", "green", "FaceLighting", "gouraud"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
106 ## light ("Position", [1 1 5]); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
107 ## |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
108 ## subplot (2,2,2); view (-38, 20); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
109 ## p = patch ("Faces", f, "Vertices", v, "EdgeColor", "blue"); |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
110 ## set (gca, "PlotBoxAspectRatioMode", "manual", ... |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
111 ## "PlotBoxAspectRatio", [1 1 1]); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
112 ## isonormals (x, y, z, val, p) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
113 ## set (p, "FaceColor", "none", "EdgeLighting", "gouraud"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
114 ## light ("Position", [1 1 5]); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
115 ## |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
116 ## subplot (2,2,3); view (-38, 20); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
117 ## [f, v, c] = isosurface (x, y, z, val, iso, y); |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
118 ## p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", c, ... |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
119 ## "FaceColor", "interp", "EdgeColor", "none"); |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
120 ## set (gca, "PlotBoxAspectRatioMode", "manual", ... |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
121 ## "PlotBoxAspectRatio", [1 1 1]); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
122 ## isonormals (x, y, z, val, p) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
123 ## set (p, "FaceLighting", "gouraud"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
124 ## light ("Position", [1 1 5]); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
125 ## |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
126 ## subplot (2,2,4); view (-38, 20); |
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
127 ## p = patch ("Faces", f, "Vertices", v, "FaceVertexCData", c, ... |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
128 ## "FaceColor", "interp", "EdgeColor", "blue"); |
14327
4d917a6a858b
doc: Use Octave coding conventions in @example blocks of docstrings.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
129 ## set (gca, "PlotBoxAspectRatioMode", "manual", ... |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
130 ## "PlotBoxAspectRatio", [1 1 1]); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
131 ## isonormals (x, y, z, val, p) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
132 ## set (p, "FaceLighting", "gouraud"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
133 ## light ("Position", [1 1 5]); |
12974
6590446c2498
doc: Correct Texinfo overfull hbox instances.
Rik <octave@nomad.inbox5.com>
parents:
12529
diff
changeset
|
134 ## @end smallexample |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
135 ## |
22231
01ba6ebc52e4
Add function "reducevolume" (patch #8856).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
22162
diff
changeset
|
136 ## @seealso{isonormals, isocolors, smooth3, reducevolume} |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
137 ## @end deftypefn |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
138 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
139 ## Author: Martin Helm <martin@mhelm.de> |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
140 |
22142
62208397b99e
Add function "smooth3" (patch #8864).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
22072
diff
changeset
|
141 ## FIXME: Add support for string input argument "verbose" |
62208397b99e
Add function "smooth3" (patch #8864).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
22072
diff
changeset
|
142 ## (needs changes to __marching_cube__.m) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
143 |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14846
diff
changeset
|
144 function varargout = isosurface (varargin) |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
145 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
146 if (nargin < 1 || nargin > 8 || nargout > 3) |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
147 print_usage (); |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
148 endif |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
149 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
150 [x, y, z, val, iso, colors, noshare, verbose] = __get_check_isosurface_args__ (nargout, varargin{:}); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
151 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
152 calc_colors = ! isempty (colors); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
153 if (calc_colors) |
19833
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19700
diff
changeset
|
154 [fvc.faces, fvc.vertices, fvc.facevertexcdata] = ... |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19700
diff
changeset
|
155 __marching_cube__ (x, y, z, val, iso, colors); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
156 else |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
157 [fvc.faces, fvc.vertices] = __marching_cube__ (x, y, z, val, iso); |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
158 endif |
11587
c792872f8942
all script files: untabify and strip trailing whitespace
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
159 |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
160 if (isempty (fvc.vertices) || isempty (fvc.faces)) |
17078
18137205f57d
isosurface.m: Update to new version of newplot().
Rik <rik@octave.org>
parents:
16839
diff
changeset
|
161 warning ("isosurface: triangulation is empty"); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
162 endif |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
163 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
164 if (!noshare) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
165 [fvc.faces, fvc.vertices, J] = __unite_shared_vertices__ (fvc.faces, fvc.vertices); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
166 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
167 if (calc_colors) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
168 fvc.facevertexcdata(J) = []; # share very close vertices |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
169 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
170 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
171 |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
172 switch (nargout) |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
173 case 0 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
174 ## plot the calculated surface |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
175 if (calc_colors) |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
176 fc = fvc.facevertexcdata; |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
177 else |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
178 fc = iso; |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
179 endif |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
180 ## FIXME: Matlab uses "EdgeColor", "none". But that would look odd |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
181 ## with gnuplot. |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
182 pa = patch ("Faces", fvc.faces, "Vertices", fvc.vertices, |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
183 "FaceVertexCData", fc, |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
184 "FaceColor", "flat", "EdgeColor", "k", |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
185 "FaceLighting", "gouraud"); |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
186 hax = gca (); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
187 if (! ishold ()) |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
188 set (hax, "View", [-37.5, 30], "Box", "off"); |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
189 endif |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
190 isonormals (x, y, z, val, pa); |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
191 lights = findobj (hax, "Type", "light"); |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
192 if (isempty (lights)) |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
193 ## FIXME: Matlab seems to use camlight (patch #9014) here |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
194 light (); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
195 endif |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
196 case 1 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
197 varargout = {fvc}; |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
198 case 2 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
199 varargout = {fvc.faces, fvc.vertices}; |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
200 otherwise ## 3 |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
201 varargout = {fvc.faces, fvc.vertices, fvc.facevertexcdata}; |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
202 endswitch |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
203 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
204 endfunction |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
205 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
206 function [x, y, z, data, iso, colors, noshare, verbose] = __get_check_isosurface_args__ (nout, varargin) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
207 ## get arguments from input and check values |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
208 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
209 x = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
210 y = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
211 z = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
212 data = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
213 iso = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
214 colors = []; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
215 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
216 ## default values |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
217 noshare = false; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
218 verbose = false; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
219 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
220 nin = length (varargin); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
221 num_string_inputs = 0; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
222 for i_arg = (nin:-1:nin-1) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
223 ## check whether last maximum 2 input arguments are strings and assign parameters |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
224 if (!ischar (varargin{i_arg}) || i_arg < 1) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
225 ## string arguments must be at the end |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
226 break |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
227 end |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
228 switch (tolower (varargin{i_arg})) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
229 case {"v", "verbose"} |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
230 verbose = true; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
231 num_string_inputs++; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
232 case {"n", "noshare"} |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
233 noshare = true; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
234 num_string_inputs++; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
235 otherwise |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
236 error ("isosurface: parameter '%s' not supported", varargin{i_arg}) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
237 endswitch |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
238 endfor |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
239 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
240 ## assign arguments |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
241 switch (nin - num_string_inputs) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
242 case 1 ## isosurface (val, ...) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
243 data = varargin{1}; |
22072
7680225527ef
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22038
diff
changeset
|
244 case 2 ## isosurface (val, iso, ...) or isosurface (val, col, ...) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
245 data = varargin{1}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
246 if (isscalar (varargin{2}) || isempty (varargin{2})) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
247 iso = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
248 else |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
249 colors = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
250 endif |
22072
7680225527ef
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22038
diff
changeset
|
251 case 3 ## isosurface (val, iso, col, ...) |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
252 data = varargin{1}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
253 iso = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
254 colors = varargin{3}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
255 case 4 ## isosurface (x, y, z, val, ...) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
256 x = varargin{1}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
257 y = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
258 z = varargin{3}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
259 data = varargin{4}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
260 case 5 ## isosurface (x, y, z, val, iso, ...) or isosurface (x, y, z, val, col, ...) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
261 x = varargin{1}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
262 y = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
263 z = varargin{3}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
264 data = varargin{4}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
265 if (isscalar (varargin{5}) || isempty (varargin{5})) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
266 iso = varargin{5}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
267 else |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
268 colors = varargin{5}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
269 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
270 case 6 ## isosurface (x, y, z, val, iso, col, ...) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
271 x = varargin{1}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
272 y = varargin{2}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
273 z = varargin{3}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
274 data = varargin{4}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
275 iso = varargin{5}; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
276 colors = varargin{6}; |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
277 otherwise |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
278 error ("isosurface: wrong number of input arguments") |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
279 endswitch |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
280 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
281 ## check dimensions of data |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
282 data_size = size (data); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
283 if (ndims (data) != 3 || any (data_size(1:3) < 2)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
284 error ("isosurface: VAL must be a non-singleton 3-dimensional matrix"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
285 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
286 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
287 if (isempty (x)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
288 x = 1:size (data, 2); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
289 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
290 if (isempty (y)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
291 y = 1:size (data, 1); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
292 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
293 if (isempty (z)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
294 z = 1:size (data, 3); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
295 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
296 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
297 ## check x |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
298 if (isvector (x) && length (x) == data_size(2)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
299 x = repmat (x(:)', [data_size(1) 1 data_size(3)]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
300 elseif (! size_equal (data, x)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
301 error ("isosurface: X must match the size of VAL"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
302 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
303 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
304 ## check y |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
305 if (isvector (y) && length (y) == data_size(1)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
306 y = repmat (y(:), [1 data_size(2) data_size(3)]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
307 elseif (! size_equal (data, y)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
308 error ("isosurface: Y must match the size of VAL"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
309 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
310 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
311 ## check z |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
312 if (isvector (z) && length (z) == data_size(3)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
313 z = repmat (reshape (z(:), [1 1 length(z)]), [data_size(1) data_size(2) 1]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
314 elseif (! size_equal (data, z)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
315 error ("isosurface: Z must match the size of VAL"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
316 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
317 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
318 ## check iso |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
319 if (isempty (iso)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
320 ## calculate "good" iso value from data |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
321 iso = __calc_isovalue_from_data__ (data); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
322 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
323 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
324 if ~isscalar (iso) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
325 error ("isosurface: ISO must be a scalar") |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
326 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
327 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
328 ## check colors |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
329 if (! isempty (colors)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
330 if (! size_equal (data, colors)) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
331 error ("isosurface: COL must match the size of VAL") |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
332 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
333 if (nout == 2) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
334 warning ("isosurface: colors will be calculated, but no output argument to receive it."); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
335 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
336 elseif (nout == 3) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
337 error ("isosurface: COL must be passed to return C") |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
338 endif |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
339 |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
340 endfunction |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
341 |
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
342 |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
343 %!demo |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
344 %! clf; |
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
345 %! [x,y,z] = meshgrid (-2:0.5:2, -2:0.5:2, -2:0.5:2); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
346 %! val = x.^2 + y.^2 + z.^2; |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
347 %! isosurface (x, y, z, val, 3); |
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
348 %! isosurface (x, y, z, val, 5); |
17633
382aaf2d533a
isosurface.m: Turn off plot box and grid for Matlab visual compatibility.
Rik <rik@octave.org>
parents:
17572
diff
changeset
|
349 %! axis equal; |
22162
e50536734855
Change default properties of isosurface (bug #48572).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22142
diff
changeset
|
350 %! title ('isosurfaces of two nested spheres'); |
14237
11949c9795a0
Revamp %!demos in m-files to use Octave coding conventions on spacing, etc.
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
351 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
352 %!demo |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
353 %! x = 0:2; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
354 %! y = 0:3; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
355 %! z = 0:1; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
356 %! [xx, yy, zz] = meshgrid (x, y, z); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
357 %! val = [0, 0, 0; 0, 0, 0; 0, 0, 1; 0, 0, 1]; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
358 %! val(:,:,2) = [0, 0, 0; 0, 0, 1; 0, 1, 2; 0, 1, 2]; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
359 %! iso = 0.8; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
360 %% three arguments, no output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
361 %! figure; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
362 %! subplot (2, 2, 1); isosurface (val, iso, yy); view(3) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
363 %% six arguments, no output (x, y, z are vectors) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
364 %! subplot (2, 2, 2); isosurface (x, y, z, val, iso, yy); view (3) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
365 %% six arguments, no output (x, y, z are matrices) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
366 %! subplot (2, 2, 3); isosurface (xx, yy, zz, val, iso, yy); view (3) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
367 %% six arguments, no output (mixed x, y, z) and option "noshare" |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
368 %! subplot (2, 2, 4); isosurface (x, yy, z, val, iso, yy, "noshare"); view (3) |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
369 %! annotation("textbox", [0 0.95 1 0.1], ... |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
370 %! "String", ["Apart from the first plot having a different scale, " ... |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
371 %! "all four plots must look the same.\n" ... |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
372 %! "The last plot might have different colors but must have " ... |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
373 %! "the same shape."], ... |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
374 %! "HorizontalAlignment", "left"); |
17078
18137205f57d
isosurface.m: Update to new version of newplot().
Rik <rik@octave.org>
parents:
16839
diff
changeset
|
375 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
376 %!shared x, y, z, xx, yy, zz, val, iso |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
377 %! x = 0:2; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
378 %! y = 0:3; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
379 %! z = 0:1; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
380 %! [xx, yy, zz] = meshgrid (x, y, z); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
381 %! val = [0, 0, 0; 0, 0, 0; 0, 0, 1; 0, 0, 1]; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
382 %! val(:,:,2) = [0, 0, 0; 0, 0, 1; 0, 1, 2; 0, 1, 2]; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
383 %! iso = 0.8; |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
384 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
385 ## one argument, one output |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
386 %!test |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
387 %! fv = isosurface (val); |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14335
diff
changeset
|
388 %! assert (isfield (fv, "vertices"), true); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14335
diff
changeset
|
389 %! assert (isfield (fv, "faces"), true); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
390 %! assert (size (fv.vertices), [5 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
391 %! assert (size (fv.faces), [3 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
392 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
393 ## two arguments (second is ISO), one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
394 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
395 %! fv = isosurface (val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
396 %! assert (isfield (fv, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
397 %! assert (isfield (fv, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
398 %! assert (size (fv.vertices), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
399 %! assert (size (fv.faces), [10 3]); |
17078
18137205f57d
isosurface.m: Update to new version of newplot().
Rik <rik@octave.org>
parents:
16839
diff
changeset
|
400 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
401 ## two arguments (second is COL), one output |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
402 %!test |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
403 %! fvc = isosurface (val, yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
404 %! assert (isfield (fvc, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
405 %! assert (isfield (fvc, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
406 %! assert (isfield (fvc, "facevertexcdata"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
407 %! assert (size (fvc.vertices), [5 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
408 %! assert (size (fvc.faces), [3 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
409 %! assert (size (fvc.facevertexcdata), [5 1]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
410 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
411 ## three arguments, one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
412 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
413 %! fvc = isosurface (val, iso, yy); |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14335
diff
changeset
|
414 %! assert (isfield (fvc, "vertices"), true); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14335
diff
changeset
|
415 %! assert (isfield (fvc, "faces"), true); |
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14335
diff
changeset
|
416 %! assert (isfield (fvc, "facevertexcdata"), true); |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
417 %! assert (size (fvc.vertices), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
418 %! assert (size (fvc.faces), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
419 %! assert (size (fvc.facevertexcdata), [11 1]); |
17078
18137205f57d
isosurface.m: Update to new version of newplot().
Rik <rik@octave.org>
parents:
16839
diff
changeset
|
420 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
421 ## four arguments, one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
422 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
423 %! fv = isosurface (x, [], z, val); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
424 %! assert (isfield (fv, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
425 %! assert (isfield (fv, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
426 %! assert (size (fv.vertices), [5 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
427 %! assert (size (fv.faces), [3 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
428 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
429 ## five arguments (fifth is ISO), one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
430 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
431 %! fv = isosurface (xx, y, [], val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
432 %! assert (isfield (fv, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
433 %! assert (isfield (fv, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
434 %! assert (size (fv.vertices), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
435 %! assert (size (fv.faces), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
436 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
437 ## five arguments (fifth is COL), one output |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
438 %!test |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
439 %! fvc = isosurface ([], yy, z, val, yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
440 %! assert (isfield (fvc, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
441 %! assert (isfield (fvc, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
442 %! assert (isfield (fvc, "facevertexcdata"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
443 %! assert (size (fvc.vertices), [5 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
444 %! assert (size (fvc.faces), [3 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
445 %! assert (size (fvc.facevertexcdata), [5 1]); |
17078
18137205f57d
isosurface.m: Update to new version of newplot().
Rik <rik@octave.org>
parents:
16839
diff
changeset
|
446 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
447 ## six arguments, one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
448 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
449 %! fvc = isosurface (xx, yy, zz, val, iso, yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
450 %! assert (isfield (fvc, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
451 %! assert (isfield (fvc, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
452 %! assert (isfield (fvc, "facevertexcdata"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
453 %! assert (size (fvc.vertices), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
454 %! assert (size (fvc.faces), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
455 %! assert (size (fvc.facevertexcdata), [11 1]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
456 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
457 ## five arguments (fifth is ISO), two outputs |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
458 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
459 %! [f, v] = isosurface (x, y, z, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
460 %! assert (size (f), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
461 %! assert (size (v), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
462 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
463 ## six arguments, three outputs |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
464 %!test |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
465 %! [f, v, c] = isosurface (x, y, z, val, iso, yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
466 %! assert (size (f), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
467 %! assert (size (v), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
468 %! assert (size (c), [11 1]); |
9110
22ae6b3411a7
Add isocolor, isonormals and isosurface functions (For Martin Helm). Add 3D filled triangular patches and the trisurf function
David Bateman <dbateman@free.fr>
parents:
diff
changeset
|
469 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
470 ## two arguments (second is ISO) and one string, one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
471 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
472 %! fv = isosurface (val, iso, "verbose"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
473 %! assert (isfield (fv, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
474 %! assert (isfield (fv, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
475 %! assert (size (fv.vertices), [11 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
476 %! assert (size (fv.faces), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
477 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
478 ## six arguments and two strings, one output |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
479 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
480 %! fvc = isosurface (xx, yy, zz, val, iso, yy, "v", "noshare"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
481 %! assert (isfield (fvc, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
482 %! assert (isfield (fvc, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
483 %! assert (isfield (fvc, "facevertexcdata"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
484 %! assert (size (fvc.vertices), [20 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
485 %! assert (size (fvc.faces), [10 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
486 %! assert (size (fvc.facevertexcdata), [20 1]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
487 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
488 ## five arguments (fifth is COL) and two strings (different order), one output |
21173
5ecdcc6320d9
Fix regressions caused by ismatrix definition change (partial fix bug #47036).
Colin Macdonald <cbm@m.fsf.org>
parents:
20173
diff
changeset
|
489 %!test |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
490 %! fvc = isosurface (xx, yy, zz, val, yy, "n", "v"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
491 %! assert (isfield (fvc, "vertices"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
492 %! assert (isfield (fvc, "faces"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
493 %! assert (isfield (fvc, "facevertexcdata"), true); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
494 %! assert (size (fvc.vertices), [7 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
495 %! assert (size (fvc.faces), [3 3]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
496 %! assert (size (fvc.facevertexcdata), [7 1]); |
21173
5ecdcc6320d9
Fix regressions caused by ismatrix definition change (partial fix bug #47036).
Colin Macdonald <cbm@m.fsf.org>
parents:
20173
diff
changeset
|
497 |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
498 ## test for each error and warning |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
499 %!test |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
500 %!error <X must match the size of VAL> x = 1:2:24; fvc = isosurface (x, y, z, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
501 %!error <Y must match the size of VAL> y = -14:6:11; fvc = isosurface (x, y, z, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
502 %!error <Z must match the size of VAL> z = linspace (16, 18, 5); fvc = isosurface (x, y, z, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
503 %!error <X must match the size of VAL> x = 1:2:24; [xx, yy, zz] = meshgrid (x, y, z); fvc = isosurface (xx, yy, zz, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
504 %!error <X must match the size of VAL> y = -14:6:11; [xx, yy, zz] = meshgrid (x, y, z); fvc = isosurface (xx, yy, zz, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
505 %!error <X must match the size of VAL> z = linspace (16, 18, 3); [xx, yy, zz] = meshgrid (x, y, z); fvc = isosurface (xx, yy, zz, val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
506 %!error <VAL must be a non-singleton 3-dimensional matrix> val = reshape(1:6*8, [6 8]); fvc = isosurface (val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
507 %!error <VAL must be a non-singleton 3-dimensional matrix> val = reshape(1:6*8, [6 1 8]); fvc = isosurface (val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
508 %!error <ISO must be a scalar> fvc = isosurface (val, [iso iso], yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
509 %!error <COL must match the size of VAL> fvc = isosurface (val, [iso iso]); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
510 %!warning <colors will be calculated, but no output argument to receive it.> [f, v] = isosurface (val, iso, yy); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
511 %!error <COL must be passed to return C> [f, v, c] = isosurface (val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
512 %!error <Invalid call to isosurface> fvc = isosurface (); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
513 %!error <Invalid call to isosurface> [f, v, c, a] = isosurface (val, iso); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
514 %!error <wrong number of input arguments> fvc = isosurface (xx, yy, zz, val, iso, yy, 5); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
515 %!error <parameter 'test_string' not supported> fvc = isosurface (val, iso, "test_string"); |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
516 |
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
517 ## test for __calc_isovalue_from_data__ |
22038
a4eb6d3de9f0
maint: Cannot test private function, unless bug #38776 is resolved.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
22035
diff
changeset
|
518 ## FIXME: private function cannot be tested, unless bug #38776 is resolved. |
a4eb6d3de9f0
maint: Cannot test private function, unless bug #38776 is resolved.
Kai T. Ohlhus <k.ohlhus@gmail.com>
parents:
22035
diff
changeset
|
519 %!xtest |
22035
634fbedbfb5b
Additional functionality for isosurface.m (bug #46946)
Markus Muetzel <markus.muetzel@gmx.de>
parents:
21546
diff
changeset
|
520 %! assert (__calc_isovalue_from_data__ (1:5), 3.02); |