Mercurial > hg > old > magoroku_racing
diff col.c @ 90:8edae89a3877
compile on Mac OS X
author | Atuto SHIROMA <e095729@ie.u-ryukyu.ac.jp> |
---|---|
date | Thu, 19 May 2011 16:41:21 +0900 |
parents | ce9ef7dcf2f0 |
children | cb6c6de125dc |
line wrap: on
line diff
--- a/col.c Thu May 19 16:38:44 2011 +0900 +++ b/col.c Thu May 19 16:41:21 2011 +0900 @@ -1,9 +1,6 @@ -/* - * $Id$ - */ #include <stdio.h> -#include"libps2.h" -#include"ps2util.h" +//#include"libps2.h" +//#include"ps2util.h" #include"col.h" #include"mytype.h" @@ -15,9 +12,11 @@ * pが面の三角形の外側にあるときTRUEを戻し、 * そうでなければFALSEを戻す。境界は含む。 */ -static Bool -col_detect_approx(FVECTOR p, FVECTOR v0, FVECTOR v1) -{ + +/* +static bool +col_detect_approx(){ //FVECTOR p, FVECTOR v0, FVECTOR v1) + float v_r1, v_r2, r1_r2, r1_r1, r2_r2; float a, b, r; @@ -31,16 +30,20 @@ b = (v_r2 * r1_r1 - v_r1 * r1_r2); r = (r1_r1 * r2_r2 - r1_r2 * r1_r2); - return (a>=0 && b>=0 && a+b-r<=0) ? TRUE : FALSE; + return false;//(a>=0 && b>=0 && a+b-r<=0) ? TRUE : FALSE; } +*/ + /** * 垂心oの算出. 点pからv0, v1が描く面へ垂線を引いたときの交点oを * 垂心(orthocenter)と呼ぶ。 */ -static void -col_orthocenter(FVECTOR o, FVECTOR p, FVECTOR p0, FVECTOR normal) -{ +//なんか一回も使われていないらしいので消す +//static void +//col_orthocenter()//FVECTOR o, FVECTOR p, FVECTOR p0, FVECTOR normal) +//{ + /* FVECTOR o0, d; ps2_vu0_sub_vector(o0, p, p0); @@ -51,8 +54,8 @@ o[X_AXIS] = p[X_AXIS] - d[X_AXIS]; o[Y_AXIS] = p[Y_AXIS] - d[Y_AXIS]; o[Z_AXIS] = p[Z_AXIS] - d[Z_AXIS]; - o[W_AXIS] = 1; -} + o[W_AXIS] = 1;*/ +//} /** * 点pと面との衝突(点pとdetection face面との垂心oがdetection face領域の @@ -60,24 +63,23 @@ * でなければTRUE、 垂心(orthocenter)、垂心のある面の法線(normal * vector)を戻す. */ -Bool -col_detect(ColFaceHd* hd, FVECTOR pose, FVECTOR p) + +/* +bool +col_detect(ColFaceHd* hd)//, FVECTOR pose, FVECTOR p) { FVECTOR o, o0; int i; ColFacePtr col_face=hd->colface; for (i=0; i<hd->facenum; i++) { - /* - * 垂心oを求める - */ + + // * 垂心oを求める col_orthocenter(o, p, col_face[i].p0, col_face[i].normal); - /* - * detection face上のある点p0から垂心oへのベクトルo0を求める - */ + + // * detection face上のある点p0から垂心oへのベクトルo0を求める ps2_vu0_sub_vector(o0, o, col_face[i].p0); - /* - * ベクトルv0, v1の描く三角形とo0とで内外判定(range approx detection)を行う - */ + + // * ベクトルv0, v1の描く三角形とo0とで内外判定(range approx detection)を行う if (col_detect_approx(o0, col_face[i].v0, col_face[i].v1)==TRUE) { goto NOCOLLISION; } @@ -87,14 +89,20 @@ ps2_vu0_copy_vector(p, o); ps2_vu0_copy_vector(pose, col_face[i].normal); return TRUE; + + return false; } +*/ /* * detection face作成 */ + + void -col_init(ColFaceHd* hd, PolygonInfo* face) +col_init(ColFaceHd* hd)//, PolygonInfo* face) { + /* int i; FVECTOR p1, p2; ColFacePtr colface; @@ -122,4 +130,7 @@ } hd->colface = colface; + */ + } +