~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Tina4/src/math/geom/geomfuncs.h

Version: ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 extern Vec2    vec2_midpoint(Vec2 q1, Vec2 q2);
  2 extern Vec2    vec2_projperp(Vec2 u, Vec2 v);
  3 extern Vec2    vec2_projpar(Vec2 u, Vec2 v);
  4 extern Vec2    vec2_proj_on_line(Vec2 q, Vec2 l, Vec2 v);
  5 extern Vec2    vec2_inter_lines(Vec2 l1, Vec2 v1, Vec2 l2, Vec2 v2);
  6 extern void    vec2_join_2_points(Vec2 q1, Vec2 q2, Vec2 * l, Vec2 * v);
  7 extern double  vec2_dist_point_line(Vec2 q, Vec2 l, Vec2 v);
  8 extern void    vec2_circ_3_points(Vec2 p1, Vec2 p2, Vec2 p3, Vec2 * centre, double *radius);
  9 extern Vec2   *vec2_inter_par_test(Vec2 p, Vec2 v1, Vec2 q, Vec2 v2, double parallel);
 10 extern Vec3    vec3_midpoint(Vec3 q1, Vec3 q2);
 11 extern Vec3    vec3_projperp(Vec3 u, Vec3 v);
 12 extern Vec3    vec3_projpar(Vec3 u, Vec3 v);
 13 extern Vec3    vec3_proj_on_line(Vec3 q, Vec3 l, Vec3 v);
 14 extern Vec3    vec3_proj_on_plane(Vec3 q, Vec3 p, Vec3 n);
 15 extern Vec3    vec3_closest_lines(Vec3 l1, Vec3 v1, Vec3 l2, Vec3 v2);
 16 extern Vec3    vec3_inter_lines(Vec3 l1, Vec3 v1, Vec3 l2, Vec3 v2);
 17 extern Vec3    vec3_inter_line_plane(Vec3 l, Vec3 v, Vec3 p, Vec3 n);
 18 extern void    vec3_inter_planes(Vec3 p1, Vec3 n1, Vec3 p2, Vec3 n2, Vec3 * l, Vec3 * v);
 19 extern void    vec3_join_2_points(Vec3 q1, Vec3 q2, Vec3 * l, Vec3 * v);
 20 extern void    vec3_join_3_points(Vec3 q1, Vec3 q2, Vec3 q3, Vec3 * p, Vec3 * n);
 21 extern void    vec3_join_point_line(Vec3 q, Vec3 l, Vec3 v, Vec3 * p, Vec3 * n);
 22 extern void    vec3_join_lines(Vec3 l1, Vec3 v1, Vec3 l2, Vec3 v2, Vec3 * p, Vec3 * n);
 23 extern double  vec3_dist_point_plane(Vec3 q, Vec3 p, Vec3 n);
 24 extern double  vec3_dist_point_line(Vec3 q, Vec3 l, Vec3 v);
 25 extern double  vec3_dist_lines(Vec3 l1, Vec3 v1, Vec3 l2, Vec3 v2);
 26 extern void    vec3_circ_3_points(Vec3 p1, Vec3 p2, Vec3 p3, Vec3 * centre, Vec3 * normal, double *radius);
 27 extern Bool    vec3_collinear(Vec3 p1, Vec3 p2, Vec3 q1, Vec3 q2, double dotth1, double dotth2);
 28 extern double  vec3_closest_app(Vec3 p1, Vec3 v1, Vec3 p2, Vec3 v2, Vec3 * c1, Vec3 * c2);
 29 extern Bool    vec3_parallel(Vec3 v1, Vec3 v2, double dotthres);
 30 extern void    vec2_extend_hull(Vec2 * vmin, Vec2 * vmax, Vec2 v);
 31 extern void    vec3_extend_hull(Vec3 * vmin, Vec3 * vmax, Vec3 v);
 32 extern Ipos   *ipos_alloc(void);
 33 extern Ipos   *ipos_make(int x, int y);
 34 extern void    ipos_free(void *pos);
 35 extern Bool    ipos_equal(Ipos pos1, Ipos pos2);
 36 extern Ipos    ipos(int x, int y);
 37 extern Ipos    ipos_zero(void);
 38 extern Ipos    ipos_ex(void);
 39 extern Ipos    ipos_ey(void);
 40 extern void    ipos_comps(Ipos pos, int *x, int *y);
 41 extern Ipos    ipos_sum(Ipos pos1, Ipos pos2);
 42 extern Ipos    ipos_sum3(Ipos pos0, Ipos pos1, Ipos pos2);
 43 extern Ipos    ipos_sum4(Ipos pos0, Ipos pos1, Ipos pos2, Ipos pos3);
 44 extern Ipos    ipos_minus(Ipos pos);
 45 extern Ipos    ipos_diff(Ipos pos1, Ipos pos2);
 46 extern Ipos    ipos_times(double k, Ipos pos);
 47 extern int     ipos_dot(Ipos pos1, Ipos pos2);
 48 extern int     ipos_cross(Ipos pos1, Ipos pos2);
 49 extern double  ipos_mod(Ipos pos);
 50 extern double  ipos_sqrmod(Ipos pos);
 51 extern double  ipos_dist(Ipos pos1, Ipos pos2);
 52 extern int     ipos_manhattan(Ipos pos1, Ipos pos2);
 53 extern int     ipos_maxabs(Ipos pos1, Ipos pos2);
 54 extern double  ipos_sqrdist(Ipos pos1, Ipos pos2);
 55 extern double  ipos_dist_seg(Ipos p, Ipos e1, Ipos e2);
 56 extern Ipos    ipos_midpoint(Ipos p1, Ipos p2);
 57 extern Ipos    ipos_read(FILE * fp);
 58 extern void    ipos_print(FILE * fp, Ipos pos);
 59 extern void    ipos_pprint(FILE * fp, char *msg, Ipos pos);
 60 extern void   *mat2_alloc(void);
 61 extern void   *mat2_make(Mat2 n);
 62 extern void    mat2_free(void *m);
 63 extern Mat2    mat2(double mxx, double mxy, double myx, double myy);
 64 extern Mat2    mat2_unit(void);
 65 extern Mat2    mat2_zero(void);
 66 extern void    mat2_comps(Mat2 m, float *mxx, float *mxy, float *myx, float *myy);
 67 extern Vec2    mat2_rowx(Mat2 m);
 68 extern Vec2    mat2_rowy(Mat2 m);
 69 extern Vec2    mat2_colx(Mat2 m);
 70 extern Vec2    mat2_coly(Mat2 m);
 71 extern Mat2    mat2_of_rows(Vec2 rx, Vec2 ry);
 72 extern Mat2    mat2_of_cols(Vec2 cx, Vec2 cy);
 73 extern Mat2    mat2_sum(Mat2 m, Mat2 n);
 74 extern Mat2    mat2_diff(Mat2 m, Mat2 n);
 75 extern Mat2    mat2_minus(Mat2 m);
 76 extern Mat2    mat2_times(double k, Mat2 m);
 77 extern Mat2    mat2_prod(Mat2 m, Mat2 n);
 78 extern Mat2    mat2_inverse(Mat2 m);
 79 extern Mat2    mat2_transpose(Mat2 m);
 80 extern Mat2    mat2_sym(Mat2 m);
 81 extern double  mat2_trace(Mat2 m);
 82 extern double  mat2_det(Mat2 m);
 83 extern Bool    mat2_posdef(Mat2 m);
 84 extern Vec2    mat2_vprod(Mat2 m, Vec2 v);
 85 extern double  mat2_sprod(Vec2 v, Mat2 m, Vec2 w);
 86 extern Mat2    mat2_tensor(Vec2 v, Vec2 w);
 87 extern Mat2    mat2_read(FILE * fp);
 88 extern void    mat2_print(FILE * fp, Mat2 m);
 89 extern void    mat2_pprint(FILE * fp, char *msg, Mat2 m);
 90 extern void    mat2_format(Mat2 m);
 91 extern void    mat2_sym_eigen(Mat2 m, double *theta, double *lambda1, double *lambda2);
 92 extern Mat3   *mat3_alloc(void);
 93 extern Mat3   *mat3_make(Mat3 n);
 94 extern void    mat3_free(Mat3 * m);
 95 extern double  mat3_get_xx(Mat3 m);
 96 extern double  mat3_get_xy(Mat3 m);
 97 extern double  mat3_get_xz(Mat3 m);
 98 extern double  mat3_get_yx(Mat3 m);
 99 extern double  mat3_get_yy(Mat3 m);
