#include <FlemonsSpineModelLearning.h>
|
| FlemonsSpineModelLearning (int segments) |
|
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 |
|
|
std::vector
< tgSpringCableActuator * > | m_allMuscles |
|
std::vector< tgModel * > | m_allSegments |
|
MuscleMap | m_muscleMap |
|
const std::size_t | m_segments |
|
This class implements the tetrahedral complex tensegrity spine based on the work of Tom Flemons
Definition at line 40 of file FlemonsSpineModelLearning.h.
void tgModel::addChild |
( |
tgModel * |
pChild | ) |
|
|
inherited |
Add a sub-model to this model. The model takes ownership of the child sub-model and is responsible for deallocating it.
- Parameters
-
[in,out] | pChild | a pointer to a sub-model |
- Exceptions
-
std::invalid_argument | is pChild is NULL, this object, or already a descendant |
- Todo:
- Make sure that every child appears no more than once in the tree.
Definition at line 122 of file tgModel.cpp.
Attach an observer to the subject of the observer.
- Parameters
-
[in,out] | pObserver | a pointer to an observer for the subject; do nothing if the pointer is NULL |
template<typename T >
std::vector<T*> tgModel::find |
( |
const tgTagSearch & |
tagSearch | ) |
|
|
inlineinherited |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
- Parameters
-
[in] | tagSearch,a | tagSearch that contains the desired tags |
- Returns
- a std::vector of pointers to members that match the tag search and typename T
Definition at line 128 of file tgModel.h.
template<typename T >
std::vector<T*> tgModel::find |
( |
const std::string & |
tagSearch | ) |
|
|
inlineinherited |
Get a vector of descendants sorted by type and a tagsearch. Useful for pulling out muscle groups, or similar.
- Parameters
-
[in] | tagSearch,a | std::string& that contains the desired tags |
- Returns
- a std::vector of pointers to members that match the tag search and typename T
Definition at line 141 of file tgModel.h.
std::vector< tgModel * > tgModel::getDescendants |
( |
| ) |
const |
|
inherited |
Return a std::vector of const pointers to all sub-models.
- Todo:
- examine whether this should be public, and perhaps create a read only version
- Returns
- a std::vector of const pointers all sub-models.
- Todo:
- Unnecessary copying can be avoided by pasing the result collection in the recursive step.
Definition at line 170 of file tgModel.cpp.
std::vector< tgSenseable * > tgModel::getSenseableDescendants |
( |
| ) |
const |
|
virtualinherited |
From tgSenseable: need to return all the children of this class. Since tgModels are tgSenseables, just return getDescendants().
- Returns
- a vector of tgModels, with pointers changed into pointers for tgSenseables.
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.
Call tgObserver<T>::onStep() on all observers in the order in which they were attached.
- Parameters
-
[in] | dt | the number of seconds since the previous call; do nothing if not positive |
Call tgModelVisitor::render() on self and all descendants.
- Parameters
-
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.
void FlemonsSpineModelLearning::setup |
( |
tgWorld & |
world | ) |
|
|
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.
- Parameters
-
[in] | world | - the tgWorld the models will exist in. |
- Todo:
- : there seems to be an issue with Muscle2P connections if the front of a tetra is inside the next one.
- Todo:
- : the snake is a temporary variable – will its destructor be called? If not, where do we delete its children?
Reimplemented from BaseSpineModelLearning.
Definition at line 60 of file FlemonsSpineModelLearning.cpp.
void FlemonsSpineModelLearning::step |
( |
double |
dt | ) |
|
|
virtual |
Advance the simulation.
- Parameters
-
[in] | dt | the number of seconds since the previous call; std::invalid_argument is thrown if dt is not positive |
- Exceptions
-
std::invalid_argument | if dt is not positive |
- Note
- This is not necessarily const for every child.
Reimplemented from BaseSpineModelLearning.
Definition at line 199 of file FlemonsSpineModelLearning.cpp.
void FlemonsSpineModelLearning::teardown |
( |
| ) |
|
|
virtual |
std::string tgModel::toString |
( |
std::string |
prefix = "" | ) |
const |
|
virtualinherited |
Returns the tag names of this model and its children
- Parameters
-
[in] | prefix | a string to append to |
- Returns
- the original string with this model and its children's tags appended
Definition at line 152 of file tgModel.cpp.
The documentation for this class was generated from the following files: