Мне было интересно, есть ли способ, используя стандартную библиотеку, найти пересечение двух векторов трехмерных точек. 3D-точка - это glm :: vec3 с x, y и z. x, y и z - поплавки.Лучший способ найти пересечение двух std :: векторов 3D-точек
Я знаю, что мы можем использовать std :: set_intersection на 1D массивах.
Просто чтобы быть ясно, у меня есть 2 векторов:
std::vector<Point> v1;
std::vector<Point> v2;
где точка является:
struct Point {
glm::vec3 m_position;
glm::vec2 m_texCoord;
glm::vec3 m_normal;
Point() {}
Point(glm::vec3& pos, glm::vec2& tex, glm::vec3& norm) {
m_position = pos;
m_normal = norm;
m_texCoord = tex;
}
Point(glm::vec3& pos, glm::vec3& norm) {
m_position = pos;
m_normal = norm;
}
Point(glm::vec3& pos) {
m_position = pos;
}
};
Я хотел бы найти пересечение v1 и v2 по Point.m_position.
Благодарим за помощь.
Можете ли вы определить пересечение, если вы имеете в виду стандартное множество теоретических пересечений? Если это так, вы можете определить наборы, которые являются пересекающимися операндами? Также так точка - это массив точек, сами массивы? –