100 extern double  mat3_get_yz(Mat3 m);
101 extern double  mat3_get_zx(Mat3 m);
102 extern double  mat3_get_zy(Mat3 m);
103 extern double  mat3_get_zz(Mat3 m);
104 extern Mat3    mat3(double mxx, double mxy, double mxz, double myx, double myy, double myz, double mzx, double mzy, double mzz);
105 extern Mat3    mat3_unit(void);
106 extern Mat3    mat3_zero(void);
107 extern Mat3    mat3_diag(double mxx, double myy, double mzz);
108 extern void    mat3_comps(Mat3 m, float *mxx, float *mxy, float *mxz, float *myx, float *myy, float *myz, float *mzx, float *mzy, float *mzz);
109 extern Vec3    mat3_rowx(Mat3 m);
110 extern Vec3    mat3_rowy(Mat3 m);
111 extern Vec3    mat3_rowz(Mat3 m);
112 extern Vec3    mat3_colx(Mat3 m);
113 extern Vec3    mat3_coly(Mat3 m);
114 extern Vec3    mat3_colz(Mat3 m);
115 extern Mat3    mat3_of_cols(Vec3 cx, Vec3 cy, Vec3 cz);
116 extern Mat3    mat3_of_rows(Vec3 rx, Vec3 ry, Vec3 rz);
117 extern Mat3    mat3_sum(Mat3 m, Mat3 n);
118 extern Mat3    mat3_sum3(Mat3 l, Mat3 m, Mat3 n);
119 extern Mat3    mat3_diff(Mat3 m, Mat3 n);
120 extern Mat3    mat3_minus(Mat3 m);
121 extern Mat3    mat3_times(double k, Mat3 m);
122 extern Mat3    mat3_prod(Mat3 m, Mat3 n);
123 extern Mat3    mat3_inverse(Mat3 m);
124 extern Mat3    mat3_transpose(Mat3 m);
125 extern double  mat3_trace(Mat3 m);
126 extern double  mat3_det(Mat3 m);
127 extern Bool    mat3_posdef(Mat3 m);
128 extern Vec3    mat3_vprod(Mat3 m, Vec3 v);
129 extern Vec3    mat3_transpose_vprod(Mat3 m, Vec3 v);
130 extern double  mat3_sprod(Vec3 v, Mat3 m, Vec3 w);
131 extern Mat3    mat3_tensor(Vec3 v, Vec3 w);
132 extern Mat3    mat3_sum_tensor(Mat3 m, Vec3 v, Vec3 w);
133 extern Mat3    mat3_read(FILE * fp);
134 extern void    mat3_print(FILE * fp, Mat3 m);
135 extern void    mat3_pprint(FILE * fp, char *msg, Mat3 m);
136 extern void    mat3_format(Mat3 m);
137 extern void    mat3_eigen(Mat3 m, double *eval, Vec3 * evec);
138 extern Mat4   *mat4_alloc(void);
139 extern Mat4   *mat4_make(Mat4 n);
140 extern void    mat4_free(Mat4 * m);
141 extern double  mat4_get_xx(Mat4 m);
142 extern double  mat4_get_xy(Mat4 m);
143 extern double  mat4_get_xz(Mat4 m);
144 extern double  mat4_get_xw(Mat4 m);
145 extern double  mat4_get_yx(Mat4 m);
146 extern double  mat4_get_yy(Mat4 m);
147 extern double  mat4_get_yz(Mat4 m);
148 extern double  mat4_get_yw(Mat4 m);
149 extern double  mat4_get_zx(Mat4 m);
150 extern double  mat4_get_zy(Mat4 m);
151 extern double  mat4_get_zz(Mat4 m);
152 extern double  mat4_get_zw(Mat4 m);
153 extern double  mat4_get_wx(Mat4 m);
154 extern double  mat4_get_wy(Mat4 m);
155 extern double  mat4_get_wz(Mat4 m);
156 extern double  mat4_get_ww(Mat4 m);
157 extern 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);
158 extern Mat4    mat4_unit(void);
159 extern Mat4    mat4_zero(void);
160 extern 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);
161 extern Vec4    mat4_rowx(Mat4 m);
162 extern Vec4    mat4_rowy(Mat4 m);
163 extern Vec4    mat4_rowz(Mat4 m);
164 extern Vec4    mat4_roww(Mat4 m);
165 extern Vec4    mat4_colx(Mat4 m);
166 extern Vec4    mat4_coly(Mat4 m);
167 extern Vec4    mat4_colz(Mat4 m);
168 extern Vec4    mat4_colw(Mat4 m);
169 extern Mat4    mat4_of_cols(Vec4 cx, Vec4 cy, Vec4 cz, Vec4 cw);
170 extern Mat4    mat4_of_rows(Vec4 rx, Vec4 ry, Vec4 rz, Vec4 rw);
171 extern Mat4    mat4_sum(Mat4 m, Mat4 n);
172 extern Mat4    mat4_diff(Mat4 m, Mat4 n);
173 extern Mat4    mat4_minus(Mat4 m);
174 extern Mat4    mat4_times(double k, Mat4 m);
175 extern Mat4    mat4_prod(Mat4 m, Mat4 n);
176 extern Mat4    mat4_inverse(Mat4 m);
177 extern Mat4    mat4_transpose(Mat4 m);
178 extern double  mat4_trace(Mat4 m);
179 extern Vec4    mat4_vprod(Mat4 m, Vec4 v);
180 extern Vec4    mat4_transpose_vprod(Mat4 m, Vec4 v);
181 extern double  mat4_sprod(Vec4 v, Mat4 m, Vec4 w);
182 extern Mat4    mat4_tensor(Vec4 v, Vec4 w);
183 extern Mat4    mat4_read(FILE * fp);
184 extern void    mat4_print(FILE * fp, Mat4 m);
185 extern void    mat4_pprint(FILE * fp, char *msg, Mat4 m);
186 extern void    mat4_format(Mat4 m);
187 extern void    mat4_eigen(Mat4 m, double *eval, Vec4 * evec);
188 extern Vec2    vec2_of_proj2(Vec3 v);
189 extern Vec3    proj2_of_vec2(Vec2 v);
190 extern Vec3    proj2_rectify(Mat3 m, Vec3 v);
191 extern Vec2    vec2_rectify(Mat3 m, Vec2 v);
192 extern Vec3    proj2_join(Vec3 p, Vec3 q);
193 extern Vec3    proj2_intersect(Vec3 p, Vec3 q);
194 
195 extern Mat3    proj2_to_frame(Vec3 p00, Vec3 p10, Vec3 p01, Vec3 p11);
196 extern Mat3    proj2_between(Vec2 p00, Vec2 p10, Vec2 p01, Vec2 p11, Vec2 q00, Vec2 q10, Vec2 q01, Vec2 q11);
197 extern Mat3    proj2_between_proj2(Vec3 p00, Vec3 p10, Vec3 p01, Vec3 p11, Vec3 q00, Vec3 q10, Vec3 q01, Vec3 q11);
198 extern Mat3    proj_x1(int n, Vec3 * p, Vec3 * q, double *badness);
199 extern Mat3    proj_y1(int n, Vec3 * p, Vec3 * q, double *badness);
200 extern Mat3    proj_z1(int n, Vec3 * p, Vec3 * q, double *badness);
201 extern Mat3    proj_between_ls(int n, Vec3 * p, Vec3 * q);
202 
203 
204 extern Vec4    proj3_rectify(Mat4 m, Vec4 v);
205 extern Vec3    vec3_rectify(Mat4 m, Vec3 v);
206 extern Vec2   *vec2_alloc(void);
207 extern Vec2   *vec2_copy(Vec2 * vec2);
208 extern Vec2   *vec2_make(Vec2 u);
209 extern void    vec2_free(void *v);
210 extern Vec2    vec2(double x, double y);
211 extern Vec2    vec2_zero(void);
212 extern Vec2    vec2_ex(void);
213 extern Vec2    vec2_ey(void);
214 extern void    vec2_comps(Vec2 v, float *x, float *y);
215 extern double  vec2_get_x(Vec2 * v);
216 extern double  vec2_get_y(Vec2 * v);
217 extern Vec2    vec2_sum(Vec2 v, Vec2 w);
218 extern Vec2    vec2_sum3(Vec2 u, Vec2 v, Vec2 w);
219 extern Vec2    vec2_sum4(Vec2 u, Vec2 v, Vec2 w, Vec2 x);
220 extern Vec2    vec2_minus(Vec2 v);
221 extern Vec2    vec2_diff(Vec2 v, Vec2 w);
222 extern Vec2    vec2_times(double k, Vec2 v);
223 extern Vec2    vec2_interp(double k, Vec2 v1, Vec2 v2);
224 extern double  vec2_dot(Vec2 v, Vec2 w);
225 extern double  vec2_cross(Vec2 v, Vec2 w);
226 extern double  vec2_mod(Vec2 v);
227 extern double  vec2_sqrmod(Vec2 v);
228 extern double  vec2_modunit(Vec2 v, Vec2 * e);
229 extern Vec2    vec2_unit(Vec2 v);
230 extern void    vec2_to_polar(Vec2 v, double *r, double *theta);
231 extern Vec2    vec2_of_polar(double r, double theta);
232 extern Vec2    vec2_rand_circle(Vec2 centre, double radius);
233 extern double  vec2_dist(Vec2 v, Vec2 w);
234 extern double  vec2_sqrdist(Vec2 v, Vec2 w);
235 extern double  vec2_angle(Vec2 v, Vec2 w);
236 extern Vec2    vec2_perp(Vec2 v);
237 extern double  vec2_perp_dist(Vec2 p, Vec2 v, Vec2 d);
238 extern void    vec2_basis(Vec2 up, Vec2 * ex, Vec2 * ey);
239 extern int     vec2_parallel(Vec2 v1, Vec2 v2, double dotthres);
240 extern Vec2    vec2_read(FILE * fp);
241 extern void    vec2_print(FILE * fp, Vec2 v);
242 extern void    vec2_pprint(FILE * fp, char *msg, Vec2 v);
243 extern void    vec2_format(Vec2 v);
244 extern Vec2    vec2_less(Vec2 v1, Vec2 v2);
245 extern Vec2    vec2_greater(Vec2 v1, Vec2 v2);
246 extern void    vec2_ranges(Vec2 * v1, Vec2 * v2, Vec2 vec);
247 extern Vec3   *vec3_alloc(void);
248 extern Vec3   *vec3_make(Vec3 u);
249 extern Vec3   *vec3_copy(Vec3 *u);
250 extern void    vec3_free(void *v);
251 extern Vec3    vec3(double x, double y, double z);
252 extern Vec3    vec3_zero(void);
253 extern Vec3    vec3_ex(void);
254 extern Vec3    vec3_ey(void);
255 extern Vec3    vec3_ez(void);
256 extern void    vec3_comps(Vec3 v, float *x, float *y, float *z);
257 extern double  vec3_get_x(Vec3 v);
258 extern double  vec3_get_y(Vec3 v);
259 extern double  vec3_get_z(Vec3 v);
260 extern Vec3    vec3_sum(Vec3 v, Vec3 w);
261 extern Vec3    vec3_sum3(Vec3 u, Vec3 v, Vec3 w);
262 extern Vec3    vec3_sum4(Vec3 u, Vec3 v, Vec3 w, Vec3 x);
263 extern Vec3    vec3_minus(Vec3 v);
264 extern Vec3    vec3_diff(Vec3 v, Vec3 w);
265 extern Vec3    vec3_times(double k, Vec3 v);
266 extern Vec3    vec3_interp(double k, Vec3 v1, Vec3 v2);
267 extern double  vec3_dot(Vec3 v, Vec3 w);
268 extern Vec3    vec3_cross(Vec3 v, Vec3 w);
269 extern Vec3    vec3_unitcross(Vec3 v, Vec3 w);
270 extern double  vec3_mod(Vec3 v);
271 extern double  vec3_sqrmod(Vec3 v);
272 extern double  vec3_modunit(Vec3 v, Vec3 * e);
273 extern Vec3    vec3_unit(Vec3 v);
274 extern double  vec3_dist(Vec3 v, Vec3 w);
275 extern double  vec3_sqrdist(Vec3 v, Vec3 w);
276 extern double  vec3_angle(Vec3 v, Vec3 w);
277 extern Vec3    vec3_perp(Vec3 v);
278 extern void    vec3_basis(Vec3 aim, Vec3 down, Vec3 * ex, Vec3 * ey, Vec3 * ez);
279 extern Vec3    vec3_read(FILE * fp);
280 extern void    vec3_print(FILE * fp, Vec3 v);
281 extern void    vec3_pprint(FILE * fp, char *msg, Vec3 v);
282 extern void    vec3_format(Vec3 v);
283 extern Vec3    vec3_rand_sphere(Vec3 c, double r);
284 extern Vec4   *vec4_alloc(void);
285 extern Vec4   *vec4_make(Vec4 u);
286 extern void    vec4_free(void *v);
287 extern Vec4    vec4(double x, double y, double z, double w);
288 extern Vec4    vec4_zero(void);
289 extern Vec4    vec4_ex(void);
290 extern Vec4    vec4_ey(void);
291 extern Vec4    vec4_ez(void);
292 extern Vec4    vec4_ew(void);
293 extern void    vec4_comps(Vec4 v, float *x, float *y, float *z, float *w);
294 extern double  vec4_get_x(Vec4 v);
295 extern double  vec4_get_y(Vec4 v);
296 extern double  vec4_get_z(Vec4 v);
297 extern double  vec4_get_w(Vec4 v);
298 extern Vec4    vec4_sum(Vec4 v, Vec4 w);
299 extern Vec4    vec4_sum3(Vec4 u, Vec4 v, Vec4 w);
300 extern Vec4    vec4_sum4(Vec4 u, Vec4 v, Vec4 w, Vec4 x);
301 extern Vec4    vec4_minus(Vec4 v);
302 extern Vec4    vec4_diff(Vec4 v, Vec4 w);
303 extern Vec4    vec4_times(double k, Vec4 v);
304 extern Vec4    vec4_interp(double k, Vec4 v1, Vec4 v2);
305 extern double  vec4_dot(Vec4 v, Vec4 w);
306 extern Mat4    vec4_cross(Vec4 v, Vec4 w);
307 extern double  vec4_mod(Vec4 v);
308 extern double  vec4_sqrmod(Vec4 v);
309 extern double  vec4_modunit(Vec4 v, Vec4 * e);
310 extern Vec4    vec4_unit(Vec4 v);
311 extern double  vec4_dist(Vec4 v, Vec4 w);
312 extern double  vec4_sqrdist(Vec4 v, Vec4 w);
313 extern double  vec4_angle(Vec4 v, Vec4 w);
314 extern Vec4    vec4_read(FILE * fp);
315 extern void    vec4_print(FILE * fp, Vec4 v);
316 extern void    vec4_pprint(FILE * fp, char *msg, Vec4 v);
317 extern void    vec4_format(Vec4 v);
318 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.