Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/orxonox/trunk/src/lib/physics/fields/field.h @ 4402

Last change on this file since 4402 was 4395, checked in by bensch, 19 years ago

orxonox/trunk: fields are now time-independant

File size: 1.5 KB
Line 
1/*
2   orxonox - the future of 3D-vertical-scrollers
3
4   Copyright (C) 2004 orx
5
6   This program is free software; you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation; either version 2, or (at your option)
9   any later version.
10
11   ### File Specific:
12   main-programmer: Benjamin Grauer
13   co-programmer: ...
14*/
15
16/*!
17    \file field.h
18    \brief abstract definition of a Physical Field
19
20    This is a totally abstract class, that only enables different Physical Fields to
21    exist on a common Level.
22*/
23
24#ifndef _FIELD_H
25#define _FIELD_H
26
27#include "p_node.h"
28
29// FORWARD DEFINITION
30
31
32
33//! An abstract class that represents a Force.
34class Field : public PNode
35{
36 public:
37  Field();
38  virtual ~Field();
39
40  /**
41      \param dt The time over which to apply the force
42      \param data This is the data given to this force, to calculate the ForceVector
43      \returns The Force Vector
44  */
45  virtual Vector calcForce(const Vector& data) const = 0;
46
47  void setMagnitude(const float& magnitude);
48  /** \returns The Magnitude of the Field */
49  inline const float& getMagnitude(void) const {return this->magnitude;}
50
51  void setAttenuation(const float& attenuation);
52  /** \returns The Attenuation of the Fiels */
53  inline const float& getAttenuation(void) const {return this->attenuation;}
54
55 private:
56  float magnitude;                //!< The strength of the field
57  float attenuation;              //!< The Attenuation (the bigger the shorter the influenced distance).
58};
59
60#endif /* _FIELD_H */
Note: See TracBrowser for help on using the repository browser.