#
# neovius description file for class Surface_Build
#

# task
GEOMETRY;
# frame data
0; 1;           # current frame / number of frames
# parameter data
0; 0;           # number of integer and double parameters
# integer parameters

# double parameters


 1;            # number of patches, i.e. parts
 4;            # number of vertices
# vertex list / parameter list
# (ix, iy, iz) (x, y, z) flags for each coord, coordinate vector of vertex
# the integers are flags: if a flag is !=0 this means
# that this component shall be time dependent, therefore
# a function ruler for this variable will be installed.
# if different the flags for different components are identical
# then these variable will be identified and controlled by the
# same function ruler. With this facility one can e.g. modify
# boundary lines or planes over the time
#
# See comment below for different use of the vertices as control vectors for
# more general boundary curves.
 0; 0; 0; 0.; 0.; 0.;
 0; 0; 0; 1.; 0.; 0.;
 0; 0; 0; 1.; 1.; 0.;
 0; 0; 0; 1.; 0.; 1.;
# patch list
# flag bnd_type points_per_patch {p0...pn} ulines vlines usub vsub
0; 0; 4;  0; 1; 2; 3;   7; 7; 0; 0;

flag:             0/1 : 1=change orientation of a patch
bnd_type:         0=no further edge information
		  1=further edge information below
points_per_patch: number of points for this patch
{p0, ..pn}:       indices of the vertices above which build up this patch
ulines:           number of lines between first and second vertex
vlines:           number of lines between second and third vertex
usub, vsub:       number of subdivisions between two lines along u- or v-direction
edge information: in case of bnd_type == 1 the user has to supply information for
		  each edge of the form:
			octal; 0; [int; int;]
		  where the two ints are optional but required for special octals. They
		  refer to two vertices of the coordinate list, but these coodinates
		  will be used differently, see below.

		  The octal bits have the following meaning:

		  the first four restrict the curve to special geometries, e.g.
		  all boundary points are restricted to the specified plane. Such
		  information is used e.g. in minimization algorithms to determine
		  free boundaries.
			00010  =  curved     fully restricted, i.e. fixed
			00020  =  straight   restricted to straight line
			00040  =  planar     restricted to plane
			00100  =  thread     arbitrary but fixed length
		  The next four types determine the initial shape of the boundary,
		  e.g. the boundary is part of a circle. In all cases the curve goes
		  thru the endpoints of the edge as in the default case, so the two
		  additional indices refer to two vertices of the vertex list which
		  contain additional information as e.g. midpoint and normal of the
		  circle. Behind the type are the optional/required indices:
			00200  =  straight  	
			00400  =  circle	midpoint, normal to circle plane
			01000  =  helix 	axis point, axis dir.
			02000  =  spline	tangent vectors at both end point

		  As an additional feature these parameters can be connected to rulers
		  as in the standard way with all vertices and then interactivly
		  modified. This is especially useful for spline bnd curves.
