1 /***********************************************************************/
2 /* Open Visualization Data Explorer                                    */
3 /* (C) Copyright IBM Corp. 1989,1999                                   */
4 /* ALL RIGHTS RESERVED                                                 */
5 /* This code licensed under the                                        */
6 /*    "IBM PUBLIC LICENSE - Open Visualization Data Explorer"          */
7 /***********************************************************************/
8 
9 #include <dxconfig.h>
10 
11 
12 
13 #include <dx/dx.h>
14 
15 #if INLINE
16 #    define STATIC static
17 #    if paxc
18 /*#         pragma inline (DXPt,DXVec,DXRGB,DXLn,DXTri,DXQuad,DXTetra,DXMat)*/
19 #    endif
20 #else
21 #    define STATIC
22 #endif
23 
DXPt(double x,double y,double z)24 STATIC Point DXPt(double x, double y, double z)
25 {
26     Point p;
27     p.x = x;  p.y = y;  p.z = z;
28     return p;
29 }
30 
DXVec(double x,double y,double z)31 STATIC Vector DXVec(double x, double y, double z)
32 {
33     Vector v;
34     v.x = x;  v.y = y;  v.z = z;
35     return v;
36 }
37 
DXRGB(double r,double g,double b)38 STATIC RGBColor DXRGB(double r, double g, double b)
39 {
40     RGBColor rgb;
41     rgb.r = r;  rgb.g = g;  rgb.b = b;
42     return rgb;
43 }
44 
DXLn(PointId p,PointId q)45 STATIC Line DXLn(PointId p, PointId q)
46 {
47     Line ln;
48     ln.p = p; ln.q = q;
49     return ln;
50 }
51 
DXTri(PointId p,PointId q,PointId r)52 STATIC Triangle DXTri(PointId p, PointId q, PointId r)
53 {
54     Triangle tri;
55     tri.p = p; tri.q = q; tri.r = r;
56     return tri;
57 }
58 
DXQuad(PointId p,PointId q,PointId r,PointId s)59 STATIC Quadrilateral DXQuad(PointId p, PointId q, PointId r, PointId s)
60 {
61     Quadrilateral quad;
62     quad.p = p; quad.q = q; quad.r = r; quad.s = s;
63     return quad;
64 }
65 
DXTetra(PointId p,PointId q,PointId r,PointId s)66 STATIC Tetrahedron DXTetra(PointId p, PointId q, PointId r, PointId s)
67 {
68     Tetrahedron tetra;
69     tetra.p = p; tetra.q = q; tetra.r = r; tetra.s = s;
70     return tetra;
71 }
72 
DXMat(double a,double b,double c,double d,double e,double f,double g,double h,double i,double j,double k,double l)73 STATIC Matrix DXMat(
74     double a, double b, double c,
75     double d, double e, double f,
76     double g, double h, double i,
77     double j, double k, double l
78 ) {
79     Matrix t;
80     t.A[0][0] = a;  t.A[0][1] = b;  t.A[0][2] = c;
81     t.A[1][0] = d;  t.A[1][1] = e;  t.A[1][2] = f;
82     t.A[2][0] = g;  t.A[2][1] = h;  t.A[2][2] = i;
83     t.b[0] = j;     t.b[1] = k;     t.b[2] = l;
84     return t;
85 }
86 
87 #undef STATIC
88