Example #1
0
void dgWorld::StepDynamics (dgFloat32 timestep)
{
	//SerializeToFile ("xxx.bin");

	dgAssert (m_inUpdate == 0);
	dgAssert (GetThreadCount() >= 1);

	m_inUpdate ++;

	DG_TRACKTIME(__FUNCTION__);
	UpdateSkeletons();
	UpdateBroadphase(timestep);
	UpdateDynamics (timestep);

	if (m_listeners.GetCount()) {
		for (dgListenerList::dgListNode* node = m_listeners.GetFirst(); node; node = node->GetNext()) {
			dgListener& listener = node->GetInfo();
			if (listener.m_onPostUpdate) {
				listener.m_onPostUpdate(this, listener.m_userData, timestep);
			}
		}
	}

	m_inUpdate --;
}
Example #2
0
void dgWorld::StepDynamics (dgFloat32 timestep)
{

//static int xxx ;
//xxx ++;
//dgTrace (("%d\n", xxx));
//if (xxx >= 2000)
//xxx *=1;

	//xxxxx();

	dgAssert (m_inUpdate == 0);
//SerializeToFile ("xxx.bin");

	m_inUpdate ++;
	dgAssert (GetThreadCount() >= 1);

	m_broadPhase->UpdateContacts (timestep);
	UpdateDynamics (timestep);

	if (m_postListener.GetCount()) {
		for (dgListenerList::dgListNode* node = m_postListener.GetFirst(); node; node = node->GetNext()) {
			dgListener& listener = node->GetInfo();
			listener.m_onListenerUpdate (this, listener.m_userData, timestep);
		}
	}
	m_inUpdate --;
}
Example #3
0
void Window::OpenWindow()
{
  glEnable(GL_DEPTH_TEST);
  while (!glfwWindowShouldClose(window_))
  {
    double time = glfwGetTime();
    double dt = time - prev_time_;
    prev_time_ = time;

    UpdateDynamics(dt);

    glClearColor(0.0f, 0.7f, 0.0f, 1.0f);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    DrawScene();

    glfwSwapBuffers(window_);
    glfwPollEvents();
  }
  glfwTerminate();
}
Example #4
0
void dgWorld::StepDynamics (dgFloat32 timestep)
{

//static int xxx ;
//xxx ++;
//dgTrace (("%d\n", xxx));
//if (xxx >= 2000)
//xxx *=1;

	//xxxxx();

	dgAssert (m_inUpdate == 0);
//SerializeToFile ("xxx.bin");

	dgThreadHive::ClearTimers();
	memset (m_perfomanceCounters, 0, sizeof (m_perfomanceCounters));
	dgUnsigned32 ticks = m_getPerformanceCount();

	m_inUpdate ++;
	dgAssert (GetThreadCount() >= 1);

	m_broadPhase->UpdateContacts (timestep);
	UpdateDynamics (timestep);

	if (m_postListener.GetCount()) {
		dgUnsigned32 ticks = m_getPerformanceCount();
		for (dgListenerList::dgListNode* node = m_postListener.GetFirst(); node; node = node->GetNext()) {
			dgListener& listener = node->GetInfo();
			listener.m_onListenerUpdate (this, listener.m_userData, timestep);
		}
		m_perfomanceCounters[m_postUpdataListerTicks] = m_getPerformanceCount() - ticks;
	}

	m_inUpdate --;
	m_perfomanceCounters[m_worldTicks] = m_getPerformanceCount() - ticks;
}