//=========================================================================== void cShapeMatching3dofPointer::applyForces() { // check if device is available if (m_device == NULL) { return; } // convert force into device local coordinates cMatrix3d tRot; m_globalRot.transr(tRot); tRot.mulr(m_lastComputedGlobalForce, m_lastComputedLocalForce); if ( (m_waitForSmallForce == false) || ((!m_forceStarted) && (m_lastComputedLocalForce.lengthsq() <0.000001)) ) { m_forceStarted = true; } // send force to device if ((m_forceON) && (m_forceStarted)) { m_device->setForce(m_lastComputedLocalForce); } else { cVector3d zeroForce(0.0, 0.0, 0.0); m_device->setForce(zeroForce); } }
void CVK::MassPoint::numericIntegration(float d_t) { // TODO Aufgabe 4 (a) // Implementieren Sie das Euler Integrationsverfahren. mPosition=mPosition+mVelocity*d_t; mVelocity=mVelocity+(mCurrentForce/mMass)*d_t; zeroForce(); }