#include <iostream>
#include <string>
#include <math.h>

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[]);	




