NTRT Simulator
Version: Master
|
#include <BaseSpineModelLearning.h>
Inherits tgSubject< BaseSpineModelLearning >, and tgModel.
Inherited by BaseSpineModelGoal, BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySymmetric, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, FlemonsSpineModelContact, FlemonsSpineModelLearning, FlemonsSpineModelLearningCL, FlemonsSpineModelMixed, RibModel, RibModelMixedContact, TetraSpineCollisions, TetraSpineKinematic, TetraSpineLearningModel, TetraSpineStaticModel, TetraSpineStaticModel_hf, and VerticalSpineModelCableCollision.
Public Types | |
typedef std::map< std::string, std::vector < tgSpringCableActuator * > > | MuscleMap |
Public Member Functions | |
virtual void | setup (tgWorld &world) |
virtual void | teardown () |
virtual void | step (double dt) |
virtual std::vector< double > | getSegmentCOM (const int n) const |
virtual btVector3 | getSegmentCOMVector (const int n) const |
virtual const std::vector < tgSpringCableActuator * > & | getMuscles (const std::string &key) const |
virtual const std::vector < tgSpringCableActuator * > & | getAllMuscles () const |
virtual const std::vector < tgBaseRigid * > | getAllRigids () const |
virtual const int | getSegments () const |
virtual std::size_t | getNumberofMuslces () const |
double | getSpineLength () const |
void | attach (tgObserver< BaseSpineModelLearning > *pObserver) |
void | notifyStep (double dt) |
void | notifySetup () |
void | notifyTeardown () |
virtual void | onVisit (const tgModelVisitor &r) const |
void | addChild (tgModel *pChild) |
virtual std::string | toString (std::string prefix="") const |
template<typename T > | |
std::vector< T * > | find (const tgTagSearch &tagSearch) |
template<typename T > | |
std::vector< T * > | find (const std::string &tagSearch) |
std::vector< tgModel * > | getDescendants () const |
const std::vector < abstractMarker > & | getMarkers () const |
void | addMarker (abstractMarker a) |
virtual std::vector < tgSenseable * > | getSenseableDescendants () const |
void | addTags (const std::string &space_separated_tags) |
void | addTags (const tgTags &tags) |
bool | hasTag (const std::string tag) const |
bool | hasAllTags (std::string tags) |
bool | hasAnyTags (const std::string tags) |
bool | hasNoTags () |
tgTags & | getTags () |
const tgTags & | getTags () const |
void | setTags (tgTags tags) |
std::string | getTagStr (std::string delim=" ") const |
Protected Member Functions | |
BaseSpineModelLearning (int segments) | |
Protected Attributes | |
std::vector < tgSpringCableActuator * > | m_allMuscles |
std::vector< tgModel * > | m_allSegments |
MuscleMap | m_muscleMap |
const std::size_t | m_segments |
Provides all of the interfaces for a learning spine model, which implements all of the functions except using setup
Definition at line 48 of file BaseSpineModelLearning.h.
|
inherited |
Add a sub-model to this model. The model takes ownership of the child sub-model and is responsible for deallocating it.
[in,out] | pChild | a pointer to a sub-model |
std::invalid_argument | is pChild is NULL, this object, or already a descendant |
Definition at line 122 of file tgModel.cpp.
|
inherited |
Attach an observer to the subject of the observer.
[in,out] | pObserver | a pointer to an observer for the subject; do nothing if the pointer is NULL |
|
inlineinherited |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
[in] | tagSearch,a | tagSearch that contains the desired tags |
Definition at line 128 of file tgModel.h.
|
inlineinherited |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
[in] | tagSearch,a | std::string& that contains the desired tags |
Definition at line 141 of file tgModel.h.
|
inherited |
Return a std::vector of const pointers to all sub-models.
Definition at line 170 of file tgModel.cpp.
|
virtualinherited |
From tgSenseable: need to return all the children of this class. Since tgModels are tgSenseables, just return getDescendants().
For tgSenseable: just return the results of getDescendants here. This should be OK, since a vector of tgModel* is also a vector of tgSenseable*.
Reimplemented from tgSenseable.
Definition at line 191 of file tgModel.cpp.
|
inherited |
Call tgObserver<T>::onSetup() on all observers in the order in which they were attached.
|
inherited |
Call tgObserver<T>::onStep() on all observers in the order in which they were attached.
[in] | dt | the number of seconds since the previous call; do nothing if not positive |
|
inherited |
Call tgObserver<T>::onTeardown() on all observers in the order in which they were attached.
|
virtualinherited |
Call tgModelVisitor::render() on self and all descendants.
[in,out] | r | a reference to a tgModelVisitor |
Reimplemented in tgCompressionSpringActuator, tgUnidirComprSprActuator, ConnectorTestModel, BuildTestModel, tgKinematicActuator, tgSphere, tgBox, tgRod, ContactCableDemo, tgBasicActuator, hillyMuscleNP, simpleMuscleNP, tgBoxMoreAnchors, tgBaseRigid, and tgGhostModel.
Definition at line 107 of file tgModel.cpp.
|
virtual |
Setup takes a tgWorld and passes it to any children for their own setup functions. All subclasses should call this at the appropriate time (usually end of setup) within their own setup function.
[in] | world | - the tgWorld the models will exist in. |
Reimplemented from tgModel.
Reimplemented in BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySymmetric, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, VerticalSpineModelCableCollision, TetraSpineStaticModel_hf, FlemonsSpineModelGoal, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, TetraSpineStaticModel, TetraSpineLearningModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.
Definition at line 50 of file BaseSpineModelLearning.cpp.
|
virtual |
Advance the simulation.
[in] | dt | the number of seconds since the previous call; std::invalid_argument is thrown if dt is not positive |
std::invalid_argument | if dt is not positive |
Reimplemented from tgModel.
Reimplemented in BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySymmetric, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, TetraSpineStaticModel_hf, FlemonsSpineModelGoal, VerticalSpineModelCableCollision, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, TetraSpineStaticModel, TetraSpineLearningModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.
Definition at line 71 of file BaseSpineModelLearning.cpp.
|
virtual |
Deletes the children (undoes setup)
Reimplemented from tgModel.
Reimplemented in BigDoxie, BigDoxieNoFeet, BigDoxieSpirals, BigPuppySymmetricSpiral2, BigPuppySymmetricSpiral2, BigPuppyNoFeet, BigPuppyRigidFeet, BigPuppySpineOnly, BigPuppySymmetric, BigPuppySymmetricSpiral1, BigPuppySymmetricSpiral2, TetraSpineStaticModel_hf, VerticalSpineModelCableCollision, FlemonsSpineModelGoal, OctahedralComplex, BaseSpineModelGoal, TetraSpineKinematic, TetraSpineGoal, TetraSpineCollisions, TetraSpineStaticModel, TetraSpineLearningModel, FlemonsSpineModelContact, FlemonsSpineModelMixed, RibModelMixedContact, FlemonsSpineModelLearningCL, FlemonsSpineModelLearning, and RibModel.
Definition at line 59 of file BaseSpineModelLearning.cpp.
|
virtualinherited |
Returns the tag names of this model and its children
[in] | prefix | a string to append to |
Definition at line 152 of file tgModel.cpp.