#include #include #include using namespace std; typedef struct xyz_st { double x; double y; double z; } xyz; //回転 void Rotate3(double& x1, double& y1, double& z1, double alphaX,double alphaY,double alphaZ); //法線ベクトルの算出 void normal_calc(xyz tri[], xyz &normal); //XYZ座標の外積 xyz crossproduct_calc(xyz xyz1,xyz xyz2); //XYZ座標の内積 double innerproduct_calc(xyz xyz1, xyz xyz2); //XYZ座標の引き算 xyz sub_calc(xyz xyz1, xyz xyz2); //XYZ座標のスカラー量を求める double norm_calc(xyz xyz1); //XYZ座標の掛け算 xyz scale_calc(xyz xyz1,double scale); //XYZ座標の足し算 xyz add_calc(xyz xyz1,xyz xyz2); //三角形と線分のあたり判定 bool collision_tri_line(xyz tri[],xyz line[],xyz &contact_pt); //三角形と三角形のあたり判定 bool collision_tri_tri( xyz in_tri[], xyz in_tri2[]);