1 # Created by Octave 3.6.2, Tue Jun 19 09:54:03 2012 UTC <root@brouzouf>
13 # name: <cell-element>
17 [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )
19 Some points x, are observed and one assumes that they belong to
20 parallel planes. There is an unknown direction d s.t. for each
21 point x(i,:), one has :
23 x(i,:)*d == w(j(i)) + noise
25 where j is known(given by the matrix a ), but w is unknown.
27 Under the assumption that the error on x are i.i.d. gaussian,
28 best_dir() returns the maximum likelihood estimate of d and w.
30 This function is slower when cv is returned.
34 x : D x P P points. Each one is the sum of a point that belongs
35 to a plane and a noise term.
37 a : P x W 0-1 matrix describing association of points (rows of
40 a(p,i) == 1 iff point x(p,:) belongs to the i'th plane.
44 sx : P x 1 Covariance of x(i,:) is sx(i)*eye(D).
48 d : D x 1 All the planes have the same normal, d. d has unit
51 w : W x 1 The i'th plane is { y | y*d = w(i) }.
53 rx : P x 1 Residuals of projection of points to corresponding plane.
56 Assuming that the covariance of x (i.e. sx) was known
57 only up to a scale factor, an estimate of the
58 covariance of x and [w;d] are
60 sx * mean(rx.^2)/mean(sx) and
61 cv * mean(rx.^2)/mean(sx), respectively.
64 Covariance of the estimator at [d,w] ( assuming that
65 diag(covariance(vec(x))) == sx ).
68 Derivatives of [w;d] wrt to x.
70 Author : Etienne Grossmann <etienne@egdn.net>
76 # name: <cell-element>
80 [d,w,rx,cv,wx] = best_dir( x, [a , sx ] )
85 # name: <cell-element>
92 # name: <cell-element>
96 [cv,wx] = best_dir_cov(x,a,sx,wd)
99 a P x W : Same as in best_dir, but sx is compulsory.
102 wd (W+D) x 1 : ML estimate of [w;d]
104 cv (W+D)x(W+D) : Covariance of the ML estimator at [w;d]
106 wx (W+D)x(P*D) : derivatives of ML estimate wrt to observations
111 # name: <cell-element>
115 [cv,wx] = best_dir_cov(x,a,sx,wd)
122 # name: <cell-element>
129 # name: <cell-element>
133 y = bound_convex(d,h,x,pad=0)
135 y : 3xQ : Corners that define the convex hull of the projection of x
136 in the plane d*y == v. The corners are sorted.
141 # name: <cell-element>
145 y = bound_convex(d,h,x,pad=0)
150 # name: <cell-element>
157 # name: <cell-element>
161 col = checker_color (R,C, checker, col)
165 # name: <cell-element>
169 col = checker_color (R,C, checker, col)
174 # name: <cell-element>
181 # name: <cell-element>
185 s = data2vrml (typeStr, value) - Convert 'value' to VRML code of type typeStr
187 TODO: Improve this function
189 If typeStr is "SFBool", then s is "TRUE" or "FALSE"
190 If typeStr is "MFString", then s is sprintf ("%s", value)
191 otherwise s is sprintf ("%f", value)
196 # name: <cell-element>
200 s = data2vrml (typeStr, value) - Convert 'value' to VRML code of type typeStr
205 # name: <cell-element>
212 # name: <cell-element>
218 orthogonally project x to the affine plane d*x == v
222 # name: <cell-element>
231 # name: <cell-element>
238 # name: <cell-element>
242 save_vrml(outname,[options],s1,...) - Save vrml code
244 Makes a vrml2 file from strings of vrml code. A "background" node is
252 - "outname" should not contain the substring ".wrl" anywhere else
254 - "outname" should only contain the character ">" as ">>" at the
255 beginning , to indicate append rather than overwriting the
260 # name: <cell-element>
264 save_vrml(outname,[options],s1,.
268 # name: <cell-element>
275 # name: <cell-element>
285 # name: <cell-element>
294 # name: <cell-element>
301 # name: <cell-element>
311 # name: <cell-element>
320 # name: <cell-element>
327 # name: <cell-element>
331 Test that vrml_faces works with "tex" option
335 # name: <cell-element>
339 Test that vrml_faces works with "tex" option
344 # name: <cell-element>
351 # name: <cell-element>
355 s = vmesh (x, y, z [, options] ) - Visualize a 3D surface
356 s = vmesh (z [, options] )
358 Visualizes a 3D surface. Returns the VRML code.
360 x : RxC or C : X coordinates of the points on the surface
364 s : string : The code
366 If x and y are omitted, they are assumed to be linspace(-1,1,C or R).
367 Points presenting one or more 'inf' or 'nan' coordinates are ignored.
369 Options : (all options of vrml_surf may be used too)
371 "col" , col : 3 : RGB Color, Default = [0.3,0.4,0.9]
372 or 3x(R*C): Color of vertices (vrml colorPerVertex is TRUE).
375 or 1 : Reflectivity (equivalent to [col,col,col] in RGB)
376 or R x C : Reflectivity of vertices
380 : Reflectivity of facets.
382 RGB and reflectivity values should be in the [0,1] interval.
384 "checker", c : 1x2 : Color as a checker. If c(1) is positive, checker has
385 c(1) rows. If it is negative, each checker row is
386 c(1) facets high. c(2) does the same for columns.
387 or 1x1 : Same as [c,c].
389 "zgray" : Color varies from black for lowest point to white
392 "zrb" : Color varies from blue for lowest point to red for
395 "zcol", zcol : Mx3 : Color is linearly interpolated between the RGB
396 values specified by the rows of zcol.
398 "steps" : Represent surface as a piecewise constant Z = f(X,Y)
401 "bars" : Represent surface as a bar plot
402 "bwid" : Bar width, relative to point separation. Default = 2/3
404 "level", l : 1xN : Display one or more horizontal translucent plane(s)
406 z == l(i) (1 <= i <= length(l))
408 "lcol", lc : Nx3 : Color of the plane(s). Default = [.7 .7 .7]
409 "ltran",lt : Nx1 : Transparency of the plane(s). Default = 0.3
412 "normalize" : Normalize z to [-1,1]
414 See also: vrml_surf(), vrml_faces(), demo("vmesh")
418 # name: <cell-element>
422 s = vmesh (x, y, z [, options] ) - Visualize a 3D surface
427 # name: <cell-element>
434 # name: <cell-element>
438 s = vrml_Background (...) - Vrml Background node
440 s is a string of the form :
441 ------------------------------------------------------------------
454 ------------------------------------------------------------------
457 All the fields of the node
459 Example : s = vrml_Background ("skyColor",[0 0 1]);
464 # name: <cell-element>
468 s = vrml_Background (.
472 # name: <cell-element>
479 # name: <cell-element>
483 s = vrml_Box (sz) - Box { ... } node
485 If sz is not given, returns Box { }
486 If sz has size 1, returns Box { <sz> <sz> <sz> }
487 If sz has size 3, returns Box { <sz(1)> <sz(2)> <sz(3)> }
491 # name: <cell-element>
495 s = vrml_Box (sz) - Box { .
499 # name: <cell-element>
503 vrml_DirectionalLight
506 # name: <cell-element>
510 s = vrml_DirectionalLight (...) - Vrml DirectionalLight node
512 s is a string of the form :
513 ------------------------------------------------------------------
515 exposedField SFFloat ambientIntensity 0 # [0,1]
516 exposedField SFColor color 1 1 1 # [0,1]
517 exposedField SFVec3f direction 0 0 -1 # (-,)
518 exposedField SFFloat intensity 1 # [0,1]
519 exposedField SFBool on TRUE
521 ------------------------------------------------------------------
524 All the fields of the node
526 See also : vrml_PointLight
530 # name: <cell-element>
534 s = vrml_DirectionalLight (.
538 # name: <cell-element>
545 # name: <cell-element>
549 s = vrml_PointLight (...) - Vrml PointLight node
551 s is a string of the form :
552 ------------------------------------------------------------------
554 exposedField SFFloat ambientIntensity 0 ## [0,1]
555 exposedField SFVec3f attenuation 1 0 0 ## [0,inf)
556 exposedField SFColor color 1 1 1 ## [0,1]
557 exposedField SFFloat intensity 1 ## [0,1]
558 exposedField SFVec3f location 0 0 0 ## (-inf,inf)
559 exposedField SFBool on TRUE
560 exposedField SFFloat radius 100 ## [0,inf)
562 ------------------------------------------------------------------
565 All the fields of the node
567 Example : s = vrml_PointLight ("location",[0 0 1]);
569 See also : vrml_DirectionalLight
573 # name: <cell-element>
577 s = vrml_PointLight (.
581 # name: <cell-element>
588 # name: <cell-element>
592 vrml_ROUTE (eventout, eventin)
596 # name: <cell-element>
600 vrml_ROUTE (eventout, eventin)
605 # name: <cell-element>
612 # name: <cell-element>
616 s = vrml_Sphere (radius) - VRML code for a sphere
620 # name: <cell-element>
624 s = vrml_Sphere (radius) - VRML code for a sphere
629 # name: <cell-element>
636 # name: <cell-element>
640 s = vrml_TimeSensor (...) - Low-level vrml TimeSensor node
642 s is a vrml node with possible fields :
643 ------------------------------------------------------------------
645 exposedField SFTime cycleInterval 1 # (0,inf)
646 exposedField SFBool enabled TRUE
647 exposedField SFBool loop FALSE
648 exposedField SFTime startTime 0 # (-inf,inf)
649 exposedField SFTime stopTime 0 # (-inf,inf)
650 eventOut SFTime cycleTime
651 eventOut SFFloat fraction_changed # [0, 1]
652 eventOut SFBool isActive
655 ------------------------------------------------------------------
658 Beyond all the fields of the node, it is also possible to use the option
660 "DEF", name : The created node will be preceded by 'DEF name ', so that
661 it is further possible to refer to it.
667 # name: <cell-element>
671 s = vrml_TimeSensor (.
675 # name: <cell-element>
682 # name: <cell-element>
686 s = vrml_Viewpoint (...) - Vrml Viewpoint node
688 s is a string of the form :
689 ------------------------------------------------------------------
691 eventIn SFBool set_bind
692 exposedField SFFloat fieldOfView 0.785398 # (0,pi)
693 exposedField SFBool jump TRUE
694 exposedField SFRotation orientation 0 0 1 0 # [-1,1],(-pi,pi)
695 exposedField SFVec3f position 0 0 10 # (-,)
696 field SFString description ""
697 eventOut SFTime bindTime
698 eventOut SFBool isBound
700 ------------------------------------------------------------------
703 All the fields of the node
705 Example : s = vrml_Viewpoint ("location",[0 0 1]);
707 See also : vrml_DirectionalLight
711 # name: <cell-element>
715 s = vrml_Viewpoint (.
719 # name: <cell-element>
726 # name: <cell-element>
730 s = vrml_anim (typ, val, eventin, time)
733 - an interpolator of type typ, with values val
734 - a TimeSensor with period time
735 and route the event to eventin
740 # name: <cell-element>
744 s = vrml_anim (typ, val, eventin, time)
749 # name: <cell-element>
756 # name: <cell-element>
760 s = vrml_arrow (sz, col) - Arrow pointing in "y" direction
764 Arguments are optional. NaN's are replaced by default values.
766 sz = [len, alen, dc, dr] has size 1, 2, 3 or 4, where
768 len : total length <1>
769 alen : If positive: length of cone/total length <1/4>
770 If negative: -(length of cone)
771 dc : If positive: diameter of cone base/total len <1/16>
772 If negative: -(diameter of cone)
773 dr : If positive: diameter of rod/total length <min(dc, len/32)>
774 If negative: -(diameter of rod)
776 col : 3 or 3x2 : Color of body and cone <[0.3 0.4 0.9]>
780 s : string : vrml representation of an arrow (a rod and a cone)
784 # name: <cell-element>
788 s = vrml_arrow (sz, col) - Arrow pointing in "y" direction
793 # name: <cell-element>
800 # name: <cell-element>
804 p = vrml_browse ([s]) - View vrml code s with FreeWRL
805 vrml_browse ("-kill") - Kill the browser
807 s : string : VRML code, as returned by the vrml_XYZ functions.
808 If s is not specified, a sombrero is showed
810 p : int : pid of the current browser. If freewrl has not been started
811 or has died, a new one is started. p is zero or negative in
812 case of failure to start freewrl.
814 Some keystrokes for FreeWRL (more in the freewrl manpage) :
816 'e' : Examine : mouse 1 and drag rotates the scene
817 mouse 3 and drag moves closer/farther
818 'w' : Walk : mouse 1 and drag moves for/backward, turns
819 mouse 3 and drag translates parallel to the screen
820 's' : Save a snapshot in files 'octave.snapshot.NNNN.ppm'
823 WARNING : FreeWRL >0.25 (http://www.crc.ca/FreeWRL/) must be installed.
825 BUG : The vrml browser is not killed when octave exits. Sometimes the
826 vrml browser does not get raised or gets raised improperly
827 (shows the contents of the topmost window above it). Use
832 # name: <cell-element>
836 p = vrml_browse ([s]) - View vrml code s with FreeWRL
841 # name: <cell-element>
848 # name: <cell-element>
854 Makes a cylinder that links x(:,1) to x(:,2)
858 "tran", transparency : Transparency default = 0
859 "col" , col : Color default = [ 0.3 0.4 0.9 ]
860 "rad" , radius : Radius of segments default = 0.05
861 "balls" : Add balls to extremities
862 "brad" : Radius of balls default = rad
863 "emit", bool : Use or not emissiveColor
864 "noemit" : Same as emit,0
865 "arrow" : Last segment is an arrow
866 "hcol", hcol : Set color of the head of the arrow.
871 # name: <cell-element>
879 # name: <cell-element>
886 # name: <cell-element>
894 # name: <cell-element>
903 # name: <cell-element>
910 # name: <cell-element>
918 # name: <cell-element>
927 # name: <cell-element>
934 # name: <cell-element>
942 # name: <cell-element>
951 # name: <cell-element>
958 # name: <cell-element>
966 # name: <cell-element>
975 # name: <cell-element>
982 # name: <cell-element>
986 v = vrml_ellipsoid (moment, col) - Ellipsoid
988 moment : 3x3 : Define elipsoid by x'*moment*x = 1
989 or 3 : use diag(moment)
990 or 1 : use diag(moment([1,1,1])) default : eye(3)
992 col : 3 : Color default : [0.3 0.4 0.9]
997 # name: <cell-element>
1001 v = vrml_ellipsoid (moment, col) - Ellipsoid
1006 # name: <cell-element>
1013 # name: <cell-element>
1017 s = vrml_faces(x,f,...) - VRML facet object (IndexedFaceSet node)
1019 x : 3xP : The 3D points
1020 f : 3xQ : The indexes of the points forming the faces. Indexes
1021 should have values in 1:P.
1023 Returns a Shape -> IndexedFaceSet vrml node.
1025 No check is done on anything
1029 "col" , col : 3 : Color, default = [0.3,0.4,0.9]
1030 or 3xP : Color of vertices
1031 or 3xQ : Color of facets (use "colorPerVertex" below to
1032 disambiguate the case P==Q).
1034 "emit", em : 3 : Emissive color of the surface
1035 : 3XP : (same as color)
1037 : 1 : Use color as emissive color too default = 0
1039 "tran", tran : 1x1 : Transparency, default = 0
1042 : 1 : vrml creaseAngle value. The browser may smoothe the
1043 crease between facets whose angle is less than a.
1046 : string : Name of file containing texture. default : none
1048 "imsz", sz : 2 : Size of texture image
1049 default is determined by imginfo()
1052 : 2x3Q : Coordinates of vertices in texture image. Each 2x3
1053 block contains coords of one facet's corners. The
1054 coordinates should be in [0,1], as in a VRML
1055 TextureCoordinate node.
1056 default assumes faces are returned
1059 "smooth" : same as "creaseAngle",pi.
1061 "colorPerVertex", c: If 1, col specifies color of vertices. If 0,
1062 col specifies color of facets. Default = 1
1064 "DEFcoord",n : string : DEF the coord VRML node with name n. Default = ''
1065 "DEFcol", n : string : DEF the color VRML node with name n. Default = ''
1067 See also: vrml_surf(), vmesh(), test_vrml_faces()
1071 # name: <cell-element>
1075 s = vrml_faces(x,f,.
1079 # name: <cell-element>
1086 # name: <cell-element>
1090 s = vrml_flatten (x [, d, w, col]) - A planar surface containing x
1092 If the points x are not coplanar (or not in the affine plane {y|d'*y==w}),
1093 the surface will not contain the points, but rather their projections on
1094 the plane {y|d'*y==w}.
1096 x : 3 x P : 3D points
1097 d : 3 : normal to plane | Default : given by best_dir()
1098 w : 1 : intercept of plane |
1099 col : 3 : RGB color Default : [0.3,0.4,0.9]
1101 s : string : vrml code representing the planar surface
1105 # name: <cell-element>
1109 s = vrml_flatten (x [, d, w, col]) - A planar surface containing x
1114 # name: <cell-element>
1121 # name: <cell-element>
1125 v = vrml_frame (t, r, ...)
1127 t : 3 Translation Default : [0,0,0]
1128 r : 3x3 Matrix, or Default : eye(3)
1131 name : size : function : default
1132 "scale" : 3 or 1 : Length of frame's branches (including cone) <1>
1133 "diam" : 3 or 1 : Diameter of cone's base
1134 "col" : 3 or 3x3 : Color of branches (may be stacked vertically) <[3 4 9]/10>
1135 "hcol" : 3 or 3x3 : Color of head (may be stacked vertically) <col>
1140 # name: <cell-element>
1144 v = vrml_frame (t, r, .
1148 # name: <cell-element>
1155 # name: <cell-element>
1159 v = vrml_group (s1, s2 ... ) - Form a group node with children s1,...
1163 # name: <cell-element>
1167 v = vrml_group (s1, s2 .
1171 # name: <cell-element>
1178 # name: <cell-element>
1182 s = vrml_interp (typ, val,...)
1186 # name: <cell-element>
1190 s = vrml_interp (typ, val,.
1194 # name: <cell-element>
1201 # name: <cell-element>
1205 p = vrml_kill () - Kill the current vrml browser
1207 If a vrml browser has previously been launched with vrml_browse(), it
1208 will be sent a KILL signal.
1210 See also : vrml_browse.
1214 # name: <cell-element>
1218 p = vrml_kill () - Kill the current vrml browser
1224 # name: <cell-element>
1231 # name: <cell-element>
1235 s = vrml_lines(x,f,...)
1237 x : 3xP : The 3D points
1238 f : 3xQ : The indexes of the points forming the lines. Indexes
1241 Returns a Shape -> IndexedLineSet vrml node.
1243 No check is done on anything
1247 "col" , col : 3x1 : Color, default = [1,0,0]
1251 # name: <cell-element>
1255 s = vrml_lines(x,f,.
1259 # name: <cell-element>
1266 # name: <cell-element>
1270 s = vrml_material (dc,ec,tr) - Returns a "material" vrml node
1272 dc : 3x1 : diffuseColor
1273 ec : 3x1 : emissiveColor
1274 or 1x1 : use dc as emissiveColor if ec is true. Default = 0
1275 tr : 1x1 : transparency Default = 0
1279 # name: <cell-element>
1283 s = vrml_material (dc,ec,tr) - Returns a "material" vrml node
1288 # name: <cell-element>
1295 # name: <cell-element>
1299 n = vrml_newname (root) - A name for a vrml node, starting by root
1301 vrml_newname ("-clear")
1305 # name: <cell-element>
1309 n = vrml_newname (root) - A name for a vrml node, starting by root
1315 # name: <cell-element>
1322 # name: <cell-element>
1326 s = vrml_parallelogram (bnds,...)
1328 bnds = [xmin, ymin, zmin; xmax, ymax, zmax]
1332 col, c : 3x1 : Color of surface
1348 # name: <cell-element>
1352 s = vrml_parallelogram (bnds,.
1356 # name: <cell-element>
1363 # name: <cell-element>
1367 s = vrml_parallelogram (x,...)
1369 x : 3 x 3 : Each column is a 3D point. The fourth corner is
1370 x(:,1)-x(:,2)+x(:,3)
1374 col, c : 3x1 : Color of surface
1390 # name: <cell-element>
1394 s = vrml_parallelogram (x,.
1398 # name: <cell-element>
1405 # name: <cell-element>
1409 s = vrml_points(x,options)
1413 Makes a vrml2 "point [ ... ]" node from a 3xP matrix x.
1415 OPTIONS (name and size/type, if applicable):
1416 ---------------------------------------
1417 "balls" : Displays spheres rather than points. Overrides the
1418 "hide" options and no Coordinate node is defined;makes
1422 "cubes" : Displays cubes rather than points. Overrides the "hide"
1423 options and no Coordinate node is defined;makes "name"
1426 "rad", 1 or P: Radius of balls/size of cubes. default = 0.1
1428 "nums" : Displays numbers rather than points. Overrides the
1429 "hide" options and no Coordinate node is defined;
1430 makes "name" ineffective.
1432 WARNING : This option seems to make freewrl 0.34 hang, so that it
1433 is necessary to kill it (do vrml_browse ("-kill")). Other
1434 browsers can can view the code produced by this option.
1436 "col", 3x1 : Points will have RGB col. default = [0.3,0.4,0.9]
1437 or 3xP : The color of each point.
1438 "tran", 1x1 : Transparency default = 0
1439 "emit", e : Use or not emissiveColor default = 1
1441 "name", str : The Coordinate node will be called name
1442 (default="allpoints").
1443 "hide" : The points will be defined, but not showed.
1447 # name: <cell-element>
1451 s = vrml_points(x,options)
1458 # name: <cell-element>
1465 # name: <cell-element>
1469 s = vrml_surf (x, y, z [, options] ) - code for a VRML surface
1470 s = vrml_surf (z [, options] )
1472 Returns vrml97 code for a Shape -> IndexedFaceSet node representing a
1473 surface passing through the given points.
1475 x : RxC or C : X coordinates of the points on the surface
1476 y : RxC or R : Y " "
1479 s : string : The code
1481 If x and y are omitted, they are assumed to be linspace(-1,1,C or R).
1482 Points presenting one or more 'inf' or 'nan' coordinates are ignored.
1486 "col" , col : 3 : RGB Color, default = [0.3,0.4,0.9]
1487 or 3x(R*C): Color of vertices (vrml colorPerVertex is TRUE).
1490 or 1 : Reflectivity (equivalent to [col,col,col] in RGB)
1491 or R x C : Reflectivity of vertices
1495 : Reflectivity of facets.
1497 RGB and reflectivity values should be in the [0,1] interval.
1499 "checker", c : 1x2 : Color as a checker. If c(1) is positive, checker has
1500 c(1) rows. If it is negative, each checker row is c(1) facets
1501 high c(2) likewise determines width of checker columns.
1502 "checker", c : 1x1 : Same as [c,c].
1504 "zcol", zc : 3xN : Specify a colormap. The color of each vertex is
1505 interpolated according to its height (z).
1507 "zgray" : Black-to-white colormap. Same as "zcol", [0 1;0 1;0 1].
1509 "zrb" : Red-to-blue. Same as "zcol", [0 7 10;0 0 2;7 19 2]/10.
1511 "steps" : Represent surface as a piecewise constant Z = f(X,Y) function
1513 "bars" : Represent surface as a bar plot
1515 "tran", tran : 1x1 : Transparency, default = 0
1518 : 1 : vrml creaseAngle The browser may smoothe the fold
1519 between facets forming an angle less than a.
1521 "smooth" : same as "creaseAngle",pi.
1524 See also: vmesh(), vrml_faces(), test_moving_surf()
1528 # name: <cell-element>
1532 s = vrml_surf (x, y, z [, options] ) - code for a VRML surface
1537 # name: <cell-element>
1544 # name: <cell-element>
1548 s = vrml_text(t,...)
1550 Makes vrml Shape node representing string t
1554 "col" , col : default = [ 0.3 0.4 0.9 ]
1555 "size" , size : default = 1.0
1556 "family", family : default = "SERIF".
1557 (could also be : "TYPEWRITER", "SANS")
1558 "style", style : default = "PLAIN".
1559 (could also be : "BOLD", "ITALIC", "BOLDITALIC")
1560 "justify", justify : default = "MIDDLE"
1561 (could also be "FIRST", "BEGIN", "END")
1565 # name: <cell-element>
1573 # name: <cell-element>
1580 # name: <cell-element>
1584 s = vrml_thick_surf (x, y, z [, options] )
1585 s = vrml_thick_surf (z [, options] )
1587 Returns vrml97 code for a Shape -> IndexedFaceSet node representing a
1588 surface passing through the given points.
1590 The surface may look smoother than that returned by vrml_surf, but it
1591 has twice as many facets.
1593 x : RxC or C : X coordinates of the points on the surface
1594 y : RxC or R : Y " "
1597 s : string : The code
1599 If x and y are omitted, they are assumed to be 1:C and 1:R, resp
1600 Points presenting one or more 'inf' or 'nan' coordinates are ignored.
1604 "col" , col : 3 : Color, default = [0.3,0.4,0.9]
1605 or 3xP : color of vertices (vrml colorPerVertex is TRUE).
1607 "tran", tran : 1x1 : Transparency, default = 0
1610 : 1 : vrml creaseAngle value. The browser may smoothe the
1611 crease between facets whose angle is less than a.
1613 "smooth" : same as "creaseAngle",pi.
1617 # name: <cell-element>
1621 s = vrml_thick_surf (x, y, z [, options] )
1622 s = vrml_thick_surf (z
1626 # name: <cell-element>
1633 # name: <cell-element>
1637 v = vrml_transfo(s,t,r,c,d)
1639 s : string of vrml code.
1640 t : 3 Translation default : [0,0,0]
1641 r : 3x3 Rotation matrix, or default : eye(3)
1642 3 Scaled rotation axis.
1643 c : 3 or 1 Scale default : 1
1644 d : string DEF name default : ''
1646 v : string v is s, enclosed in a Transform {} vrml node with
1647 rotation, translation and scale params given by r, t and c.
1652 # name: <cell-element>
1656 v = vrml_transfo(s,t,r,c,d)
1658 s : string of vrml code.