NTRT Simulator  v1.1
 All Classes Namespaces Files Functions Variables Typedefs Friends Pages
Todo List
Member AnnealEvolution::resourcePath
make this const if we decide to force everyone to put their logs in resources
Member BaseSpineCPGControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

if bogus, stop trial (reset simulation)

if bogus, stop trial (reset simulation)

if bogus, stop trial (reset simulation)

Member BaseSpineCPGControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

- return length scale as a parameter

- return length scale as a parameter

- return length scale as a parameter

Member BaseSpineCPGControl::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member colSpineSine::setupWaves (BaseSpineModelLearning &subject)

should this throw an exception instead??

get top, left, right offset, add bodywaves back in.

Member ContactTestModel::setup (tgWorld &world)
Get rid of this.
Member CordeModel::CordeModel (btVector3 pos1, btVector3 pos2, btQuaternion quat1, btQuaternion quat2, CordeModel::Config &Config)
develop a constructor that can handle more complex shapes i.e. wrapped around a motor. This one maxes out at 1 - eps rotations
Member CPGNode::CPGNode (int nodeNum, const std::vector< double > &params)
consider adding vector of initial conditions for stability
Member CPGNode::updateDTs (double descCom)

better name?

ask about refactoring to use for_each

ask about refactoring to use for_each

Member CPGNodeFB::CPGNodeFB (int nodeNum, const std::vector< double > &params)
consider adding vector of initial conditions for stability
Member CPGNodeFB::updateDTs (const std::vector< double > &feedback)

better name?

ask about refactoring to use for_each

Member Escape_T6Model::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member EscapeModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member FlemonsSpineModelContact::setup (tgWorld &world)

: reference the things that do this for us

: there seems to be an issue with Muscle2P connections if the front of a tetra is inside the next one.

: the snake is a temporary variable – will its destructor be called? If not, where do we delete its children?

Member FlemonsSpineModelLearning::setup (tgWorld &world)

: there seems to be an issue with Muscle2P connections if the front of a tetra is inside the next one.

: the snake is a temporary variable – will its destructor be called? If not, where do we delete its children?

Member FlemonsSpineModelLearningCL::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member htSpineSine::setupWaves (BaseSpineModelLearning &subject)
should this throw an exception instead??
Member KinematicSpineCPGControl::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member LearningSpineJSON::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member LearningSpineSine::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member main (int argc, char **argv)

Does the model assume ownership of the controller?

Does the model assume ownership of the controller?

Does the model assume ownership of the controller?

Does the model assume ownership of the controller?

Does the model assume ownership of the controller?

Does the model assume ownership of the controller?

Member MuscleNPCons::getEnergy () const
account for rotational energy as well, and energy in the string
Member NeuroEvolution::orderAllPopulations ()
numberOfTestsBetweenGenerations may not be accurate
Member NeuroEvolution::resourcePath
make this const if we decide to force everyone to put their logs in resources
Member OctaCLSine::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member OctaCLSine::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member operator<< (std::ostream &os, const tgNodes &n)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgConnectorInfo &n)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgNode &node)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgPair &pair)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgPairs &p)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgRigidInfo &obj)

Inlining this does no good; stream operations are slow.

Do we need to re-add the collision shape for debugging?

Member operator<< (std::ostream &os, const CPGNode &obj)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btQuaternion &q)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btTransform &xf)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btCollisionShape &cs)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btCompoundShape &cs)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const CPGEquations &obj)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btVector3 &v)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgStructureInfo &obj)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const btRigidBody &rb)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgTags &tags)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgModel &obj)
Inlining this does no good; stream operations are slow.
Member RibModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member SerializedSineWaves::Config::Config (std::string fileName)

should this throw an exception instead??

verify data!

Member SerializedSpineControl::Config::Config (std::string fileName)
verify data!
Member SpineFeedbackControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member SpineFeedbackControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member StructureTestModel::setup (tgWorld &world)
Get rid of this.
Member SuperBallModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member T12SuperBallPayload::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member T6Model::setup (tgWorld &world)

acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate

acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate

acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate

Member T6RestLengthController::onStep (T6Model &subject, double dt)
consider whether this is really necessary, or of tgBasicActuator has all of the functions you need _BTM
Member TetraSpineCPGControl::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member TetraSpineLearningModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member TetraSpineStaticModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member TetraSpineStaticModel_hf::getStringMaxTensions () const
Consider setting up some iterators so you don't have to search through the whole history every time this is called. Assuming you find a need to call it more than once
Member TetraSpineStaticModel_hf::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member tgBasicActuatorInfo::tgBasicActuatorInfo (const tgBasicActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBasicContactCableInfo::tgBasicContactCableInfo (const tgBasicActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBoxInfo::getLeafRigids ()
This function can't be const unless the return value is std::set<const tgRigidInfo*>.
Member tgBoxInfo::initRigidBody (tgWorld &world)
come up with a general solution in tgRigidInfo::initRigidBody Currently very difficult to pass around the config file in tgRigidInfo, since
Member tgBoxInfo::tgBoxInfo (const tgBox::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBoxInfo::tgBoxInfo (const tgBox::Config &config, tgTags tags, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBulletSpringCable::getAnchors () const
figure out how to cast and pass by reference
Member tgBulletSpringCableAnchor::attachedBody
Create applyForce functions so this doesn't have to be exposed
Member tgBulletSpringCableAnchor::setWorldPosition (btVector3 &newPos)
- this is very similar to getManifoldDistance. Is there a good way to combine them??
Member tgBulletUtil::worldToDynamicsWorld (const tgWorld &world)

consider implications of casting to include Corde objects

Use typeinfo to verify that this is correct.

Member tgCompoundRigidInfo::addRigid (tgRigidInfo &rigid)
Get rid of this. Require all m_rigids to be supplied in the constructor.
Member tgCompoundRigidInfo::containsNode (const btVector3 &nodeVector) const
Use std::find_if()
Member tgCompoundRigidInfo::getCenterOfMass () const

Make this const here and in all base classes and derived classes.

Make rigid const when tgCompoundRigidInfo::getCenterOfMass() is const.

If all m_rigids are supplied in the constructor, this can be calculated in the constructor and cashed as a const member variable.

Member tgCompoundRigidInfo::getCompound ()
What is the purpose? The caller must already have the object, a reference or a pointer to be able to call this.
Member tgCompoundRigidInfo::getCompound () const

What is the purpose? The caller must already have the object, a reference or a pointer to be able to call this.

Add this to the base classes and derived classes.

Member tgCompoundRigidInfo::getContainedNodes () const
Use std::accumulate()
Member tgCompoundRigidInfo::getLeafRigids ()
This function can't be const unless the return value is std::set<const tgRigidInfo*>.
Member tgCompoundRigidInfo::getMass () const

Do this in the constructor and cache the result as a member variable.

Use std::accumulate()

Member tgCompoundRigidInfo::m_rigids

Change this to std::set to prevent duplication.

Make this const and initialize it in the constructor.

Member tgCompoundRigidInfo::setCollisionObject (btCollisionObject *collisionObject)
Use std::for_each()
Member tgCompoundRigidInfo::setRigidBody (btRigidBody *const rigidBody)
Use std::for_each()
Member tgCompoundRigidInfo::sharesNodesWith (const tgRigidInfo &other) const

Make this const in all base classes and all derived classes.

Make other const in all base classes and all derived classes.

Use std::find_if()

Member tgCompoundRigidInfo::tgCompoundRigidInfo ()
Require both m_rigidBody and m_rigids to be supplied in the constructor. Initialize m_compoundShape, store mass and center of mass in member variables.
Member tgCPGActuatorControl::onStep (tgSpringCableActuator &subject, double dt)
this fails if its attached to multiple controllers! is there a way to track global time at this level
Member tgCPGStringControl_mod::onStep (tgSpringCableActuator &subject, double dt)
this fails if its attached to multiple controllers! is there a way to track global time at this level
Member tgDataObserver::onSetup (tgModel &model)

move functions to constructor when possible

move functions to constructor when possible

Member tgEmptyGround::getGroundRigidBody () const
consider making it an exception instead.
Member tgGhostInfo::initRigidBody (tgWorld &world)
This is the key class to override
Member tgGhostInfo::tgGhostInfo (const tgBox::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgGhostInfo::tgGhostInfo (const tgBox::Config &config, tgTags tags, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgImpedanceController::control (tgBasicController &mLocalController, double deltaTimeSeconds, double newPosition, double offsetVel=0)
should we add an offset position so it can just control??
Member tgKinematicActuator::integrateRestLength (double dt)
check min actual length somewhere
Member tgKinematicActuatorInfo::tgKinematicActuatorInfo (const tgKinematicActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgKinematicContactCableInfo::tgKinematicContactCableInfo (const tgKinematicActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgModel::addChild (tgModel *pChild)
Make sure that every child appears no more than once in the tree.
Member tgModel::getDescendants () const

examine whether this should be public, and perhaps create a read only version

Returns
a std::vector of const pointers all sub-models.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Unnecessary copying can be avoided by pasing the result collection in the recursive step.

Class tgNodes
: move operator[] out of tgTaggables into here
Member tgNodes::addNode (const btVector3 &node)
If node is already a value in the map, return its key.
Member tgNodes::addNode (double x, double y, double z)
If node is already a value in the map, return its index.
Member tgNodes::move (const btVector3 &offset)
use std::for_each()
Class tgPair
Replace with "typedef tgPair std::pair<btVector3*, btVector3*>;"
Member tgPair::tgPair (btVector3 from, btVector3 to)

Is it OK for from == to, either the same object or the same value?

Is it OK for from == to, either the same object or the same value?

Member tgPIDController::control (double dt)
determine whether this should be public
Member tgPIDController::setSensorData (double sensorData)

upgrade once the messaging protocol is in place

- are there any sanity checks we can enforce here?

Member tgPrismatic::Config::Config ()
remove this
Member tgRBString::Config::Config ()
remove this
Member tgRBString::setup (tgWorld &world)
Get rid of this.
Member tgRigidInfo::getCompound () const =0
Is this necessary?
Member tgRigidInfo::getCompound ()=0
Is this necessary?
Member tgRigidInfo::getConnectionPoint (const btVector3 &referencePoint, const btVector3 &destinationPoint) const =0

: For the generic tgRigidInfo implementation, allow people to provide a delegate object to find the connection point.

: Should this return a reference instead of a value? Possibility of change indicates a reference, but do we want to allow this to be changeable?

Member tgRigidInfo::getLeafRigids ()=0
This function can't be const unless the return value is std::set<const tgRigidInfo*>.
Member tgRigidInfo::isCompound () const
Is this necessary?
Member tgRigidInfo::setCollisionObject (btCollisionObject *collisionObject)
Does this leak any previous value of m_collisionObject?
Member tgRigidInfo::setCollisionShape (btCollisionShape *p_btCollisionShape)
Does this leak any previous value of m_collisionShape?
Member tgRigidInfo::setRigidBody (btRigidBody *rigidBody)
Does this leak any previous value of m_collisionObject?
Member tgRod::Config::friction
values greater than 1 seem to be useful for scaling, given NTRT 0.1. Investigate further
Member tgRodInfo::getLeafRigids ()
This function can't be const unless the return value is std::set<const tgRigidInfo*>.
Member tgRodInfo::initRigidBody (tgWorld &world)
come up with a general solution in tgRigidInfo::initRigidBody Currently very difficult to pass around the config file in tgRigidInfo, since
Member tgRodInfo::tgRodInfo (const tgRod::Config &config, tgTags tags, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgRodInfo::tgRodInfo (const tgRod::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgSCASineControl::tgSCASineControl (const double controlStep, tgImpedanceController *p_ipc, tgPIDController::Config pidConfig, const double amplitude, const double frequency, const double phase, const double offset, const double length)
check all of the above.
Member tgSimulation::run (int steps) const
Make steps of type size_t.
Member tgSimView::isInitialzed () const
Get rid of this. May only be possible once we're no longer using GLUT
Member tgSimView::m_renderRate
See about maintaining real time simulation with a different rendering rate
Member tgSimViewGraphics::run (int steps)
doesn't work until FreeGLUT or another rendering engine is implemented
Member tgSimViewGraphics::setup ()
Can this pointer become invalid if a reset occurs?
Member tgSimViewGraphics::tgSimViewGraphics (tgWorld &world, double stepSize=1.0/120.0, double renderRate=1.0/60.0)
figure out a good time to delete this
Member tgSineStringControl::onStep (tgSpringCableActuator &subject, double dt)
this fails if its attached to multiple controllers! is there a way to track global time at this level
Member tgSineStringControl::tgSineStringControl (const double controlStep, tgImpedanceController *p_ipc, const double amplitude, const double frequency, const double phase, const double offset, const double length)
check all of the above.
Member tgSphereInfo::getConnectionPoint (const btVector3 &referencePoint, const btVector3 &destinationPoint, const double rotation) const
support rotation without a proper normal vector (spherical coords?)
Member tgSphereInfo::getLeafRigids ()
This function can't be const unless the return value is std::set<const tgRigidInfo*>.
Member tgSphereInfo::initRigidBody (tgWorld &world)
come up with a general solution in tgRigidInfo::initRigidBody Currently very difficult to pass around the config file in tgRigidInfo, since
Member tgSphereInfo::tgSphereInfo (const tgSphere::Config &config, tgTags tags, const tgNode &node)
: make sure that tgPairs returns references to the vectors...
Member tgSphereInfo::tgSphereInfo (const tgSphere::Config &config, const tgNode &node)
: make sure that tgPairs returns references to the vectors...
Member tgSpringCableActuator::Config::Config (double s=1000.0, double d=10.0, double p=0.0, bool h=false, double mf=1000.0, double tVel=100.0, double mnAL=0.1, double mnRL=0.1, double rot=0)
is this the right place for this, or the constructor of this class?
Member tgSpringCableActuator::Config::rotation
Is this meaningful for non-rod shapes?
Member tgSpringCableAnchor::sliding
Do we want an internal apply force function? May simplify things (prevent Muscles from needing to include rigid bodies??)
Member tgStructure::addChild (tgStructure *child)
: check to make sure we don't already have one of these structures (what does that mean?)
Note
: We only want to check that pairs are the same at build time, since one structure may build the pairs, while another may not depending on its tags.
Member tgStructure::addRotation (const btVector3 &fixedPoint, const btVector3 &axis, double angle)
add rotate functionality
Member tgUtil::deg2rad (double degrees)
Normalize the return value so that it is in [0.0, 2 * pi).
Member tgUtil::getQuaternionBetween (btVector3 a, btVector3 b)
get some sensible value if a or b = (0, 0, 0). See getTransform
Member tgUtil::rad2deg (double radians)

write a function that returns the normal of a vector without overwriting the original vector line btVector3's .normalize() functions

Normalize the return value so that it is in [0.0, 360.0).

Member tgWorld::tgWorld (const Config &config, tgGround *ground)

can we make the ground const?

Use the factory method design pattern to create the m_pImpl object.

Member tgWorld::tgWorld ()
Use the factory method design pattern to create the m_pImpl object.
Member tgWorld::tgWorld (const Config &config)
Use the factory method design pattern to create the m_pImpl object.