Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 4396 in orxonox.OLD for orxonox/trunk/src/lib/physics


Ignore:
Timestamp:
May 30, 2005, 3:27:36 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: now Objects should be affected by the PhysicsEngine too

Location:
orxonox/trunk/src/lib/physics
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • orxonox/trunk/src/lib/physics/fields/gravity.cc

    r4395 r4396  
    4747Vector Gravity::calcForce(const Vector& data) const
    4848{
    49   return /*(this->getAbsDir().apply(Vector(0,1,0)))*/ Vector(0,-1,0) * this->getMagnitude();
     49  return Vector(0,-1,0) * this->getMagnitude();
    5050}
    5151
  • orxonox/trunk/src/lib/physics/physics_engine.cc

    r4395 r4396  
    140140void PhysicsEngine::tick(float dt)
    141141{
    142   tIterator<PhysicsConnection>* iterator = this->connections->getIterator();
    143   PhysicsConnection* enumConn = iterator->nextElement();
    144   while (enumConn)
     142  tIterator<PhysicsConnection>* itPC = this->connections->getIterator();
     143  PhysicsConnection* enumPC = itPC->nextElement();
     144  while (enumPC)
    145145    {
    146       enumConn->apply();
    147       enumConn = iterator->nextElement();
     146      enumPC->apply();
     147      enumPC = itPC->nextElement();
    148148    }
    149   delete iterator;
     149  delete itPC;
     150
     151
     152  tIterator<PhysicsInterface>* itPI = this->interfaces->getIterator();
     153  PhysicsInterface* enumPI = itPI->nextElement();
     154  while (enumPI)
     155    {
     156      enumPI->tickPhys(dt);
     157      enumPI = itPI->nextElement();
     158    }
     159  delete itPI;
    150160}
    151161
  • orxonox/trunk/src/lib/physics/physics_interface.cc

    r4395 r4396  
    3939{
    4040  //   this->setClassName ("PhysicsInterface");
    41    this->mass = 0;
     41   this->mass = 1;
    4242   this->massChildren = 0;
    4343   this->forceSum = Vector(0, 0, 0);
     
    9090void PhysicsInterface::applyField(Field* field)
    9191{
    92   //  this->forceSum += force;
     92  this->forceSum += field->calcForce(dynamic_cast<PNode*>(this)->getAbsCoor());
    9393}
    9494
     
    9696{
    9797  Vector acc = this->forceSum / ( this->massChildren + this->mass );
     98  PNode* coorTick =  (PNode*) this;
     99  coorTick->setRelCoor(coorTick->getRelCoor() + (this->forceSum / this->mass * dt));
     100
     101  this->forceSum = Vector(0,0,0);
    98102  // todo: introduce kinematics
    99103}
Note: See TracChangeset for help on using the changeset viewer.