ok, so how then do I get the vertices for a mesh group in my plugin and expect it to run across all clients ?
Code:
double xMin = DBL_MAX, xMax = -DBL_MAX, yMin = DBL_MAX, yMax = -DBL_MAX, zMin = DBL_MAX, zMax = -DBL_MAX;
// Print out the vertices
VISHANDLE hvisCar = *oapiObjectVisualPtr (oapiGetObjectByName("GL-01"));
if (hvisCar != NULL) {
//DEVMESHHANDLE hDevMsh = vCollider->GetDevMesh(hvisCar, 0); //TODO This should be made to work, GetMesh() crashes with clients
MESHHANDLE hDevMsh = vCollider->GetMesh(hvisCar, 0);
for (int i = 0; i < NUM_WHEELS; i++) {
MESHGROUP* mshGrp = oapiMeshGroup(hDevMsh, mWheelMeshGroupIndex[i]);
for (unsigned int j = 0; j < mshGrp->nVtx; j++ ) {
/*oapiWriteLogV("Vertex : %3d : (%f, %f, %f)", j,
mshGrp->Vtx[j].x, mshGrp->Vtx[j].y, mshGrp->Vtx[j].z );*/
if (mshGrp->Vtx[j].x < xMin)
xMin = mshGrp->Vtx[j].x;
if (mshGrp->Vtx[j].x > xMax)
xMax = mshGrp->Vtx[j].x;
if (mshGrp->Vtx[j].y < yMin)
yMin = mshGrp->Vtx[j].y;
if (mshGrp->Vtx[j].y > yMax)
yMax = mshGrp->Vtx[j].y;
if (mshGrp->Vtx[j].z < zMin)
zMin = mshGrp->Vtx[j].z;
if (mshGrp->Vtx[j].z > zMax)
zMax = mshGrp->Vtx[j].z;
}
mWheelMeshGroupCenter[i] = _V((xMax + xMin)/2, (yMax + yMin)/2, (zMax + zMin)/2);
oapiWriteLogV("Center of mesh group %d is at (%f, %f, %f) wrt vessel",
mWheelMeshGroupIndex[i], V3ARGS(mWheelMeshGroupCenter[i]));
}
}