Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 28, 2005, 11:56:46 PM (19 years ago)
Author:
bensch
Message:

orxonox/trunk: more loading (especially for physics)

File:
1 edited

Legend:

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

    r4394 r4728  
    1 /* 
     1/*
    22   orxonox - the future of 3D-vertical-scrollers
    33
     
    2020#include "physics_engine.h"
    2121
     22#include "factory.h"
     23#include "load_param.h"
    2224using namespace std;
    23 
    2425
    2526/**
    2627   \brief standard constructor
    27    \todo this constructor is not jet implemented - do it
    2828*/
    29 Field::Field () 
     29Field::Field ()
    3030{
    31    this->setClassName ("Field");
    32    this->setMagnitude(1);
    33    this->setAttenuation(0);
    34    
    35    PhysicsEngine::getInstance()->addField(this);
     31  this->init();
    3632}
    3733
     34/**
     35  \param root The XML-element to load settings from
     36 */
     37Field::Field(const TiXmlElement* root)
     38{
     39  this->init();
     40  this->loadParams(root);
     41}
    3842
    3943/**
     
    4145
    4246*/
    43 Field::~Field () 
     47Field::~Field ()
    4448{
    4549   PhysicsEngine::getInstance()->removeField(this);
    4650}
    4751
     52/**
     53  \brief initializes a Field
     54*/
     55void Field::init(void)
     56{
     57  this->setClassID(CL_FIELD, "Field");
     58  this->setMagnitude(1);
     59  this->setAttenuation(0);
     60
     61  PhysicsEngine::getInstance()->addField(this);
     62}
     63
     64/**
     65  \param root The XML-element to load settings from
     66 */
     67void Field::loadParams(const TiXmlElement* root)
     68{
     69  static_cast<PNode*>(this)->loadParams(root);
     70
     71  LoadParam<Field>(root, "magnitude", this, &Field::setMagnitude)
     72      .describe("sets the magnitude of this Field");
     73
     74  LoadParam<Field>(root, "attenuation", this, &Field::setAttenuation)
     75      .describe("sets the attenuation of this Field.");
     76
     77}
    4878
    4979/**
    5080   \param magnitude the magnitude of the Field.
    5181*/
    52 void Field::setMagnitude(const float& magnitude)
     82void Field::setMagnitude(float magnitude)
    5383{
    5484  this->magnitude = magnitude;
     
    5888   \param attenuation The attenuation of the Field (the bigger the smaller the region of influence)
    5989*/
    60 void Field::setAttenuation(const float& attenuation)
     90void Field::setAttenuation(float attenuation)
    6191{
    6292  this->attenuation = attenuation;
Note: See TracChangeset for help on using the changeset viewer.