2015-02-28 7 views
0

По-прежнему выясняя, как правильно использовать ofMesh, моя цель прямо сейчас состоит в том, чтобы облако точек, случайно подключенные точки (используя индексы) и возможность перетасовывать индексы при нажатии. Я указал в сторону использования Fisher-Yates Shuffle, но это не сработает до тех пор, пока я не выясню показатели.Манипулирование индексами в объекте Mesh

В настоящее время я создаю сетку, просто добавляя вершины со случайными координатами, но не явно определяя любые индексы. Когда я использую ofSetupIndicesAuto(), он связывает индексы слишком аккуратно, и ofClearIndices() ничего не делает, если я фактически не установил индексы в некотором пути.

Что-то я не понимаю, так это то, как вершины связаны, когда я не определяю их явно. Я предположил, что индексы настроены автоматически в порядке вершин, но я думаю, что нет.

Вот перетасовка я пытаюсь выполнить на индексах (помещенных в ofApp::mousePressed()):

for (int i = numVerts - 1; i >= 0; i --) { 
     int index = (int)ofRandom(i); 
     int tempIndex = mesh.getIndex(index); 
     mesh.setIndex(index, mesh.getIndex(i)); 
     mesh.setIndex(i, tempIndex); 
    } 
+0

Я обнаружил, что с помощью setupIndicesAuto() в foreach, который создает мои вершины, работает, чтобы определить индексы при запуске. Кажется, теперь я не могу понять, что Fisher Yates Shuffle ..., он не возвращает ошибки и не устанавливает никаких новых индексов. Отредактировано оригинальное сообщение, чтобы показать фрагмент для перетасовки. – aceslowman

ответ

0

Вы можете использовать перемешиваются вектор для установки индексов. Например:

vector<int> indices(numVerts); 
// Init indices vector 
int acc = 0; 
for(vector<int>::iterator it = indices.begin(); it != indices.end(); ++it){ 
    *it = acc; 
    ++acc; 
} 
// Shuffle 
random_shuffle(indices.begin(), indices.end()); 
// Update indices for the mesh 
mesh.clearIndices(); 
mesh.addIndices(indices); 

Вы можете увидеть here как работать индексы. В основном они помогают вам рассказать графической карте, как подключить вершины вашего ofMesh.

 Смежные вопросы

  • Нет связанных вопросов^_^