allow batch creation of objects through PyBullet.createMultiBody, see createMultiBodyBatch.py example.
expose minGraphicsUpdateTimeMs through PyBullet.connect(p.GUI, options="minGraphicsUpdateTimeMs=32000"), by default OpenGL rendering runs at 4000microseconds intervals. allow a maximum of 128k objects fix meshScale for PyBullet.createCollisionShape for custom mesh expose Pybullet.setPhysicsEngineParameter(minimumSolverIslandSize=...), larger minimum batches group solver constraints together in the same island, to reduce calling overhead (even if they are not related)
This commit is contained in:
@@ -2184,6 +2184,21 @@ int b3RobotSimulatorClientAPI_NoDirect::createMultiBody(struct b3RobotSimulatorC
|
||||
|
||||
command = b3CreateMultiBodyCommandInit(sm);
|
||||
|
||||
if (args.m_useMaximalCoordinates)
|
||||
{
|
||||
b3CreateMultiBodyUseMaximalCoordinates(command);
|
||||
}
|
||||
if (args.m_batchPositions.size())
|
||||
{
|
||||
btAlignedObjectArray<double> positionArray;
|
||||
for (int i = 0; i < args.m_batchPositions.size(); i++)
|
||||
{
|
||||
positionArray.push_back(args.m_batchPositions[i][0]);
|
||||
positionArray.push_back(args.m_batchPositions[i][1]);
|
||||
positionArray.push_back(args.m_batchPositions[i][2]);
|
||||
}
|
||||
b3CreateMultiBodySetBatchPositions(sm, command, &positionArray[0], args.m_batchPositions.size());
|
||||
}
|
||||
baseIndex = b3CreateMultiBodyBase(command, args.m_baseMass, args.m_baseCollisionShapeIndex, args.m_baseVisualShapeIndex,
|
||||
doubleBasePosition, doubleBaseOrientation, doubleBaseInertialFramePosition, doubleBaseInertialFrameOrientation);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user