NTRT Simulator  Version: Master
 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 AppAchillesHierarchy::run ()
consider app.cleanup()
Member AppAchillesHierarchy::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppAOHierarchy::run ()
consider app.cleanup()
Member AppAOHierarchy::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppGoalOnline::run ()
consider app.cleanup()
Member AppGoalOnline::setup ()

add position and angle to configuration

Generalize angle code

fix memory leak that occurs here

Member AppGoalTension::run ()
consider app.cleanup()
Member AppGoalTension::setup ()
fix memory leak that occurs here
Member AppGoalTensionNNW::run ()
consider app.cleanup()
Member AppGoalTensionNNW::setup ()
fix memory leak that occurs here
Member AppGoalTerrain::run ()
consider app.cleanup()
Member AppGoalTerrain::setup ()
fix memory leak that occurs here
Member AppMGControl::run ()
consider app.cleanup()
Member AppMGControl::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppMGControlFM0::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppMGControlFM1::run ()
consider app.cleanup()
Member AppMGControlFM1::setup ()
add position and angle to configuration
Member AppMixedLearning::run ()

consider app.cleanup()

consider app.cleanup()

Member AppMixedLearning::setup ()

add position and angle to configuration

fix memory leak that occurs here

add position and angle to configuration

fix memory leak that occurs here

Member AppMultiTerrain::run ()
consider app.cleanup()
Member AppMultiTerrain::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppMultiTerrain_OC::run ()
consider app.cleanup()
Member AppMultiTerrain_OC::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppMultiTerrain_Tetra::run ()
consider app.cleanup()
Member AppMultiTerrain_Tetra::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppOCTension::run ()
consider app.cleanup()
Member AppOCTension::setup ()
fix memory leak that occurs here
Member AppQuadControl::run ()
consider app.cleanup()
Member AppQuadControl::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlDoxie::run ()
consider app.cleanup()
Member AppQuadControlDoxie::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlDoxieNF::run ()
consider app.cleanup()
Member AppQuadControlDoxieNF::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlDoxieSpirals::run ()
consider app.cleanup()
Member AppQuadControlDoxieSpirals::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlHierarchy::run ()
consider app.cleanup()
Member AppQuadControlHierarchy::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlMetrics::run ()
consider app.cleanup()
Member AppQuadControlMetrics::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlSegments::run ()
consider app.cleanup()
Member AppQuadControlSegments::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlSpiral2::run ()
consider app.cleanup()
Member AppQuadControlSpiral2::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadControlSpiral::run ()
consider app.cleanup()
Member AppQuadControlSpiral::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadCoupling::run ()
consider app.cleanup()
Member AppQuadCoupling::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppQuadSimpleActuation::run ()
consider app.cleanup()
Member AppQuadSimpleActuation::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppSpineControl::run ()
consider app.cleanup()
Member AppSpineControl::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppSpineControlStats::run ()
consider app.cleanup()
Member AppSpineControlStats::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppTerrainJSON::run ()
consider app.cleanup()
Member AppTerrainJSON::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member AppTSGoal::run ()
consider app.cleanup()
Member AppTSGoal::setup ()

add position and angle to configuration

fix memory leak that occurs here

Member asYamlElement (const tgStructure &structure, int indentLevel=0)
Inlining this does no good; stream operations are slow.
Member asYamlElement (const tgStructure &structure, int indentLevel=0)
Inlining this does no good; stream operations are slow.
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 ContactCableDemo::getEnergy () const
account for rotational energy as well, and energy in the string
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 FlemonsSpineModelGoal::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 FlemonsSpineModelMixed::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 htSpineSine::setupWaves (BaseSpineModelLearning &subject)
should this throw an exception instead??
Member JSONAchillesHierarchyControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONAchillesHierarchyControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONAchillesHierarchyControl::scaleEdgeActions (Json::Value actions, int segmentSpan, int theirMuscles, int ourMuscles)
consider adding exception here
Member JSONAOHierarchyControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONAOHierarchyControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONAOHierarchyControl::scaleEdgeActions (Json::Value actions, int segmentSpan, int theirMuscles, int ourMuscles)
consider adding exception here
Member JSONCPGControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONCPGControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONCPGControl::scaleEdgeActions (Json::Value edgeParam)
consider adding exception here
Member JSONCPGControl::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member JSONFeedbackControl::nn
generalize this if we need more than one
Member JSONFeedbackControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONFeedbackControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONGoalControl::nn
generalize this if we need more than one
Member JSONGoalControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONGoalControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONGoalTension::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONGoalTension::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONGoalTension::setupFeedbackWeights (array_2D nodeVals)
update so this is a config param
Member JSONGoalTensionNNW::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONHierarchyFeedbackControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONHierarchyFeedbackControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONHierarchyFeedbackControl::scaleEdgeActions (Json::Value actions, int segmentSpan, int theirMuscles, int ourMuscles)
consider adding exception here
Member JSONMetricsFeedbackControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONMetricsFeedbackControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONMGCPGGeneralControl::onStep (BaseQuadModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONMGCPGGeneralControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONMGCPGGeneralControl::scaleEdgeActions (Json::Value edgeParam)
consider adding exception here
Member JSONMGCPGGeneralControl::setupCPGs (BaseQuadModelLearning &subject, array_2D nodeActions, array_3D edgeActions)
: redo with for_each
Member JSONMGFeedbackControl::nn
generalize this if we need more than one
Member JSONMGFeedbackControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONMGFeedbackControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONMGFeedbackControl::scaleEdgeActions (Json::Value edgeParam)
consider adding exception here
Member JSONMGFeedbackControlFM0::nn
generalize this if we need more than one
Member JSONMGFeedbackControlFM0::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONMGFeedbackControlFM0::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONMGFeedbackControlFM1::nn
generalize this if we need more than one
Member JSONMGFeedbackControlFM1::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONMGFeedbackControlFM1::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONMixedLearningControl::nn
generalize this if we need more than one
Member JSONMixedLearningControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONMixedLearningControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONQuadCPGControl::onStep (BaseQuadModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member JSONQuadCPGControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONQuadCPGControl::scaleEdgeActions (Json::Value edgeParam)
consider adding exception here
Member JSONQuadCPGControl::setupCPGs (BaseQuadModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
: redo with for_each
Member JSONQuadFeedbackControl::nn

generalize this if we need more than one

generalize this if we need more than one

generalize this if we need more than one

generalize this if we need more than one

generalize this if we need more than one

Member JSONQuadFeedbackControl::onStep (BaseSpineModelLearning &subject, double dt)

if bogus, stop trial (reset simulation)

if bogus, stop trial (reset simulation)

if bogus, stop trial (reset simulation)

Member JSONQuadFeedbackControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

- consolidate with other controller classes.

- return length scale as a parameter

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONQuadFeedbackControl::scaleEdgeActions (Json::Value edgeParam)
consider adding exception here
Member JSONQuadFeedbackControl::scaleHighEdgeActions (Json::Value highEdgeParam)
consider adding exception here
Member JSONSegmentsFeedbackControl::nn
generalize this if we need more than one
Member JSONSegmentsFeedbackControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONSegmentsFeedbackControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member JSONSegmentsFeedbackControl::scaleEdgeActions (Json::Value actions, int theirMuscles, int ourMuscles)
consider adding exception here
Member JSONStatsFeedbackControl::nn
generalize this if we need more than one
Member JSONStatsFeedbackControl::onStep (BaseQuadModelLearning &subject, double dt)
if bogus, stop trial (reset simulation)
Member JSONStatsFeedbackControl::onTeardown (BaseQuadModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

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?

should this throw an exception instead??

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 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 OctahedralComplex::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member OctahedralGoalControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member OctahedralGoalControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member OctahedralTensionControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member OctahedralTensionControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member operator<< (std::ostream &os, const btCollisionShape &cs)
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 operator<< (std::ostream &os, const tgPair &pair)
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 tgNode &node)
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 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 btCompoundShape &cs)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgNodes &n)
Inlining this does no good; stream operations are slow.
Member operator<< (std::ostream &os, const tgStructure &structure)
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 tgSensorInfo &obj)
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 tgDataManager &obj)
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 tgTags &tags)
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 RibModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member RibModelMixedContact::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
Member ScarrArmModel::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 SpineGoalControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member SpineGoalControl::onTeardown (BaseSpineModelLearning &subject)

- consolidate with other controller classes.

- return length scale as a parameter

Member SpineOnlineControl::onStep (BaseSpineModelLearning &subject, double dt)

add to config

if bogus, stop trial (reset simulation)

Member SpineOnlineControl::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...
Class tgBlockField
Add parameters to vary the size and rotation of the boxes
Member tgBlockField::tgBlockField ()
assess if doing this multiple times in a trial (here and evolution) causes problems
Member tgBlockField::tgBlockField (tgBlockField::Config &config)
assess if doing this multiple times in a trial (here and evolution) causes problems
Member tgBoxAnchorDebugModel::setup (tgWorld &world)
acceleration constraint was removed on 12/10/14 Replace with tgKinematicActuator as appropreate
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, tgTags tags, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBoxInfo::tgBoxInfo (const tgBox::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBoxMoreAnchorsInfo::getLeafRigids ()
This function can't be const unless the return value is std::set<const tgRigidInfo*>. Note that this is re-defined so that a tgBoxMoreAnchorsInfo is returned instead of a tgBoxInfo.
Member tgBoxMoreAnchorsInfo::tgBoxMoreAnchorsInfo (const tgBox::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBoxMoreAnchorsInfo::tgBoxMoreAnchorsInfo (const tgBox::Config &config, tgTags tags, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
Member tgBulletCompressionSpring::getAnchors () const
figure out how to cast and pass by reference
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 () 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::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::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 tgCompressionSpringActuator::Config::Config (bool iFEA=false, double s=1000.0, double d=10.0, double rL=0.0, bool moveCPA=true, bool moveCPB=true)
is this the right place for this, or the constructor of this class?
Member tgCompressionSpringActuatorInfo::tgCompressionSpringActuatorInfo (const tgCompressionSpringActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
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 tgCPGMGActuatorControl::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.

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 ()=0
Is this necessary?
Member tgRigidInfo::getCompound () const =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 tgSimulation::step (double dt) const
determine if this is necessary
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, const tgNode &node)
: make sure that tgPairs returns references to the vectors...
Member tgSphereInfo::tgSphereInfo (const tgSphere::Config &config, tgTags tags, 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, bool moveCPA=true, bool moveCPB=true)
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??)
Class tgStairs
Add parameters to vary the size and rotation of the boxes
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 tgUnidirComprSprActuatorInfo::tgUnidirComprSprActuatorInfo (const tgUnidirComprSprActuator::Config &config, const tgPair &pair)
: make sure that tgPairs returns references to the vectors...
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, const btVector3 &fallbackAxis=btVector3(0, 0, 0))
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 tgUtil::seedRandom (int seed)
is this necessary? If everyone uses the above function we can just change the definition of rdtsc to seed random everywhere.
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.
Member tscDataObserver::onSetup (BaseSpineModelLearning &model)

move functions to constructor when possible

move functions to constructor when possible