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.