• Skip to content
  • Skip to link menu
KDE 4.2 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

step/stepcore

StepCore::Particle

StepCore::Particle Class Reference
[Physical bodies]

#include <particle.h>

Inheritance diagram for StepCore::Particle:

Inheritance graph
[legend]

List of all members.


Detailed Description

Particle with mass.

Definition at line 103 of file particle.h.


Public Types

enum  { PositionOffset = 0 }

Public Member Functions

Vector2d acceleration () const
void addForce (const double *force, const double *forceVariance)
void applyForce (const Vector2d &force)
const Vector2d & force () const
void getAccelerations (double *acceleration, double *accelerationVariance)
void getInverseMass (GmmSparseRowMatrix *inverseMass, GmmSparseRowMatrix *variance, int offset)
void getVariables (double *position, double *velocity, double *positionVariance, double *velocityVariance)
double kineticEnergy () const
double mass () const
Vector2d momentum () const
 Particle (Vector2d position=Vector2d(0), Vector2d velocity=Vector2d(0), double mass=1)
ParticleErrors * particleErrors ()
const Vector2d & position () const
void resetForce (bool resetVariance)
void setForce (const Vector2d &force)
void setKineticEnergy (double kineticEnergy)
void setMass (double mass)
void setMomentum (const Vector2d &momentum)
void setPosition (const Vector2d &position)
void setVariables (const double *position, const double *velocity, const double *positionVariance, const double *velocityVariance)
void setVelocity (const Vector2d &velocity)
int variablesCount ()
const Vector2d & velocity () const

Protected Member Functions

ObjectErrors * createObjectErrors ()

Protected Attributes

Vector2d _force
double _mass
Vector2d _position
Vector2d _velocity

Member Enumeration Documentation

anonymous enum

Enumerator:
PositionOffset  Offset of particle position in variables array.

Definition at line 108 of file particle.h.


Constructor & Destructor Documentation

StepCore::Particle::Particle ( Vector2d  position = Vector2d(0),
Vector2d  velocity = Vector2d(0),
double  mass = 1 
) [explicit]

Constructs a particle.

Definition at line 109 of file particle.cc.


Member Function Documentation

Vector2d StepCore::Particle::acceleration (  )  const [inline]

Get acceleration of the particle.

Definition at line 127 of file particle.h.

void StepCore::Particle::addForce ( const double *  force,
const double *  forceVariance 
) [virtual]

Add force and (possibly) its variance to force accomulator.

Note:
This function is used only by generic constraints handling code, force objects should use body-specific functions.

Implements StepCore::Body.

Definition at line 153 of file particle.cc.

void StepCore::Particle::applyForce ( const Vector2d &  force  )  [inline]

Apply force to the body.

Definition at line 135 of file particle.h.

ObjectErrors* StepCore::Particle::createObjectErrors (  )  [inline, protected, virtual]

For internal use only.

Creates specific ObjectErrors-derived class (to be reimplemented in derived classes)

Reimplemented from StepCore::Item.

Reimplemented in StepCore::ChargedParticle.

Definition at line 168 of file particle.h.

const Vector2d& StepCore::Particle::force (  )  const [inline]

Get force that acts upon particle.

Definition at line 130 of file particle.h.

void StepCore::Particle::getAccelerations ( double *  acceleration,
double *  accelerationVariance 
) [virtual]

Copy acceleration (forces left-multiplied by inverse mass) and (possibly) its variances to arrays.

Variances should only be copied if accelerationVariance != NULL.

Implements StepCore::Body.

Definition at line 140 of file particle.cc.

void StepCore::Particle::getInverseMass ( GmmSparseRowMatrix *  inverseMass,
GmmSparseRowMatrix *  variance,
int  offset 
) [virtual]

Get inverse mass and (possibly) its variance matrixes.

Variance should only be copied of variance != NULL.

Implements StepCore::Body.

Definition at line 170 of file particle.cc.

void StepCore::Particle::getVariables ( double *  position,
double *  velocity,
double *  positionVariance,
double *  velocityVariance 
) [virtual]

Copy positions, velocities and (possibly) its variances to arrays.

Variances should only be copied if positionVariance != NULL.

Implements StepCore::Body.

Definition at line 114 of file particle.cc.

double StepCore::Particle::kineticEnergy (  )  const [inline]

Get kinetic energy of the particle.

Definition at line 148 of file particle.h.

double StepCore::Particle::mass (  )  const [inline]

Get mass of the particle.

Definition at line 138 of file particle.h.

Vector2d StepCore::Particle::momentum (  )  const [inline]

Get momentum of the particle.

Definition at line 143 of file particle.h.

ParticleErrors* StepCore::Particle::particleErrors (  )  [inline]

Get (and possibly create) ParticleErrors object.

Definition at line 164 of file particle.h.

const Vector2d& StepCore::Particle::position (  )  const [inline]

Get position of the particle.

Definition at line 117 of file particle.h.

void StepCore::Particle::resetForce ( bool  resetVariance  )  [virtual]

Reset force accomulator and (possibly) its variance to zero.

Variance should only be reseted if resetVariance == true.

Implements StepCore::Body.

Definition at line 164 of file particle.cc.

void StepCore::Particle::setForce ( const Vector2d &  force  )  [inline]

Set force that acts upon particle.

Definition at line 132 of file particle.h.

void StepCore::Particle::setKineticEnergy ( double  kineticEnergy  ) 

Set kinetic energy of the particle (will modify only velocity).

Definition at line 182 of file particle.cc.

void StepCore::Particle::setMass ( double  mass  )  [inline]

Set mass of the particle.

Definition at line 140 of file particle.h.

void StepCore::Particle::setMomentum ( const Vector2d &  momentum  )  [inline]

Set momentum of the particle (will modify only velocity).

Definition at line 145 of file particle.h.

void StepCore::Particle::setPosition ( const Vector2d &  position  )  [inline]

Set position of the particle.

Definition at line 119 of file particle.h.

void StepCore::Particle::setVariables ( const double *  position,
const double *  velocity,
const double *  positionVariance,
const double *  velocityVariance 
) [virtual]

Set positions, velocities and (possibly) its variances using values in arrays and also reset accelerations and its variances.

Variances should only be copied and reseted if positionVariance != NULL.

Implements StepCore::Body.

Definition at line 126 of file particle.cc.

void StepCore::Particle::setVelocity ( const Vector2d &  velocity  )  [inline]

Set velocity of the particle.

Definition at line 124 of file particle.h.

int StepCore::Particle::variablesCount (  )  [inline, virtual]

Get count of dynamic variables (not including velocities).

Implements StepCore::Body.

Definition at line 152 of file particle.h.

const Vector2d& StepCore::Particle::velocity (  )  const [inline]

Get velocity of the particle.

Definition at line 122 of file particle.h.


Member Data Documentation

Vector2d StepCore::Particle::_force [protected]

Definition at line 172 of file particle.h.

double StepCore::Particle::_mass [protected]

Definition at line 173 of file particle.h.

Vector2d StepCore::Particle::_position [protected]

Definition at line 170 of file particle.h.

Vector2d StepCore::Particle::_velocity [protected]

Definition at line 171 of file particle.h.


The documentation for this class was generated from the following files:
  • particle.h
  • particle.cc

step/stepcore

Skip menu "step/stepcore"
  • Main Page
  • Modules
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdeedu

Skip menu "kdeedu"
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  •   docs
  •   src
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.4
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal