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_vec4.h,v $
37 * Date : $Date: 2003/09/22 16:09:02 $
38 * Version : $Revision: 1.2 $
39 * CVS Id : $Id: mathGeom_vec4.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_VEC4_HDR
49 #define TINA_MATH_GEOM_VEC4_HDR
50
51 #include <stdio.h>
52 #include <tina/math/math_GeomDef.h>
53
54 #ifdef __cplusplus
55 extern "C" {
56 #endif /* __cplusplus */
57
58 Vec4 *vec4_alloc(void);
59 Vec4 *vec4_make(Vec4 u);
60 void vec4_free(void *v);
61 Vec4 vec4(double x, double y, double z, double w);
62 Vec4 vec4_zero(void);
63 Vec4 vec4_ex(void);
64 Vec4 vec4_ey(void);
65 Vec4 vec4_ez(void);
66 Vec4 vec4_ew(void);
67 void vec4_comps(Vec4 v, float *x, float *y, float *z, float *w);
68 double vec4_get_x(Vec4 v);
69 double vec4_get_y(Vec4 v);
70 double vec4_get_z(Vec4 v);
71 double vec4_get_w(Vec4 v);
72 Vec4 vec4_sum(Vec4 v, Vec4 w);
73 Vec4 vec4_sum3(Vec4 u, Vec4 v, Vec4 w);
74 Vec4 vec4_sum4(Vec4 u, Vec4 v, Vec4 w, Vec4 x);
75 Vec4 vec4_minus(Vec4 v);
76 Vec4 vec4_diff(Vec4 v, Vec4 w);
77 Vec4 vec4_times(double k, Vec4 v);
78 Vec4 vec4_interp(double k, Vec4 v1, Vec4 v2);
79 double vec4_dot(Vec4 v, Vec4 w);
80 Mat4 vec4_cross(Vec4 v, Vec4 w);
81 double vec4_mod(Vec4 v);
82 double vec4_sqrmod(Vec4 v);
83 double vec4_modunit(Vec4 v, Vec4 * e);
84 Vec4 vec4_unit(Vec4 v);
85 double vec4_dist(Vec4 v, Vec4 w);
86 double vec4_sqrdist(Vec4 v, Vec4 w);
87 double vec4_angle(Vec4 v, Vec4 w);
88 Vec4 vec4_read(FILE * fp);
89 void vec4_print(FILE * fp, Vec4 v);
90 void vec4_pprint(FILE * fp, char *msg, Vec4 v);
91 void vec4_format(Vec4 v);
92
93
94
95
96
97
98 #ifdef __cplusplus
99 }
100 #endif /* __cplusplus */
101
102 #endif /* TINA_MATH_GEOM_VEC4_HDR */
103
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.