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

step/stepcore

  • sources
  • kde-4.12
  • kdeedu
  • step
  • stepcore
world.h
Go to the documentation of this file.
1 /* This file is part of StepCore library.
2  Copyright (C) 2007 Vladimir Kuznetsov <ks.vladimir@gmail.com>
3 
4  StepCore library is free software; you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or
7  (at your option) any later version.
8 
9  StepCore library is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with StepCore; if not, write to the Free Software
16  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
23 #ifndef STEPCORE_WORLD_H
24 #define STEPCORE_WORLD_H
25 
26 #include "types.h"
27 #include "util.h"
28 #include "object.h"
29 #include "vector.h"
30 
31 #include <vector> // XXX: replace if QT is enabled
32 #include <QHash>
33 
34 // TODO: split this file
35 
36 namespace StepCore
37 {
38 
39 class World;
40 class Solver;
41 class Item;
42 class ItemGroup;
43 class CollisionSolver;
44 class ConstraintSolver;
45 
49 class ObjectErrors: public Object
50 {
51  STEPCORE_OBJECT(ObjectErrors)
52 
53 public:
55  ObjectErrors(Item* owner = NULL): _owner(owner) {}
56 
58  Item* owner() const { return _owner; }
60  void setOwner(Item* owner) { _owner = owner; }
61 
62 private:
63  Item* _owner;
64 };
65 
69 class Item : public Object
70 {
71  /*Q_OBJECT*/
72  STEPCORE_OBJECT(Item)
73 
74 public:
76  Item(const QString& name = QString())
77  : Object(name), _world(NULL), _group(NULL),
78  _objectErrors(NULL), _color(0xff000000) {}
80  Item(const Item& item) : Object() { *this = item; }
82  virtual ~Item() { delete _objectErrors; }
83 
85  Item& operator=(const Item& item);
86 
88  virtual void setWorld(World* world) { _world = world; }
89 
91  World* world() const { return _world; }
92 
94  virtual void setGroup(ItemGroup* group) { _group = group; }
95 
97  ItemGroup* group() const { return _group; }
98 
100  ObjectErrors* tryGetObjectErrors() const { return _objectErrors; }
101 
103  ObjectErrors* objectErrors();
104 
106  void deleteObjectErrors() { delete _objectErrors; _objectErrors = NULL; }
107 
109  Color color() const { return _color; }
110 
112  void setColor(Color color) { _color = color; }
113 
119  virtual void worldItemRemoved(Item* item STEPCORE_UNUSED) {}
120 
121 protected:
124  virtual ObjectErrors* createObjectErrors() { return NULL; } // XXX: rename to createObjectVariances
125 
126 private:
127  World* _world;
128  ItemGroup* _group;
129  ObjectErrors* _objectErrors;
130  Color _color;
131 };
132 
138 class Body
139 {
140  STEPCORE_OBJECT(Body)
141 
142 public:
143  Body(): _variablesOffset(0) {}
144  virtual ~Body() {}
145 
147  virtual int variablesCount() = 0;
148 
152  virtual void setVariables(const double* position, const double* velocity,
153  const double* positionVariance, const double* velocityVariance) = 0;
154 
157  virtual void getVariables(double* position, double* velocity,
158  double* positionVariance, double* velocityVariance) = 0;
159 
163  virtual void addForce(const double* force, const double* forceVariance) = 0;
164 
167  virtual void resetForce(bool resetVariance) = 0;
168 
172  virtual void getAccelerations(double* acceleration, double* accelerationVariance) = 0;
173 
176  virtual void getInverseMass(VectorXd* inverseMass,
177  DynSparseRowMatrix* variance, int offset) = 0;
178 
181  int variablesOffset() const { return _variablesOffset; }
182 
183 private:
184  friend class World;
185 
187  void setVariablesOffset(int variablesOffset) {
188  _variablesOffset = variablesOffset;
189  }
190 
191  int _variablesOffset;
192 };
193 
199 class Force
200 {
201  STEPCORE_OBJECT(Force)
202 
203 public:
204  virtual ~Force() {}
205 
209  virtual void calcForce(bool calcVariances) = 0;
210 };
211 
216 struct ConstraintsInfo
217 {
218  int variablesCount;
219  int constraintsCount;
220  int contactsCount;
221 
223  VectorXd value;
224  VectorXd derivative;
225  DynSparseRowMatrix jacobian;
226  DynSparseRowMatrix jacobianDerivative;
227  VectorXd inverseMass;
228 
229  MappedVector position;
230  MappedVector velocity;
231  MappedVector acceleration;
232 
233  VectorXd forceMin;
234  VectorXd forceMax;
235 
236  VectorXd force;
237 
238  bool collisionFlag;
239 
240  ConstraintsInfo(): variablesCount(0), constraintsCount(0), contactsCount(0),
241  position(0,0), velocity(0,0), acceleration(0,0) {}
242 
245  void setDimension(int newVariablesCount, int newConstraintsCount, int newContactsCount = 0);
246 
248  void clear();
249 
250 private:
251  ConstraintsInfo(const ConstraintsInfo&);
252  ConstraintsInfo& operator=(const ConstraintsInfo&);
253 };
254 
258 class Joint
259 {
260  STEPCORE_OBJECT(Joint)
261 
262 public:
263  virtual ~Joint() {}
264 
266  virtual int constraintsCount() = 0;
267 
269  virtual void getConstraintsInfo(ConstraintsInfo* info, int offset) = 0;
270 
271 #if 0
272 
273  virtual void getConstraints(double* value, double* derivative) = 0;
274 
276  virtual void getForceLimits(double* forceMin STEPCORE_UNUSED, double* forceMax STEPCORE_UNUSED) {}
277 
280  virtual void getJacobian(GmmSparseRowMatrix* value, GmmSparseRowMatrix* derivative, int offset) = 0;
281 #endif
282 };
283 
290 class Tool
291 {
292  STEPCORE_OBJECT(Tool)
293 public:
294  virtual ~Tool() {}
295 };
296 
298 typedef std::vector<Item*> ItemList;
300 typedef std::vector<Body*> BodyList;
302 typedef std::vector<Force*> ForceList;
304 typedef std::vector<Joint*> JointList;
305 
309 class ItemGroup : public Item
310 {
311  STEPCORE_OBJECT(ItemGroup)
312 
313 public:
315  ItemGroup(const QString& name = QString()) : Item(name) {}
317  ItemGroup(const ItemGroup& group);
319  ~ItemGroup();
320 
323  ItemGroup& operator=(const ItemGroup& group);
324 
326  const ItemList& items() const { return _items; }
327 
331  ItemList allItems() const { ItemList l; allItems(&l); return l; }
336  void allItems(ItemList* items) const;
337 
339  virtual void addItem(Item* item);
341  virtual void removeItem(Item* item);
343  virtual void deleteItem(Item* item) { removeItem(item); delete item; }
344 
346  void clear();
347 
349  int childItemIndex(const Item* item) const;
351  int childItemCount() const { return _items.size(); }
353  Item* childItem(int index) const { return _items[index]; }
355  Item* childItem(const QString& name) const;
357  Item* item(const QString& name) const;
358 
360  void setWorld(World* world);
362  void worldItemRemoved(Item* item);
363 
364 private:
365  ItemList _items;
366 };
367 
372 class World : public ItemGroup
373 {
374  /*Q_OBJECT*/
375  STEPCORE_OBJECT(World)
376 
377 public:
379  World();
381  World(const World& world);
383  ~World();
384 
386  World& operator=(const World& world);
387 
388 
390  void clear();
391 
393  double time() const { return _time; }
395  void setTime(double t) { _time = t; }
396 
398  double timeScale() const { return _timeScale; }
400  void setTimeScale(double timeScale) { _timeScale = timeScale; }
401 
403  bool errorsCalculation() const { return _errorsCalculation; }
405  void setErrorsCalculation(bool errorsCalculation) {
406  _errorsCalculation = errorsCalculation; }
407 
409  //void addItem(Item* item);
411  //void removeItem(Item* item);
413  //void deleteItem(Item* item) { removeItem(item); delete item; }
415  //int itemIndex(const Item* item) const;
416 
418  //Item* item(int index) const { return _items[index]; }
420  //Item* item(const QString& name) const;
422  Object* object(const QString& name);
423 
425  //const ItemList& items() const { return _items; }
427  const BodyList& bodies() const { return _bodies; }
429  const ForceList& forces() const { return _forces; }
431  const JointList& joints() const { return _joints; }
432 
434  Solver* solver() const { return _solver; }
436  void setSolver(Solver* solver);
438  Solver* removeSolver();
439 
441  CollisionSolver* collisionSolver() const { return _collisionSolver; }
443  void setCollisionSolver(CollisionSolver* collisionSolver);
445  CollisionSolver* removeCollisionSolver();
446 
448  ConstraintSolver* constraintSolver() const { return _constraintSolver; }
450  void setConstraintSolver(ConstraintSolver* constraintSolver);
452  ConstraintSolver* removeConstraintSolver();
453 
455  int doCalcFn();
461  int doEvolve(double delta);
462 
464  bool evolveAbort() { return _evolveAbort; }
467  void setEvolveAbort(bool evolveAbort = true) { _evolveAbort = evolveAbort; }
468 
469 private:
470  friend class ItemGroup;
471 
474  void fillCopyMap(QHash<const Object*, Object*>* map,
475  const ItemGroup* g1, ItemGroup* g2);
477  void applyCopyMap(QHash<const Object*, Object*>* map, Object* obj);
481  void worldItemCopied(QHash<const Object*, Object*>* map, Item* item);
484  void worldItemAdded(Item* item);
488  void worldItemRemoved(Item* item);
489 
494  void checkVariablesCount();
495 
498  void gatherAccelerations(double* acceleration, double* variance);
499 
502  void gatherVariables(double* variables, double* variances);
503 
506  void scatterVariables(const double* variables, const double* variances);
507 
509  void gatherJointsInfo(ConstraintsInfo* info);
510 
512  static int solverFunction(double t, const double* y, const double* yvar,
513  double* f, double* fvar, void* params);
520  int solverFunction(double t, const double* y, const double* yvar,
521  double* f, double* fvar);
522 
523 private:
524  double _time;
525  double _timeScale;
526  bool _errorsCalculation;
527 
528  //ItemList _items;
529  BodyList _bodies;
530  ForceList _forces;
531  JointList _joints;
532 
533  Solver* _solver;
534  CollisionSolver* _collisionSolver;
535  ConstraintSolver* _constraintSolver;
536 
537  int _variablesCount;
538  VectorXd _variables;
539  VectorXd _variances;
540  VectorXd _tempArray;
541  ConstraintsInfo _constraintsInfo;
542 
543  bool _stopOnCollision;
544  bool _stopOnIntersection;
545  bool _evolveAbort;
546 };
547 
548 } // namespace StepCore
549 
563 #endif
564 
StepCore::ConstraintsInfo::jacobianDerivative
DynSparseRowMatrix jacobianDerivative
Time-derivative of constraintsJacobian.
Definition: world.h:226
StepCore::World::removeCollisionSolver
CollisionSolver * removeCollisionSolver()
Get current CollisionSolver and remove it from world.
Definition: world.cc:583
StepCore::World::constraintSolver
ConstraintSolver * constraintSolver() const
Get current ConstraintSolver.
Definition: world.h:448
StepCore::World::bodies
const BodyList & bodies() const
Get list of all items (not including sub-items) in the World.
Definition: world.h:427
StepCore::Item::deleteObjectErrors
void deleteObjectErrors()
Delete objectErrors.
Definition: world.h:106
StepCore::ItemGroup::item
Item * item(const QString &name) const
Get any descendant item by its name.
Definition: world.cc:191
StepCore::World::setErrorsCalculation
void setErrorsCalculation(bool errorsCalculation)
Enable or disable errors calculation.
Definition: world.h:405
StepCore::Body
Interface for bodies.
Definition: world.h:138
StepCore::ObjectErrors::setOwner
void setOwner(Item *owner)
Set the owner of ObjectErrors.
Definition: world.h:60
types.h
Type to and from string convertion helpers.
StepCore::World::object
Object * object(const QString &name)
Add new item to the world.
Definition: world.cc:549
StepCore::ConstraintsInfo::value
VectorXd value
Current constarints values (amount of brokenness)
Definition: world.h:223
StepCore::Joint::~Joint
virtual ~Joint()
Definition: world.h:263
StepCore::ConstraintsInfo::acceleration
MappedVector acceleration
Accelerations of the bodies before applying constraints.
Definition: world.h:231
StepCore::Body::getInverseMass
virtual void getInverseMass(VectorXd *inverseMass, DynSparseRowMatrix *variance, int offset)=0
Get inverse mass and (possibly) its variance matrixes.
StepCore::Force::calcForce
virtual void calcForce(bool calcVariances)=0
Calculate force.
StepCore::World::removeConstraintSolver
ConstraintSolver * removeConstraintSolver()
Get current ConstraintSolver and remove it from world.
Definition: world.cc:596
StepCore::ItemGroup::worldItemRemoved
void worldItemRemoved(Item *item)
Recursively call worldItemRemoved for all children objects.
Definition: world.cc:87
StepCore::ConstraintsInfo::contactsCount
int contactsCount
Number of additional constrains equations due to contacts.
Definition: world.h:220
StepCore::Item::operator=
Item & operator=(const Item &item)
Assignment operator (copies objectErrors if necessary)
StepCore::Object
Root of the StepCore classes hierarchy.
Definition: object.h:57
STEPCORE_UNUSED
#define STEPCORE_UNUSED
Definition: util.h:48
StepCore::ConstraintsInfo::variablesCount
int variablesCount
Number of dynamic variables.
Definition: world.h:218
StepCore::ItemGroup::~ItemGroup
~ItemGroup()
Destroys the group and all its subitems.
Definition: world.cc:132
StepCore::Item::setGroup
virtual void setGroup(ItemGroup *group)
Set/change pointer to ItemGroup in which this object lives.
Definition: world.h:94
StepCore::Body::getVariables
virtual void getVariables(double *position, double *velocity, double *positionVariance, double *velocityVariance)=0
Copy positions, velocities and (possibly) its variances to arrays.
StepCore::ConstraintsInfo::velocity
MappedVector velocity
Velocities of the bodies.
Definition: world.h:230
StepCore::Solver
Generic Solver interface.
Definition: solver.h:70
StepCore::ItemGroup::clear
void clear()
Deletes all items.
Definition: world.cc:116
StepCore::ItemGroup::childItem
Item * childItem(int index) const
Get direct child item by its index.
Definition: world.h:353
StepCore::World::World
World()
Constructs empty World.
Definition: world.cc:259
StepCore::Joint::getConstraintsInfo
virtual void getConstraintsInfo(ConstraintsInfo *info, int offset)=0
Fill the part of constraints information structure starting at offset.
StepCore::ConstraintsInfo::forceMin
VectorXd forceMin
Constraints force lower limit.
Definition: world.h:233
StepCore::ConstraintsInfo::setDimension
void setDimension(int newVariablesCount, int newConstraintsCount, int newContactsCount=0)
Set variablesCount, constraintsCount and reset contactsCount, resize all arrays appropriately.
Definition: world.cc:216
StepCore::ItemGroup::removeItem
virtual void removeItem(Item *item)
Remove item from the group (you should delete item youself)
Definition: world.cc:104
StepCore::ConstraintsInfo::constraintsCount
int constraintsCount
Number of constraints equations.
Definition: world.h:219
StepCore::World::doEvolve
int doEvolve(double delta)
Integrate.
Definition: world.cc:699
StepCore::Item::color
Color color() const
Get item color (for use in GUI)
Definition: world.h:109
StepCore::Item::tryGetObjectErrors
ObjectErrors * tryGetObjectErrors() const
Get ObjectErrors only if it already exists.
Definition: world.h:100
StepCore::Item::world
World * world() const
Get pointer to World in which this object lives.
Definition: world.h:91
StepCore::ItemGroup::addItem
virtual void addItem(Item *item)
Add new item to the group.
Definition: world.cc:94
StepCore::ConstraintsInfo::jacobian
DynSparseRowMatrix jacobian
Position-derivative of constraints values.
Definition: world.h:225
StepCore::Force::~Force
virtual ~Force()
Definition: world.h:204
StepCore::Body::getAccelerations
virtual void getAccelerations(double *acceleration, double *accelerationVariance)=0
Copy acceleration (forces left-multiplied by inverse mass) and (possibly) its variances to arrays...
StepCore::Item::group
ItemGroup * group() const
Get pointer to ItemGroup in which this object lives.
Definition: world.h:97
StepCore::ObjectErrors::ObjectErrors
ObjectErrors(Item *owner=NULL)
Constructs ObjectErrors.
Definition: world.h:55
StepCore::Joint
Interface for joints.
Definition: world.h:258
StepCore::MappedVector
Eigen::Map< Eigen::VectorXd > MappedVector
Definition: types.h:39
StepCore::ItemGroup::deleteItem
virtual void deleteItem(Item *item)
Delete item from the group (it actually deletes item)
Definition: world.h:343
StepCore::Item::setColor
void setColor(Color color)
Set item color (for use in GUI)
Definition: world.h:112
StepCore::Body::variablesCount
virtual int variablesCount()=0
Get count of dynamic variables (not including velocities)
StepCore::Tool::~Tool
virtual ~Tool()
Definition: world.h:294
StepCore::ConstraintsInfo::forceMax
VectorXd forceMax
Constraints force upper limit.
Definition: world.h:234
StepCore::Body::resetForce
virtual void resetForce(bool resetVariance)=0
Reset force accomulator and (possibly) its variance to zero.
StepCore::World::~World
~World()
Destroys World and all objects which belongs to it.
Definition: world.cc:277
StepCore::World::errorsCalculation
bool errorsCalculation() const
Is errors calculation enabled.
Definition: world.h:403
StepCore::World::solver
Solver * solver() const
Get current Solver.
Definition: world.h:434
StepCore::Item::~Item
virtual ~Item()
Destroys Item.
Definition: world.h:82
StepCore::World::setSolver
void setSolver(Solver *solver)
Set new Solver (and delete the old one)
Definition: world.cc:559
StepCore::World::setTime
void setTime(double t)
Set current time.
Definition: world.h:395
StepCore::Item
The root class for any world items (bodies and forces)
Definition: world.h:69
StepCore::ItemGroup::childItemIndex
int childItemIndex(const Item *item) const
Finds direct child item in items()
Definition: world.cc:176
StepCore::ConstraintsInfo::derivative
VectorXd derivative
Time-derivative of constraints values.
Definition: world.h:224
StepCore::Item::createObjectErrors
virtual ObjectErrors * createObjectErrors()
Definition: world.h:124
util.h
Internal file.
StepCore::ObjectErrors
Base class for all errors objects.
Definition: world.h:49
StepCore::BodyList
std::vector< Body * > BodyList
List of pointers to Body.
Definition: world.h:300
StepCore::Object::name
const QString & name() const
Returns name of the object.
Definition: object.h:66
StepCore::JointList
std::vector< Joint * > JointList
List of pointers to Joint.
Definition: world.h:304
StepCore::World::setTimeScale
void setTimeScale(double timeScale)
Set simulation speed scale.
Definition: world.h:400
StepCore::ConstraintsInfo::ConstraintsInfo
ConstraintsInfo()
Definition: world.h:240
StepCore::World::forces
const ForceList & forces() const
Get list of all forces (including sub-items) in the World.
Definition: world.h:429
StepCore::ItemGroup
Groups several items together.
Definition: world.h:309
StepCore::ItemGroup::childItemCount
int childItemCount() const
Get direct child count.
Definition: world.h:351
StepCore::CollisionSolver
Collision solver interface.
Definition: collisionsolver.h:85
StepCore::ForceList
std::vector< Force * > ForceList
List of pointers to Force.
Definition: world.h:302
StepCore::World::evolveAbort
bool evolveAbort()
Get evolveAbort flag (can be called from separate thread)
Definition: world.h:464
StepCore::Force
Interface for forces.
Definition: world.h:199
StepCore::ItemList
std::vector< Item * > ItemList
List of pointers to Item.
Definition: world.h:298
StepCore::Body::addForce
virtual void addForce(const double *force, const double *forceVariance)=0
Add force and (possibly) its variance to force accomulator.
StepCore::World::collisionSolver
CollisionSolver * collisionSolver() const
Get current CollisionSolver.
Definition: world.h:441
StepCore::ItemGroup::setWorld
void setWorld(World *world)
Recursively call setWorld for all children objects.
Definition: world.cc:79
StepCore::Joint::constraintsCount
virtual int constraintsCount()=0
Get count of constraints.
object.h
Object, MetaObject and MetaProperty classes.
vector.h
StepCore::World::joints
const JointList & joints() const
Get list of all joints (including sub-items) in the World.
Definition: world.h:431
StepCore::World::setCollisionSolver
void setCollisionSolver(CollisionSolver *collisionSolver)
Set new CollisionSolver (and delete the old one)
Definition: world.cc:577
StepCore::World::operator=
World & operator=(const World &world)
Assignment operator (deep copy)
Definition: world.cc:323
StepCore::Item::Item
Item(const Item &item)
Constructs a copy of item.
Definition: world.h:80
StepCore::World::clear
void clear()
Clear world (removes all items, solver and resets time)
Definition: world.cc:282
StepCore::Item::objectErrors
ObjectErrors * objectErrors()
Get existing ObjectErrors or try to create it.
Definition: world.cc:67
StepCore::Tool
Interface for tools.
Definition: world.h:290
StepCore::ConstraintsInfo::inverseMass
VectorXd inverseMass
Diagonal coefficients of the inverse mass matrix of the system.
Definition: world.h:227
StepCore::DynSparseRowMatrix
Eigen::DynamicSparseMatrix< double, Eigen::RowMajor > DynSparseRowMatrix
Definition: types.h:38
StepCore::ItemGroup::items
const ItemList & items() const
Get list of all direct child items in the ItemGroup.
Definition: world.h:326
StepCore::Body::setVariables
virtual void setVariables(const double *position, const double *velocity, const double *positionVariance, const double *velocityVariance)=0
Set positions, velocities and (possibly) its variances using values in arrays and also reset accelera...
StepCore::Item::setWorld
virtual void setWorld(World *world)
Set/change pointer to World in which this object lives.
Definition: world.h:88
StepCore::ConstraintsInfo::position
MappedVector position
Positions of the bodies.
Definition: world.h:229
StepCore::World::removeSolver
Solver * removeSolver()
Get current Solver and remove it from world.
Definition: world.cc:570
StepCore::Item::Item
Item(const QString &name=QString())
Constructs Item.
Definition: world.h:76
StepCore::ObjectErrors::owner
Item * owner() const
Get the owner of ObjectErrors.
Definition: world.h:58
StepCore::ConstraintsInfo::force
VectorXd force
Resulting constraints force.
Definition: world.h:236
StepCore::World::timeScale
double timeScale() const
Get simulation speed scale.
Definition: world.h:398
StepCore::ConstraintSolver
Constraint solver interface.
Definition: constraintsolver.h:40
StepCore::ItemGroup::operator=
ItemGroup & operator=(const ItemGroup &group)
Assignment operator (deep copy)
Definition: world.cc:137
StepCore::ConstraintsInfo::clear
void clear()
Clear the structure.
Definition: world.cc:242
StepCore::World
Contains multiple Item, Solver and general properties such as time.
Definition: world.h:372
StepCore::Body::variablesOffset
int variablesOffset() const
Offset of body's variables in global arrays (meaningless if the body is not a part of the world) ...
Definition: world.h:181
STEPCORE_OBJECT
#define STEPCORE_OBJECT(_className)
Definition: object.h:49
StepCore::Color
Definition: types.h:42
StepCore::World::setConstraintSolver
void setConstraintSolver(ConstraintSolver *constraintSolver)
Set new ConstraintSolver (and delete the old one)
Definition: world.cc:590
StepCore::ConstraintsInfo::collisionFlag
bool collisionFlag
True if there is a collision to be resolved.
Definition: world.h:238
StepCore::ItemGroup::ItemGroup
ItemGroup(const QString &name=QString())
Constructs empty group.
Definition: world.h:315
StepCore::VectorXd
Eigen::VectorXd VectorXd
Definition: vector.h:38
StepCore::World::time
double time() const
Get current time.
Definition: world.h:393
StepCore::ConstraintsInfo
Constraints information structure XXX: Move it to constraintsolver.h.
Definition: world.h:216
StepCore::World::doCalcFn
int doCalcFn()
Calculate all forces.
Definition: world.cc:685
StepCore::Body::Body
Body()
Definition: world.h:143
StepCore::ItemGroup::allItems
ItemList allItems() const
Get list of all items in the ItemGroup.
Definition: world.h:331
StepCore::Item::worldItemRemoved
virtual void worldItemRemoved(Item *item STEPCORE_UNUSED)
Called by the World when any item is about to be removed from the world.
Definition: world.h:119
StepCore::World::setEvolveAbort
void setEvolveAbort(bool evolveAbort=true)
Set evolveAbort flag (can be called from separate thread).
Definition: world.h:467
StepCore::Body::~Body
virtual ~Body()
Definition: world.h:144
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:43:06 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
  • kstars
  • libkdeedu
  •   keduvocdocument
  • 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