int numPoints = tMesh.getPoints().size() / tMesh.getPointElementSize(); int numTexCoords = tMesh.getTexCoords().size() / tMesh.getTexCoordElementSize(); int numFaces = tMesh.getFaces().size() / tMesh.getFaceElementSize(); if (numPoints == 0 || numPoints * tMesh.getPointElementSize() != tMesh.getPoints().size()) { throw new AssertionError("Points array size is not correct: " + tMesh.getPoints().size()); throw new AssertionError("TexCoords array size is not correct: " + tMesh.getPoints().size()); if (numFaces == 0 || numFaces * tMesh.getFaceElementSize() != tMesh.getFaces().size()) { throw new AssertionError("Faces array size is not correct: " + tMesh.getPoints().size()); throw new AssertionError("FaceSmoothingGroups array size is not correct: " + tMesh.getPoints().size() + ", numFaces = " + numFaces); ObservableIntegerArray faces = tMesh.getFaces(); for (int i = 0; i < faces.size(); i += 2) { int pIndex = faces.get(i);
texcoords.trimToSize(); ObservableIntegerArray faces = mesh.getFaces(); for (int i = 1; i < faces.size(); i += 2) { faces.set(i, reindex.get(faces.get(i)));
points.trimToSize(); ObservableIntegerArray faces = mesh.getFaces(); for (int i = 0; i < faces.size(); i += 2) { faces.set(i, reindex.get(faces.get(i)));
triangleMesh.getPoints().addAll(convertToFloatArray(vertices)); triangleMesh.getTexCoords().addAll(convertToFloatArray(texturePoints)); triangleMesh.getFaces().addAll(indices); triangleMesh.getFaceSmoothingGroups().addAll(new int[indices.length / triangleMesh.getFaceElementSize()]); triangleMesh.getNormals().addAll(convertToFloatArray(normals));
triangleMesh.getPoints().addAll(convertToFloatArray(vertices)); triangleMesh.getTexCoords().addAll(convertToFloatArray(texturePoints)); triangleMesh.getFaces().addAll(indices); triangleMesh.getFaceSmoothingGroups().addAll(new int[indices.length / triangleMesh.getFaceElementSize()]); triangleMesh.getNormals().addAll(convertToFloatArray(normals));
@Override public void run() { Platform.runLater(()->{ synchronized (lockSingles) { boolean firstPoint = meshSingles.getPoints().size() == 0; meshSingles.getPoints().setAll(pointSingles.data, 0, pointSingles.size); meshSingles.getFaces().setAll(facesSingles.data, 0, facesSingles.size); if (firstPoint) { meshSingles.getTexCoords().setAll(texCoords); final MeshView meshView = new MeshView(meshSingles); meshView.setMaterial(new PhongMaterial(Color.RED)); meshView.setDepthTest(DepthTest.ENABLE); meshView.setDrawMode(DrawMode.FILL); meshView.setCullFace(CullFace.BACK); world.getChildren().addAll(meshView); } timerSingles = null; taskSingles = null; } }); } };
mesh.getPoints().setAll(points); mesh.getTexCoords().setAll(texCoords); mesh.getFaces().setAll(faces);
mesh.getPoints().setAll(newVertexes.toFloatArray()); mesh.getTexCoords().setAll(newUVs.toFloatArray()); mesh.getFaces().setAll(((IntegerArrayList) faces.subList(facesStart, faces.size())).toIntArray()); "Added mesh '" + key + "' of " + mesh.getPoints().size() / mesh.getPointElementSize() + " vertexes, " + mesh.getTexCoords().size() / mesh.getTexCoordElementSize() + " uvs, " + mesh.getFaces().size() / mesh.getFaceElementSize() + " faces, " + mesh.getFaceSmoothingGroups().size() + " smoothing groups."); log("material diffuse color = " + ((PhongMaterial) material).getDiffuseColor());
mesh.getTexCoords().addAll(0); mesh.getFaces().addAll(
for (MeshView meshView : meshViews) { TriangleMesh mesh = (TriangleMesh) meshView.getMesh(); ObservableIntegerArray faces = mesh.getFaces(); ObservableIntegerArray faceSmoothingGroups = mesh.getFaceSmoothingGroups(); ObservableFloatArray points = mesh.getPoints();
mesh.getFaces().addAll(