Столкнулся с проблемой создания ограничивающей фигуры для 3D объекта моделька которого состоит из множества Mesh Для создаия ограничивающей фигуры использую метод :
/**Создает ограничивающую фигуру для динамичного объекта
* @param model - 3D модель
* @param optimize - флаг определяющий необходимость применения оптимизации (упрощения)
* @param numMesh - по номеру какого меша модели будет создаваться ограничивающая фигура*/
public static btConvexHullShape createConvexHullShape (final Model model, boolean optimize, int numMesh) {
final Mesh mesh = model.meshes.get(numMesh);
final btConvexHullShape shape = new btConvexHullShape(mesh.getVerticesBuffer(), mesh.getNumVertices(), mesh.getVertexSize());
if (!optimize) return shape;
// оптимизация формы
final btShapeHull hull = new btShapeHull(shape);
hull.buildHull(shape.getMargin());
final btConvexHullShape result = new btConvexHullShape(hull);
// удаление вспомогательных форм
shape.dispose();
hull.dispose();
return result;
}
мною была предпринята попытка создания ограничивающих фигур по всем имеющимся Mesh модели ,
public static Array<btConvexHullShape> createConvexHullShapeArray (final Model model, boolean optimize)
{
Array<btConvexHullShape> result = new Array<btConvexHullShape>();
for (int i=0;i<model.nodes.size;i++) {result.add(createConvexHullShape(model, optimize,i));}
return result;
}
но это не дало результата т.к. все эти ограничивающие фигуры начинали жить отдельной жизнью , хотя должны быть привязаны друг к другу.
Вопрос, как программно объединить все имеющиеся Mesh в одну (ограничивающую сетку) и уже по неё создать ограничивающую фигуру , или может быть нужно применить какой то другой приём ?
Полностью исходный код можно посмотреть тут
класс com.leganas.game.framework.graphics.engine3D.Phisics.java
Пытаюсь протестировать контроллер, у которого есть @PreAuthorize и сервис, который надо подменить заглушкой
В данной теме я узнал, как получить PID процессаИз выведенного списка все процессы Java отображаются просто java