fix very rare threading issue, let main thread compute the UID for user debug items
add collision model to cartpole.urdf
This commit is contained in:
@@ -62,6 +62,12 @@
|
|||||||
<mass value="10"/>
|
<mass value="10"/>
|
||||||
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
|
<inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
|
||||||
</inertial>
|
</inertial>
|
||||||
|
<collision>
|
||||||
|
<geometry>
|
||||||
|
<box size="0.05 0.05 1.0"/>
|
||||||
|
</geometry>
|
||||||
|
<origin rpy="0 0 0" xyz="0 0 0.5"/>
|
||||||
|
</collision>
|
||||||
</link>
|
</link>
|
||||||
|
|
||||||
<joint name="cart_to_pole" type="continuous">
|
<joint name="cart_to_pole" type="continuous">
|
||||||
|
|||||||
@@ -1131,7 +1131,7 @@ public:
|
|||||||
btAlignedObjectArray<UserDebugText> m_userDebugText;
|
btAlignedObjectArray<UserDebugText> m_userDebugText;
|
||||||
|
|
||||||
UserDebugText m_tmpText;
|
UserDebugText m_tmpText;
|
||||||
|
int m_resultUserDebugTextUid;
|
||||||
virtual int addUserDebugText3D( const char* txt, const double positionXYZ[3], const double orientation[4], const double textColorRGB[3], double size, double lifeTime, int trackingVisualShapeIndex, int optionFlags)
|
virtual int addUserDebugText3D( const char* txt, const double positionXYZ[3], const double orientation[4], const double textColorRGB[3], double size, double lifeTime, int trackingVisualShapeIndex, int optionFlags)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -1165,7 +1165,7 @@ public:
|
|||||||
m_cs->setSharedParam(1, eGUIUserDebugAddText);
|
m_cs->setSharedParam(1, eGUIUserDebugAddText);
|
||||||
workerThreadWait();
|
workerThreadWait();
|
||||||
|
|
||||||
return m_userDebugText[m_userDebugText.size()-1].m_itemUniqueId;
|
return m_resultUserDebugTextUid;
|
||||||
}
|
}
|
||||||
|
|
||||||
btAlignedObjectArray<UserDebugParameter*> m_userDebugParams;
|
btAlignedObjectArray<UserDebugParameter*> m_userDebugParams;
|
||||||
@@ -1183,6 +1183,7 @@ public:
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
int m_userDebugParamUid;
|
||||||
|
|
||||||
virtual int addUserDebugParameter(const char* txt, double rangeMin, double rangeMax, double startValue)
|
virtual int addUserDebugParameter(const char* txt, double rangeMin, double rangeMax, double startValue)
|
||||||
{
|
{
|
||||||
@@ -1196,13 +1197,13 @@ public:
|
|||||||
m_cs->setSharedParam(1, eGUIUserDebugAddParameter);
|
m_cs->setSharedParam(1, eGUIUserDebugAddParameter);
|
||||||
workerThreadWait();
|
workerThreadWait();
|
||||||
|
|
||||||
return (*m_userDebugParams[m_userDebugParams.size()-1]).m_itemUniqueId;
|
return m_userDebugParamUid;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
btAlignedObjectArray<UserDebugDrawLine> m_userDebugLines;
|
btAlignedObjectArray<UserDebugDrawLine> m_userDebugLines;
|
||||||
UserDebugDrawLine m_tmpLine;
|
UserDebugDrawLine m_tmpLine;
|
||||||
|
int m_resultDebugLineUid;
|
||||||
virtual int addUserDebugLine(const double debugLineFromXYZ[3], const double debugLineToXYZ[3], const double debugLineColorRGB[3], double lineWidth, double lifeTime , int trackingVisualShapeIndex)
|
virtual int addUserDebugLine(const double debugLineFromXYZ[3], const double debugLineToXYZ[3], const double debugLineColorRGB[3], double lineWidth, double lifeTime , int trackingVisualShapeIndex)
|
||||||
{
|
{
|
||||||
m_tmpLine.m_lifeTime = lifeTime;
|
m_tmpLine.m_lifeTime = lifeTime;
|
||||||
@@ -1223,7 +1224,7 @@ public:
|
|||||||
m_cs->lock();
|
m_cs->lock();
|
||||||
m_cs->setSharedParam(1, eGUIUserDebugAddLine);
|
m_cs->setSharedParam(1, eGUIUserDebugAddLine);
|
||||||
workerThreadWait();
|
workerThreadWait();
|
||||||
return m_userDebugLines[m_userDebugLines.size()-1].m_itemUniqueId;
|
return m_resultDebugLineUid;
|
||||||
}
|
}
|
||||||
|
|
||||||
int m_removeDebugItemUid;
|
int m_removeDebugItemUid;
|
||||||
@@ -2171,6 +2172,7 @@ void PhysicsServerExample::updateGraphics()
|
|||||||
B3_PROFILE("eGUIUserDebugAddText");
|
B3_PROFILE("eGUIUserDebugAddText");
|
||||||
|
|
||||||
m_multiThreadedHelper->m_userDebugText.push_back(m_multiThreadedHelper->m_tmpText);
|
m_multiThreadedHelper->m_userDebugText.push_back(m_multiThreadedHelper->m_tmpText);
|
||||||
|
m_multiThreadedHelper->m_resultUserDebugTextUid = m_multiThreadedHelper->m_userDebugText[m_multiThreadedHelper->m_userDebugText.size()-1].m_itemUniqueId;
|
||||||
m_multiThreadedHelper->mainThreadRelease();
|
m_multiThreadedHelper->mainThreadRelease();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -2190,6 +2192,8 @@ void PhysicsServerExample::updateGraphics()
|
|||||||
m_multiThreadedHelper->m_childGuiHelper->getParameterInterface()->registerSliderFloatParameter(slider);
|
m_multiThreadedHelper->m_childGuiHelper->getParameterInterface()->registerSliderFloatParameter(slider);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
m_multiThreadedHelper->m_userDebugParamUid = (*m_multiThreadedHelper->m_userDebugParams[m_multiThreadedHelper->m_userDebugParams.size()-1]).m_itemUniqueId;
|
||||||
|
|
||||||
//also add actual menu
|
//also add actual menu
|
||||||
m_multiThreadedHelper->mainThreadRelease();
|
m_multiThreadedHelper->mainThreadRelease();
|
||||||
break;
|
break;
|
||||||
@@ -2199,6 +2203,7 @@ void PhysicsServerExample::updateGraphics()
|
|||||||
B3_PROFILE("eGUIUserDebugAddLine");
|
B3_PROFILE("eGUIUserDebugAddLine");
|
||||||
|
|
||||||
m_multiThreadedHelper->m_userDebugLines.push_back(m_multiThreadedHelper->m_tmpLine);
|
m_multiThreadedHelper->m_userDebugLines.push_back(m_multiThreadedHelper->m_tmpLine);
|
||||||
|
m_multiThreadedHelper->m_resultDebugLineUid = m_multiThreadedHelper->m_userDebugLines[m_multiThreadedHelper->m_userDebugLines.size()-1].m_itemUniqueId;
|
||||||
m_multiThreadedHelper->mainThreadRelease();
|
m_multiThreadedHelper->mainThreadRelease();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user