Описание:Нахождения Лики сетка Подчасть
У меня есть сетка и ее вся вершинное лицо информации (индексы вершин, положение вершин, индексы лица и т.д.), и я хочу сделать суб-часть этого сетка. Например, если у меня есть ручная сетка, я хочу только отобразить один из пальцев.
У меня есть информация о связанных вершинах для каждой подчасти, что означает, что я знаю индексы вершин, положения вершин и т. Д. Для пальца, который я хочу отобразить. Однако я не знаю, какие лица связаны с пальцем. Итак, мне нужно найти связанные индексы лица, чтобы отобразить часть.
Вопрос:
Как я могу найти связанные с ним индексы для подразделов в целом индексов лица установить? Я могу использовать исчерпывающий алгоритм поиска, но, надеюсь, есть лучший подход, известный алгоритм для этого.
Дополнительная информация:
class Vertex
{
Vertex(float _x, float _y, float _z)
{
x = _x; y = _y; z = _z;
}
float x, y, z; // Positions
};
class Face
{
Face(int _v1, int _v2, int _v3)
{
vertIndex1 = _v1; vertIndex2 = _v2; vertIndex3 = _v3;
}
int vertIndex1, vertIndex2, vertIndex3; // Vertex indices
};
Пример использования для триангулированной квадратной сетки:
некоторый вектор, такой как std::vector<Vertex> verts
и std::vector<Face> faces
. У меня есть Vertex
v1 (0,0,0), v2 (1,0,0), v3 (0,1,0) и v4 (1,1,0). Таким образом, соответствующие объекты Face
являются f1 (0, 1, 2) и f2 (0, 3, 4), где 0, 1, 2 и 4 являются индексами Vertex
объектов в векторе verts
. Как вы можете видеть, вершина может быть в разных Face
с.
Теперь, скажем, у меня есть рука сетки, где verts.size()
является 6000 и faces.size()
12000. Однако, вместо всей руки сетки, я хочу сделать только мизинец и у меня есть только набор вершинных индексов мизинца такого как (345, 369, 541, ...).
Итак, я знаю, какие вершины мне нужно использовать, я знаю всю информацию о лицах, и я хочу найти индексы лица только для этих заданных вершин.
Лицы, которым нужны те, для которых * все * их вершины находятся в заданном наборе вершин? Те, для которых * любая * вершина находится в вершинном множестве подчасти? Или что? И каков исчерпывающий поиск, о котором вы думаете? –
Информация, которую я имею для всей сетки. У меня есть набор, содержащий N элементов для граней. Однако мне нужна лишь небольшая часть этого набора. – ciyo
Это не отвечает на мой вопрос. Мой вопрос: точно, какие лица вам нужны? (Я предполагаю, что ваши входы представляют собой набор всех лиц, где для каждого лица у вас есть список вершин, которые его составляют, а также подмножество вершин, соответствующих этой части. , каковы критерии того, что данное лицо должно быть частью набора результатов?) –