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; }
// モデルと線分の当たり判定 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; }