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

step/stepcore

  • StepCore
  • Particle
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
StepCore::Particle Class Reference
Physical bodies

#include <particle.h>

Inheritance diagram for StepCore::Particle:
Inheritance graph
[legend]

Public Types

enum  { PositionOffset = 0 }
 

Public Member Functions

 Particle (Vector2d position=Vector2d::Zero(), Vector2d velocity=Vector2d::Zero(), double mass=1)
 
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 (VectorXd *inverseMass, DynSparseRowMatrix *variance, int offset)
 
void getVariables (double *position, double *velocity, double *positionVariance, double *velocityVariance)
 
double kineticEnergy () const
 
double mass () const
 
Vector2d momentum () const
 
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
 
- Public Member Functions inherited from StepCore::Item
 Item (const QString &name=QString())
 
 Item (const Item &item)
 
virtual ~Item ()
 
Color color () const
 
void deleteObjectErrors ()
 
ItemGroup * group () const
 
ObjectErrors * objectErrors ()
 
Item & operator= (const Item &item)
 
void setColor (Color color)
 
virtual void setGroup (ItemGroup *group)
 
virtual void setWorld (World *world)
 
ObjectErrors * tryGetObjectErrors () const
 
World * world () const
 
virtual void worldItemRemoved (Item *item STEPCORE_UNUSED)
 
- Public Member Functions inherited from StepCore::Object
 Object (const QString &name=QString())
 
virtual ~Object ()
 
const QString & name () const
 
void setName (const QString &name)
 
- Public Member Functions inherited from StepCore::Body
 Body ()
 
virtual ~Body ()
 
int variablesOffset () const
 

Protected Member Functions

ObjectErrors * createObjectErrors ()
 

Protected Attributes

Vector2d _force
 
double _mass
 
Vector2d _position
 
Vector2d _velocity
 
- Protected Attributes inherited from StepCore::Object
QString _name
 

Detailed Description

Particle with mass.

Definition at line 103 of file particle.h.

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::Zero(),
Vector2d  velocity = Vector2d::Zero(),
double  mass = 1 
)
explicit

Constructs a particle.

Definition at line 110 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 154 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 ( )
inlineprotectedvirtual

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 141 of file particle.cc.

void StepCore::Particle::getInverseMass ( VectorXd *  inverseMass,
DynSparseRowMatrix *  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 171 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 115 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 165 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 183 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 127 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 ( )
inlinevirtual

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
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:16:43 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

step/stepcore

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

kdeedu API Reference

Skip menu "kdeedu API Reference"
  • Analitza
  •     lib
  • kalgebra
  • kalzium
  •   libscience
  • kanagram
  • kig
  •   lib
  • klettres
  • marble
  • parley
  • rocs
  •   App
  •   RocsCore
  •   VisualEditor
  •   stepcore

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal