- Member BaseSpineCPGControl::onTeardown (BaseSpineModelLearning &subject)
- consolidate with other controller classes.
- 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 ContactTestModel::setup (tgWorld &world)
- Get rid of this.
- Member CPGNode::CPGNode (int nodeNum, const std::vector< double > ¶ms)
- consider adding vector of initial conditions for stability
- Member CPGNode::updateDTs (double descCom)
better name?
ask about refactoring to use for_each
- Member FlemonsSpineModelLearning::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 ImpedanceControl::_lengthStiffness
- Rename m_lengthStiffness.
- Member ImpedanceControl::_offsetTension
- rename m_offsetTension.
- Member ImpedanceControl::_velStiffness
- Rename m_velocityStiffness.
- Member ImpedanceControl::control (tgBaseString *const mString, double deltaTimeSeconds, double newPosition, double offsetVel=0)
Make mMuscle a reference.
should we add an offset position so it can just control??
- Member main (int argc, char **argv)
Does the model assume ownership of the controller?
Does the model assume ownership of the controller?
- File Muscle2P.cpp
- Split so only one class is defined per file. $Id$
- File Muscle2P.h
- Split so only one class is defined per header file. $Id$
- Member operator<< (std::ostream &os, const tgPairs &p)
- 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 tgModel &obj)
- 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 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 tgNodes &n)
- 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 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 tgStructureInfo &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 btVector3 &v)
- 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 btRigidBody &rb)
- 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 CPGEdge &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 CPGNode &obj)
- Inlining this does no good; stream operations are slow.
- Member StructureTestModel::setup (tgWorld &world)
- Get rid of this.
- Member TetraSpineCPGControl::setupCPGs (BaseSpineModelLearning &subject, array_2D nodeActions, array_4D edgeActions)
- : redo with for_each
- Member tgBaseString::Config::Config (double s=1000.0, double d=10.0, bool h=false, double rot=0, double mf=1000.0, double tVel=100.0, double mxAcc=10000.0, double mnAL=0.1, double mnRL=0.1)
- is this the right place for this, or the constructor of this class?
- Member tgBaseString::Config::maxTens
- give the motor interia, and specify more things by torque
- Member tgBaseString::Config::rotation
- Is this meaningful for non-rod shapes?
- Member tgBulletRenderer::tgBulletRenderer (tgWorld &world)
- Make the world const.
- Member tgBulletUtil::worldToDynamicsWorld (tgWorld &world)
- 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::setRigidBody (btRigidBody *const rigidBody)
tgCompoundRigidInfo is infected by Bullet Physics
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 tgCPGInfo::addControlInfo (tgBaseCPGNode *string)
- see if this can be ready for construction of the tgModel the first time. Would require editing tgStructureInfo
- Member tgCPGInfo::setConnectivity (tgConnectorInfo *thisString, std::vector< tgConnectorInfo * > allStrings, array_4D edgeParams)
- can we check to make sure the strings are on the same CPG system like we used to
- Member tgCPGStringControl::onStep (tgLinearString &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 tgLinearString::tgLinearString (Muscle2P *muscle, const tgTags &tags, tgBaseString::Config &config)
- move hist to config
- Member tgLinearStringInfo::tgLinearStringInfo (const tgLinearString::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.
- 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 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::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_rigidBody?
- 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::sharesNodesWith (const tgRigidInfo &other) const
- : Move this to tgRigidInfo Does this rod have any nodes in common with the given tgRigidInfo object?
- Parameters
-
- Return values
-
true | if any node in this rod is also in other |
false | if no node in this rod is also in other |
- Member tgRodInfo::tgRodInfo (const tgRod::Config &config, const tgPair &pair)
- : make sure that tgPairs returns references to the vectors...
- Member tgRodInfo::tgRodInfo (const tgRod::Config &config, tgTags tags, const tgPair &pair)
- : make sure that tgPairs returns references to the vectors...
- Member tgSimulation::addModel (tgModel *pModel)
- Model pointer can't be NULL.
- Member tgSimulation::run (int steps) const
- Make steps of type size_t.
- Member tgSimView::isInitialzed () const
- Get rid of this.
- 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 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::rad2deg (double radians)
- Normalize the return value so that it is in [0.0, 360.0).
- Member tgWorld::tgWorld (const Config &config)
I couldn't find a way to give config a default value.
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, tgGround *ground)
can we make the ground const?
Use the factory method design pattern to create the m_pImpl object.