MCPcopy Create free account
hub / github.com/bulletphysics/bullet3 / Tutorial

Method Tutorial

examples/Tutorial/Tutorial.cpp:284–450  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

282
283public:
284 Tutorial(GUIHelperInterface* guiHelper, int tutorialIndex)
285 : m_app(guiHelper->getAppInterface()),
286 m_guiHelper(guiHelper),
287 m_tutorialIndex(tutorialIndex),
288 m_timeSeriesCanvas0(0),
289 m_timeSeriesCanvas1(0),
290 m_stage(0),
291 m_counter(0)
292 {
293 int numBodies = 1;
294
295 m_app->setUpAxis(1);
296
297 switch (m_tutorialIndex)
298 {
299 case TUT_VELOCITY:
300 {
301 numBodies = 10;
302 m_timeSeriesCanvas0 = new TimeSeriesCanvas(m_app->m_2dCanvasInterface, 512, 256, "Constant Velocity");
303
304 m_timeSeriesCanvas0->setupTimeSeries(2, 60, 0);
305 m_timeSeriesCanvas0->addDataSource("X position (m)", 255, 0, 0);
306 m_timeSeriesCanvas0->addDataSource("X velocity (m/s)", 0, 0, 255);
307 m_timeSeriesCanvas0->addDataSource("dX/dt (m/s)", 0, 0, 0);
308 break;
309 }
310 case TUT_ACCELERATION:
311 {
312 numBodies = 10;
313 m_timeSeriesCanvas1 = new TimeSeriesCanvas(m_app->m_2dCanvasInterface, 256, 512, "Constant Acceleration");
314
315 m_timeSeriesCanvas1->setupTimeSeries(50, 60, 0);
316 m_timeSeriesCanvas1->addDataSource("Y position (m)", 255, 0, 0);
317 m_timeSeriesCanvas1->addDataSource("Y velocity (m/s)", 0, 0, 255);
318 m_timeSeriesCanvas1->addDataSource("dY/dt (m/s)", 0, 0, 0);
319 break;
320 }
321 case TUT_COLLISION:
322 {
323 numBodies = 2;
324 m_timeSeriesCanvas1 = new TimeSeriesCanvas(m_app->m_2dCanvasInterface, 512, 200, "Distance");
325 m_timeSeriesCanvas1->setupTimeSeries(1.5, 60, 0);
326 m_timeSeriesCanvas1->addDataSource("distance", 255, 0, 0);
327 break;
328 }
329
330 case TUT_SOLVE_CONTACT_CONSTRAINT:
331 {
332 numBodies = 2;
333 m_timeSeriesCanvas1 = new TimeSeriesCanvas(m_app->m_2dCanvasInterface, 512, 200, "Collision Impulse");
334 m_timeSeriesCanvas1->setupTimeSeries(1.5, 60, 0);
335 m_timeSeriesCanvas1->addDataSource("Distance", 0, 0, 255);
336 m_timeSeriesCanvas1->addDataSource("Impulse magnutide", 255, 0, 0);
337
338 {
339 SliderParams slider("Restitution", &gRestitution);
340 slider.m_minVal = 0;
341 slider.m_maxVal = 1;

Callers

nothing calls this directly

Calls 15

b3MakeVector3Function · 0.85
b3MakeVector4Function · 0.85
stbi_loadFunction · 0.85
setupTimeSeriesMethod · 0.80
addDataSourceMethod · 0.80
computeLocalInertiaMethod · 0.80
getAppInterfaceMethod · 0.45
setUpAxisMethod · 0.45
getParameterInterfaceMethod · 0.45
registerCubeShapeMethod · 0.45

Tested by

no test coverage detected