// Get bounding box edges from positions ModelBoundingBoxStruct GetBoundingBoxFomPositions(PositionsVector positions) { ModelBoundingBoxStruct result; MLdouble smallestX = 0; MLdouble smallestY = 0; MLdouble smallestZ = 0; MLdouble biggestX = 0; MLdouble biggestY = 0; MLdouble biggestZ = 0; for (int i = 0; i < positions.size(); i++) { PositionStruct thisPosition = positions[i]; if (thisPosition.position.x < smallestX) { smallestX = thisPosition.position.x; } if (thisPosition.position.x > biggestX) { biggestX = thisPosition.position.x; } if (thisPosition.position.y < smallestY) { smallestY = thisPosition.position.y; } if (thisPosition.position.y > biggestY) { biggestY = thisPosition.position.y; } if (thisPosition.position.z < smallestZ) { smallestZ = thisPosition.position.z; } if (thisPosition.position.z > biggestZ) { biggestZ = thisPosition.position.z; } } result.start.x = smallestX; result.start.y = smallestY; result.start.z = smallestZ; result.end.x = biggestX; result.end.y = biggestY; result.end.z = biggestZ; return result; }
// Get bounding box edges from positions ModelBoundingBoxStruct PDFTools::GetBoundingBoxFomPositions(PositionsVector positions) { ModelBoundingBoxStruct result; MLdouble smallestX = ML_DOUBLE_MAX; MLdouble smallestY = ML_DOUBLE_MAX; MLdouble smallestZ = ML_DOUBLE_MAX; MLdouble biggestX = ML_DOUBLE_MAX * -1; MLdouble biggestY = ML_DOUBLE_MAX * -1; MLdouble biggestZ = ML_DOUBLE_MAX * -1; for (PositionsVector::size_type i = 0; i < positions.size(); i++) { PositionStruct thisPosition = positions[i]; if (thisPosition.position.x < smallestX) { smallestX = thisPosition.position.x; } if (thisPosition.position.x > biggestX) { biggestX = thisPosition.position.x; } if (thisPosition.position.y < smallestY) { smallestY = thisPosition.position.y; } if (thisPosition.position.y > biggestY) { biggestY = thisPosition.position.y; } if (thisPosition.position.z < smallestZ) { smallestZ = thisPosition.position.z; } if (thisPosition.position.z > biggestZ) { biggestZ = thisPosition.position.z; } } result.start.x = smallestX; result.start.y = smallestY; result.start.z = smallestZ; result.end.x = biggestX; result.end.y = biggestY; result.end.z = biggestZ; return result; }