ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/g3affine.h
Revision: 2.1
Committed: Wed Aug 12 23:07:59 2015 UTC (8 years, 9 months ago) by greg
Content type: text/plain
Branch: MAIN
Log Message:
Added Jan Wienold's evalglare to distribution

File Contents

# User Rev Content
1 greg 2.1 /*
2     ** Author: Christian Reetz ([email protected])
3     */
4     #ifndef __G3AFFINE_H
5     #define __G3AFFINE_H
6    
7    
8    
9     #ifdef __cplusplus
10     extern "C" {
11     #endif
12    
13     #include "g3vector.h"
14    
15     #ifdef GL_CONVERSIONS
16     #include "GL/gl.h"
17     #endif
18    
19    
20     typedef g3Float g3AVec[4];
21     typedef g3Float g3ATrans[4][4];
22    
23    
24     void g3av_copy(g3AVec res,g3AVec v);
25     void g3at_tounit(g3ATrans t);
26     void g3av_vectohom(g3AVec res,g3Vec v);
27     void g3av_homtovec(g3Vec res,g3AVec h);
28     int g3av_tonorm(g3AVec v);
29    
30     #ifdef GL_CONVERSIONS
31     void g3at_get_openGL(g3ATrans t,GLdouble* glm);
32     void g3at_from_openGL(g3ATrans t,GLdouble* glm);
33     #endif
34    
35    
36     void g3at_copy(g3ATrans t,g3ATrans tsrc);
37     void g3at_print(g3ATrans t,FILE* outf);
38     void g3at_comb(g3ATrans t,g3ATrans tf);
39     void g3at_comb_to(g3ATrans res,g3ATrans t,g3ATrans tf);
40     void g3at_translate(g3ATrans t,g3Vec tv);
41     void g3at_add_trans(g3ATrans t,g3Vec tv);
42     void g3at_prepend_trans(g3ATrans t,g3Vec tv);
43     void g3at_rotate(g3ATrans t,g3Vec rnorm,g3Float ang);
44     void g3at_add_rot(g3ATrans t,g3Vec rnorm,g3Float ang);
45     void g3at_prepend_rot(g3ATrans t,g3Vec rnorm,g3Float ang);
46    
47     void g3at_btrans(g3ATrans t,g3Vec xv,g3Vec yv,g3Vec zv);
48     int g3at_sph_ctrans(g3ATrans t,g3Vec vdir,g3Vec vup);
49     int g3at_ctrans(g3ATrans t,g3Vec vdir,g3Vec vup);
50     int g3at_inverse(g3ATrans t);
51     void g3at_apply_h(g3ATrans t,g3AVec v);
52     void g3at_iapply_h(g3Vec v,g3ATrans t);
53     void g3at_apply(g3ATrans t,g3Vec v);
54     void g3at_iapply(g3Vec v,g3ATrans t);
55    
56     #ifdef __cplusplus
57     }
58     #endif
59    
60    
61     #endif