next up previous contents index
Next: I/O Methods on Triang2d Up: Triang2d Previous: Memory Methods on Triang2d

Display Methods on Triang2d

 

 

   

GRAPE(triang2d, "display")()
TRIANG2D *triang2d;
The Triang2d instance is rendered on the standard device in a default manner.


                     

GRAPE(triang2d, "clip-ball-disp")()
GRAPE(triang2d, "clip-plane-disp")()
(TRIANG2D *)GRAPE(triang2d, "fix-clip-send")()
GRAPE(triang2d, "fix-clip")(f, var)
GRAPE(triang2d, "clip")(f, var)
TRIANG2D *triang2d ; /* set of triangles to be clipped */
double (*f)() ; /* pointer to clipping function */
void *var ; /* pointer to parameters of clipping function */
The methods are designed to support general clipping facilities with varying hypersurface and local rendering function. A set of triangles is divided by the implicitly given clipping function f into a visible (f > 0) and an invisible (f < 0) part. The zero level of this clipping function defines the clipping level.

The function f must be of the following form:

f(double x, double y, double z, char *var)

The variable var in the parameter list of the method call and of the function f must be of the same type. *var determines the clipping function. The implicit function description of a plane or a ball are predefined for interactive use:

double plane(double x, double y, double z, PLANE_PARM *var)

typedef struct {
  double n_x, n_y, n_z;
  double distance;
} PLANE_PARM; /* Hesse Form */

double ball(double x, double y, double z, BALL_PARM *var)

typedef struct {
  double center_x, center_y, center_z;
  double radius;
} BALL_PARM;

The "fix" methods fix the clipping and give it back in the Triang2d instance.


                         

GRAPE(triang2d, "shrink-disp")()
GRAPE(triang2d, "shrink-foc-tria-disp")()
GRAPE(triang2d, "shrink-foc-point-disp")()
GRAPE(triang2d, "shrink-layer-disp")()
GRAPE(triang2d, "shrink-angle-disp")()
GRAPE(triang2d, "shrink")(p, f, fpar)
TRIANG2D *triang2d;
double p;
int (*f)();
char *fpar;
The set of tetrahedron belonging to the Triang2d instance is displayed on the standard device as a patch model. It is possible to identify each triangle because they are separated from each other through a small space given by the parameter p. There is a selection criterion for those elements which are of interest. The specific triangle is displayed if f(tr, i, fpar) is YES. There are several interactive versions with different functions f:

"shrink-layer-disp"
displays a layer of triangles whose centers lie in a layer surrounding a certain plane.

"shrink-angle-disp"
displays those elements with the spatial angles between two bounds.

"shrink-foc-point-disp"
displays the neighbourhood of a certain point with the index given by a ruler variable.

"shrink-foc-tria-disp"
does the same for an element index.

         

GRAPE(triang2d, "points-disp")()
GRAPE(triang2d, "points")(radius)
TRIANG2D *triang2d;
double radius;
The Triang2d instance is rendered as a cloud of points. The ball radius is controlled by a ruler which is added to the manager by the interactive method "points-disp".


next up previous contents index
Next: I/O Methods on Triang2d Up: Triang2d Previous: Memory Methods on Triang2d

SFB 256 Universität Bonn and IAM Universität Freiburg

Copyright © by the Sonderforschungsbereich 256 at the Institut für Angewandte Mathematik, Universität Bonn.