1 /**********
2 *
3 * Copyright (c) 2003, Division of Imaging Science and Biomedical Engineering,
4 * University of Manchester, UK. All rights reserved.
5 *
6 * Redistribution and use in source and binary forms, with or without modification,
7 * are permitted provided that the following conditions are met:
8 *
9 * . Redistributions of source code must retain the above copyright notice,
10 * this list of conditions and the following disclaimer.
11 *
12 * . Redistributions in binary form must reproduce the above copyright notice,
13 * this list of conditions and the following disclaimer in the documentation
14 * and/or other materials provided with the distribution.
15 *
16 * . Neither the name of the University of Manchester nor the names of its
17 * contributors may be used to endorse or promote products derived from this
18 * software without specific prior written permission.
19 *
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
25 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 * POSSIBILITY OF SUCH DAMAGE.
32 *
33 **********
34 *
35 * Program : TINA
36 * File : $Source: /home/tina/cvs/tina-libs/tina/math/mathGeom_mat4.h,v $
37 * Date : $Date: 2003/09/22 16:09:02 $
38 * Version : $Revision: 1.2 $
39 * CVS Id : $Id: mathGeom_mat4.h,v 1.2 2003/09/22 16:09:02 tony Exp $
40 *
41 * Author : Legacy Tina
42 *
43 * Notes :
44 *
45 *********
46 */
47
48 #ifndef TINA_MATH_GEOM_MAT4_HDR
49 #define TINA_MATH_GEOM_MAT4_HDR
50
51 #include <stdio.h> /* the generic include for the whole group */
52 #include <tina/math/math_GeomDef.h>
53
54 #ifdef __cplusplus
55 extern "C" {
56 #endif /* __cplusplus */
57
58 Mat4 *mat4_alloc(void);
59 Mat4 *mat4_make(Mat4 n);
60 void mat4_free(Mat4 * m);
61 double mat4_get_xx(Mat4 m);
62 double mat4_get_xy(Mat4 m);
63 double mat4_get_xz(Mat4 m);
64 double mat4_get_xw(Mat4 m);
65 double mat4_get_yx(Mat4 m);
66 double mat4_get_yy(Mat4 m);
67 double mat4_get_yz(Mat4 m);
68 double mat4_get_yw(Mat4 m);
69 double mat4_get_zx(Mat4 m);
70 double mat4_get_zy(Mat4 m);
71 double mat4_get_zz(Mat4 m);
72 double mat4_get_zw(Mat4 m);
73 double mat4_get_wx(Mat4 m);
74 double mat4_get_wy(Mat4 m);
75 double mat4_get_wz(Mat4 m);
76 double mat4_get_ww(Mat4 m);
77 Mat4 mat4(double mxx, double mxy, double mxz, double mxw, double myx, double myy, double myz, double myw, double mzx, double mzy, double mzz, double mzw, double mwx, double mwy, double mwz, double mww);
78 Mat4 mat4_unit(void);
79 Mat4 mat4_zero(void);
80 void mat4_comps(Mat4 m, double *mxx, double *mxy, double *mxz, double *mxw, double *myx, double *myy, double *myz, double *myw, double *mzx, double *mzy, double *mzz, double *mzw, double *mwx, double *mwy, double *mwz, double *mww);
81 Vec4 mat4_rowx(Mat4 m);
82 Vec4 mat4_rowy(Mat4 m);
83 Vec4 mat4_rowz(Mat4 m);
84 Vec4 mat4_roww(Mat4 m);
85 Vec4 mat4_colx(Mat4 m);
86 Vec4 mat4_coly(Mat4 m);
87 Vec4 mat4_colz(Mat4 m);
88 Vec4 mat4_colw(Mat4 m);
89 Mat4 mat4_of_cols(Vec4 cx, Vec4 cy, Vec4 cz, Vec4 cw);
90 Mat4 mat4_of_rows(Vec4 rx, Vec4 ry, Vec4 rz, Vec4 rw);
91 Mat4 mat4_sum(Mat4 m, Mat4 n);
92 Mat4 mat4_diff(Mat4 m, Mat4 n);
93 Mat4 mat4_minus(Mat4 m);
94 Mat4 mat4_prod(Mat4 m, Mat4 n);
95 Mat4 mat4_inverse(Mat4 m);
96 Mat4 mat4_transpose(Mat4 m);
97 double mat4_trace(Mat4 m);
98 Vec4 mat4_vprod(Mat4 m, Vec4 v);
99 Vec4 mat4_transpose_vprod(Mat4 m, Vec4 v);
100 double mat4_sprod(Vec4 v, Mat4 m, Vec4 w);
101 Mat4 mat4_tensor(Vec4 v, Vec4 w);
102 Mat4 mat4_read(FILE * fp);
103 void mat4_print(FILE * fp, Mat4 m);
104 void mat4_pprint(FILE * fp, char *msg, Mat4 m);
105 void mat4_format(Mat4 m);
106 void mat4_eigen(Mat4 m, double *eval, Vec4 * evec);
107
108
109 #ifdef __cplusplus
110 }
111 #endif /* __cplusplus */
112
113 #endif /* TINA_MATH_GEOM_MAT4_HDR */
114
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.