Provided by: pdl_2.007-2build1_amd64 bug

NAME

        PDL::Graphics::TriD::Rout - Helper routines for Three-dimensional graphics

DESCRIPTION

       This module is for miscellaneous PP-defined utility routines for the PDL::Graphics::TriD
       module. Currently, there are

FUNCTIONS

   combcoords
         Signature: (x(); y(); z();
                       float [o]coords(tri=3);)

       Combine three coordinates into a single piddle.

       Combine x, y and z to a single piddle the first dimension of which is 3. This routine does
       dataflow automatically.

       combcoords does not process bad values.  It will set the bad-value flag of all output
       piddles if the flag is set for any of the input piddles.

   repulse
         Signature: (coords(nc,np);
                        [o]vecs(nc,np);
                        int [t]links(np);;
                       double boxsize;
                       int dmult;
                       double a;
                       double b;
                       double c;
                       double d;
               )

       Repulsive potential for molecule-like constructs.

       "repulse" uses a hash table of cubes to quickly calculate a repulsive force that vanishes
       at infinity for many objects. For use by the module PDL::Graphics::TriD::MathGraph.  For
       definition of the potential, see the actual function.

       repulse does not process bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   attract
         Signature: (coords(nc,np);
                       int from(nl);
                       int to(nl);
                       strength(nl);
                       [o]vecs(nc,np);;
                       double m;
                       double ms;
               )

       Attractive potential for molecule-like constructs.

       "attract" is used to calculate an attractive force for many objects, of which some attract
       each other (in a way like molecular bonds).  For use by the module
       PDL::Graphics::TriD::MathGraph.  For definition of the potential, see the actual function.

       attract does not process bad values.  It will set the bad-value flag of all output piddles
       if the flag is set for any of the input piddles.

   vrmlcoordsvert
         Signature: (vertices(n=3); char* space; char* fd)

       info not available

       vrmlcoordsvert does not process bad values.  It will set the bad-value flag of all output
       piddles if the flag is set for any of the input piddles.

   contour_segments
       This is the interface for the pp routine contour_segments_internal - it takes 3 piddles as
       input

       $c is a contour value (or a list of contour values)

       $data is an [m,n] array of values at each point

       $points is a list of [3,m,n] points, it should be a grid monotonically increasing with m
       and n.

       contour_segments returns a reference to a Perl array of line segments associated with each
       value of $c.  It does not (yet) handle missing data values.

       Algorthym
           The data array represents samples of some field observed on the surface described by
           points.  For each contour value we look for intersections on the line segments joining
           points of the data.  When an intersection is found we look to the adjoining line
           segments for the other end(s) of the line segment(s).  So suppose we find an
           intersection on an x-segment.  We first look down to the left y-segment, then to the
           right y-segment and finally across to the next x-segment.  Once we find one in a box
           (two on a point) we can quit because there can only be one.  After we are done with a
           given x-segment, we look to the leftover possibilities for the adjoining y-segment.
           Thus the contours are built as a collection of line segments rather than a set of
           closed polygons.

AUTHOR

       Copyright (C) 2000 James P. Edwards Copyright (C) 1997 Tuomas J. Lukka.  All rights
       reserved. There is no warranty. You are allowed to redistribute this software /
       documentation under certain conditions. For details, see the file COPYING in the PDL
       distribution. If this file is separated from the PDL distribution, the copyright notice
       should be included in the file.