simExportMeshExports a mesh to a file C++ synopsisint simExportMesh(int fileformat, const char* pathAndFilename, int options, double scalingFactor,
int elementCount, double** vertices, const int* verticesSizes, int** indices,
const int* indicesSizes, double** reserved, char** names)
Arguments
Return
Example// Exports all shapes in the scene
int shapeCount = 0;
while (simGetObjects(shapeCount++, sim.object_shape_type) != -1);
shapeCount--;
double** vertices = new double*[shapeCount];
int* verticesSizes = new int[shapeCount];
int** indices = new int*[shapeCount];
int* indicesSizes = new int[shapeCount];
int index = 0;
while (true)
{
int shapeHandle = simGetObjects(index++, sim.object_shape_type);
if (shapeHandle < 0)
break;
double* vert;
int vertS;
int* ind;
int indS;
simGetShapeMesh(shapeHandle, &vert, &vertS, &ind, &indS, nullptr);
vertices[index - 1] = vert;
verticesSizes[index - 1] = vertS;
indices[index - 1] = ind;
indicesSizes[index - 1] = indS;
double m[12];
simGetObjectMatrix(shapeHandle, -1, m);
for (int i = 0; i < vertS / 3; i++)
{
double v[3]={vert[3 * i + 0], vert[3 * i + 1], vert[3 * i + 2]};
simTransformVector(m, v);
vert[3 * i + 0] = v[0];
vert[3 * i + 1] = v[1];
vert[3 * i + 2] = v[2];
}
}
simExportMesh(0, "d:\\example.obj", 0, 1, shapeCount, vertices,
verticesSizes, indices, indicesSizes, nullptr, nullptr);
for (int i = 0; i < shapeCount; i++)
{
simReleaseBuffer((char*)vertices[i]);
simReleaseBuffer((char*)indices[i]);
}
delete[] vertices;
delete[] verticesSizes;
delete[] indices;
delete[] indicesSizes;
|