1Rout(3) User Contributed Perl Documentation Rout(3)
2
3
4
6 PDL::Graphics::TriD::Rout - Helper routines for Three-dimensional
7 graphics
8
10 This module is for miscellaneous PP-defined utility routines for the
11 PDL::Graphics::TriD module. Currently, there are #line 38 "Rout.pm"
12
14 combcoords
15 Signature: (x(); y(); z();
16 float [o]coords(tri=3);)
17
18 Combine three coordinates into a single ndarray.
19
20 Combine x, y and z to a single ndarray the first dimension of which is
21 3. This routine does dataflow automatically.
22
23 combcoords does not process bad values. It will set the bad-value flag
24 of all output ndarrays if the flag is set for any of the input
25 ndarrays.
26
27 repulse
28 Signature: (coords(nc,np);
29 [o]vecs(nc,np);
30 int [t]links(np);;
31 double boxsize;
32 int dmult;
33 double a;
34 double b;
35 double c;
36 double d;
37 )
38
39 Repulsive potential for molecule-like constructs.
40
41 "repulse" uses a hash table of cubes to quickly calculate a repulsive
42 force that vanishes at infinity for many objects. For use by the module
43 PDL::Graphics::TriD::MathGraph. For definition of the potential, see
44 the actual function.
45
46 repulse does not process bad values. It will set the bad-value flag of
47 all output ndarrays if the flag is set for any of the input ndarrays.
48
49 attract
50 Signature: (coords(nc,np);
51 int from(nl);
52 int to(nl);
53 strength(nl);
54 [o]vecs(nc,np);;
55 double m;
56 double ms;
57 )
58
59 Attractive potential for molecule-like constructs.
60
61 "attract" is used to calculate an attractive force for many objects, of
62 which some attract each other (in a way like molecular bonds). For use
63 by the module PDL::Graphics::TriD::MathGraph. For definition of the
64 potential, see the actual function.
65
66 attract does not process bad values. It will set the bad-value flag of
67 all output ndarrays if the flag is set for any of the input ndarrays.
68
69 vrmlcoordsvert
70 Signature: (vertices(n=3); char* space; PerlIO *fp)
71
72 info not available
73
74 vrmlcoordsvert does not process bad values. It will set the bad-value
75 flag of all output ndarrays if the flag is set for any of the input
76 ndarrays.
77
78 contour_segments
79 This is the interface for the pp routine contour_segments_internal - it
80 takes 3 ndarrays as input
81
82 $c is a contour value (or a list of contour values)
83
84 $data is an [m,n] array of values at each point
85
86 $points is a list of [3,m,n] points, it should be a grid monotonically
87 increasing with m and n.
88
89 contour_segments returns a reference to a Perl array of line segments
90 associated with each value of $c. It does not (yet) handle missing
91 data values.
92
93 Algorithm
94 The data array represents samples of some field observed on the
95 surface described by points. For each contour value we look for
96 intersections on the line segments joining points of the data.
97 When an intersection is found we look to the adjoining line
98 segments for the other end(s) of the line segment(s). So suppose
99 we find an intersection on an x-segment. We first look down to the
100 left y-segment, then to the right y-segment and finally across to
101 the next x-segment. Once we find one in a box (two on a point) we
102 can quit because there can only be one. After we are done with a
103 given x-segment, we look to the leftover possibilities for the
104 adjoining y-segment. Thus the contours are built as a collection
105 of line segments rather than a set of closed polygons.
106
108 Copyright (C) 2000 James P. Edwards Copyright (C) 1997 Tuomas J. Lukka.
109 All rights reserved. There is no warranty. You are allowed to
110 redistribute this software / documentation under certain conditions.
111 For details, see the file COPYING in the PDL distribution. If this file
112 is separated from the PDL distribution, the copyright notice should be
113 included in the file.
114
115
116
117perl v5.36.0 2023-01-20 Rout(3)