示例#1
0
bool Collision::Octree_Line(int modelID, const Line& line, HitInfo& hitInfo) {
	MV1_COLL_RESULT_POLY mv1HitInfo;
	mv1HitInfo = MV1CollCheck_Line(modelID, -1, Convert::ToVECTOR(line.p1), Convert::ToVECTOR(line.p2));

	if (mv1HitInfo.HitFlag != 1) {
		return false;
	}
	VECTOR pos = mv1HitInfo.HitPosition;
	hitInfo.intersect = Vector3(pos.x,pos.y,pos.z);
	VECTOR normal = mv1HitInfo.Normal;
	hitInfo.normal = Vector3(normal.x, normal.y, normal.z);

	return true;
}
示例#2
0
// モデルと線分の当たり判定
CollisionParameter Collisin::ModelLine(const ModelData& model, const Line& line) const{
	CollisionParameter colpara;
	MV1_COLL_RESULT_POLY HitPoly;

	HitPoly = MV1CollCheck_Line(
		model.MHandle, model.MFrameIndex,
		line.startPos.ToVECTOR(), line.endPos.ToVECTOR());
	if (HitPoly.HitFlag)
	{
		colpara.colFlag = true;
		colpara.colPos  = HitPoly.HitPosition;
	}

	return colpara;
}